runlisp
2 months agorunlisp-base.conf, runlisp.conf.5.in: Fix lies about section parentage. master
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.

2 months agolib.c: Fix some commentary blunders.
Mark Wooding [Fri, 13 Aug 2021 23:13:36 +0000 (00:13 +0100)]
lib.c: Fix some commentary blunders.

Nothing especially noteworthy.

2 months agorunlisp-base.conf: Fix some minor formatting bogons.
Mark Wooding [Fri, 13 Aug 2021 21:34:20 +0000 (22:34 +0100)]
runlisp-base.conf: Fix some minor formatting bogons.

2 months agorunlisp-base.conf: Don't inhibit CMU CL's site-wide initialization file.
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.

4 months agodump-ecl: Defeat ASDF's magic internal knowledge of itself.
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.

4 months agolib.c: Fix some minor commentary typos.
Mark Wooding [Wed, 26 May 2021 12:21:55 +0000 (13:21 +0100)]
lib.c: Fix some minor commentary typos.

5 months agodebian/: Add packaging support.
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.

5 months agorunlisp.c, eval.lisp, etc.: Add new `-p' option to `princ' expressions.
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.

5 months agorunlisp.c, etc.: Rename `-p' to `-d'. COMPAT
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'.

5 months agotests.at: Add a test confirming that expressions are printed escapily.
Mark Wooding [Sat, 15 May 2021 13:17:26 +0000 (14:17 +0100)]
tests.at: Add a test confirming that expressions are printed escapily.

5 months agoeval.lisp: Rename `print-form' to make way for other kinds of printing.
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.

5 months agorunlisp.c: Undefine local option-parsing macros at the end of the block.
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.

5 months agotests.at: Indent argument line correctly.
Mark Wooding [Sat, 15 May 2021 12:15:04 +0000 (13:15 +0100)]
tests.at: Indent argument line correctly.

5 months agorunlisp.1.in: Delete some spurious spaces.
Mark Wooding [Sat, 15 May 2021 12:12:34 +0000 (13:12 +0100)]
runlisp.1.in: Delete some spurious spaces.

5 months ago*.[1-9].in: Introduce `\*(..' as a properly typeset ellipsis.
Mark Wooding [Sat, 15 May 2021 12:11:37 +0000 (13:11 +0100)]
*.[1-9].in: Introduce `\*(..' as a properly typeset ellipsis.

5 months ago*.[1-9].in: Delete apparently pointless definitions of `\*,'.
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.

5 months agoquery-runlisp-config.c: Add `-M' option for machine-readable output.
Mark Wooding [Sat, 15 May 2021 10:27:40 +0000 (11:27 +0100)]
query-runlisp-config.c: Add `-M' option for machine-readable output.

5 months agodoc/Makefile.am, doc/README.pdf: Commit and distribute formatted README.
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.

5 months agoREADME.org: Drop formatted output under `doc'.
Mark Wooding [Sat, 15 May 2021 10:23:40 +0000 (11:23 +0100)]
README.org: Drop formatted output under `doc'.

5 months agoREADME.org: Don't set image name explicitly in example config.
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.

5 months agoREADME.org: Use correct `\nbsp{}' to prevent line breaks at spaces.
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.

5 months agoREADME.org: Fix some boneheaded typos.
Mark Wooding [Sat, 15 May 2021 10:05:15 +0000 (11:05 +0100)]
README.org: Fix some boneheaded typos.

5 months agodump-runlisp-image.1.in, runlisp.conf.5.in: Document the versioning system.
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.

5 months agodump-runlisp-image.1.in, runlisp.1.in: Document the `-o' option.
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.

5 months agodump-runlisp-image.1.in: Sort the option descriptions correctly.
Mark Wooding [Sat, 15 May 2021 09:55:57 +0000 (10:55 +0100)]
dump-runlisp-image.1.in: Sort the option descriptions correctly.

5 months ago*.[1-9].in: Kill spurious extra space after tabulation in synopses.
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.

5 months ago*.[1-9].in: Fix copied-and-pasted sentence with missing verb.
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.

5 months agorunlisp.conf.5: Fix grammar failure.
Mark Wooding [Sat, 15 May 2021 09:47:36 +0000 (10:47 +0100)]
runlisp.conf.5: Fix grammar failure.

Probably just a typo.

5 months ago*.[1-9].in: Fix typesetting of option `-' characters.
Mark Wooding [Sat, 15 May 2021 00:30:45 +0000 (01:30 +0100)]
*.[1-9].in: Fix typesetting of option `-' characters.

5 months agodump-runlisp-image.c, runlisp-base.conf: Make version string more detailed.
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).

