freenode/#lisp - IRC Chatlog
Search
0:45:28
moon-child
is there a good way to do forward declarations, to keep sbcl from getting uppity with me about co-recursive functions?
0:56:13
Alfr_
moon-child, by any chance you're loading the file directly? Can't it reproduce with (load (compile-file ..)).
0:57:28
Alfr_
moon-child, but you still can wrap these mutually recursive defuns in a (with-compilation-unit () ..) .
2:18:59
pfdietz
Or, you can declaim the later functions to have an ftype. Or, you can make the later functions be generic, and put defgenerics at the top of the file, above the defmethods.
4:38:44
beach
gendl: Starting in 2000, my colleague organized the "Libre Software Meeting" or "Rencontres Mondiales de Logiciel Libre" in Bordeaux. It was a strange "conference" where people did not pay to attend, and some where in fact invited so they had their trip paid for.
4:38:51
beach
I volunteered to chair the track called "Very high-level languages for application development", which I turned into a mostly Common Lisp track. So from the start we had danb, Krystof, gilberth, and many others present.
4:38:55
beach
This meeting was were McCLIM was essentially created. We sketched how special variables were to be implemented in the presence of threads in SBCL. danb did Bordeaux threads and maybe also ASDF then. Over a few years, probably, because we organized the LSM/RMLL for a few years in Bordeaux before it became an even that moved every year.
5:53:53
ck_
I looked it up because I wasn't sure; there are two US islands in UTC-12. And also I did the arithmetic the wrong way, it's six hours from now.
6:01:11
beach
Most islands in that zone made a choice to be among the first to celebrate the new year.
6:19:44
ck_
According to a map, most of them are in +12, or even +13, that's what I meant earlier, was surprised that there even are marked islands in UTC-12. But ok. I guess it's off topic unless they do lisp
6:37:44
thmprover
Say, is there an abstract machine (or virtual machine) that's particularly well suited for Lisp to target?
6:43:39
aeth
You're talking about places where (= 12 (nth 8 (multiple-value-list (get-decoded-time)))) and talking about it like it's -12 while talking about (= -13 (nth 8 (multiple-value-list (get-decoded-time)))) like it's +13
6:46:22
thmprover
Lycurgus: I don't know much about the Lisp Machines, is there some "toy model" describing their architecture?
6:46:40
ck_
aeth: so your point is that I got the lisp terminology wrong with respect to delta to UTC, and 24.1.4.1?
6:47:00
thmprover
moon-child: ah, well, I'm more interested in the theory side, gc and caching are very...applied...
6:47:42
Lycurgus
thmprover, unclear what you mean but wouldn't know. FWIU, the ancient archives have complete sources
6:49:48
thmprover
Lycurgus: I mean, something similar to the SECD machine, in the sense of simple and minimal while demonstrating the key parts of the instruction set for a Lisp Machine. (Or is that just an SECD machine?)
6:52:01
Lycurgus
as an implementor, in practice either you want a real lisp machine to target or you will likely prefer a pragmatic approach to produce good code on
6:54:26
thmprover
I just wasn't sure if there was some "obvious virtual machine" like CAM/FAM/ZINC for ML, but for Lisp.
6:58:23
beach
thmprover: For a theoretical machine to be applicable, you also need a very simple "Lisp" language.
7:00:18
thmprover
Well, I know the SECD machine can be the target for a simple-ish Lisp compiler, which piqued my interest about what needs to be added to handle more complex Lisp constructs.
7:03:18
beach
thmprover: simple compiler, but also a very simple subset of what we think of as "Lisp" today.
7:04:39
thmprover
beach: I should also mention, my curiosity really is strictly academic (for use in a case-study in compiler correctness)
7:06:09
beach
thmprover: But then you are in trouble because 1. There is no widely agreed-upon definition of "Lisp", and 2. The channel topic is Common Lisp.
7:09:00
thmprover
beach: trouble is my business ;) In all seriousness, I've been thinking about how to move from "A simple toy Scheme interpreter" to "A simple toy Common Lisp interpreter", what would need to change.
7:10:38
beach
thmprover: Common Lisp is such a complex language, in particular with lots of imperative constructs, that I am pretty sure that there is no simple abstract machine that will help, unless, of course, you accept that the result will be so slow that it's unusable.
7:14:29
thmprover
beach: like CLISP? Yeah, I have no illusions about performance, my goal is correctness. This is more an experiment with literate programming plus formal proofs, than a fancy new tool for production.
7:20:25
thmprover
beach: true, but that may be too simple. I'm looking for a happy medium between the extremely simple pure lambda calculus VM, and the complicated real world.
7:20:59
beach
That's a very tough thing to help you with, because it is not obvious what is too simple and what is too complicated for you.
7:22:23
beach
thmprover: For instance, something like RISC-V or a tiny subset of x86-64 can run Common Lisp just fine.
7:27:19
thmprover
beach: well, as I understand it (and I don't fully), a Lisp Machine boiled down to a sort of virtual machine atop a Risc processor.
7:29:10
beach
Sort of. I think it was a machine that could be microprogrammed. But the Lisp machine was not designed to be simple. It was designed to run Lisp efficiently, given the existing general-purpose processors and the compiler technology we had at the time.
7:31:08
beach
Take "CDR coding", for example. It makes things horribly complicated for the only reason that memory was expensive at the time.
7:32:33
beach
Didn't it also have out-of-band tag bits? Now, you can use the lower few bits of a 64-bit word without any problem, because machines are byte addressed, so there are more bits than you need.
7:37:35
alexshendi
I am trying to build SBCL 2.1.0 under NetBSD/arm64. I have tried to bootstrap using ecl and abcl. Both ultimately fail in the warm init phase (make-target-2.sh).
7:38:14
thmprover
beach: right, and while "CDR coding" is an important optimization, it's not a necessary component for an "abstract Lisp machine". I suppose my lack of knowledge about Lisp Machines may be the crux of my [immediate] problem.
7:39:37
saturn2
i believe the lisp machine had special instructions for accessing the various lisp data types, so you didn't have to choose between speed and memory safety
7:40:38
beach
But checking the type is easy these days, and type inference often makes it not necessary.
8:48:15
jeosol
I haven't installed on a NetBSD/arm64 before. What command are you running? There is also a #sbcl channel and the guys may be able to address this.
8:52:30
alexshendi
Actually both. Note that the error isn't from the host lisp implementation, but from the sbcl binary that was built using it.
9:06:53
solideogloria[m]
<lotuseater "ah no, #\DOWNWARDS_ARROW is a va"> that is the unicode character ↓
10:45:59
Krystof
beach: another thing about RMLL, at least as I recall it was implemented in our track, was that the plenary-type talks did not take up all that much time (1 day of the 4 or 5, perhaps) and so the rest of the time was spent however the delegates wanted... which led to some good hacking times
10:47:14
Krystof
it was also great because a bunch of us were able to meet in person for the first time. I'd met dan_b before (I think) but those meetings were my first encounter with gilbert, eric marsden, marc battyani, tim daly, ...