James A. Crippen
Thu Sep 11 20:02:01 2003
Nyef <email@example.com> writes:
> I can't believe it either. I also have this uneasy feeling that all of the
> hacks in the system are going to conspire together to cause a lot of
> trouble in the near future.
Don't they always? But the best systems are the ones that are made
entirely of random hacks with an almost complete lack of
consistency. My favorite example: homo sapiens sapiens.
> The diagnostic output is getting verbose enough that I want to start
> disabling some of it, but I don't dare because it will become completely
> impossible to track down any of the more subtle bugs the instant I take
> anything out.
I was actually thinking about this last week. What I figured was best
was to do a line by line scan for all the debugging output and then
come up with a handful of categories which the various output data
fall under. Then add a command line option to choose the appropriate
amount/type of debugging output. Amount in the sense of the canonical
'verbose' option, and type in the sense of 'FEF' versus 'miscop' or
I'll volunteer to do this if you want. It'll be a good diversion from
getting qmail and Mailman configured. (Ugh.)
> I'm going to be proceeding under the assumption that a task switch saves
> off the machine state, undoes every binding on the SPDL in reverse order
> of initial binding, loads the new machine state, and then does up every
> binding on the SPDL again in order of initial binding. This is roughly
> analagous to how CMUCL does it and how SBCL used to do it (before dan_b
> put in the native multithread changes).
I wonder if the Exploder really goes through the trouble of rebinding
everything when switching or if it doesn't just cache the binding
stack somehow? That seems like an awful lot of work, but then there's
binding vs new state consistency to worry about. Just a whole-SPDL
blit out and blit in would be lots faster.
James A. Crippen <james at unlambda.com> Lambda Unlimited
61.2204N, -149.8964W Recursion 'R' Us
Anchorage, Alaska, USA, Earth Y = \f.(\x.f(xx))(\x.f(xx))