freenode/#sicl - IRC Chatlog
Search
9:17:23
moon-child
one time my ip4 config wasn't working--some dhcp nonsense--it was very interesting. The result was of course not that the internet _didn't work_, but many parts of it were nevertheless inaccessible
13:27:39
beach
heisig: Shall I update the Test directory for the HIR evaluator to use Clostrum-based environment, or should I just remove that directory now that the evaluator is used by the bootstrapping procedure?
13:33:50
heisig
And even if I decide to resurrect the test suite at some point in time, we do have version control for that.
13:35:37
pjb
heisig: I beg to differ, bootstrapping is not enough of a test. It's a minimal test, but you will want to test also things that are not used while bootstrapping.
13:39:16
heisig
pjb: You are right. But I am a proponent of lazy coding. I will resurrect the test suite once we run into problems with the HIR evaluator for the first time.
16:16:29
beach
So right now I am working on removing the obsolete system SICL-GLOBAL-ENVIRONMENT. Some functions need to be adapted to the new system, and the new ideas. In the past, I had code such as DEFUN access the environment directly with using ENV:FDEFINITION etc.
16:16:36
beach
Not anymore. They should all go through the standard function now. And if no standard function exists, I invent one. The purpose of this way of doing it is so that I can undefine the environment functions.
16:16:37
beach
To define something like CL:FDEFINITION, I do (let ((fdefinition-function (...))) (defun fdefinition (name) (funcall fdefinition-function ... name))) so that the environment function is closed over.
16:17:40
beach
So the idea is 1. Create an environment with the environment functions defined. 2. Load definitions of the standard functions that use them. 3. Undefine the environment functions.
16:18:51
beach
So of course I also did something stupid. During bootstrapping, I carefully avoid importing the environment functions, and instead I create special definitions of the standard functions "manually".
16:19:39
beach
Instead I should 1. Import the environment functions from the host. 2. Load definitions of the standard functions that use them. 3. Undefine the environment functions.
16:21:08
beach
There will of course always be one "superuser" environment that has the environment functions defined, but it will not be the default environment.