Search
Thursday, 5th of December 2019, 20:59:38 UTC
20:59:51
jmercouris
pjb: I didn't say that!
21:00:06
pjb
Just to explain why it's importan to run minix and other systems!
21:00:10
jmercouris
phoe: well, saying you could do a low kick and then not doing it is effectively the same thing :-D
21:00:13
_death
only clisp has a menorah.. which will be useful soon
21:00:28
jmercouris
will the menorah light our way after the apocalpyse?
21:00:29
phoe
OK then, clisp exists e.g. to increase diversity in the CL ecosystem
21:00:39
pjb
jmercouris: When I'll be retired, I will switch to openbsd instead of linux…
21:00:44
phoe
purpose? purpose. OK, let's move on
21:00:57
jmercouris
pjb: start today! BSD > Linux
21:35:18
mister_m
does anyone know if the SBCL 20 talks are going to be put online?
1:50:30
Lord_of_Life_
** NICK Lord_of_Life
3:05:16
nchamber-
** NICK nchambers
3:17:49
joinr
Is it expected behavior that using varargs within a recursive labels form will cause an infinite loop?
3:18:03
joinr
(defun f (&rest args) (LABELS ((aux (X &REST XS) (PROGN (IF (not (null xs)) (PROGN (PPRINT X) (aux (FIRST XS) (rest XS))))))) (apply #'aux args)))
3:18:16
joinr
ugh, sorry, formatting is off..
3:18:37
no-defun-allowed
Well, there's no requirement for tail recursion to work in CL.
3:18:40
joinr
if I invoke that with (f 0 1 2 3 4 5 6) on either sbcl or clisp
3:18:47
joinr
I get a infinite recursion.
3:19:23
no-defun-allowed
Or do you mean that it never returns?
3:19:24
joinr
expectation is that the null condition will be met eventually and computation stops. Instead, you get Nil printing out
3:20:33
joinr
expectation for the input would be, printing the numbers 0 to 6 then return
3:21:21
joinr
this is a small reproducible case for a larger metprogramming deal. I thought labels would work fine (and it does) seemingly as long as you don't go into &rest arg territory and try to apply.
3:21:28
Bike
you have (aux (first xs) (rest xs))
3:21:34
Bike
so you're always calling aux with two arguments
3:21:52
joinr
so I need to apply within the body?
3:21:52
Bike
you meant (apply #'aux (first xs) (rest xs)), probably
3:21:52
no-defun-allowed
Is there a -- oh, yeah, that's probably important.
3:22:13
joinr
beautiful, thanks for the eyes.
3:22:36
Bike
or just (apply #'aux xs) i guess
3:23:32
no-defun-allowed
I'm not sure if you intend for this to happen, but (f 0) will print nothing.
3:23:45
Bike
yeah it drops the last value
3:23:56
Bike
dunno why so i'm gonna leave it as an exercise to ze reader
3:23:59
joinr
this is more of a toy problem, the exact behavior isn't as interesting though.
3:24:28
joinr
the non-terminating phenomena was what got me. totally forgot I'd have to apply on recurse.
3:34:24
lottaquestions
Hi all, is there a way of listing all the global variables in a running instance in slime?
3:37:52
Bike
Sort of. You can do (let (c) (do-all-symbols (s c) (when (boundp s) (push s c))))
3:38:08
Bike
On my system there are 5493, so be careful
3:38:21
Bike
technically there could also be variables named by inaccessible symbols, but that doesn't happen much
3:39:12
lottaquestions
thanks. Worth a try
3:39:41
no-defun-allowed
(do-symbols (s) (when (and (boundp s) (eql (symbol-package s) package)) (print s))) will print all the symbols that are bound in the current package, which isn't all of them, but might be what you want.
5:11:08
beach
Good morning everyone!
6:24:07
beach
jackdaniel: Thanks for the link to Graham's article. He seems to put his finger on something important.
7:07:25
boeg
second day with sick kid at home, keeping me up all night. Think I'm gonna see if I can optimize on my advent of code adventure from yesterday
8:05:22
boeg
Is there a built in like `intersection` for lists, but for hash tables?
8:08:25
boeg
testing for the key being in both hash tables, not the content
8:15:45
boeg
Shinmera: Alright, thanks
8:54:34
ralt
did anyone write some ECL funsies to write emacs modules in CL? http://diobla.info/blog-archive/modules-tut.html
8:54:58
phoe
no idea if that's been done, #ecl might know
Friday, 6th of December 2019, 8:59:38 UTC