Skip to main content


there really is no way around reimplementing defpackage, huh

hell, even if you stick to putting all the exports in the defpackage form like a fucking neanderthal writing C headers, you'll still get compilation errors under SBCL if you remove a symbol from the defpackage form's export list. like what the fuck

in reply to Pup Keith DX Director's Cut

:blobcatpeek: I wonder why that's the case. is it cuz the compilation thing you said (and I suppose loading afterwards) doesn't completely refresh & update the known export list database?
in reply to Luna

@Luna sorta. it has to do with the package declaration being re-executed after all the other code that normally follows it. if you tell lisp to create a package that, at that point, already exists, it can't just clear the existing exports because that could break things in the running image. however, if the new code doesn't export a symbol anymore, code that works fine in the current image could run into a missing symbol when it's loaded in a fresh Lisp instance
@Luna