freenode/#clim - IRC Chatlog
Search
4:08:58
beach
I am almost done preparing my slides for ELS. After that, I can go back to more interesting stuff.
6:26:54
beach
nyef: I think it is good that you participate in this discussion on #lisp, because you are one of the few people qualified to have an opinion that I would respect. I am staying out because there are some other people I would rather not discuss with, and who have a tendency to put words in my mouth.
6:32:01
nyef
One question did come to mind earlier on, though: About how far is SICL from being able to produce a standalone implementation, even if it's "just" a target-compiled environment?
6:34:08
nyef
Hunh. x86oid backend and all, or is that one of the things that would need bootstrapping?
6:35:28
beach
I have decided to complicate things for myself by using the full language in the implementation of core components such as CLOS and the compiler. So, bootstrapping requires the introduction of CLOS first, which has not been done before.
6:36:12
beach
I recently extracted the assembler to a separate repository, but in the past, I have been able to generate x86-64 machine code from SICL functions.
6:38:30
beach
I bootstrap by creating a SICL CLOS environment in a first-class global environment inside SBCL. But it requires several steps. My plan is to create a graph in memory and then create a homomorphic one as an x86 executable.
6:38:48
nyef
Yeah, I always thought your choice to use CLOS as a fundamental component was brave. I do hope that you can make it work.
6:39:22
beach
I think I can. It is just that it requires a lot of attention to detail. But that's part of the fun of the thing.
6:39:26
nyef
I'm fairly sure that, were I writing my own Lisp implementation from scratch, I wouldn't be using CLOS at quite that low a level.
6:40:14
beach
Right. And I am doing it because I am a researcher, and doing something completely new like this is one way of justifying my salary.
6:40:35
nyef
There's been some interesting stuff recently with the SBCL GC, btw. Not necessarily groundbreaking, but some optimization work.
6:45:59
jackdaniel
I have more humble plans for the future, I want to make work native ECL's GC as an option
6:46:20
nyef
Aside from SBCL's atrocious out-of-address-space failure mode, simply having a moderate amount of thread turnover will kill it.
10:12:21
jackdaniel
they don't require cps, because continuation is delimited to the particular block afaik
10:16:15
jackdaniel
here you have example: https://www.di.unipi.it/~attardi/Paper/LUV94.pdf with let/cc
10:20:13
scymtym
loke: "direct style" delimited continuations are usually implemented by copying the corresponding section of the stack into a heap object when a continuation is captured and splicing it back into the stack when the continuation is invoked. for CL, there is the complication of undoing/redoing dynamic bindings and unwind cleanups
10:23:31
scymtym
i explored the idea for SBCL a little bit and iirc, stack allocated vectors where the main complication
11:59:25
beach
"think of what a scientist or engineer or anyone who CAN understand the basic logical concepts of Lisp might need"
12:01:33
beach
Obviously, we software people do not deserve to have tools for ourselves. We should know our place as a service discipline to the more noble disciplines out there, like the sciences and engineering. I have dealt with too many people with that point of view in my lifetime.
12:22:35
jackdaniel
I acknowledge the fact, that quite soon (probably matter of decade, but this may be a bad guess) everyone will need to have at least basic programming skills
12:29:09
beach
I think that's probably true, yes. But it is going to take some time to accomplish that, because the people who teach "everyone" are currently not qualified to teach programming. In fact most teachers at the university level aren't qualified to teach programming either.
12:29:59
jdz
The computer hardware industry is moving in the other direction though -- it is already hard to find a laptop with the spec I want as a programmer. The industry is on the track to make computers a consumer device, not a tool for professionals.
12:52:14
splittist
I think it highly unlikely programming skills will reach the status of reading and writing, unless the definition of 'programming skills' is hopelessly debased.
12:54:28
red-dot
One way to look at this is in the context of law. Most people, at some time or another, will need to do something with the legal system and, IMO, that's what 'programming' is most about. Logical inference and how to express that with words/characters.
14:41:31
nyef
I think that the "other professions" argument is a proxy, and not a good one, for "people new to Lisp, who have less investment in using it, need more assistance, and have less patience for initial setup hassles".
14:42:14
nyef
Or even "people experienced with Lisp, but who simply don't have time or patience for these kind of hassles".
14:43:02
nyef
Strip off the proxy argument, and you're left with a complaint about a huge barrier to entry.
14:43:13
beach
You are probably right, but it was interesting that the author of that email message tried to guilt-trip the community be referring to scientists and engineers.
14:44:02
beach
... as if that reference would obviously work, as opposed to the more general characterization.
14:45:06
beach
It make me see red. I have had to fight with colleague scientists and engineers for decades just for simple recognition of our discipline.
14:45:08
nyef
This is someone who, by any argument, should already be considered an accomplished lisp programmer, but doesn't account himself as part of the group.
14:49:37
beach
nyef: You know SBCL fairly well, right? I am thinking of creating a SICL-like environment inside SBCL (I'll explain why if you like) for compiling forms to ASTs. The obstacle to that is the way lexical environments are handled. Cleavir uses its own lexical environments, so either SBCL would need to know how to deal with those for macroexpand-1, or else, I would have to teach Cleavir about SBCL lexical environments.
14:50:37
beach
oleo: Very well thank you. Finished talk preparations, and making great progress on Second Climacs. You?
14:50:52
beach
nyef: Do you see any problem with redefining macroexpand-1 so that it tests whether it has a Cleavir environment and then call a Cleavir function?
14:51:13
oleo
i just came back from work and my neighbour will check my scooter again, it drinks too much benzene.....so to say
14:52:16
beach
oleo: I see. But I was thinking more in terms of something Common Lisp or CLIM related. :)
14:53:29
beach
nyef: Either way, this is for Second Climacs, so I can tolerate failure in some situations. Already, the need for calling macroexpand-1 in a lexical environment is rare.
14:53:30
oleo
not much really, today was immense and i'm pretty tired, nowadays i have not much time or force left todo anything, besides my pc is causing problems too (the drives are failing, i disabled all of acpi and power management in order for them to run smoothly)....
14:54:20
nyef
beach: I'm not seeing anything obvious in terms of type declarations on the environment parameter, and *macroexpand-hook* exists. Does that work for you?
14:56:46
beach
I may attempt to create enough of a Cleavir environment in SBCL then. I need to create a dummy global environment class with methods that trampoline to native functions, but that's an easy one.
15:00:09
nyef
... macroexpand-hook only gets called when macroexpand-1 has found an expander. That probably doesn't help/
15:02:27
nyef
It basically installs a wrapper in place of a given function. The wrapper gets called with the original function and then all of the arguments.
15:03:35
nyef
SB-INT:ENCAPSULATE. So it's an internal thing, if you use it and what you're doing breaks, you get to keep the pieces.
15:04:08
beach
So here is the plan: In Second Climacs Common Lisp mode, I use the SICL reader to create nested `parse results'. The plan is to take each top-level parse result, and run it through the first two Cleavir passes, i.e. AST generation and then HIR generation.
15:04:10
beach
I will then store the result of this analysis with each top-level parse result. And I can use the result of the analysis to influence how the parse result is then rendered, and I can use it to compute indentation, the role of symbols, etc.
15:04:52
beach
I could do some very cute analyses that way, and I can show the result to the user of the editor in some interesting way.
15:06:14
nyef
Sounds like a good start, but please also include a way to override indent choices and the like. Sufficiently complex macrology will probably break it, as will sufficiently off-the-wall uses of backquote.
15:06:56
beach
There will definitely be a way to override default choices. But my main priority is to make it work in the first place.
15:07:32
beach
Yes, I am sure it will `break' in places, but breakage should just be a failure of detailed analysis, or perhaps an occasional mistake.
15:08:26
nyef
Heh. My C code, when I really get going, tends to break even the smartest of smart editors.
15:09:05
nyef
"Oh, your editor does semantic parsing, how cute! Why does it think that this file has more than a hundred functions returning int, all called DEFOP()?"
15:09:55
beach
You can argue that the editor would need a complete C environment (preprocessor, compiler, etc)
15:10:34
beach
So they probably wing it with regular expressions. Which is also what they do for Common Lisp at the moment. Hence my desire to improve it.
15:27:50
nyef
Assertion: Modern "free" Common Lisp is a festering pit of pain. Supposition: The old LispM environments weren't. Hypothesis: Attempting to sell a festering pit of pain for $70,000 per seat (ballpark figure for a LispM) takes a lot of support both pre- and post-sale.
15:30:16
beach
The question is why you would even think of charging that much for a free Common Lisp.
15:31:18
nyef
But, basically, one of the reasons that they could command that kind of price is that the system is a good one.
15:31:32
nyef
But possibly also, the system was a good one because they needed to justify that price tag.
15:32:03
beach
I think their customers were not that sensitive to price. There are customers like that.
15:33:35
beach
It is interesting to make the connection with the French company ILOG, that used to exist and that used to produce Le Lisp and numerous tools.
15:34:04
beach
[My wife worked for them until they were bought by IBM, so she how works for IBM instead]
15:34:32
beach
They sold to what the president called "dinosaurs", i.e. a handful of French companies.
15:35:05
beach
To expand further, they had to go after the "small game". So they had to change their product line. They then became a complete C++ shop instead.
15:40:13
nyef
So, the cost of a "free" lisp system is in time, attention paid, and effort required to get whatever result is being looked for.