trivial compile file

0.1.0

Standardises the behaviour of compile-file around source locations and compiler messages.

Table of Contents

About trivial-compile-file

This is a small portability wrapper around compile-file to allow specifying an alternate source file path, source line, source column, and source position. This is useful in contexts where only a subsection of a file, or some new context within a file is compiled in, and source information should be kept correct.

How To

This system exports a drop-in replacement for the standard compile-file with the following specified additional arguments:

  • source-namestring
    The namestring of the file that this should be actually attributed to. If possible this will also influence the value of *compile-file-pathname* and *compile-file-truename*.

  • source-line
    The line (zero indexed) at which point within the "real file" this file begins.

  • source-column
    The column (zero indexed) at which point within the "real file" this file begins.

  • source-position
    The octet position (zero indexed) at which point within the "real file" this file begins.

In order to attain maximum support from implementations for source tracking, you should provide both line, column, and position if possible.

Additionally, the external-format is defaulted to utf-8, which should be the expected behaviour anyway, and any compiler notes or messages are converted to instances of compiler-note, providing a standardised interface to those kinds of messages as well.

In the case of compile or other interactive compilation, you can also use with-compiler-notes to convert the notes to standardised conditions.

Implementation Support

The following implementations are currently partially or fully supported:

  • ABCL

  • Allegro

  • CCL

  • Clasp

  • CMUCL

  • ECL

  • MKCL

  • SBCL

  • SCL

System Information

0.1.0
Yukari Hafner
zlib

Definition Index