Skip to content

Releases: tfeb/tfeb-lisp-hax

Bugfix on 2.2.0: fix a problem with define-functions

19 Jul 17:20
v2.2.1
Compare
Choose a tag to compare

There was confusion about commas in the macro expansion which resulted in a macro variable name being spliced in literally. I obviously just never tried that case, like an idiot.

Reified collectors, versioning clarification

18 Jun 09:47
v2.2.0
Compare
Choose a tag to compare

This release adds reified collectors to collecting, based on the original Interlisp-D facilities which inspired collecting in the first place.

Additionally after this release I'm not going to use strict semantic versioning. new major versions will happen if either

  • there is a complete new hack;
  • there is an incompatible change.

This is in order that large numbers of new hax don't appear as minor versions, which seems just wrong.

Object accessors

18 Jun 09:43
v2.1.0
Compare
Choose a tag to compare

Object accessors are a generalised version of with-accessors, for instance you can say

(with-object-accessors  ((kar car) cdr) my-cons
  (setf kar 3)
  my-cons)

which will return a cons whose car is 3.

This is the last time a completely new hack will appear without a new major version (see 2.2.0 for notes).

stringtables uses the old stringy syntax again

16 Mar 11:06
v2.0.0
Compare
Choose a tag to compare

The default stringtable reader syntax is now #"..." which is what it originally was. This is because #/.../ is just too obvious a syntax for regular expressions.

Also a fix so it no longer uses a bogus package which generally would not exist.

Bugfix on 1.2.0: fix binding's tests

10 Mar 15:45
v1.2.1
Compare
Choose a tag to compare

I'd forgotten to update the ad-hoc tests for binding to correspond to reality. This is otherwise the same as 1.2.0.

A rollup of several improvements

10 Mar 14:20
v1.2.0
Compare
Choose a tag to compare

Since the last release:

  • collecting has, finally, become a shim for with-collectors which was long overdue;
  • there are general accumulators by with-accumulators, which are quite powerful;
  • binding has bind/macro for macrolet;
  • local functions and macros bound by binding themselves implicitly use binding;
  • bind/values will ignore nil allowing you to skip some values;
  • there is a new hack, stringtable which is a simple readtable for strings;
  • there are some other improvements which shouldn't involve new or repaired functionality.

The documentation should correspond to what exists: in particular all of the new things above are described.

Add binding forms, make macro tracing more robust

23 Jan 12:57
v1.1.0
Compare
Choose a tag to compare

binding is a new hack which allows things like

(binding
  ...
  (bind x 1)
  (bind y 2)
  ...
  (bind (f a b)
    (+ a b))
  (f x y))

These get expanded into code which uses let* &c.

trace-macro is also a bit more robust against possible bad tracing states (for instance if it thinks it should be tracing but there's no wrapped hook it will offer ways to recover). None of these should ever happen in practice.

Initial public version

21 Jan 16:48
v1.0.0
Compare
Choose a tag to compare
v1.0.0

v1.0.0