Building the POSIX binding using mmc --make by default and just have mmake
forward its work to that. Using mmc --make means things like library grade
exclusions will work properly.
Exclude non-C grades from the grade set in which to install the POSIX binding.
Shift a POSIX binding sample into the samples subdirectory.
extras/posix/Makefile:
extras/posix/Mercury.options:
Build the POSIX binding using mmc --make.
extras/posix/Mmakefile:
Redirect mmake to use the normal Makefile.
extras/posix/hello.m:
Shift this file into the samples subdirectory.
extras/samples/Makefile:
Set up things to build the samples against a libposix in the
parent directory.
extras/samples/Mmakefile:
Delete this file.
Discussion of these changes can be found on the Mercury developers
mailing list archives from June 2018.
COPYING.LIB:
Add a special linking exception to the LGPL.
*:
Update references to COPYING.LIB.
Clean up some minor errors that have accumulated in copyright
messages.
benchmarks/progs/quicksort/qs_always_par.m:
benchmarks/progs/quicksort/qs_utils.m:
extras/moose/check.m:
extras/posix/samples/mdprof_cgid.m:
extras/xml/parsing.m:
samples/muz/zparser.m:
samples/muz/ztype_op.m:
As above -- the compiler now rejects determinism declarations on
non-predmode predicate declarations.
Replace a call to bitmap.new with bitmap.init.
This file-specific setting will override a default setting of expandtabs
in $HOME/.vimrc.
*/Makefile:
*/Mmakefile:
As above.
tests/hard_coded/.gitignore:
Don't ignore the purity subdir. This ignore must have been left over
from when purity.m was a test in hard_coded, not hard_coded/purity,
and it ignored an executable, not a directory.
Branches: main
Deprecate string.substring, string.foldl_substring, etc. in favour of
new procedures named string.between, string.foldl_between, etc.
The "between" procedures take a pair of [Start, End) endpoints instead
of Start, Count arguments. The reasons for this change are:
- the "between" procedures are more convenient
- "between" should be unambiguous. You can guess that it takes an End
argument instead of a Count argument without looking up the manual.
- Count arguments necessarily counted code units, but when working with
non-ASCII strings, almost the only way that the values would be arrived at
is by substracting one end point from another.
- it paves the way for a potential change to replace string offsets with an
abstract type. We cannot do that if users regularly have to perform a
subtraction between two offsets.
library/string.m:
Add string.foldl_between, string.foldl2_between,
string.foldr_between, string.between.
Deprecate the old substring names.
Replace string.substring_by_codepoint by string.between_codepoints.
compiler/elds_to_erlang.m:
compiler/error_util.m:
compiler/rbmm.live_variable_analysis.m:
compiler/timestamp.m:
extras/posix/samples/mdprof_cgid.m:
library/bitmap.m:
library/integer.m:
library/lexer.m:
library/parsing_utils.m:
mdbcomp/trace_counts.m:
profiler/demangle.m:
Conform to changes.
tests/general/Mercury.options:
tests/general/string_foldl_substring.exp:
tests/general/string_foldl_substring.m:
tests/general/string_foldr_substring.exp:
tests/general/string_foldr_substring.m:
tests/hard_coded/Mercury.options:
tests/hard_coded/string_substring.m:
Test both between and substring procedures.
tests/hard_coded/string_codepoint.exp:
tests/hard_coded/string_codepoint.exp2:
tests/hard_coded/string_codepoint.m:
Update names in test outputs.
NEWS:
Announce the change.
Estimated hours taken: 1
Branches: main
Convert the POSIX binding to use the standard library's bitmap module for
storing byte-oriented data rather than defining a separate module for doing
so. (The standard library's facilities for dealing with such data are much
more extensive than what they were when the binding was originally written.)
extras/posix/posix.read.m:
extras/posix/posix.write.m:
Use bitmaps in place of the text/0 type.
extras/posix/text.m:
extras/posix/text_header.h:
Delete these modules; they are no longer needed.
extras/posix/Mmakefile:
Don't install the extra header.
extras/posix/hello.m:
extras/posix/samples/mdprof_cgid.m:
Conform to the above change.
Branches: main
extras/posix/samples/Mmakefile:
extras/posix/samples/mdprof_cgid.m:
extras/posix/samples/README:
Add a minimal server program that accepts and passes through requests
to mdprof. It's useful when you want to view deep profiling data
without configuring and running a proper web server.