Jean-Philippe Paradis's Projects
Hexstream's default community health files for GitHub.
This is the source code for the abc.hexstream.xyz microsite.
Gives access to anaphoric variants of operators through one macro: ANAPHORIC. The user explicitly provides a variable name, preserving sanity, in contrast to the traditional use of an evil implicit variable ("IT"). Some operators can bind additional handy variables when explicitly requested. (Formerly called "explicit-anaphora".)
A function that "bubbles an operator upwards" in a form, demultiplexing all alternative branches by way of cartesian product. This operation is notably useful for easy implementation of certain kinds of shorthand notations in macros. A cartesian-product function is also exported, as it's needed to implement the main function.
Provides a :canonicalize slot option accepting an initarg canonicalization function.
A macro for choosing the appropriate form to execute according to the combined results of multiple tests. This is a straightforward and efficient alternative to the convoluted ad-hoc conditionals one might otherwise resort to.
Provides a compute-effective-slot-definition-initargs generic function that allows for more ergonomic initialization of effective slot definition objects.
Please join us for fun on-topic conversations about Common Lisp! We respect your time.
Provides easy access to the defining class and its options during initialization or reinitialization of its subcomponents.
This installation helper makes it even easier to install a copy of the CLHS locally. (ql:quickload "clhs").
This project is an "Hexstreamification" of Robert Strandh's public domain HTML version of the CLOS MOP. It is by far the best version of the CLOS MOP specification as of 15 october 2017.
[Article] Notably features a big epic table listing all the prefix arguments, modifiers and consumed arguments of all FORMAT directives.
Discover Common Lisp open-source contributors and their best contributions! Add yourself!
Validates superclasses according to a simple substitution model, thereby greatly simplifying the definition of class mixins.
Curriculum vitae of Jean-Philippe Paradis (Hexstream).
Provides a simple unified extensible way of processing named definitions.
The Common Lisp draft proposed American National Standard. (dpans3)
Provides a canonical way of converting generalized booleans to booleans.
Provides a truly extensible version of DEFCLASS that can accurately control the expansion according to the metaclass and automatically detect the suitable metaclass by analyzing the DEFCLASS form.
Provides an enhanced EVAL-WHEN macro that supports (eval-when t ...) as a shorthand for (eval-when (:compile-toplevel :load-toplevel :execute) ...), addressing concerns about verbosity. An ENHANCED-EVAL-WHEN alias is also supported, as well as an EVAL-ALWAYS macro and package nickname, for good measure.
Provides a canonical way of converting class designators to classes.
Provides an enhanced MULTIPLE-VALUE-BIND macro that adds support for lambda keywords by expanding to a MULTIPLE-VALUE-CALL when necessary. This makes catching multiple-value &rest and &key much more lightweight and convenient. A MULTIPLE-VALUE-&BIND alias is supported.
Obsoletes all TYPEP thin wrappers.
Provides an enhanced UNWIND-PROTECT that makes it easy to detect whether the protected form performed a non-local exit or returned normally.
Provides a way of extracting and replicating the compile-time side-effects of forms.
Provides a canonical stand-in for NIL for contexts where NIL means "no value".
Returns the result of evaluating a form in the current lexical and dynamic context the first time it's encountered, and the cached result of that computation on subsequent evaluations.
[article] Learn about the DEFINITIVE Common Lisp reference. Install it with Quicklisp for fast browsing, even when offline; query it from Emacs+Slime.
Symlinks to my public and private git repos, for easier backups and management. Symlinks to my few secret git repos are in a private gitdirs-secret repo.
Some global "assets" that I reuse across my websites.