History log of /seL4-l4v-10.1.1/HOL4/tools/buildutils.sml
Revision Date Author Comments
# ab9ca666 07-Oct-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Give build an --mt flag as well; it's passed on to Holmake


# 1932dffd 09-Jan-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement logging kernel on top of stdknl terms

The code from logging-kernel/Thm.{sig,sml} lives on but the other
stuff (duplicates of code from experimental-kernel) can be deleted.


# 5dcc0ad1 10-Dec-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Try to find dot in user's PATH during configuration

If it is not found, say little about its absence on help-graph build
time.


# 422d19c5 26-Nov-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Reimplement build cleanForReloc using rebuild-excludes file

Also correct name of numheap in the latter


# ff5a009e 12-Nov-2017 Ramana Kumar <ramana@member.fsf.org>

Update build help output regarding --nograph option

See e.g., ccf751b703e333fb71513690430a2633e1536df5


# c6fd1b0e 01-Nov-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix build to correctly report seq file containing bad directory.

Also adjust error message which talks of skipping bad directories but
then dies (see 217b05b8cd2 for the change from "skip" to "die").


# 1b087f46 14-Sep-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Give build --dbg flag that gets passed on to Holmake


# 86b3eae0 21-Aug-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Complete basic Poly implementation of TheoryIO (separate dat files)

Still to tweak Holmake and to make sure it all works on Moscow ML


# 0775443a 21-Aug-2017 Thibault Gauthier <thibault.gauthier@uibk.ac.at>

Use _Theory.dat for loading theory data into _Theory.sml


# 1b9caa62 18-Jun-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove more things when cleaning for relocation


# a19e0ab2 18-Jun-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Make cleanForReloc remove platform-specific files in src/HolSat/


# c2615dd8 18-Apr-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Complete relocation-build feature

Closes #105

To be explicit, after building HOL in one directory one can then

$ bin/build cleanForReloc
$ cd ..
$ mv HOL somewhere_else
$ cd somewhere_else
$ poly < tools/smart-configure.sml
$ bin/build --relocbuild

The last step (the "relocation" build) takes less than a minute and
results in a functional system that is housed in a different location.

Next step on this branch of work is to provide tools allowing other
developments (those not under HOLDIR) to be moved in a similar way.


# f0590a52 29-Jan-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement build cleanForReloc

This sub-command deletes heaps, .uo and .ui files, at least under
Poly/ML. These are the files that embody absolute path values, and
which will cause breakages if a source tree gets moved. The Theory.sig
and Theory.sml files don't contain those paths, so they don't need to
be deleted. Given that its their generation that takes all the time,
we may be able to regenerate an installation by only doing the
relatively quick generation of heaps, .uo and .ui files.


# 596a29a8 29-Jan-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove a superfluous definition of "mem" in buildutils


# 8f795560 29-Jan-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Make more build-related cleanups

Consistently use dehyphenated version of name to stand as
kernelid (i.e., "expk", "stdknl", "otknl", rather than anything with
leading hyphens). This requires change to Holmakefiles that wanted to
build OpenTheory articles when being executed under otknl.

Also make

build cleanAll

clean in all directories, not just those belonging to stdknl.


# b8f40d74 28-Jan-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Incorporate new c/line option-handling into build

The build in relocation option doesn't do anything at the moment.


# 60d71f81 12-May-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement check to stop build running in wrong dir

Build "belongs" to a particular HOL directory, and it can be annoying to
mistakenly run one (perhaps because it is in your PATH) thinking that it
will build in one's current directory, but actually end up building some
other instance of HOL. Stop that scenario by having build detect if it's
being run somewhere within a HOL directory, and then aborting if it
isn't the build associated with that directory.


# 62ed9852 01-May-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Get build to honour selftest commandline argument

This behaviour was broken by 80833d8884


# 267fd7fd 01-May-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Make build's warnings all come prepended with ***


# 80833d88 28-Apr-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement -j option for build

