freenode/#lisp - IRC Chatlog
Search
8:01:33
stylewarning
ggole: but maybe no functions return MV because they’re tricky to make very fast? Who knows
8:02:33
stylewarning
ggole : I feel I always have to inline them in order to eliminate the baggage. And then SBCL inserts these CLC instructions for just about EVERY function call and that has to do with MV
8:05:10
aeth
imo there are two reasons why multiple values are not as common as they could be (1) they're not esay to work with (multiple-value-bind is separate instead of (let (((values foo bar baz) (foobar 42))) ...))
8:05:23
aeth
and (2) there aren't convenient built-ins for easily working with them (e.g. no multiple-value-map)
8:06:05
stylewarning
I want MV to be a low-level construct. MV isn’t a data structure so much as it is a low-level scheme for moving data around between functions
8:07:23
aeth
Yes, but you can't do something like multiple-value-map without consing a list via multiple-value-list and thus defeating one of the points of having multiple values, so a lower level implementation could be justified.
8:08:00
tko
I just tried to install sbcl via apt-get on Ubuntu, would anyone know why attempting to start up a repl gives me "fatal error encountered in SBCL pid 16302(tid 140737353966144):
8:08:05
ggole
If you want multiple values to just be returned in registers, you don't really need hardware for that
8:09:21
stylewarning
Well, to be clear, you don’t really need HW for anything. We have perfectly reasonable Lisp implementations on hardware that’s nearly adversarial to Lisp. (:
8:09:27
ggole
You just need an implementation with the necessary tricks to do that and still handle redefinition (including redefinition where the number of values returned has changed)
8:13:36
beach
tko: It seems you have a version mismatch between the .core file and the executable file.
9:22:35
earl-ducaine
"Read-time value of form " ....effectively a quasi comma you can use inside ordinary quotes, e.g. '(one two #.(+ 1 2))
9:23:59
beach
Sometimes you want to make clear to the person reading your code what the origin of a constant is.
9:24:53
Shinmera
since case does not evaluate the cases, you can use read-time evaluation to get the constant in.
9:37:56
earl-ducaine
My brain is too tired for CL obfustication... the #. I think is the source of trying bug. Periodically, I have to delete the binaries of a file I've compiled, even though the contents of the source file has never changed.
9:43:06
earl-ducaine
e.g. in my above example, if the function make-event-mask is changed, the value it produced when *event-mask-alist* was compiled will never get the update in an ordinary asdf build.
9:49:07
beach
nokdoottt: Are you sure it is a big number rather than a ratio like 234234234234234234/234234242342342
9:52:12
beach
nokdoottt: If all your constants are rational and your operations preserve this fact, then the result is a rational as well.
9:52:33
beach
nokdoottt: The moment you stick in a float there, like 1.0, everything gets converted to float.
11:03:01
no-defun-allowed
Single floats are supposed to be good for at least six digits with small numbers, so I'm happy with that.
15:55:40
Posterdati
iolib is not usable on bsd systems, due to wrong error constants definitions in sockets/grovel.lisp and syscalls/ffi-types-unix.lisp
16:25:29
White_Flame
no-defun-allowed: specifically, 32-bit ieee floats have 7.22 decimal digits of precision