Should marking a system preloaded drop its build information?

Daniel Kochmański daniel at turtleware.eu
Thu Sep 15 06:41:58 UTC 2016


Faré writes:

> The big design question is: should registering a system as preloaded
> drop its build information?
>
> Advantage of erasing the existing system information: the behavior of
> the image is uniform on all machines, and trying to resume development
> on a machine without the same source code at the same location won't
> cause a flurry of filesystem accesses at the wrong paths. [Note that
> immutable systems never try to access the filesystem, unlike regular
> preloaded systems, even with build information present.]

Additional adventage is a more uniform handling of the code (for
instance in `find-system') and could pave a way for `monotonic-system'
(from lack of better name atm) – system which only upgrades to the
higher versions like ASDF does right now.

Rationale for registering a new system is as follows: preloaded-systems
and immutable-systems are separate kind of system treated differently in
the code and have a separate class, because of their very nature. Like
we have prebuilt-system, or require-system, we have also immutable and
preloaded systems, which doesn't have build information (preloaded
system is a system, which is loaded by definition, without any
operations, while immutable system is a preloaded system, whichcan't be
removed).  Otherwise we should call them systems with immutability (or
preload) flags.
>
> Advantage of keeping the existing build information: you can resume
> the production image and resume incremental development on a machine
> that has the same source code at the same location. And if you to drop
> it, you can explicitly call clear-system after you call
> register-preloaded-system.

We don't have to necessarily loose the ability to keep the existing
build information. While it's not good to expose it in the production
image, stepping back to it is indeed something we want.

Such change won't introduce much of the problem, if we drop direct
hash-table access from user code and mandate registering
immutable-systems only with the function register-immutable-system (same
with the preloaded). Then an instance could store the original system in
a slot, which gets registered during the call to
`deregister-immutable-system'.
>
> I am strongly inclined to keeping the build information around: it's
> always easy to erase the information later, but hard to reconstitute
> dropped information.
>
> —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
> A Libertarian Constitutional Amendment: Congress shall make no law.

Best regards,
Daniel


-- 
Daniel Kochmański ;; aka jackdaniel | Poznań, Poland
TurtleWare - Daniel Kochmański      | www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi



More information about the asdf-devel mailing list