libera/#commonlisp - IRC Chatlog
Search
15:31:05
nij-
Got it. But I can always write a wrapper in C that writes the C code, compiled to SO, and load.
15:33:33
nij-
I've heard though that C oughts to be compiled, and no interprettor can really do what the compile does semantically.
15:37:12
Bike
nah, there are c interpreters. and actually, in modern C++ (which isn't C, but eh) constexpr probably means a compiler has to have some kind of interpreter in it as well.
15:39:07
nij-
Oh, I even recall that emacs have both (compiler and interpreter), and it's hard to converge their semantics.
15:40:59
beach
There is a long-ish Lisp tradition that the interpreter uses dynamic variable bindings and the compiler uses lexical variable bindings, but that tradition was abandoned (luckily) in Common Lisp.
15:43:18
Bike
there are differences between compiling and evaluating, but they're pretty minor and mostly relate to redefinitions.
15:43:43
nij-
If C even has a JIT compiler, then we don't need to worry about possible divergence in semantics.
15:43:57
beach
I also recall that Franz Lisp (not Allegro) went to a lot of trouble to make the compiler respect dynamic variable bindings for many things.
17:01:36
White_Flame
nij-: I think it would actually be harder to write a JIT compiler for C than other languages. It would be harder to infer what runtime heuristic info you need to collect to get any benefit
18:40:02
luis
Someone at ELS did some work on method inlining, or some sort of class sealing and I can't recall who. Does anybody have any idea what I'm talking about?
19:21:14
Bike
Is there any way to wrap quicklisp dependency resolution around a dynamic extent? So that e.g. (with-quicklisp (asdf:load-system :foo)) will try getting the system from quicklisp if it's not available. I think quicklisp internally establishes a handler on asdf:missing-dependency
19:48:06
Bike
the way quicklisp does it internally involves asdf internals and some kind of table to avoid loops
20:24:13
pjb
Bike: (defmacro with-quicklisp (load-form) `(ql:quickload ,@(rest load-form))) (with-quicklisp (asdf:load-system :foo)) #| ERROR: System "foo" not found |#
22:06:23
seok
is there a resource for clojure from the perspective of a common lisp programmer? or a reference to the differences
23:03:24
nij-
I'm doing a long computation with many intermediate result. At the end, I need to analyze that result. However, the intermediate results are too large, and sometimes it fill the heaps. I wonder if there are some data structure that is persistant and doesn't use memory at all (hopefully, it feels like using a hash table)?
23:04:36
nij-
? what's wrong? I don't mind the poset-analysis being slow, so I think it's fine if it's backended by files on disks.
23:06:56
nij-
Yeah, i'm really looking for an existing CL system that does that for me (with nice abstraction, so I feel like I'm using a hash table).
23:30:06
nij-
> LevelDB is not an SQL database. Like other NoSQL and dbm stores, it does not have a relational data model and it does not support SQL queries.
23:31:19
_death
like a hash table, basically.. (leveldb:puts db "Hello" "World") (leveldb:gets db "Hello") => "World"
23:33:04
_death
it doesn't do that out of the box.. you will need to encode them into octets or strings
23:36:39
_death
again, you'll need to do that yourself or use another system.. leveldb is rather low level
23:39:08
_death
maybe fact-base or something.. I don't remember if it stores everything in memory or not, though