History log of /seL4-l4v-master/HOL4/tools/Holmake/ReadHMF.sml
Revision Date Author Comments
# df3fefc5 27-Oct-2019 Michael Norrish <Michael.Norrish@nicta.com.au>

Get ReadHMF errors to report full-path to faulty Holmakefile


# b03aecf7 16-May-2019 Michael Norrish <Michael.Norrish@nicta.com.au>

Read Holmakefiles fewer times, speeding up startup times

This speeds up Holmake, hol and script files.

Also remove output of loadPath deltas as hol starts.


# 23e88514 31-Jan-2019 Michael Norrish <Michael.Norrish@nicta.com.au>

Make interactive HOL recursively read INCLUDES to augment loadPath

Closes #604


# aba783b2 15-Dec-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Ensure interactive loadPaths are adjusted with holpathdb info in scope

Thanks to Ramana Kumar for reporting the problem


# 0146fefd 18-Feb-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Make polyscripter tool pay attention to Holmakefile INCLUDES line

Refactor some code along the way so that this reading of Holmakefiles
is now a standard facility in the ReadHMF structure.

Test that it works by making the polyscripter test read from
examples/misc.


# 66ac9175 19-Apr-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Read .holpath directories to allow relocatable developments

If there is a .holpath file in a directory containing a string with a
name for the development under that directory, then the object
files (.uo and .ui) in that directory will be easily relocatable
because they won't use absolute paths, but will instead use
$(devname)/ type paths.

Multiple developments can combine in this way, and there is additional
machinery to make sure that all of the relevant directories are
scanned before reading and writing of object files happens.


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

Correct a bug in Holmake’s handling of nested conditional directives.

Problem was that if the top conditional evaluated to false, as in

ifeq(1,0)
ifdef FOO
endif
endif

the presence of the inner ifdef test wasn’t recognised as such, and so
the second endif was seen as superfluous, giving an error.


# 73d09ae8 30-Oct-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix a minor 'definedness' bug in Holmake's conditional directives.

This is progress with issue #11.

In particular, variables have to be considered undefined if one
expansion through the environment gives back either a fragment list
consisting of [LIT ""], or just the empty list.


# 00e75209 30-Oct-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement ifeq and ifneq conditionals for Holmake.

Still need to document these. This is progress with issue #11.


# 2416ace2 30-Oct-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Use line-numbered error messages when failing in ReadHMF.


# 7223afc8 30-Oct-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Make ifneq skipped when "Skipping Elses" in ReadHMF.


# 71b9d774 23-Oct-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement ifdef/ifndef conditional directives for Holmake. (Progress for #11.)

For the moment, only ifdef and ifndef are supported. It'd be good to
also do ifeq and ifneq. The behaviour should be as per GNU make.

In other words, if your Holmakefile looks like

ifdef POLY
mytarget: mydeps
command1
command2
endif

then the delimited text will only be seen if the POLY variable has a
non-empty value (which will happen if you're running Poly/ML HOL, or
if you've got an environment variable called POLY).

You can also use 'else' to do things if the head condition is false.
Thus:

ifdef POLY
text...
else
alternative text
endif

Finally, these directives can be nested, and you can chain else-if on
the same line:

ifdef POLY
text...
else ifdef FOOBAR
text...
else
text...
endif


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

Get mosml Holmake to build with new Holmake_types.


# a03c31d7 09-Sep-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Delete unnecessary case in pattern-match.

TextIO.inputLine also returns at least a newline when it returns SOME
of anything. (I.e., even if the file doesn't end with a newline, it
will return the last line with an extra newline tacked on.)


# fb6db5f4 03-May-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Treat \r\n as \n, even on Unix (helps with Poly on cygwin).


# bbe97273 30-Mar-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix startup problem for Poly/ML HOL (caused by recent Holmake refactoring).


# 7bac3f10 30-Mar-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Get Poly and Moscow ML implementations of Holmake to share more code.

There is still a lot more that could be done here.


# 7154aa49 31-Jul-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Start to implement the Basis 97 extensions that Moscow ML hasn't got
in order to force our codebase to get up-to-date. It should also
mean less bodging around for the Poly/ML code. I haven't checked that
my changes to tools-poly/poly/poly-init2.ML have done all that is
required yet. Feel free to fix problems arising there (I hope it will
just be a matter of deleting things).


# cbadbc47 23-May-2007 Michael Norrish <Michael.Norrish@nicta.com.au>

Rework lexing of Holmakefiles so that the system doesn't choke on
Joe's monster example. The result is simpler code (which is a bit
worrying in itself), and one less dependency on mosmllex. It
successfully reads all of the distribution's makefiles, as well as
Joe's.