5 months agolib.h: Delete spurious space in comment.
Mark Wooding [Fri, 14 May 2021 20:49:42 +0000 (21:49 +0100)]
lib.h: Delete spurious space in comment.

5 months agolib.c (subst): Finish the half-baked comment explaining `delimtab'.
Mark Wooding [Fri, 14 May 2021 20:48:54 +0000 (21:48 +0100)]
lib.c (subst): Finish the half-baked comment explaining `delimtab'.

5 months agolib.c: (set_progname): Set program name even if `argv[0]' has no `/'.
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.

5 months agodump-runlisp-image.c: Add more logging about image commit.
Mark Wooding [Fri, 14 May 2021 20:44:53 +0000 (21:44 +0100)]
dump-runlisp-image.c: Add more logging about image commit.

5 months agodump-runlisp-image.c: Don't lie about deletion not actually happening.
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.

5 months agorunlisp-base.conf: Delete spurious `delete-image' setting.
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'.

5 months agodump-runlisp-image.c: Delete traces of decoy `-d' (`--cleanup') option.
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.

5 months agot/package.m4: Delete generated file.
Mark Wooding [Fri, 14 May 2021 18:52:03 +0000 (19:52 +0100)]
t/package.m4: Delete generated file.

5 months agoMakefile.am: Drop `.fasl' files in build directory when making images.
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.

5 months agoMakefile.am: Distribute the `confsubst' script.
Mark Wooding [Fri, 14 May 2021 18:37:34 +0000 (19:37 +0100)]
Makefile.am: Distribute the `confsubst' script.

Oops.

5 months agoconfigure.ac: Add option to configure the image directory.
Mark Wooding [Fri, 14 May 2021 18:36:52 +0000 (19:36 +0100)]
configure.ac: Add option to configure the image directory.

5 months agotoy-runlisp: Delete old cruft.
Mark Wooding [Fri, 14 May 2021 18:36:04 +0000 (19:36 +0100)]
toy-runlisp: Delete old cruft.

5 months agoMakefile.am: Also distribute the `README' file.
Mark Wooding [Fri, 14 May 2021 18:33:51 +0000 (19:33 +0100)]
Makefile.am: Also distribute the `README' file.

5 months agoMakefile.am (clean): Also delete the versioned dump files.
Mark Wooding [Fri, 14 May 2021 18:33:23 +0000 (19:33 +0100)]
Makefile.am (clean): Also delete the versioned dump files.

5 months agoAdd '.ext/cfd/' from commit 'e370d22add00480a67fd028c0e7d3148737fe484'
Mark Wooding [Sat, 15 May 2021 13:57:00 +0000 (14:57 +0100)]
Add '.ext/cfd/' from commit 'e370d22add00480a67fd028c0e7d3148737fe484'

git-subtree-dir: .ext/cfd
git-subtree-mainline: f50ecbe185f8866970ab62157b2e45bf613907d2
git-subtree-split: e370d22add00480a67fd028c0e7d3148737fe484

5 months agolib.c: Use the size of the element when allocating an array.
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.

5 months agolib.c: Don't try pointer arithmetic on void pointers.
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.

5 months agotests.at: Use correct `m4_bpatsubst' instead of wrong `m4_bregexp'.
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.

5 months agoconfigure.ac: Don't sanity-check `$mdw_ecl_opts' if there's no `ecl' anwyay.
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...

5 months agodump-runlisp-image.c: Initialize the random number generator a bit.
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.

5 months agolib.c (config_set_var_n): Return a pointer even if we don't change the var.
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.

5 months agodump-ecl: Insert missing space before line-splicing `\'.
Mark Wooding [Thu, 13 May 2021 13:51:24 +0000 (14:51 +0100)]
dump-ecl: Insert missing space before line-splicing `\'.

