Talk:Lisp package guidelines

From ArchWiki

Package Naming

I've added Alexandria to AUR as 'cl-alexandria', because 'alexandria' is already taken by a book collection managing application. It is clear that the directory in /usr/share/common-lisp/ should be named 'alexandria' and not 'cl-alexandria', otherwise code written with it would not be compatible with other distros.

Should we be naming all CL packages with a 'cl-' prefix, or only those that "already" have it (like cl-ppcre and cl-who)?

-- Veox 06:05, 26 March 2009 (EDT)

package name should follow the prefix cl-packagename, but in the directory structure, conserve the original name.

--Djgera 19:41, 28 March 2009 (EDT)

A few comments/questions:

1) Is it unreasonable to require ASDF as a dependency? It would be similar to having `make` as a dependency.

2) With the older version of ASDF, the way to add to the ASDF search path was to (pushnew #p\"/path/to/system/dir/" `asdf:*central-registry* :test #'equal), but this has been replaced by adding a (:directory "/path/to/systems/dir/") entry to a file. According to [1], Section 7.1 item number 6, the system configuration file /etc/common-lisp/source-registry.conf will be used so the entry (:directory "/usr/share/common-lisp/systems/") could be added to that file. All *.asd files for the packages would still be added to the /usr/share/common-lisp/systems/ directory.

Note: the creation of the /etc/common-lisp/source-registry.conf file with the :directory entry could be handled by the pkgbuild for ASDF.

Mrenaud92 (talk) 23:57, 4 July 2013 (UTC)

xcvb files

1) Is there a conventional place for .xcvb files?

2) Should I do something like make or asdf:complile-op etc... with them?


—This unsigned comment is by Pete (talk) 14:06, 21 July 2015‎ (UTC). Please sign your posts with ~~~~!

Symlinks to /usr/share/common-lisp/systems not strictly required

I've been packaging quite a few packages without the symlinks, and have not encountered any issues. Even asdf's manual states this is not required anymore.

Grawlinson (talk) 08:29, 18 May 2022 (UTC)

Major refactoring

I'll be making some major changes to the guidelines.

Here's a summary of what I think needs changing (sorted per section):

1. Remove ASDF section

  • The example cl-ppcre.install is problematic due to being specific to one Common Lisp implementation (clisp). Compilation of per-package code can quickly become messy due to several different implementations existing, and none of the compiled code (.fasl) are compatible with each other. When packages are first loaded, compilation is done and results stored per-user ($HOME/.cache/common-lisp), proving that the install file can be safely removed.
  • Symlinking .asd system files to /usr/share/common-lisp/systems is a deprecated practise, according to §4.2 of asdf's manual.

2. Lisp-specific packaging

  • Most packages will depend on cl-asdf, so that needs to be added alongside common-lisp as a dependency.
  • According to upstream, the only Common Lisp implementations that do not come with cl-asdf are unpackaged/deprecated/proprietary implementations. Once FS#74775 is resolved, this should not matter anymore.

—This unsigned comment is by Grawlinson (talk) 01:19, 21 May 2022 (UTC). Please sign your posts with ~~~~!