This is passed onto the Holmake calls that build makes. It is also made
persistent from invocation to invocation, just as sequence, kernel and
theory-graph choices are.


# aa7b7a9c 26-Apr-2016 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Clean out .hollogs at the same time as .HOLMK.


# e348c1d0 21-Apr-2016 Michael Norrish <michael.norrish@nicta.com.au>

Use bold text to make build output prettier


# aaece817 04-Apr-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Make KERNELID var get its proper value in Holmake

Issue was that Poly/ML evaluates many things at compile time rather than
run-time.


# fdc5cae7 07-Mar-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Make KERNELID variable available to Holmake

This is the value of the kernel option that was passed to build when the
system was built. The build program stores it in the filesystem in a
"canonical location", and this file is read by Holmake when it starts
up.


# 432405ed 15-Feb-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove some unused code in build


# f7718876 15-Feb-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Update fail-to-find-dot message

We no longer have hol.builder0 but have instead hol.state0 as the thing
that is built as part of src/proofman's action.


# f38b7cba 17-Jan-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Tweak "couldn't build thy graph" message in build


# 1a67f1c8 07-Jan-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove more invocations of poly in favour of POLYC

In the developers directory and the building of the help system's tools.


# 5d39c3e3 07-Jan-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Put POLY_VERSION into Systeml.

This allows code that might be compiled with Moscow ML to also
work (there the POLY_VERSION value will be 0).


# b3a2235c 13-Aug-2015 Michael Norrish <michael.norrish@nicta.com.au>

Get build to check for need to rebuild Holmake

Previous behaviour was to look for things being fresher than the build
executable, but if changes are made to the Holmake sources, then that
executable should also be rebuilt.

Thanks to Jeremy Dawson for bringing the issue to my attention.


# d43c79ba 11-Mar-2015 Michael Norrish <Michael.Norrish@nicta.com.au>

DOT_PATH can now be overridden with Poly/ML

Failure to find an executable dot tool at the end of the build process
also produces a more helpful error/warning message.


# d8071b0b 26-Dec-2014 Ramana Kumar <ramana@member.fsf.org>

fix read_buildsequence for kernelnames

the comment in build-sequence says the kernel names are "otknl",
"stdknl" and "expk", but in the code they have a hyphen at the front. I
guess this isn't used for anything apart from otknl so hadn't been
tested much.


# 94edf49c 01-Dec-2013 Michael Norrish <michael.norrish@nicta.com.au>

