freenode/#lisp - IRC Chatlog
Search
23:34:04
elderK
ebrasca: I've finally made some progress with my "binary" library. There are a few more things to add support for, and a few other "chores" I want to do. But, it should be ready for "alpha use" very soon :)
23:35:02
elderK
I'll try using it for some actual stuff, though. Dog-food it :) Fix / refine it as necessary.
23:37:05
permagreen
I'd like to say my name is often displayed as green in chat clients, for whatever reason, but really I think people are just more prone to point it out to me when it is
1:14:11
fouric
Xach: is there a reason it's not being done aside from "not yet implemented"? e.g. some sort of not-inherently-thread-safe thing
1:15:20
elderK
It would be one thing, to ensure that "unrelated" stuff was compiled / loaded etc in parallel.
1:15:34
elderK
But to think about the effect on the environment, as things were being compiled / loaded.
1:16:17
elderK
I bet it /could/ be done. But, I imagine it would be a very detailed process, and a bit like navigating a minefield.
1:17:12
elderK
I mean, the specification does grant the possibility that the environment in which a file is compiled, is "based on" the environment the compile-file is called from, but could be distinct from the environment it "spawned from." Of course, most implementations (in my experimenting), share the environment.
1:17:39
elderK
Bike: :D Are the details explained as to why, somewhere? I'd find it a fascinating read.
1:18:15
fouric
although hypothetically if someone wrote a decent set of patches, would you accept them?
1:18:18
elderK
fouric: I'm not sure it's super unfortunate. I suppose it really depends on the size of the stuff you're building.
1:18:23
Bike
elderK: there's a big lock around the compiler, because it reads and writes global structures without any particular regard for coherence. as far as i understand.
1:19:12
fouric
and also if we want to build larger projects in CL, tools that do things in parallel are always better to have
1:19:57
elderK
fouric: You'd have to talk to froggey as to learn more about Mezzano's compiler and all that stuff.
1:20:26
Xach
fouric: I like the idea of parallel builds because that's ASDF's domain, and the implementation's. parallel fetching shouldn't be too hard in theory if threads or something are supported. but that's not universal.
1:20:48
elderK
Xach: Is SBCL moving towards supporting like, parallel compilation in the future? Or are these changes jsut to help improve performance on multi-core systems?
1:21:51
fouric
Xach: would a parallel-fetching patch that worked for *some* platforms (using e.g. bordeaux-threads) but didn't make things worse on the others be OK?
1:23:35
elderK
fouric: It builds an image and stuff, sure. But once it boots, everything is being built in Mezzano, afaik.
1:24:37
elderK
Which, has benefits and drawbacks. The benefits are that Mezzano can compile to suit the architecture it's running on, with the available features.
1:25:36
elderK
Right. I guess if you wanted, you could check out the Next browser and you know, see how long it takes to build? :D
1:26:23
Xach
fouric: well, that part is a "no". but in theory a system that parallelizes downloads with a possible cap on simultaneous downloads at 1 would be ok, I think.
1:27:33
elderK
fouric: I haven't yet written anything substantial enough in CL to really... feel the pain. That being said, making heavy use of STL in a "nontrivial" C++ project is painful almost immediately. I imagine CL is easier to parse, and perhaps to analyze in some ways, than other languages. Perhaps this means that we can compile larger projects in less time. Who knows?
1:29:37
elderK
I wonder if there are techniques in CL-world, similar to those in C/C++ land, to like, reduce compile-time dependencies from one module to another. You know, stuff like PIMPL or simple forward-declarations and stuff.
3:42:43
equwal
Is there a way to get a double-backquote macro like this one to evaluate without using EVAL? How might I do that?
3:44:18
equwal
But I'm aiming for (lister 'first second ) -> (list <value of first> <value of second>)
4:11:11
Bike
the macroexpander function receives the form SECOND as an argument, and you want the value of that form in the macroexpansion
4:15:29
equwal
I often find myself in a situation where I want to change the evaluation of a complicated macro and I just can't seem to get it done.
4:19:54
equwal
Well I have a function like `LET` that has some binds and code, but I want to be able to pass the binds as an environment variable instead of as raw code.
4:23:02
pillton
Do macros related to your LET like operator retrieve something from the environment?
4:23:20
equwal
I was putting together a FORTH in elisp, and it makes sense to call it with something like (eforth ((forth-fn . elisp-fn) ...) forth-code). Once I wrote that I realized that I needed to be able to write (eforth *ENV* forth-code) for code reusability .
4:35:30
equwal
Well I need the expansion of the new eforth-wrapper to be (eforth *env* forth-code) -> (eforth-old <val of env> forth-code)
6:56:09
emaczen
what is the common sense interpretation for BNF {<var>}* ? are the braces and asterisk redundant here?
7:02:17
beach
I guess you have to figure out what variant is used in the document where you found that syntax.
7:03:22
emaczen
https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The syntax of C in Backus-Naur form.htm -- can someone help me out here?
10:07:59
schjetne
May I ask a not-strictly Lisp question here, since you'd probably have to be a Lisper to understand what I'm talking about? If so, does anyone have any ideas how to get around the lack of restarts in non-CL exception systems?
10:10:27
schjetne
I'm doing the classic PCL log processing task, where I have files with lines that in turn has fields. If a field fails to parse I want to log an error, but I obviously want to log which file and line it is. So I have the choice between catching at the file level, and then losing every other line and field, or pass filename and line number to the field parsing routines, which means boilerplate and coupling
10:10:30
beach
schjetne: You should be able to implement a near-complete Common Lisp-style condition system in C.
10:10:51
heisig
schjetne: Depends on the language of your choice. C++ -> use Clasp, C -> use ECL, Java -> use ABCL :)