Commit Graph

20 Commits

Author SHA1 Message Date
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
Julien Fischer
5d0acda798 Delete obsolete predicates from builtin module.
library/builtin:
    Delete the promise_only_solution/1 and promise_only_solution_io/4. Both
    have have been marked as obsolete since 2015.

    Also delete the non-public impure versions of those, get_one_solution/1
    and get_one_solution_io/4. Implementing the pure versions was the only
    use of these.

compiler/hlds_goal.m:
    Delete a reference to promise_only_solution in a comment.

tests/declarative_debugger/trust.exp:
tests/declarative_debugger/trust.inp:
tests/declarative_debugger/trust_1.m:
     Replace a call to promise_only_solution/1; this does simplify this test
     a little, but does not affect what the trust_1 module was testing, namely
     the user-defined comparison on the type exported by that module.

tests/declarative_debugger/exceptions.m:
tests/hard_coded/myset.m:
tests/hard_coded/user_compare.m:
tests/valid_seq/intermod_nested_module_bug2.m:
extras/curs/samples/nibbles.m:
     Replace calls to the now deleted predicates.
2022-04-13 15:09:21 +10:00
Julien Fischer
bc79412af2 Delete the old random number generator.
It has been deprecated since Mercury 20.01.

library/random.m:
    Delete the old generator.

library/array.m:
    Delete the predicate random_permutation/4.

NEWS:
    Announce the above.

tests/hard_coded/string_hash.m:
    Update this test to use the new RNG framework.

tests/hard_coded/Mmakefile:
tests/hard_coded/random_permutation.{m,exp}:
tests/hard_coded/random_simple.{m,exp}:
    Delete these tests, they were specific to the old RNG.

extras/curs/samples/nibbles.m:
extras/solver_types/library/any_array.m:
    Replace use of the old RNG.
2022-03-15 16:08:48 +11:00
Julien Fischer
82daa3fdd1 Improvements for building extras/curs.
Separate out the details of how to link against ncurses and the panel library
into a separate file. Include this new file in both the top-level and samples
Mmakefiles and use the variables it defines to link against ncurses.

Document how to to use the ncursesN-config and pkg-config tools to find
the correct set of flags to link against ncurses. Using ncursesN-config
was suggested by Fabrice Nicol in a change he recently posted.

General cleanups.

extras/curs/Ncurses.options:
   New file defining variables that control how to link against ncurses
   and the panel library.

   Document some ways of finding the correct set of flags.

   Document how to override the contents of this file on the command line.

extras/curs/Mmakefile:
    Include the Ncurses.options file.

    Refer users to that file for controlling how to link against
    ncurses.

extras/curs/samples/Mmakefile:
    Import Ncurses.options instead of hardcoding the library flags here.

extras/curs/curs.m:
    Shift vim modeline into our usual place.

    Update copyright notice.

    Point users to Ncurses.options.

extras/curs/samples/*.m:
    Replace tabs with spaces.

    Delete trailing whitespace.

    Minor cleanups.
2022-01-23 19:20:45 +11:00
Julien Fischer
d218e1b573 Various fixes for the extras.
extras/complex_numbers/*.m:
    Rename files containing submodules so that we can (correctly) build
    this library without first building a source file mapping.

extras/complex_numbers/samples/Mmakefile:
extras/complex_numbers/tests/Mmakefile:
    Tell the C compiler where the header files for libcomplex_numbers
    are.

extras/curs/samples/Mmakefile:
    Pass the -I option to the C compiler via the CFLAGS variable, not
    the MGNUCFLAGS variable; the latter just causes the mgnuc script
    to halt option processing and construct an invalid command line
    for the C compiler.

extras/curses/*.m:
    Rename files containing submodules so that we can (correctly) build
    this library without first building a source file mapping.

extras/curses/mcurses.m:
    Style and formatting fixes.

extras/curses/sample/Mmakefile:
     Pass the -I option to the C compiler via the CFLAGS variable.
2022-01-17 22:46:06 +11:00
Julien Fischer
a908799acb Fix issues in extras caused by recent changes.
extras/*/*.m:
     Avoid ambiguous pragmas.

     Replace an use of is.

     Fix module imports.