Correct treatment of minisat.exe in Windows build (issue #92)


# 8d360efd 01-Dec-2013 Michael Norrish <michael.norrish@nicta.com.au>

Don't install minisat when building on Windows.

This is a shotgun approach to issue #92.


# 8f06ff9f 19-Nov-2013 Michael Norrish <michael.norrish@nicta.com.au>

Implement #includes for build sequence files.

Closes #14


# 0da0f0c8 05-Dec-2012 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix build to use new Systeml.DOT_PATH API.


# 79737a0e 01-Nov-2012 Michael Norrish <michael.norrish@nicta.com.au>

Use POSIX facilities so build alters Holmake’s environment under Poly.

This can’t be done under Moscow ML because it doesn’t implement the
POSIX structure. This is used so that the invocations of Holmake can
pick up a SELFTESTLEVEL environment variable.


# 104f5313 30-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

More refactoring in build.sml code.

This moves shared code into buildutils and makes progress with #77.


# 5d2917ae 30-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Theory graph automatically built as part of bin/build.

Closes #84.


# 26596f3e 30-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Move build's usage message into separate text file.

This message is data and it's annoying having to recompile build just
to change the message.


# 0944459a 30-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Improve bin/build's usage message.

Closes #88.

This is also progress with #84 inasmuch as it mentions the new -graph
and -nograph options.


# 8aa982e6 30-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Recognise -graph and -nograph options to build.

These options are completely ignored at the moment, but they are
stored in the "last build options" file so that they don't need to be
repeated.

Progress with #84


# 0451999c 14-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Fix #83: -h/-?/-help/--help always bring up build option help.


# 9cf54d3b 14-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Refactor more code from 2 build.sml files into common buildutils.

Functions moved:
build_dir
clean_sigobj
check_against
SYSTEML
transfer_file

Progress with #77 and #83.


# 07b85603 10-Aug-2012 Ramana Kumar <ramana.kumar@gmail.com>

Add -otknl option to bin/build for logging-kernel

Allow build-sequence paths to be filtered by which kernel is in use,
using (kernelname) akin to the existing [mlsys] filter.

Remove tools/logging-build-sequence.

This makes commits like 84c602e312 unnecessary as future changes are
made to the build sequence.


# 217b05b8 01-Apr-2012 Michael Norrish <Michael.Norrish@nicta.com.au>

Make some warnings in build fatal errors instead.

In particular, warnings related to faults in the build-sequence now
get to be fatal errors so that the regression machinery will catch
these problems immediately.


# 0238565b 10-Sep-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Get mosml Holmake to build with new Holmake_types.


# 653d4ff8 04-Sep-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Document bin/build IO failure better. Fixes #4


# 87f280a3 28-Jul-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Slightly tweak build's help message.


# 269f6b62 22-Mar-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Make build handle 'cleaning' rather than calling out to Holmake.

This makes it considerably faster under Poly/ML, and also means that it
can properly recursively clean following INCLUDES and PRE_INCLUDES links
in Holmakefiles (important in the examples).


# f101fb0e 11-Oct-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Allow Moscow ML build to happen using (as yet unreleased) v2.10.

Basic strategy is to make adoption of basis 2002 even more
thorough. In particular, the Timer structure is now as per
the 2002 Basis.

It is possible to detect that one is working with Moscow ML 2.10 or
later by checking the Holmakefile variable $(HAVE_BASIS2002), which is
set (to value "1") when in 2.10 or later. It is unset elsewhere. See
an example of its use in help/src-sml/Holmakefile.


# 2366aee6 29-Jun-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Move duplicated functionality into common buildutils module.


# f1eaa9c2 27-Apr-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

bin/build's internal warn function now adds a newline to its argument.


# a93d442d 27-Apr-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

bin/build uses earlier (cached) options when not explicitly overridden.

In particular, kernel specifications (-expk, and the new -stdknl), and
build-sequence file specifications are cached in
tools/lastbuildoptions so that one can subsequently do just bin/build
to build again with those same options. To override a -seq foo
option, you can use the -fullbuild option.

Other options (-symlink, -selftest) are not cached.


# f0dd2c69 23-Mar-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Drop trailing whitespace on lines in the build-sequence.


# fdb04494 11-Dec-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Directories before kernel in the sequence now appear in the build-sequence file.


# 4761143b 10-Aug-2009 Tjark Weber <Tjark.Weber@cl.cam.ac.uk>

Removed trailing whitespace from all .sml and .sig files.

This affects over 900 files and was done using emacs's delete-trailing-whitespace
function in batch mode. Building the system with Poly/ML and Moscow ML seems to
work, so I'm hoping these changes don't break anything. Please complain if
they do!


# c293ee40 17-Jan-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Fixes to ensure that Poly/ML build will build the hol.builder heaps
even when not called from HOLDIR.


# 36929fc7 17-Jan-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Further adjust buildutils and tools-poly/build.sml so that it can use
the same build-sequence file as the Moscow ML implementation. The
extra build targets that poly uses are prefixed with [poly] in this
file, and the Moscow ML build will simply ignore these.


# 4907b5ba 16-Jan-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Make buildutils really work under Poly/ML, and set up its building of
build.sml to use that module.


# 90823055 16-Jan-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Start to factor out some code from build.sml that can be built in both
Moscow ML and Poly/ML so that it can then be shared between both
implementations.