freenode/#sicl - IRC Chatlog
Search
4:11:59
no-defun-allowed
I had a conversation about CLOSOS and Redox (a Rust system which claims to be some kind of heir to POSIX). Apparently "crashing will happen" and restarting the driver is better than trying to invoke a debugger or fix the driver.
4:14:52
no-defun-allowed
Also, an operating system is useless if a good web browser does not run on it. I fail to see how this is any better than Unix other than programs shouldn't segfault, but I think comparing CLOSOS to post-Unix systems would be useful.
4:19:25
no-defun-allowed
That's mostly because I couldn't see any difference between Redox and another microkernel Unix system, as far as the points in section 1.2 of the CLOSOS book went.
5:11:47
beach
no-defun-allowed: It is interesting that you say that about a web browser, because in one of the talks by Alan Kay, he says that a web browser is an absolutely terrible thing. He does not specify why, but I can guess.
5:13:26
no-defun-allowed
One irk i have with websites is that (by filesize), most of a website is theming and layout information. Until fairly recently, it was quite irritating to make complex layouts inside a web browser, too.
5:13:31
beach
So are you saying that the people you had the conversation with said that CLOSOS is pointless because there is Redox?
5:13:59
no-defun-allowed
Not exactly, they just didn't see the advantages of CLOSOS over a port-Unix system.
5:14:02
Bike
say we generate an ast for (foo). it's a call so it needs an ast "input" for the dynamic environment. but there isn't one.
5:14:17
no-defun-allowed
*post-Unix. I don't think anyone has used that term before, but I think it fits alright.
5:16:00
Bike
i mean, if you're generating from (lambda () (foo)), the foo call just uses the dynamic environment from the lambda.
5:16:56
beach
Bike: I am speculating that the dynamic environment might be included in the context used to compile ASTs.
5:18:30
beach
Well, then the top-level compilation function would have to supply a context that contains the top-level dynamic environment.
5:21:56
Bike
you said it should be at ast level in case an implementation wanted to close over it for some reason.
5:23:11
beach
Well, I haven't tried to do this at that level of detail so I may have missed something.
5:23:52
Bike
i mean, basically, before i did any of this, i could do (generate-ast '(foo ...) ...) and get a call-ast. now i can't, because the call-ast needs a dynamic environment ast of some kind.
5:25:11
Bike
right now i use a special variable, it's just that it's unbound globally, and bound when it hits (lambda ...)
5:25:43
beach
Then you need to bind it before you call the top-level CST-to-AST or generate-ast, I guess.
5:27:44
beach
But to mimic the way it is done, i.e. passing the dynamic environment as an argument to function calls, suggests that it's an ordinary lexical location.
5:29:20
Bike
and it would make sense for that to be represented as the dynamic environment output by the top level enter... i think.
5:41:23
Bike
i am a little concerned with having this all at the ast level. it kind of detracts more from the "abstract syntax" bit, and i still don't get why you'd want to close over a dynamic environment. i'll try to work this out though, of cours.e
5:42:34
beach
I would want to close over dynamic environments because that is what happens in reality. And that's the way to detect that exit points are being abandoned.
5:44:01
beach
no-defun-allowed: I think it is fair to assume that most people are not interested in letting themselves be convinced by a document such as the one I wrote for CLOSOS. No amount of energy put into it would make a substantial difference for that category of people.
5:44:02
beach
In this case, if the particular post-Unix system they propose still uses processes with separate address spaces, that means that they have not understood much. Worse, if they have energy invested in a post-Unix system that the CLOSOS document still considers unacceptable, they are subject to the usual psychological phenomena.
5:45:02
beach
no-defun-allowed: The trick is to give up trying to convince people who do not want to be convinced.
5:46:37
beach
Now, if you have someone smart and knowledgeable to discuss with, that's a different story. Many people here and on #lisp fit that description. Then, constructive discussions are possible.
5:46:39
no-defun-allowed
Maybe they don't know too much about microkernels. I don't think you can update a microkernel while it is running.
5:47:44
beach
What I know about microkernels is that they take the separate process idea to the extreme. Running drivers in user space and such. But maybe there are other types of microkernels.
5:48:06
no-defun-allowed
And except for the Rust/Redox thing, they were just another Unix weenie. I've had better discussion.
5:48:18
beach
Either way, the word "kernel" suggest a monolithic blob (micro or not) that gets turned into an executable by a traditional linker.
5:48:51
no-defun-allowed
Yes, I know GNU Hurd has device and filesystem drivers as processes in the system. More often or not, they're just reloaded when something goes wrong.
5:48:53
beach
In that case, you can't replace a single function in it without replacing the entire thing, which requires halting the system.
5:49:44
beach
Give up on trying to make a safe system, because after all, we still want to use 1960s programming languages and linkers.
5:50:03
no-defun-allowed
Though, I heard one can use higher level languages such as Scheme (likely Guile) or Python to write drivers to an extent.
5:51:45
beach
Anyway, long ago now, I gave up on trying to convince people who, for reasons of strong psychological forces, do not want to be convinced. It is a waste of time, and very very frustrating.
5:52:53
no-defun-allowed
Hurd is sadly another Unix reimplementation though. I just thought of that since the quote was in a fortune file I use.
5:54:10
beach
I see. Yes, Hurd is basically a different way of implementing Unix. It improves things a bit, but nothing like CLOSOS.
6:00:04
no-defun-allowed
I suppose that's then a problem with thinking a new operating system has to bear resemblance to Unix.
6:04:43
beach
I am reminded of some Dream Theater lyrics: "I once thought it better to be right. But now I have finally seen the light." :)