2021-06-19 21:11:35 +10:00
Peter Wang
9d23694a25 Thread I/O state through time routines that depend on the time zone.
library/time.m:
	Deprecate non-pure functions `localtime/1' and `mktime/1'.
	They depend on the current time zone, which depends on the
	environment that the program is running in, and may also be
	changed at run time (e.g. by setting the environment variable
	"TZ").

	Add replacement predicates `localtime/4' and `mktime/4' that
	thread the I/O state.

	Deprecate the non-pure function `ctime/1'.  It does not seem
	necessary to add a pure replacement for it, being a minor
	convenience at best.

	Try to clarify some documentation.

library/calendar.m:
	Conform to above changes.

tests/hard_coded/dst_test.m:
tests/hard_coded/time_test.m
	Conform to above changes.

	Update code style.

extras/curs/samples/nibbles.m:
extras/graphics/easyx/samples/bounce.m:
extras/graphics/easyx/samples/mclock.m:
extras/log4m/log4m.m:
	Conform to above changes.

NEWS:
	Announce changes.
2016-06-06 23:14:29 +10:00
Zoltan Somogyi
d33273d033 Tell vim not to expand tabs in Makefiles.
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.
2015-01-08 22:07:29 +11:00
Sebastian Godelet
f9899940b7 Add .gitignore files to the extras/ directory
extras/.gitignore:
    Mercury ignores the --use-{grade}-subdir dir
    Mercury/** for git 1.8+ this recursively ignores all build files
    ignoring *.mh and *.init files
    *.err output files
    lib*.{dll|so|a|dylib} ignores target compiler library output
    *.jar ignores the Java grade output
    *.exe for Windows executables

extras/dynamic_linking/.gitignore:
    ignoring the copy of dl.m, name_mangle.m
    ignoring hello lib and dl_test* executables

extras/moose/samples/.gitignore:
    ignoring cgram.m small.m alpha.m expr.m which are
    generated from the .moo grammar files

extras/graphics/mercury_cairo/samples/.gitignore:
    ignoring *.png output and all executables

extras/**/.gitignore:
    In each sample/test/example folder the linux executable/test
    output is ignored
2014-02-27 16:58:43 +11:00
Julien Fischer
452dd420ad Fix compilation errors in extras.
extras/curs/samples/demo.m:
extras/curs/samples/frogger.m:
extras/posix/hello.m:
	Update library calls where necessary.
2014-02-06 03:08:14 +11:00
Julien Fischer
2c41d3bba1 Cleanups for extras/curs.
Estimated hours taken: 1
Branches: main, release

Cleanups for extras/curs.

extras/curs/samples/Mmakefile:
	Build all the demos in this directory.

extras/curs/curs.m:
	Define the type `panel' as a foreign type.  Remove casts from the C
	code that are now redundant because of this.

	Convert to four-space indentation.

extras/curs/curs.m:
extras/curs/samples/*.m:
	Fix overlong lines.

	s/io__state/io/

	Use state variables for passing around the I/O state.

	Format foreign_procs as per our coding standard.
2006-04-21 03:37:11 +00:00
Peter Wang
0e7009b047 Add two curses games I wrote in December 2004.
Estimated hours taken: 10
Branches: main

extras/curs/samples/frogger.m:
extras/curs/samples/nibbles.m:
extras/curs/samples/sleep.m:
	Add two curses games I wrote in December 2004.
2006-02-22 05:09:14 +00:00
Ian MacLarty
b0c2d07d8d Implement a Wix source file generator. Wix is an XML language used to
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.
2005-10-26 05:04:18 +00:00
Peter Wang
f980b100e6 Added "nodelay" predicate to select nonblocking input from getch.
Estimated hours taken: 0.5
Branches: main

extras/curs/curs.m:
	Added "nodelay" predicate to select nonblocking input from getch.
	Export "refresh" to do what "doupdate" was supposed to do.
	Deprecate "doupdate".
	Added "flushinp" to clear typeahead buffer.
	Added the constant "err" which can now be returned by getch if
		in nonblocking mode and there is no input ready.
2004-12-02 03:22:03 +00:00
Fergus Henderson
dced016cc1 Fix a problem where different packages in the `extras' 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).
2003-01-16 10:44:26 +00:00
Fergus Henderson
d62c697231 Add appropriate infrastructure to support doing `mmake depend && mmake
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.
2002-03-06 10:10:31 +00:00
Simon Taylor
c66cea0665 Add MR_ prefixes to uses of configuration macros.
Estimated hours taken: 2.5
Branches: main

Add MR_ prefixes to uses of configuration macros.
Bootcheck now succeeds with MR_NO_CONF_BACKWARDS_COMPAT.

Mmake.common.in:
	Define MR_NO_CONF_BACKWARDS_COMPAT when checking
	for namespace cleanliness.

RESERVED_MACRO_NAMES:
	Remove the configuration macros.

runtime/mercury_conf_bootstrap.h:
	Remove a duplicate definition of BOXED_FLOAT.

configure.in:
*/*.c:
*/*.h:
*/*.m:
	Add MR_ prefixes.
2002-02-13 09:56:49 +00:00
Fergus Henderson
a10a41c25c Various minor fixes to the Mmakefiles in extras/curs*.
Estimated hours taken: 0.25
Branches: main

Various minor fixes to the Mmakefiles in extras/curs*.

extras/curs/Mmakefile:
	Include ../Mmake.params.
	Add a comment.

extras/curses/Mmakefile:
	Include -lncurses in MLLIBS.
	Add a comment.

extras/curses/samples/Mmakefile:
	Include -I$(MCURSES_DIR) in MGNUCFLAGS.
2001-12-29 06:45:36 +00:00
Simon Taylor
07d05f3f26 s/foreign_code/foreign_proc/.
Estimated hours taken: 0.1
Branches: main

extras/curs/curs.m:
	s/foreign_code/foreign_proc/.
2001-09-22 11:30:28 +00:00
Ralph Becket
3d6d6709b8 Added a more comprehensive and more faithful ncurses and panel
Estimated hours taken: 10

Added a more comprehensive and more faithful ncurses and panel
binding.

curs/Mmakefile:
curs/curs.m:
curs/samples:
curs/samples/Mmakefile:
curs/samples/demo.m:
	Added.
2001-02-21 16:55:16 +00:00