5 months agoconfigure.ac: Don't try to dump Lisps which we couldn't find.
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.

5 months agoMakefile.am: Override `data-dir' in all `dump-runlisp-image' calls.
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.

5 months agoMakefile.am: Rearrange the `dump-runlisp-image' options.
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.

5 months agoMakefile.am: Delete build rules for nonexistent debris.
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.

13 months ago@@@ version hash
Mark Wooding [Mon, 14 Sep 2020 00:31:01 +0000 (01:31 +0100)]
@@@ version hash

13 months ago@@@ more wip
Mark Wooding [Sun, 13 Sep 2020 09:36:27 +0000 (10:36 +0100)]
@@@ more wip

13 months ago@@@ more wip
Mark Wooding [Mon, 31 Aug 2020 03:13:52 +0000 (04:13 +0100)]
@@@ more wip

13 months ago@@@ work in progress
Mark Wooding [Wed, 26 Aug 2020 03:08:39 +0000 (04:08 +0100)]
@@@ work in progress

14 months agoNew version.
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.

14 months agobuild/autotest.am: Fix formatting of list initialization assignments.
Mark Wooding [Sun, 9 Aug 2020 13:00:59 +0000 (14:00 +0100)]
build/autotest.am: Fix formatting of list initialization assignments.

14 months agom4/: Reformat to match current m4/shell style.
Mark Wooding [Sun, 9 Aug 2020 11:54:10 +0000 (12:54 +0100)]
m4/: Reformat to match current m4/shell style.

14 months agom4/mdw-dir-texmf.m4: Nest and indent `mdw_DEFINE_PATHS' properly.
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.

14 months agom4/mdw-dir-texmf.m4: Pull `texmf' path guesswork out of `AC_ARG_WITH'.
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.

14 months agom4/mdw-manext.m4: Don't hardcode the manpage extension to `mLib'.
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!

14 months agom4/mdw-dir-texmf.m4, m4/mdw-manext.m4: Use `AS_HELP_STRING'.
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.

14 months agom4/mdw-define-paths.m4: Replace `$(eval echo ...)' nonsense.
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.

14 months agom4/mdw-define-paths.m4: Use `$(...)' for command substitution.
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.

14 months agom4/mdw-auto-version.m4: Don't try appending suffixes any more.
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.

14 months agom4/mdw-auto-version.m4: Delete the bizarre pre-definition.
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.

14 months agom4/: Reformat the Autoconf macros in `aclocal' style.
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.

14 months agoaclocal.glob, m4/: Split the monster into separate `aclocal'-ish files.
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.

14 months agobuild/ scripts: Remove the version-number machinery.
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.

14 months agoScatter the useful files into subdirectories by theme.
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.

14 months agoDelete everything only needed for standalone building.
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!

14 months agoauto-version.in: Fix typo in commentary.
Mark Wooding [Sun, 9 Aug 2020 10:45:55 +0000 (11:45 +0100)]
auto-version.in: Fix typo in commentary.

17 months agoRelease 1.4.0.
Mark Wooding [Fri, 8 May 2020 02:45:30 +0000 (03:45 +0100)]
Release 1.4.0.

17 months agomdwsetup.py: Turn off Python's usual `SIGINT' handler.
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.

17 months agopysetup.mk: Handle the `DESTDIR' install variable usefully.
Mark Wooding [Mon, 25 Nov 2019 15:04:07 +0000 (15:04 +0000)]
pysetup.mk: Handle the `DESTDIR' install variable usefully.

17 months agopysetup.mk: Remove pointless explicit `make' step in `distcheck'.
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.

17 months agomdwsetup.py: Add a command for running tests.
Mark Wooding [Wed, 9 Oct 2019 18:50:56 +0000 (19:50 +0100)]
mdwsetup.py: Add a command for running tests.

17 months agopysetup.mk: Pass `make' flags down to `distcheck' build rules.
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.

17 months agopysetup.mk: Run commands on multiple `python's, possibly in parallel.
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').

17 months agopysetup.mk: Add an explicit `gen' target, and make `all' depend on it.
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.

17 months agomdwsetup.py: Insert a space before direct-superclass lists.
Mark Wooding [Wed, 9 Oct 2019 17:02:49 +0000 (18:02 +0100)]
mdwsetup.py: Insert a space before direct-superclass lists.

