[m-rev.] for review: software transactional memory
Julien Fischer
juliensf at csse.unimelb.edu.au
Wed Feb 27 15:33:59 AEDT 2008
On Mon, 25 Feb 2008, Zoltan Somogyi wrote:
> Provide compiler support for Software Transactional Memory through the new
> atomic goal. This work was done by Leon Mika; I merely brought it up to date,
> resolved conflicts, and cleaned up a few things. There are still several
> aspects that are as yet incomplete.
>
> library/ops.m:
> Add the operators needed for the syntax of atomic scopes.
>
> library/stm_builtin.m:
> Add the builtin operations needed for the implementation of atomic
> goals.
>
> compiler/hlds_goal.m:
> Add a new HLDS goal type, which represents an atomic goal and its
> possible fallbacks (in case an earlier goal throws an exception).
>
> Rename the predicate goal_is_atomic as goal_expr_has_subgoals,
> since now its old name would be misleading.
>
> compiler/prog_data.m:
> compiler/prog_item.m:
> Add a parse tree representation of the new kind of goal.
>
> compiler/prog_io_goal.m:
> Parse the new kind of goal.
>
> compiler/add_clause.m:
> Translate atomic goals from parse tree form to HLDS.
>
> compiler/typecheck.m:
> compiler/typecheck_errors.m:
> Do type checking of atomic goals.
>
> compiler/modes.m:
> Do mode checking of atomic goals, and determine whether they are nested
> or not.
>
> compiler/unique_modes.m:
> Do unique mode checking of atomic goals.
>
> compiler/stm_expand.m:
> New module to expand atomic goals into sequences of simpler goals.
>
> library/stm_builtin.m:
> Add the primitives needed by the transformation.
>
> Improve the existing debugging support.
>
> mdbcomp/prim_data.m:
> Add utility functions to allow stm_expand.m to refer to modules in the
> library.
>
> mdbcomp/program_representation.m:
> Expand the goal_path type to allow the representation of components of
> atomic goals.
>
> compiler/notes/compiler_design.html:
> Document the new module.
>
> compiler/transform_hlds.m:
> Include the new module in the compiler.
>
> compiler/mercury_compile.m:
> Invoke the STM transformation.
>
> compiler/hlds_module.m:
> Add an auxiliary counter used by the STM transformation.
>
> compiler/hlds_pred.m:
> Add a new predicate origin: the STM transformation.
>
> compiler/modules.m:
> Import the STM builtin module automatically if the module contains any
> atomic goals.
>
...
> compiler/delay_partial_inst.m:
Peter Wang will need to take a look at the XXXs in this one.
>
> runtime/mercury_stm.[ch]:
> Implement the primitives needed by the STM transformation.
>
> Add more debugging support to the existing primitives.
>
...
> %----------------------------------------------------------------------------%
> Index: library/term.m
> ===================================================================
> RCS file: /home/mercury/mercury1/repository/mercury/library/term.m,v
> retrieving revision 1.129
> diff -u -b -r1.129 term.m
> --- library/term.m 15 Feb 2008 02:27:04 -0000 1.129
> +++ library/term.m 16 Feb 2008 07:27:00 -0000
> @@ -59,7 +59,7 @@
> :- type term == term(generic).
> :- type var == var(generic).
>
> -:- func get_term_context(term) = term.context.
> +:- func get_term_context(term(T)) = term.context.
>
> %-----------------------------------------------------------------------------%
This change is not mentioned in the log message.
You can go ahead and commit this.
Julien.
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to: mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions: mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the reviews
mailing list