Mark Wooding [Mon, 4 Mar 2024 14:39:58 +0000 (14:39 +0000)]
runlisp-base.conf (inhibit-asdf-upgrade): Fix for old ASDF versions.
Before `register-immutable-system' existed, there was still a notion of
`immutable systems', but you had to roll up your sleeves and do the job
by hand.
This is all quite unpleasant.
Mark Wooding [Mon, 4 Mar 2024 01:03:12 +0000 (01:03 +0000)]
runlisp-base.conf: Muffle warnings from CMU CL.
Older versions spew compiler notes about PCL's generated code when
loading ASDF.
Mark Wooding [Mon, 4 Mar 2024 01:01:13 +0000 (01:01 +0000)]
runlisp-base.conf: Formally allocate `#N=...' ID numbers.
The `@COMMON' definitions get 1000--9999, and users get everything else.
Make a note of this, and renumber all of the code fragments.
Mark Wooding [Sun, 3 Mar 2024 16:50:43 +0000 (16:50 +0000)]
tests.at: Delete spurious blank lines.
Mark Wooding [Sun, 3 Mar 2024 16:28:12 +0000 (16:28 +0000)]
README.org: Give a brief description of the configuration file.
And an example of configuring `prefer', because that's the obvious
simple thing that someone will want to do.
Mark Wooding [Sun, 3 Mar 2024 16:27:32 +0000 (16:27 +0000)]
README.org: Clarify and fix the discussion of `-p', mentioning `-d'.
Also give an example of the difference.
Mark Wooding [Sun, 3 Mar 2024 16:26:57 +0000 (16:26 +0000)]
runlisp.conf.5.in: Some minor typesetting touch-ups.
Mark Wooding [Sun, 3 Mar 2024 16:25:52 +0000 (16:25 +0000)]
README.org, runlisp.1.in, runlisp.conf.5.in: Fix some simple lies.
Mark Wooding [Sun, 3 Mar 2024 16:23:34 +0000 (16:23 +0000)]
README.org, runlisp.1.in, runlisp.conf.5.in: Fix some obvious garbles.
Mark Wooding [Sat, 14 Aug 2021 13:52:30 +0000 (14:52 +0100)]
runlisp-base.conf, runlisp.conf.5.in: Fix lies about section parentage.
No change to the actual behaviour; just making the documentation
describe reality.
Mark Wooding [Fri, 13 Aug 2021 23:13:36 +0000 (00:13 +0100)]
lib.c: Fix some commentary blunders.
Nothing especially noteworthy.
Mark Wooding [Fri, 13 Aug 2021 21:34:20 +0000 (22:34 +0100)]
runlisp-base.conf: Fix some minor formatting bogons.
Mark Wooding [Fri, 13 Aug 2021 21:29:16 +0000 (22:29 +0100)]
runlisp-base.conf: Don't inhibit CMU CL's site-wide initialization file.
This script contains definitions for search paths used, for example, by
`require'. Unfortunately, it also defines crufty `demo' and `help'
symbols in the `cl-user' package, so we need to add `clear-cl-user' to
the invocation runes.
Mark Wooding [Thu, 27 May 2021 00:14:17 +0000 (01:14 +0100)]
dump-ecl: Defeat ASDF's magic internal knowledge of itself.
When you load ASDF, it comes with built-in knowledge of itself as a
system, but without details of any source files (or, indeed, any
information about how to do anything with it). When you try to find the
`asdf' system, it does check the filesystem, but does a quick check of
the reported version number against its current version number and skips
loading the full system definition if it's already up-to-date.
This would all be fine in a resident system, because once the system is
loaded, we don't really care much. But ECL isn't a resident system: it
compiles to external files, and this poses a problem. If the initially
loaded ASDF matches the one in the system registry, then we don't have
any source filename details, and `lib-op' does nothing.
Defeat this by locating and loading the system-definition by hand and
stuffing it into ASDF's internal structures before we try to do stuff.
This is, of course, completely terrible.
Mark Wooding [Wed, 26 May 2021 12:21:55 +0000 (13:21 +0100)]
lib.c: Fix some minor commentary typos.
Mark Wooding [Sat, 15 May 2021 13:52:46 +0000 (14:52 +0100)]
debian/: Add packaging support.
This is quite fancy, and arranges to dump images for new Lisp systems as
they get installed.
Mark Wooding [Sat, 15 May 2021 13:49:20 +0000 (14:49 +0100)]
runlisp.c, eval.lisp, etc.: Add new `-p' option to `princ' expressions.
Printing results as Lisp quoted strings is really unhelpful for shell
scripts.
Mark Wooding [Sat, 15 May 2021 13:45:20 +0000 (14:45 +0100)]
runlisp.c, etc.: Rename `-p' to `-d'. COMPAT
This is to make way for a new `-p' option which works like `princ'.
Mark Wooding [Sat, 15 May 2021 13:17:26 +0000 (14:17 +0100)]
tests.at: Add a test confirming that expressions are printed escapily.
Mark Wooding [Sat, 15 May 2021 12:40:58 +0000 (13:40 +0100)]
eval.lisp: Rename `print-form' to make way for other kinds of printing.
Hint, hint.
Mark Wooding [Sat, 15 May 2021 12:38:36 +0000 (13:38 +0100)]
runlisp.c: Undefine local option-parsing macros at the end of the block.
Mark Wooding [Sat, 15 May 2021 12:15:04 +0000 (13:15 +0100)]
tests.at: Indent argument line correctly.
Mark Wooding [Sat, 15 May 2021 12:12:34 +0000 (13:12 +0100)]
runlisp.1.in: Delete some spurious spaces.
Mark Wooding [Sat, 15 May 2021 12:11:37 +0000 (13:11 +0100)]
*.[1-9].in: Introduce `\*(..' as a properly typeset ellipsis.
Mark Wooding [Sat, 15 May 2021 12:09:45 +0000 (13:09 +0100)]
*.[1-9].in: Delete apparently pointless definitions of `\*,'.
I can't see where these are used anywhere.
Mark Wooding [Sat, 15 May 2021 10:27:40 +0000 (11:27 +0100)]
query-runlisp-config.c: Add `-M' option for machine-readable output.
Mark Wooding [Sat, 15 May 2021 10:24:47 +0000 (11:24 +0100)]
doc/Makefile.am, doc/README.pdf: Commit and distribute formatted README.
This is hard to produce for people who aren't me.
Mark Wooding [Sat, 15 May 2021 10:23:40 +0000 (11:23 +0100)]
README.org: Drop formatted output under `doc'.
Mark Wooding [Sat, 15 May 2021 10:07:48 +0000 (11:07 +0100)]
README.org: Don't set image name explicitly in example config.
Part of the magic is that we get the image name right automatically.
Mark Wooding [Sat, 15 May 2021 10:06:15 +0000 (11:06 +0100)]
README.org: Use correct `\nbsp{}' to prevent line breaks at spaces.
Writing the TeX-like `~' just typesets a tilde.
Mark Wooding [Sat, 15 May 2021 10:05:15 +0000 (11:05 +0100)]
README.org: Fix some boneheaded typos.
Mark Wooding [Sat, 15 May 2021 09:58:50 +0000 (10:58 +0100)]
dump-runlisp-image.1.in, runlisp.conf.5.in: Document the versioning system.
Mark Wooding [Sat, 15 May 2021 09:58:20 +0000 (10:58 +0100)]
dump-runlisp-image.1.in, runlisp.1.in: Document the `-o' option.
Not sure how this got missed.
Mark Wooding [Sat, 15 May 2021 09:55:57 +0000 (10:55 +0100)]
dump-runlisp-image.1.in: Sort the option descriptions correctly.
Mark Wooding [Sat, 15 May 2021 09:49:10 +0000 (10:49 +0100)]
*.[1-9].in: Kill spurious extra space after tabulation in synopses.
`\&' is a no-op, so you get the usual space between lines of text
afterwards, whereas `\c' suppresses the line-end entirely.
Mark Wooding [Sat, 15 May 2021 09:48:10 +0000 (10:48 +0100)]
*.[1-9].in: Fix copied-and-pasted sentence with missing verb.
Rather embarrassing.
Mark Wooding [Sat, 15 May 2021 09:47:36 +0000 (10:47 +0100)]
runlisp.conf.5: Fix grammar failure.
Probably just a typo.
Mark Wooding [Sat, 15 May 2021 00:30:45 +0000 (01:30 +0100)]
*.[1-9].in: Fix typesetting of option `-' characters.
Mark Wooding [Fri, 14 May 2021 20:50:50 +0000 (21:50 +0100)]
dump-runlisp-image.c, runlisp-base.conf: Make version string more detailed.
Rather than just check the `lisp-implementation-version', include the
ASDF version too (which is probably rather important).
Mark Wooding [Fri, 14 May 2021 20:49:42 +0000 (21:49 +0100)]
lib.h: Delete spurious space in comment.
Mark Wooding [Fri, 14 May 2021 20:48:54 +0000 (21:48 +0100)]
lib.c (subst): Finish the half-baked comment explaining `delimtab'.
Mark Wooding [Fri, 14 May 2021 20:46:24 +0000 (21:46 +0100)]
lib.c: (set_progname): Set program name even if `argv[0]' has no `/'.
At least it was `???' and not a null pointer, but it's still rather
poor.
Mark Wooding [Fri, 14 May 2021 20:44:53 +0000 (21:44 +0100)]
dump-runlisp-image.c: Add more logging about image commit.
Mark Wooding [Fri, 14 May 2021 20:43:40 +0000 (21:43 +0100)]
dump-runlisp-image.c: Don't lie about deletion not actually happening.
Mark Wooding [Fri, 14 May 2021 20:53:00 +0000 (21:53 +0100)]
runlisp-base.conf: Delete spurious `delete-image' setting.
Probably added the same time as `-d'.
Mark Wooding [Fri, 14 May 2021 20:41:25 +0000 (21:41 +0100)]
dump-runlisp-image.c: Delete traces of decoy `-d' (`--cleanup') option.
This morphed into the `-R' and `-U' options before ever being
implemented.
Mark Wooding [Fri, 14 May 2021 18:52:03 +0000 (19:52 +0100)]
t/package.m4: Delete generated file.
Mark Wooding [Fri, 14 May 2021 18:42:40 +0000 (19:42 +0100)]
Makefile.am: Drop `.fasl' files in build directory when making images.
This also means that we don't pick up cached cruft from the usual ASDF
cache tree.
Mark Wooding [Fri, 14 May 2021 18:37:34 +0000 (19:37 +0100)]
Makefile.am: Distribute the `confsubst' script.
Oops.
Mark Wooding [Fri, 14 May 2021 18:36:52 +0000 (19:36 +0100)]
configure.ac: Add option to configure the image directory.
Mark Wooding [Fri, 14 May 2021 18:36:04 +0000 (19:36 +0100)]
toy-runlisp: Delete old cruft.
Mark Wooding [Fri, 14 May 2021 18:33:51 +0000 (19:33 +0100)]
Makefile.am: Also distribute the `README' file.
Mark Wooding [Fri, 14 May 2021 18:33:23 +0000 (19:33 +0100)]
Makefile.am (clean): Also delete the versioned dump files.
Mark Wooding [Sat, 15 May 2021 13:57:00 +0000 (14:57 +0100)]
Mark Wooding [Thu, 13 May 2021 15:27:12 +0000 (16:27 +0100)]
lib.c: Use the size of the element when allocating an array.
Oops: a pure blunder. Fortunately, these are actually the same size on
most current platforms, but that's not a good excuse.
Spotted by Coverity.
Mark Wooding [Thu, 13 May 2021 15:24:32 +0000 (16:24 +0100)]
lib.c: Don't try pointer arithmetic on void pointers.
Here, `av->o' is a count of array slots, not bytes, so this is wrong:
rewrite to use the correct kind of pointer. Fortunately, nothing
actually uses this machinery.
It's honestly a bit vexing that GCC lets me get away with this. Spotted
by Coverity.
Mark Wooding [Thu, 13 May 2021 14:22:33 +0000 (15:22 +0100)]
tests.at: Use correct `m4_bpatsubst' instead of wrong `m4_bregexp'.
This was preventing tests for non-installed Lisps from being skipped.
Mark Wooding [Thu, 13 May 2021 13:57:35 +0000 (14:57 +0100)]
configure.ac: Don't sanity-check `$mdw_ecl_opts' if there's no `ecl' anwyay.
In particular, it'll look crazy...
Mark Wooding [Thu, 13 May 2021 13:50:27 +0000 (14:50 +0100)]
dump-runlisp-image.c: Initialize the random number generator a bit.
This is only used to pick names for temporary directories, so it doesn't
matter that it's rather predictable. Indeed, even using the same
sequence every time wasn't particularly bad, but we can do better, and
so we should.
Mark Wooding [Thu, 13 May 2021 13:48:39 +0000 (14:48 +0100)]
lib.c (config_set_var_n): Return a pointer even if we don't change the var.
Spotted by old GCC; not sure why newer versions are silent here.
Mark Wooding [Thu, 13 May 2021 13:51:24 +0000 (14:51 +0100)]
dump-ecl: Insert missing space before line-splicing `\'.
Mark Wooding [Thu, 13 May 2021 13:52:00 +0000 (14:52 +0100)]
configure.ac: Don't try to dump Lisps which we couldn't find.
Mark Wooding [Thu, 13 May 2021 13:54:25 +0000 (14:54 +0100)]
Makefile.am: Override `data-dir' in all `dump-runlisp-image' calls.
... not just for `ecl'. Nowadays we look for `eval.lisp' under
`${@data-dir}' by default in order to determine the Lisp version string.
Mark Wooding [Thu, 13 May 2021 13:53:32 +0000 (14:53 +0100)]
Makefile.am: Rearrange the `dump-runlisp-image' options.
No functional change yet. This will make adding more big options look
less of a mess.
Mark Wooding [Thu, 13 May 2021 13:47:37 +0000 (14:47 +0100)]
Makefile.am: Delete build rules for nonexistent debris.
These were added as temporary hacks for trying things out, and should
never have been committed in the first place.
Mark Wooding [Mon, 14 Sep 2020 00:31:01 +0000 (01:31 +0100)]
@@@ version hash
Mark Wooding [Sun, 13 Sep 2020 09:36:27 +0000 (10:36 +0100)]
@@@ more wip
Mark Wooding [Mon, 31 Aug 2020 03:13:52 +0000 (04:13 +0100)]
@@@ more wip
Mark Wooding [Wed, 26 Aug 2020 03:08:39 +0000 (04:08 +0100)]
@@@ work in progress
Mark Wooding [Sat, 15 Aug 2020 23:10:59 +0000 (00:10 +0100)]
New version.
This is a complete rewrite, and rather more competently done.
Mark Wooding [Sun, 9 Aug 2020 13:00:59 +0000 (14:00 +0100)]
build/autotest.am: Fix formatting of list initialization assignments.
Mark Wooding [Sun, 9 Aug 2020 11:54:10 +0000 (12:54 +0100)]
m4/: Reformat to match current m4/shell style.
Mark Wooding [Sun, 9 Aug 2020 12:16:53 +0000 (13:16 +0100)]
m4/mdw-dir-texmf.m4: Nest and indent `mdw_DEFINE_PATHS' properly.
Not sure why this enclosed the `AC_MSG_RESULT' before. Oh, well.
Mark Wooding [Sun, 9 Aug 2020 12:14:17 +0000 (13:14 +0100)]
m4/mdw-dir-texmf.m4: Pull `texmf' path guesswork out of `AC_ARG_WITH'.
Unfortunate tangling of responsibilities. Instead, leave a flag so that
top-level code can decide to do the guesswork.
Mark Wooding [Sun, 9 Aug 2020 12:04:36 +0000 (13:04 +0100)]
m4/mdw-manext.m4: Don't hardcode the manpage extension to `mLib'.
Obviously this isn't used as widely as it ought to be!
Mark Wooding [Sun, 9 Aug 2020 12:02:32 +0000 (13:02 +0100)]
m4/mdw-dir-texmf.m4, m4/mdw-manext.m4: Use `AS_HELP_STRING'.
I think this didn't exist when I wrote these macros.
Mark Wooding [Sun, 9 Aug 2020 11:50:15 +0000 (12:50 +0100)]
m4/mdw-define-paths.m4: Replace `$(eval echo ...)' nonsense.
No idea why I didn't do it this way before.
Mark Wooding [Sun, 9 Aug 2020 11:17:26 +0000 (12:17 +0100)]
m4/mdw-define-paths.m4: Use `$(...)' for command substitution.
It nests better than the old-fashioned ``...`' syntax. Which is good,
because it's nested here.
Mark Wooding [Sun, 9 Aug 2020 11:11:19 +0000 (12:11 +0100)]
m4/mdw-auto-version.m4: Don't try appending suffixes any more.
The old `auto-version.in' has gone for good.
Mark Wooding [Sun, 9 Aug 2020 11:07:11 +0000 (12:07 +0100)]
m4/mdw-auto-version.m4: Delete the bizarre pre-definition.
Not really sure what this was for, but this hack has always been there
in some form since the macro was introduced. It doesn't seem necessary
now, certainly.
Mark Wooding [Sun, 9 Aug 2020 10:58:37 +0000 (11:58 +0100)]
m4/: Reformat the Autoconf macros in `aclocal' style.
Add a `LICENSE' section, and `# serial' markers.
Mark Wooding [Sun, 9 Aug 2020 10:53:11 +0000 (11:53 +0100)]
aclocal.glob, m4/: Split the monster into separate `aclocal'-ish files.
Now these can be linked into a project's `m4/' directory in the usual
way. Much better!
This has just redistributed the existing content: none of the code is
changed.
Mark Wooding [Sun, 9 Aug 2020 10:46:49 +0000 (11:46 +0100)]
build/ scripts: Remove the version-number machinery.
Since these things are no longer installed anywhere outside of a
revision-controlled working tree, they don't need to know their version
numbers any more.
Mark Wooding [Sun, 9 Aug 2020 10:39:55 +0000 (11:39 +0100)]
Scatter the useful files into subdirectories by theme.
This is maybe a little random, but better ideas seem thin on the ground.
* `build/' is for build tools: scripts and build-tool fragments which
are handy for building projects.
* `doc/' is for documentation, and things which help with producing
documentation, such as styles.
* `licence/' contains licence documents.
* `m4/' will be for Autoconf machinery, but it's not there yet:
splitting up `aclocal.glob' will be a job for another commit.
* `src/' contains source code which is shared among many projects.
This commit just moves the files about. Some of the scripts have had
their `.in' suffix stripped because they should no longer be hacked by
Autoconf or anything similar, but none of the content is modified.
Mark Wooding [Sun, 9 Aug 2020 10:29:57 +0000 (11:29 +0100)]
Delete everything only needed for standalone building.
This is the start of an effort to change the way CFD is used by
projects. Rather than being installed on developer systems as a thing
in its own right, it should be tucked away in a project, using `git
subtree' or similar.
Please don't use `git submodule' for this!
Mark Wooding [Sun, 9 Aug 2020 10:45:55 +0000 (11:45 +0100)]
auto-version.in: Fix typo in commentary.
Mark Wooding [Fri, 8 May 2020 02:45:30 +0000 (03:45 +0100)]
Release 1.4.0.
Mark Wooding [Mon, 13 Apr 2020 11:29:22 +0000 (12:29 +0100)]
mdwsetup.py: Turn off Python's usual `SIGINT' handler.
Without this, a buggy native-code extension can loop forever, and Emacs
can't easily be persuaded to kill it.
Mark Wooding [Mon, 25 Nov 2019 15:04:07 +0000 (15:04 +0000)]
pysetup.mk: Handle the `DESTDIR' install variable usefully.
Mark Wooding [Mon, 14 Oct 2019 10:29:44 +0000 (11:29 +0100)]
pysetup.mk: Remove pointless explicit `make' step in `distcheck'.
Now that `check/PYTHON' depends on `all/PYTHON', this just adds a
serialization point which we don't need or want.
Mark Wooding [Wed, 9 Oct 2019 18:50:56 +0000 (19:50 +0100)]
mdwsetup.py: Add a command for running tests.
Mark Wooding [Mon, 14 Oct 2019 10:26:46 +0000 (11:26 +0100)]
pysetup.mk: Pass `make' flags down to `distcheck' build rules.
This firstly means that Makefile variables such as `PYTHON' are honoured
properly, and secondly that flags requesting parallel building are
respected.
Mark Wooding [Mon, 14 Oct 2019 10:22:16 +0000 (11:22 +0100)]
pysetup.mk: Run commands on multiple `python's, possibly in parallel.
Most targets delegated to `setup.py' are now run, in parallel, on
multiple Python versions listed in the new Makefile variable `PYTHONS'.
The exceptions are `gen' and `dist', which only make sense with a single
Python.
Targets which can run multiple Python versions now support per-version
options for targets: set the variable OPTS-TARGET/PYTHON (e.g.,
`OPTS-install/python3.5').
Mark Wooding [Mon, 14 Oct 2019 10:37:41 +0000 (11:37 +0100)]
pysetup.mk: Add an explicit `gen' target, and make `all' depend on it.
I plan to add support for multiple `python' versions building in
parallel in the same working tree. But generated files are shared
between `python' versions, and there will be a mess if things happen in
the wrong order.
Mark Wooding [Wed, 9 Oct 2019 17:02:49 +0000 (18:02 +0100)]
mdwsetup.py: Insert a space before direct-superclass lists.
Mark Wooding [Tue, 1 Oct 2019 22:57:28 +0000 (23:57 +0100)]
mdwsetup.py: Fixes for Python 3 compatibility.
* Write parentheses around `print' operands.
* Set `universal_newlines' on in `Popen' to force handling in text
mode.
* Use an unpleasant hack to inject the `CommandClass' metaclass,
because the official syntax is so different between the two
versions.
Mark Wooding [Fri, 4 Oct 2019 15:22:15 +0000 (16:22 +0100)]
mdwsetup.py (progoutput): Only read one byte to decide whether there is more.
There's no point in slurping the entire output now that we're closing
the pipe /before/ trying to waitpid(2): the child will hit `SIGPIPE' (or
`EPIPE') rather than blocking on output.
Mark Wooding [Fri, 4 Oct 2019 15:10:50 +0000 (16:10 +0100)]
mdwsetup.py (progoutput): Explicitly close the `stdout' pipe.
Mark Wooding [Tue, 1 Oct 2019 21:57:40 +0000 (22:57 +0100)]
mdwsetup.py (pkg_config): Check environment for settings.
This can override or replace pkg-config(1), similar to the
`PKG_CHECK_MODULES' Autoconf macro.
Mark Wooding [Tue, 1 Oct 2019 21:57:13 +0000 (22:57 +0100)]
mdwsetup.py (pkg_config): Change the token shown in error reports.