Estimated hours taken: 10
Branches: main, release
Fix the monitors that were computing coverage rates in Morphine. The
problem was the following. In order to check that two successes and
one failure occur for a multi predicate, I was looking at two exits
and one fail; but this is wrong since, of course, the two exits can
be produced by different calls, and since all multi predicates ends
up with a fail event. To get it right, I need to associate the call
number to exit and fail events. To do that, I maintain at exit ports
the list of call numbers; when an exit event occurs, I consider it as
covered iff the current call number is in the list. On the contrary,
I consider a failure as covered at a fail port iff the current call
number is not in the list. This also holds for semidet and nondet
procedures.
extras/morphine/non-regression-tests/queens.exp:
Update the new expected outputs.
extras/morphine/non-regression-tests/queens.in:
Update the year of the copyrigth message.
extras/morphine/source/call_site_cov.in:
extras/morphine/source/pred_cov.in:
Change the code so that it does what it is supposed to do.
Also use a map instead of a list to store what has to be
covered for each procedure.
extras/morphine/source/generate_pred_cov.m:
extras/morphine/source/generate_call_site_cov.m:
extras/morphine/source/coverage_util.m:
Generate an initialize/1 predicate that uses map instead of lists.
extras/morphine/source/coverage.op:
Coverage monitors now output assoc lists.
Estimated hours taken: .1
branches: main.
extras/morphine/source/control_flow.op:
Remove the call number from the proof tree as it is useless.
Make dot display the nodes in their order of creation.
Estimated hours taken: 20
branches: main.
Add a monitor that computes the program execution proof tree.
extras/morphine/source/collect__proof_tree:
A new monitor that computes the program execution proof tree
(New file).
extras/morphine/source/control_flow.op:
Add support for calling the proof_tree monitor from Morphine.
--
Estimated hours taken: 2
branches: main.
Improve a little bit the code of monitor examples provided with
morphine.
extras/morphine/source/control_flow.op:
extras/morphine/source/collect__control_flow_graph:
extras/morphine/source/collect__dynamic_call_graph:
Use sets instead of lists, and arc/2 instead of edge/2.
Use post_process/2 to remove useless stuff.
extras/morphine/source/collect__dynamic_call_graph:
Extend arc labels with an integer that counts the number of calls.
Use stack library modules instead of list.
Estimated hours taken: 1
Replace occurrences of "INSA" by "INSA de Rennes" since Morphine is an "INSA de
Rennes" software, not an "INSA" one.
*:
*/*:
/s/INSA/INSA de Rennes/
scripts/exec_mercury_program:
Remove some useless I/O wrapping of Mercury execution runs.
source/collect.op:
Improve a litte bit the documentation of collect/2.
Estimated hours taken: 1
Put Morphine under the GNU/GPL licence. Also replace a few remaining
occurrences of Opium-M by Morphine.
morphine/Licence:
File containing a copy of the GNU/GPL licence.
morphine/INSTALL-MORPHINE:
morphine/source/*.pl:
morphine/source/*.op:
Add 2 lines in each file header that state that Morphine is under
the GNU/GPL Licence.
morphine/copyright.txt:
Change this file in such a way that Morphine is now under GNU/GPL.
morphine/INSTALL-MORPHINE:
morphine/README:
morphine/source/load_morphine.pl:
morphine/source/load_morphine.pl:
morphine/source/morphine_kernel.op
Replace a few remaining occurrences of Opium-M by Morphine.
Estimated hours taken: 6
(Committed by fjh on behalf of Erwan Jahier.)
morphine/*:
morphine/non_regression_tests/*:
morphine/source/*:
Rename all occurrences of Opium-M by Morphine.
morphine/source/:
Rename opium_m_kernel.op into morphine_kernel.op, load_opium.pl
into load_morphine.pl and load_opium_without_banner.pl into
load_morphine_without_banner.pl.
Estimated hours taken: 1000
Add Opium-M in the extras. (committed on behalf of Erwan Jahier).
extras/opium_m/copyright.txt:
The copyright for Opium-M.
extras/opium_m/VERSION:
extras/opium_m/README:
extras/opium_m/opium-mode.el:
An emacs mode designed to write opium scenario.
extras/opium_m/INSTALL-OPIUM-M:
Opium-M installation script.
extras/opium_m/source/interactive_queries.op:
extras/opium_m/source/browse.op:
extras/opium_m/source/control_flow.op:
extras/opium_m/source/coprocess_M.op:
extras/opium_m/source/opium_kernel_M.op:
extras/opium_m/source/current_arg_M.op:
extras/opium_m/source/current_slots_M.op:
extras/opium_m/source/display_M.op:
extras/opium_m/source/source_M.op:
extras/opium_m/source/event_attributes_M.op:
extras/opium_m/source/step_by_step_M.op:
extras/opium_m/source/exec_control_M.op:
extras/opium_m/source/forward_move_M.op:
extras/opium_m/source/load_Opium-M.pl:
extras/opium_m/source/make_scenario-M.pl:
extras/opium_m/source/load_Opium-M_without_banner.pl:
extras/opium_m/source/load_scenario-M.pl:
The Opium-M source files.
extras/opium_m/source/partch.autoload:
extras/opium_m/source/partch.interface:
extras/opium_m/source/partch.parameter:
extras/opium_m/source/partch.scenario_handler:
extras/opium_m/source/partch.error:
extras/opium_m/source/partch.types:
extras/opium_m/source/partch.translate:
extras/opium_m/source/partch.util.pl:
extras/opium_m/source/partch.make:
extras/opium_m/source/partch.scenario:
Patches to create the scenario handler for Opium-M. autoload.op,
etc. are part of the Eclipse distribution; to avoid licensing
issues, we copy thoses files from the Eclipse installation
directory during the installation and then we patch them using
those files.
extras/opium_m/non-regression-tests/*:
Non regression tests for Opium-M.
extras/opium_m/non-regression-tests/queens.m:
extras/opium_m/non-regression-tests/test_vars.m:
extras/opium_m/non-regression-tests/test_listing.m:
Mercury files that are tested.
extras/opium_m/non-regression-tests/browse.in:
extras/opium_m/non-regression-tests/queens.in:
extras/opium_m/non-regression-tests/test_vars.in:
Input of the non regression tests.
extras/opium_m/non-regression-tests/queens.exp:
extras/opium_m/non-regression-tests/test_vars.exp:
extras/opium_m/non-regression-tests/listing_output.exp:
Expected output of the non regression tests.
extras/opium_m/non-regression-tests/runtests:
extras/opium_m/non-regression-tests/Mmakefile:
To perform the non regression tests.
extras/opium_m/non-regression-tests/Mmake.common:
extras/opium_m/non-regression-tests/shutdown:
extras/opium_m/non-regression-tests/startup:
extras/opium_m/non-regression-tests/handle_options:
Those files are copied from the Mercury tests repository.
extras/opium_m/scripts/exec_mercury_program:
Script that is used to run Mercury programs under the control of
Opium-M.
extras/opium_m/scripts/fixmanual:
Script that patch the output of `manual' command (which automaticly
generates the Opium-M Reference Manual).