Common Lisp test suite

2 views
Skip to first unread message

Tim Daly

unread,
May 19, 2025, 11:52:46 PMMay 19
to Camm Maguire, Medley Interlisp core
Camm, 

I've taken an interest in testing GCL against Paul Dietz's
common lisp test suite. Are you interested at all?

Tim

Camm Maguire

unread,
May 20, 2025, 11:21:38 AMMay 20
to Tim Daly, ca...@maguirefamily.org, Medley Interlisp core
Greetings, and thanks so much for your feedback!

Paul Dietz has written and maintained our ansi-test suite for many years
in the past, though is no longer active. I've added a few tests over
the years as they've cropped up. We still have his work which can be
run with the standard GNU build system target 'make check'. This will
also run a little benchmark suite. All our ansi tests pass at the
moment, at least on platforms which can trap floating point exceptions.
I will be adding a run of his 'compiler torture tester' to 'make check'
in the future.

Take care,
--
Camm Maguire ca...@maguirefamily.org
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah

Tim Daly

unread,
May 20, 2025, 8:09:47 PMMay 20
to Camm Maguire, Medley Interlisp core
20May2025.10 

In the file init.lsp, *load-truename* defaults to nil (per ANSI).

init.lsp loads gclload1.lsp which does a defvar *aux-dir*. 

defvar *aux-dir* evals (pathname-directory *load-truename*).

The pathname-directory function requires a valid pathname (ANSI) 
but *load-truename* defaults to nil which is not a valid pathname.

Comments?

Tim

Camm Maguire

unread,
May 30, 2025, 9:42:29 AMMay 30
to Tim Daly, ca...@maguirefamily.org, Medley Interlisp core
Greetings, and thank you for the note, and please excuse the delayed
reply.

I take it you are not looking at the ansi test suite sources included
with GCL, as I cannot find any of this there.

That said what you describe is a typical method for trying to identify
the source directory when the suite is run from a different directory.
*load-truename* will be bound to the full pathname of gclload1.lsp only
when that file is being loaded. It may be cleaner to wrap the access in
(eval-when (load) ...) to make this clearer.

I tried briefly to make the suite runnable from a different directory
per the GNU build system distinction between the source directory and
the build directory, but this was quite involved. So our make check
just copies the sources into a temporary build directory and runs from
that.
Reply all
Reply to author
Forward
0 new messages