Files
mercury/extras/references/README
Zoltan Somogyi 9b6390b17e Bring the programming style of extras up to date.
extras/curs/curs.m:
extras/curs/curs.panel.m:
    Make panel a separate submodule of curs, not a nested submodule.

extras/base64/base64.m:
extras/curses/mcurses.basics.m:
extras/curses/mcurses.m:
extras/curses/mcurses.misc.m:
extras/curses/mcurses.user.m:
extras/gator/evolve.m:
extras/gator/genotype.m:
extras/gator/phenotype.m:
extras/gator/tausworthe3.m:
extras/monte/dots.m:
extras/monte/geom.m:
extras/monte/hg.m:
extras/monte/monte.m:
extras/monte/rnd.m:
extras/moose/grammar.m:
extras/moose/moose.m:
extras/mopenssl/mopenssl.m:
extras/net/echo.m:
extras/net/errno.m:
extras/net/getaddrinfo.m:
extras/net/net.m:
extras/net/netdb.m:
extras/net/sockets.m:
extras/net/streams.m:
extras/net/tcp.m:
extras/net/test_lookups.m:
extras/net/types.m:
extras/odbc/odbc.m:
extras/odbc/odbc_test.m:
extras/references/README:
extras/references/reference.m:
extras/references/scoped_update.m:
extras/solver_types/library/any.m:
extras/solver_types/library/any_array.m:
extras/solver_types/library/any_assoc_list.m:
extras/solver_types/library/any_list.m:
extras/solver_types/library/any_map.m:
extras/solver_types/library/any_tree234.m:
extras/solver_types/library/any_util.m:
extras/trail/trail.m:
extras/trailed_update/samples/interpreter.m:
extras/trailed_update/samples/vqueens.m:
extras/trailed_update/tests/var_test.m:
extras/trailed_update/tr_array.m:
extras/trailed_update/tr_store.m:
extras/trailed_update/trailed_update.m:
extras/trailed_update/unsafe.m:
extras/trailed_update/var.m:
    Bring programming style up to date.
2023-03-30 21:48:10 +11:00

33 lines
1.2 KiB
Plaintext

This directory contains two impure reference type modules, and a module
that allows scoped non-backtrackable update, plus two example modules
using these types. These serve as an example of impure coding.
Generally this sort of coding is not necessary, and it can be quite tedious
and error-prone, but occasionally it may permit greater efficiency
than using pure Mercury code, or may permit you to write in Mercury
what you would otherwise have to write in C. See the "Impurity declarations"
chapter of the Mercury Language Reference Manual for more information
on impurity.
This directory contains
reference.m a backtrackable reference types
nb_reference.m a non-backtrackable reference types
scoped_update.m scoping for non-backtrackable updates
global.m a wrapper module used for building a
library containing the above modules
c_reference.h C types used to implement the reference types
The samples directory contains
max_of.m an example of non-backtrackable references
test_max.m test case for max_of.m
The tests directory contains
ref_test.m tests of reference.m, nb_reference.m and scoped_update.m
glob_test.m tests use of c_reference.h to implement global variables