Mark Wooding [Wed, 1 Jun 2022 10:20:05 +0000 (11:20 +0100)]
**/.gitignore: Fix for in-tree builds.
I don't really recommend building in-tree, but there shouldn't be
unignored build debris lying about.
Mark Wooding [Wed, 1 Jun 2022 10:17:58 +0000 (11:17 +0100)]
vars.am: Clean up old `.defs' files when building manpages.
Mark Wooding [Wed, 1 Jun 2022 09:02:39 +0000 (10:02 +0100)]
**/.gitignore: Generally spruce up.
Mark Wooding [Sun, 15 Aug 2021 08:22:37 +0000 (09:22 +0100)]
Mark Wooding [Fri, 13 Aug 2021 18:49:55 +0000 (19:49 +0100)]
@@@ yet more mess
Mark Wooding [Mon, 17 May 2021 22:22:11 +0000 (23:22 +0100)]
@@@ mess!
Mark Wooding [Tue, 23 Jun 2020 09:45:35 +0000 (10:45 +0100)]
@@@ progfmt wip
Mark Wooding [Tue, 23 Jun 2020 09:45:16 +0000 (10:45 +0100)]
doc/tut/greeter0/: Initial `greeter' example.
Mark Wooding [Tue, 28 Jul 2020 00:16:17 +0000 (01:16 +0100)]
src/asdf-hack.lisp.in: Place our directory /before/ the defaults.
Otherwise, if there's a system-provided copy of Sod, then ASDF finds
that by preference, which is certainly not what I want.
Mark Wooding [Tue, 28 Jul 2020 00:14:02 +0000 (01:14 +0100)]
src/sod.asd.in: Find `auto.lisp' even if we're located via logical pathname.
Without this, `#p"auto.lisp"' looks like an /absolute/ pathname
according to the logical-pathname syntax rules, and it can't be found.
I admit to preferring to type `home:src;sod;..." than my actual home
directory.
Mark Wooding [Sun, 26 Jul 2020 00:48:02 +0000 (01:48 +0100)]
src/codegen-proto.lisp (definst): Add a bunch of commentary.
And some very light reformatting.
Mark Wooding [Sun, 26 Jul 2020 00:44:11 +0000 (01:44 +0100)]
src/codegen-proto.lisp (definst): Indent `dolist' form correctly.
Not really sure how this ended up wrong. Oh, well.
Mark Wooding [Sun, 26 Jul 2020 00:46:56 +0000 (01:46 +0100)]
src/codegen-proto.lisp (definst): Don't assume STREAMVAR is `stream'.
Apparently it always is anyway. Oops.
Mark Wooding [Tue, 23 Jun 2020 09:34:52 +0000 (10:34 +0100)]
doc/tutorial.tex: Fix option-dash formatting.
Mark Wooding [Tue, 23 Jun 2020 09:33:49 +0000 (10:33 +0100)]
doc/: Minor cleanups, as a result of a spell-check pass.
Include the accumulated personal wordlist.
Mark Wooding [Tue, 23 Jun 2020 09:30:13 +0000 (10:30 +0100)]
doc/concepts.tex: Make use of the concept of `inconsistent lists'.
Also eliminate a pointless item.
Mark Wooding [Tue, 23 Jun 2020 09:29:08 +0000 (10:29 +0100)]
doc/concepts.tex: Emphasize a defining occurrence of `methods'.
Mark Wooding [Tue, 23 Jun 2020 09:27:20 +0000 (10:27 +0100)]
doc/misc.tex (aif): Spell out `alternative' in full.
Mark Wooding [Tue, 23 Jun 2020 09:23:39 +0000 (10:23 +0100)]
doc/concepts.tex: Add footnote compring Sod and CLOS initarg selection.
Sod initializes a slot from the most specific initarg supplied; CLOS
instead choose the leftmost initarg in the argument list.
Mark Wooding [Tue, 23 Jun 2020 09:22:32 +0000 (10:22 +0100)]
doc/misc.tex: Describe a couple of default methods explicitly.
On `instance-initargs' and `copy-instance-using-class'.
Mark Wooding [Tue, 23 Jun 2020 09:20:57 +0000 (10:20 +0100)]
src/utilities.lisp: Spell `locative' in full for the class and predicate.
It turns out not to be a frequently used type.
Mark Wooding [Tue, 23 Jun 2020 09:18:04 +0000 (10:18 +0100)]
doc/sod.sty: Report errors for undeclared description categories.
Mark Wooding [Tue, 23 Jun 2020 09:15:30 +0000 (10:15 +0100)]
doc/concepts.tex: Apparently `aging' is predominantly a US spelling.
Mark Wooding [Tue, 23 Jun 2020 09:09:59 +0000 (10:09 +0100)]
doc/clang.tex: Fix incorrect description category.
Mark Wooding [Tue, 23 Jun 2020 09:16:54 +0000 (10:16 +0100)]
lib/keyword.3.in, lib/sod-structs.3.in: Use `.VS' and `.VE'.
Mark Wooding [Tue, 23 Jun 2020 09:08:50 +0000 (10:08 +0100)]
man pages: Split out the common preamble and insert it at build time.
This machinery is taken from the TrIPE project.
Mark Wooding [Sun, 7 Jun 2020 23:54:39 +0000 (00:54 +0100)]
src/Makefile.am: Build `sod' if we're just distributing.
Mark Wooding [Sun, 7 Jun 2020 23:51:05 +0000 (00:51 +0100)]
doc/cutting-room-floor.tex: Add a diagram of Smalltalk's object braid.
Mark Wooding [Sun, 7 Jun 2020 23:49:49 +0000 (00:49 +0100)]
doc/sod.sty: Adjust the default dash pattern.
This is very finely adjusted to make a subsequent diagram come up right.
Mark Wooding [Sun, 7 Jun 2020 23:49:17 +0000 (00:49 +0100)]
doc/concepts.tex: Fix misformatting.
Mark Wooding [Sun, 7 Jun 2020 23:48:54 +0000 (00:48 +0100)]
doc/Makefile.am: Preserve `~' correctly in the version string.
Mark Wooding [Sat, 20 Feb 2021 22:48:56 +0000 (22:48 +0000)]
lib/sod-hosted.c (sod_makev): Use two statements rather than tricky expression.
Comes out shorter too.
Mark Wooding [Sat, 20 Feb 2021 22:48:01 +0000 (22:48 +0000)]
lib/sod.h (sod_sublassp): Fix function description.
The corresponding comment in the implementation file is already correct.
Mark Wooding [Sat, 20 Feb 2021 22:47:33 +0000 (22:47 +0000)]
src/parser/floc-proto.lisp: Use correct function for constructing conditions.
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.
Mark Wooding [Tue, 1 Oct 2019 21:56:27 +0000 (22:56 +0100)]
mdwsetup.py (pkg_config): Rearrange and reformat.
Mark Wooding [Tue, 1 Oct 2019 21:54:45 +0000 (22:54 +0100)]
mdwsetup.py: Don't use the ancient `raise' syntax.
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.
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.
Mark Wooding [Fri, 8 May 2020 02:00:35 +0000 (03:00 +0100)]
Release 1.3.15.
Release 1.3.16.
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.
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.
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.
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)
Mark Wooding [Sat, 22 Jul 2017 10:43:11 +0000 (11:43 +0100)]
Makefile.am: Tweak `silent-rules' machinery.
Since Automake 1.11, the advice for setting up custom silent-rules
recipes has changed, so use the new machinery.
Also, I'm no longer mainly working on wheezy, and Automake has made the
operation field two spaces wider while I wasn't looking, so make the
output line up properly.
This means that CFD now requires Automake 1.11.2 or later to build from
the Git tree.
(cherry picked from commit
262cdcea7d345a0e523957de46fceed547f2de44)
Mark Wooding [Sat, 22 Jul 2017 10:35:55 +0000 (11:35 +0100)]
auto-version.in: Don't insist that `.git' is a directory.
Nowadays, `git worktree' can cause this to be a regular file instead,
and it's a shame if we can't spot it properly.
(cherry picked from commit
e3bf207c8bde1191c3850debd27ac604305bff31)
Mark Wooding [Mon, 27 Apr 2020 09:19:01 +0000 (10:19 +0100)]
texinice.tex: Fix bungled change.
Alas, `@' is still magical, so comparing against `\@@undefined' is
inadvisable.
Mark Wooding [Mon, 27 Apr 2020 09:07:45 +0000 (10:07 +0100)]
Merge branch 'master' of git.distorted.org.uk:~mdw/publish/public-git/cfd
* 'master' of git.distorted.org.uk:~mdw/publish/public-git/cfd:
texinice.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.
Mark Wooding [Sat, 22 Jul 2017 10:40:53 +0000 (11:40 +0100)]
debian/rules: Don't pass `--without=...' to all Debhelper programs.
Mark Wooding [Sat, 22 Jul 2017 10:43:11 +0000 (11:43 +0100)]
Makefile.am: Tweak `silent-rules' machinery.
Since Automake 1.11, the advice for setting up custom silent-rules
recipes has changed, so use the new machinery.
Also, I'm no longer mainly working on wheezy, and Automake has made the
operation field two spaces wider while I wasn't looking, so make the
output line up properly.
This means that CFD now requires Automake 1.11.2 or later to build from
the Git tree.
Mark Wooding [Sat, 22 Jul 2017 10:35:55 +0000 (11:35 +0100)]
auto-version.in: Don't insist that `.git' is a directory.
Nowadays, `git worktree' can cause this to be a regular file instead,
and it's a shame if we can't spot it properly.
Mark Wooding [Mon, 7 Oct 2019 00:33:10 +0000 (01:33 +0100)]
configure.ac: Complicate ASDF version-number generation.
I've started prefixing a future-version-~ to development version
numbers, rather than maintenance pre-releases. Adjust the ASDF version
synthesis to cope with this.
Mark Wooding [Mon, 7 Oct 2019 00:13:57 +0000 (01:13 +0100)]
debian/: Ship `symbols' file for better downstream dependency versioning.
Mark Wooding [Mon, 7 Oct 2019 00:06:25 +0000 (01:06 +0100)]
debian/changelog: Prepare for next version.
Mark Wooding [Mon, 7 Oct 2019 00:04:51 +0000 (01:04 +0100)]
debian/: Bump to Debhelper 10.
For some reason, the `compat' level and the `Build-Depends' bound were
inconsistent. Oops.
Mark Wooding [Sun, 6 Oct 2019 22:03:42 +0000 (23:03 +0100)]
Static instance support.
Mark Wooding [Sun, 6 Oct 2019 21:52:37 +0000 (22:52 +0100)]
src/class-output.lisp: Leave `*instance-class*' unbound at top-level.
Mark Wooding [Sun, 6 Oct 2019 21:50:42 +0000 (22:50 +0100)]
src/class-make-{proto,impl}.lisp: Don't always add initializers to classes.
Add a switch `:add-to-class' to inhibit adding the new initializer
object to its class.
(The class is still necessary because it's in control of initializer
construction: otherwise I'd do this by passing a `nil' class.)
Mark Wooding [Sun, 6 Oct 2019 21:41:42 +0000 (22:41 +0100)]
src/method-impl.lisp, etc.: Add a `readonly' message property.
If you have a `const' instance, it's useful to be able to send it
messages, so add a facility for marking messages as not modifying their
receivers.
Mark Wooding [Sun, 6 Oct 2019 21:35:47 +0000 (22:35 +0100)]
src/method-{proto,impl}.lisp: Abstract out the receiver type.
The code used to just assume that receiver (`me') arguments had type
`CLASS *'. This is about to change...
Mark Wooding [Sun, 6 Oct 2019 21:26:27 +0000 (22:26 +0100)]
c-types-proto.lisp (canonify-qualifiers): Delete `nil' entries.
Now you can decide whether to include a qualifier by saying `(and COND
:const)' or similar, and the `nil' if COND is false will be swept under
the rug.
Mark Wooding [Sun, 6 Oct 2019 21:24:58 +0000 (22:24 +0100)]
doc/list-exports: Use `documentation' to find more categories.
Mark Wooding [Sun, 6 Oct 2019 21:24:13 +0000 (22:24 +0100)]
doc/check-docs (scansyms): Stop trying to parse at `Leaked slot names'.
Mark Wooding [Sun, 6 Oct 2019 23:17:59 +0000 (00:17 +0100)]
doc/output.tex: Add a missing member reference in vtable initializer.
Mark Wooding [Tue, 1 Oct 2019 20:28:06 +0000 (21:28 +0100)]
debian/: Bump to Debhelper 10.
Mark Wooding [Tue, 1 Oct 2019 11:01:08 +0000 (12:01 +0100)]
debian/changelog: Prepare for the next version.
Mark Wooding [Sat, 24 Aug 2019 23:12:46 +0000 (00:12 +0100)]
doc/: Switch to a manually maintained bibliography database.
Actually, the database is maintained mostly by Emacs's BibTeX mode. In
particular, I (mostly) allow it to choose the citation keys, rather than
using Beebe's somewhat annoying key format, so hack up the document to
match.
Mark Wooding [Sat, 24 Aug 2019 23:41:27 +0000 (00:41 +0100)]
configure.ac, doc/Makefile.am: Ship the bibliography style.
Well, the machinery to generate one, anyway.
Mark Wooding [Sat, 24 Aug 2019 20:58:59 +0000 (21:58 +0100)]
debian/: Fix build-dependencies for building the manual.
Mark Wooding [Sat, 24 Aug 2019 20:54:08 +0000 (21:54 +0100)]
configure.ac, doc/Makefile.am: Overhaul LaTeX building.
Check to see whether all of the things we need are available: don't try
to build the manual unless we have them.