freenode/#lisp - IRC Chatlog
Search
21:40:16
scymtym
pve: yeah, i didn't use or need any of this before i started working on the McCLIM windows backend under wine
0:58:24
Xach
charles`: through quicklisp, usually that's how it works. if you want intermediate updates you have to fetch it yourself, like with a git checkout or similar.
1:00:29
charles`
If a library is on ultralisp and quicklisp how does quicklisp decide which one to get? most recent?
1:02:11
Xach
charles`: you can get pretty fine-grained, but the default ordering is which dist was more recently installed
1:12:49
Xach
if you check out a project somewhere known to asdf it will always take priority over a dist-provided system
1:13:06
Xach
"always", but you can always change the asdf system search function ordering if you really want to.
1:14:37
charles`
truly amazing. So quicklisp will update a project even if the ASDF version number didn't change?
1:16:28
Xach
it will update a project if the code changes, the asdf version number does not factor in
1:16:57
Xach
actually not the code - if the project's sources change, which includes non-code files too.
2:30:44
ealfonso
Can anyone help me understand this error? "Lock on package ALEXANDRIA.1.0.0 violated when defining ALEXANDRIA.1.0.0:WHEN-LET as a macro while in package HUNCHENTOOT." It only started happening after installing (ql-dist:install-dist "http://dist.ultralisp.org/")
3:29:48
White_Flame
any time there's an unexpected function call to some CL internal, you haven't found optimality yet
3:30:26
White_Flame
also, this is assuming SBCL, which is quite good (sans the triggering lack of peephole optimizer ;) ))
3:32:11
White_Flame
also, if you're iterating that size of memory, your memory bandwidth could easily dominate performance, if you're just doing simple work per entry
3:46:21
mfiano
Having a hard time trying to figure out what such a large dataset of known values ahead of time would be used for
3:55:03
White_Flame
well, brute force techniques might call for that, now that memory is much more available
3:55:20
White_Flame
but those usually aren't used for a straight iterative streaming, but a massive lookup table
4:08:38
White_Flame
obviously depends on the data. If he's just using bytes, then cut that in half by 4 again
4:23:04
jrm
For our clx OS package, any suggestions on whether we should stick with the latest release (0.7.5) or do what quicklisp does and keep up with the master branch of https://github.com/sharplispers/clx ?
4:26:33
beach
Are there any releases at all? I would do the sharplispers version. As I recall, the good people in #clim also fix issues in CLX when they find them. But you can check with them.
7:32:05
beach
Sure, some Common Lisp systems can have many things in a shared object file. I think ECL does that.
7:33:02
beach
nij: Unix-like operating systems are a very bad fit for Common Lisp. Imagine instead that the Common Lisp REPL is the shell, and FASLs are your executable files.
7:34:26
beach
On the other hand, 42MB of RAM (assuming that everything has to be in RAM which is not true if you have demand paging) cost how much these days? A few cents?
7:35:52
beach
nij: So as it turns out, the maintainers of SBCL did not bother to make the Unix executable files small. I fully understand their priorities.
7:36:21
flip214
nij: you can produce an image with all of the shared libraries, and use that image to load the app-specific FASLs.
7:36:57
flip214
nij: as long as the base image is uncompressed and can so be mmap()ed into memory directly, all of the running processes should share the common libs.
7:37:26
flip214
nij: do you want to save space _on_disk_ or _in_ram_ (when using 50 different applications)?
7:38:28
beach
nij: Seriously though, forget about the defective Unix model and just use the Common Lisp REPL.
7:38:56
flip214
nij: just add up all the libstdc++, libgcc, gcc, ld, .h, and other files required for the same task, and _the_ compare again ;)
7:39:38
nij
But it's nice to have a keybind in my window manager, that executes something right away.
7:39:43
flip214
an image that comes up with the HTTP port 18msec after starting is quite nice... but if you reload all the libs first it takes longer
7:42:33
White_Flame
nij: re the executable size, compare to the size of an installed JVM, and if that were baked into the executable itself
7:47:34
aeth
nij: CL is basically in the same situation JVM is, as White_Flame said. It's just... installed by default on far fewer machines.
7:48:14
aeth
Bundling the (large) runtime executable with each executable seems more appealing when you're distributing it to someone who doesn't have it, even if it's wasteful.
7:48:34
White_Flame
you can have a running lisp process, then make a new slime connection to it from emacs and have a full repl. Disconnect, and the lisp process stil runs
7:51:08
White_Flame
yeah, sly does the same, see "Running the server standalone" https://github.com/joaotavora/sly
8:00:07
beach
nij: While it is possible (as ECL shows) to put a lot of system code in a shared object file, it would not be appropriate for Common Lisp to use the kludge that Unix calls "dynamic linking".
8:04:31
beach
I suppose it would be possible for a Common Lisp system to use Unix dynamic linking, but it would be a lot of work to adapt the system implementation that way, or to special case some functions like the compiler.
8:08:32
beach
If I were to split a Common Lisp system into a shared object and an executable, I would probably put just executable code in the shared object, and mmap it to some known location at system start-up.
8:09:39
beach
But that might not work in the future. Because the Unix model is so broken, they add hacks to kludges that make it more and more difficult to do things like that. ASLR is a case in point.
8:13:50
beach
... all so that they can continue to use unsafe languages on an unsafe operating system also written in an unsafe language.
8:16:09
flip214
well, json at least keeps number/string types intact, and compatible to other systems as well
8:17:36
pranavats
There are also object stores like manardb (https://www.cliki.net/manardb). I haven't tried using them, however.
8:18:26
White_Flame
postgres has strong support. I haven't used sqlite from cl before, but libs are there,t oo