From: Nikodemus S. <nik...@ra...> - 2007-11-16 17:29:26
|
CLHS COMPILE-FILE entry says that the primary value of COMPILE-FILE is NIL if "file could not be created". We currently implement this meaning "could not create the file in the filesystem", which I submit is suboptimal. I propose to interpret the entry to mean "_fasl_ could not be created", and return NIL (and clean up the fasl) if the compilation was aborted. Is this sane, or taking too many liberties? Attached a patch that implements this. Cheers, -- Nikodemus |
From: Juho S. <js...@ik...> - 2007-11-16 17:41:12
|
"Nikodemus Siivola" <nik...@ra...> writes: > CLHS COMPILE-FILE entry says that the primary value of COMPILE-FILE > is NIL if "file could not be created". We currently implement this meaning > "could not create the file in the filesystem", which I submit is suboptimal. > > I propose to interpret the entry to mean "_fasl_ could not be created", and > return NIL (and clean up the fasl) if the compilation was aborted. > > Is this sane, or taking too many liberties? At least I've always considered producing non-complete fasls to be a bug, not a feature, so that sounds good. -- Juho Snellman |
From: <fa...@gm...> - 2007-11-16 18:27:24
|
Couldn't we create a file with a different name and atomically rename it to its destination name when done? That's afaik the only way to not screw up when the compiler is killed (because, e.g. it screw up and/or shotgun techniques were used to kill it, or its cleanup was itself interrupted, or the power went down, or...). [ Fran=E7ois-Ren=E9 =D0VB Rideau | Reflection&Cybernethics | http://fare.tu= nes.org ] ...so that IBM Java envangelist tells me "nothing spread as fast as Java", to which I answer: "crack!"... On 16 Nov 2007 19:37:07 +0200, Juho Snellman <js...@ik...> wrote: > "Nikodemus Siivola" <nik...@ra...> writes: > > > CLHS COMPILE-FILE entry says that the primary value of COMPILE-FILE > > is NIL if "file could not be created". We currently implement this mean= ing > > "could not create the file in the filesystem", which I submit is subopt= imal. > > > > I propose to interpret the entry to mean "_fasl_ could not be created",= and > > return NIL (and clean up the fasl) if the compilation was aborted. > > > > Is this sane, or taking too many liberties? > > At least I've always considered producing non-complete fasls to be a > bug, not a feature, so that sounds good. > > -- > Juho Snellman > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel |
From: <wil...@ai...> - 2007-11-17 01:38:26
|
On Fri, Nov 16, 2007 at 07:37:07PM +0200, Juho Snellman wrote: > "Nikodemus Siivola" <nik...@ra...> writes: > > > CLHS COMPILE-FILE entry says that the primary value of COMPILE-FILE > > is NIL if "file could not be created". We currently implement this meaning > > "could not create the file in the filesystem", which I submit is suboptimal. > > > > I propose to interpret the entry to mean "_fasl_ could not be created", and > > return NIL (and clean up the fasl) if the compilation was aborted. > > > > Is this sane, or taking too many liberties? > > At least I've always considered producing non-complete fasls to be a > bug, not a feature, so that sounds good. It seems to me that your proposed change doesn't take too many liberties: it is a defensible interpretation. I consider creation of incomplete fasls to be at least a wart on the interface. (Given the way people sometimes manage to specify interfaces that are undeniably broken, like with race conditions or uncatchable errors or inability to express some kinds of filenames, I'm looking for a milder word for an interface that's merely unnecessarily clumsy, not clearly broken.) But it looks to me like the wart is in the spec and can't be properly fixed properly in a particular implementation. Your change is OK with me, but making your change in SBCL will not make it a good idea to write system-builder software which depends on your change. -- William Harold Newman <wil...@ai...> PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C "Among animals, it's eat or be eaten. Among people, it's define or be defined." -- Nancy Lebovitz |
From: Nikodemus S. <nik...@ra...> - 2007-11-20 14:32:05
|
On Nov 17, 2007 1:39 AM, William Harold Newman <wil...@ai...> wrote: > It seems to me that your proposed change doesn't take too many > liberties: it is a defensible interpretation. In 1.0.11.25. Cheers, -- Nikodemus |