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.
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, 11.07
Fix top-level invocations of mmake in the extras distribution. They were
breaking because the lex subdirectory didn't have an Mmakefile. (It uses
mmc --make and a normal Makefile instead.)
Make more of the extras distribution build from the top-level.
extras/lex/Mmakefile:
Add an Mmakefile that contains the targets required by the top-level
extras distribution Mmakefile. Each of the targets just forwards
the work to the actual Makefile.
extras/Mmakefile:
Update the list of things that won't compile ``out-of-the-box''.
(XXX we should use autoconf to configure these.)
Build the base64 encoding library, the fixed point arithmetic library
and the error utility by default.
extras/README:
Update the description of the lazy_evaluation subdirectory.
extras/base64/Makefile:
extras/base64/Mmakefile:
extras/base64/mercury_base64.m:
extars/base64/Mercury.options:
Build and install base64 as a library. We use mmc --make, controlled
from a normal Makefile to do this and then put a forwarding Mmakefile
in place using so that compilation from the top-level of the extras
distribution works. (One reason for doing this is that mmc --make
provides grade filtering capabilities which are needed here since
this library will only work in C grades.)
extras/base64/base64.m:
Avoid a compilation error: sizeof cannot be used on things with
an incomplete type.
extras/fixed/Makefile:
extras/fixed/Mmakefile:
extras/fixed/Mercury.options:
extras/fixed/mercury_fixed.m:
Build and install fixed as a library. As with base64, use mmc --make
and add a forwarding Mmakefile.
extras/fixed/fixed.m:
Style and formatting fixes.
extras/lex/Makefile:
Add a realclean target
extras/lex/lex.lexeme.m:
Replace a call to a deprecated procedure.
Estimated hours taken: 0.5
Branches: main.
Move the string builder stream from extras to the standard library.
library/string.builder.m:
Move stream_util.string_builder to string.builder.
Use builtin.copy instead of unsafe_promise_unique in the implementation
of put/4 for the string builder stream.
library/string.m:
Include string.builder.
tests/hard_coded/Mmakefile:
tests/hard_coded/string_builder_test.exp:
tests/hard_coded/string_builder_test.m:
Add a test case.
extras/Mmakefile:
extras/README:
extras/stream/Mmakefile:
extras/stream/README:
extras/stream/impure.m:
extras/stream/lowlevel.m:
extras/stream/stream_old.m:
extras/stream/stream_util.m:
extras/stream/stream_util.string_builder.m:
extras/stream/tests/Makefile:
extras/stream/tests/stream_util_test.exp:
extras/stream/tests/stream_util_test.m:
Completely remove the streams modules from extras. These modules
are all deprecated now.
Estimated hours taken: 50
Branches: main
Implement a Wix source file generator. Wix is an XML language used to
describe Windows installer packages (.msi files).
NEWS:
Mention the new library.
extras/Mmakefile:
Include windows_installer_generator in SUBDIRS so it is
built when mmake is run from the extras directory.
extras/README:
Mention the new library.
extras/curs/curs.m:
Use new module qualifier.
extras/windows_installer_generator/README:
extras/windows_installer_generator/wix.m:
extras/windows_installer_generator/wix_files.m:
extras/windows_installer_generator/wix_gui.m:
extras/windows_installer_generator/wix_installer.m:
extras/windows_installer_generator/wix_language.m:
extras/windows_installer_generator/wix_util.m:
Implement a wix library for generating Wix source files.
extras/windows_installer_generator/sample/Mercury.options:
extras/windows_installer_generator/sample/README:
extras/windows_installer_generator/sample/gen_merc_wxs.m:
extras/windows_installer_generator/sample/images/Exclam.ico:
extras/windows_installer_generator/sample/images/Info.ico:
extras/windows_installer_generator/sample/images/banner.bmp:
extras/windows_installer_generator/sample/images/bg.bmp:
Implement an example installer generator for the Mercury
distribution.
Estimated hours taken: 3
Branches: main, release
Fix a problem where different packages in the `extras' distribution
were being installed in different directories when you specified
INSTALL_PREFIX in the Mmake.params file. Some honoured the INSTALL_PREFIX
setting, some appended "/extras", and some ignored it completely.
Also, add `clean' and `realclean' targets for the extras directory hierarchy,
and fix a few other minor bugs.
extras/lazy_evaluation/Mmakefile:
Include Mmake.params, which previously wasn't included at all
in this file.
extras/logged_output/Mmakefile:
extras/odbc/Mmakefile:
extras/quickcheck/Mmakefile:
Append "/extras" to INSTALL_PREFIX, which previously wasn't done
at all in these directories.
extras/cgi/Mmakefile:
extras/complex_numbers/Mmakefile:
extras/concurrency/Mmakefile:
extras/curs/Mmakefile:
extras/curses/Mmakefile:
extras/dynamic_linking/Mmakefile:
extras/moose/Mmakefile:
extras/posix/Mmakefile:
Move the line `INSTALL_PREFIX := $(INSTALL_PREFIX/extras)'
to before the include of Mmake.params, so as not to override
the user's setting (only override the default setting).
extras/Mmakefile:
extras/concurrency/Mmakefile:
Add `clean' and `realclean' targets.
extras/posix/Mmakefile:
Add MGNUCFLAGS = --no-ansi, since this is needed on some systems.
extras/quickcheck/Mmakefile:
Add "depend", "all", and "install" targets.
Ensure that the "check" target runs the test program.
extras/quickcheck/qcheck.m:
Set the exit status to non-zero if a test fails.
extras/references/Mmakefile:
Adjust the setting of LIBGRADES to account for the fact that
$(GRADE) is no longer implicitly included in $(LIBGRADES).
Estimated hours taken: 2
Branches: main
Add appropriate infrastructure to support doing `mmake depend && mmake
&& mmake install' in the `extras' directory, and having it automatically
install and build as much as possible.
extras/Mmakefile:
New file.
extras/cgi/Mmakefile:
Delete bogus reference to `ALL_LIBGRADES' and `mercury-config'.
extras/complex_numbers/Mmakefile:
extras/concurrency/Mmakefile:
extras/concurrency/concurrency.m:
extras/curses/Mmakefile:
extras/dynamic_linking/Mmakefile:
extras/lazy_evaluation/Mmakefile:
extras/lex/Mmakefile:
extras/moose/Mmakefile:
extras/xml/Mmakefile:
Add rules for `mmake install'.
extras/references/scoped_update.m:
Add macro guard around typedef in `c_header_code'.
extras/curs/Mmakefile:
extras/curses/Mmakefile:
Define MERCURY_BOOTSTRAP_H, to avoid name clash on `bool'
that is caused by our bootstrap code in runtime/Merucry.h.
extras/curs/curs.m:
Add `promise_pure' declarations for all pure procedures.
XXX Should this be needed? These predicates all take
io__state arguments.