17 months agomdwsetup.py: Fixes for Python 3 compatibility.
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.

17 months agomdwsetup.py (progoutput): Only read one byte to decide whether there is more.
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.

17 months agomdwsetup.py (progoutput): Explicitly close the `stdout' pipe.
Mark Wooding [Fri, 4 Oct 2019 15:10:50 +0000 (16:10 +0100)]
mdwsetup.py (progoutput): Explicitly close the `stdout' pipe.

17 months agomdwsetup.py (pkg_config): Check environment for settings.
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.

17 months agomdwsetup.py (pkg_config): Change the token shown in error reports.
Mark Wooding [Tue, 1 Oct 2019 21:57:13 +0000 (22:57 +0100)]
mdwsetup.py (pkg_config): Change the token shown in error reports.

17 months agomdwsetup.py (pkg_config): Rearrange and reformat.
Mark Wooding [Tue, 1 Oct 2019 21:56:27 +0000 (22:56 +0100)]
mdwsetup.py (pkg_config): Rearrange and reformat.

17 months agomdwsetup.py: Don't use the ancient `raise' syntax.
Mark Wooding [Tue, 1 Oct 2019 21:54:45 +0000 (22:54 +0100)]
mdwsetup.py: Don't use the ancient `raise' syntax.

17 months agoauto-version.in: Prefix Git version with mangled `x.y.z~' Debian version.
Mark Wooding [Tue, 1 Oct 2019 11:01:27 +0000 (12:01 +0100)]
auto-version.in: Prefix Git version with mangled `x.y.z~' Debian version.

The mangling is necessary to placate `pkg-config', which doesn't
implement `rpmvercmp' properly.

17 months agoMerge branch '1.3.x'
Mark Wooding [Fri, 8 May 2020 11:29:24 +0000 (12:29 +0100)]
Merge branch '1.3.x'

* 1.3.x:
  Release 1.3.15.
  mdwsetup.py: Adjust exit status from `subprocess'.
  mdwsetup.py: Fix unbound variable reference in error case.
  mdwsetup.py: Add missing `OS.' qualifier on `W...' calls.
  texinice.tex: Cope with new names for page-dimension registers.
  Makefile.am:  Tweak `silent-rules' machinery.
  auto-version.in: Don't insist that `.git' is a directory.

17 months agoRelease 1.3.15.
Mark Wooding [Fri, 8 May 2020 02:00:35 +0000 (03:00 +0100)]
Release 1.3.15.

Release 1.3.16.

17 months agomdwsetup.py: Adjust exit status from `subprocess'.
Mark Wooding [Sat, 19 Oct 2019 16:08:28 +0000 (17:08 +0100)]
mdwsetup.py: Adjust exit status from `subprocess'.

It doesn't return the raw status from `wait', but some kind of
inconvenient cooked status.

17 months agomdwsetup.py: Fix unbound variable reference in error case.
Mark Wooding [Fri, 8 May 2020 11:24:18 +0000 (12:24 +0100)]
mdwsetup.py: Fix unbound variable reference in error case.

This is debris from f74ba2bb507cfeadd5518d5468c7ab7281b581b7 which
changed a function into a class, and the `source' argument into (a) a
list and (b) an instance variable.  Fix this reference which should have
changed along with the rest.

17 months agomdwsetup.py: Add missing `OS.' qualifier on `W...' calls.
Mark Wooding [Sat, 19 Oct 2019 16:07:52 +0000 (17:07 +0100)]
mdwsetup.py: Add missing `OS.' qualifier on `W...' calls.

Evidently this code hasn't been tested before.

17 months agotexinice.tex: Cope with new names for page-dimension registers.
Mark Wooding [Tue, 7 Apr 2020 19:14:44 +0000 (20:14 +0100)]
texinice.tex: Cope with new names for page-dimension registers.

Texinfo 6.2 apparently renamed `\pagewidth' to `\txipagewidth', and
similarly for `\pageheight', to avoid some conflict with LuaTeX.  Fix
`@afourpaper' to with these new names.

(cherry picked from commits 892a9f865ad8baed5c67ddf9d68301c916bfb0f1 and
0b5f869b689a085655df9e1a261eacf8c7facade)