Search
Monday, 16th of April 2018, 10:13:50 UTC
10:13:50
makomo
settuping up that by myself when i was just starting out would be a suicide mission
10:14:20
makomo
so i'm glad something like spacemacs exists, and it's good to introduce newbies too because of the familiar vim keybinds/modes
10:14:53
jack_rabbit
Yeah, the learning curve is real.
10:15:02
makomo
now when i know more about lisp, i'm considering going back to raw emacs and trying to do it myself, but we'll see about that
10:15:11
jack_rabbit
I have never been a fan of modal editing.
10:15:26
makomo
it was one of my revelations :D
10:16:13
jack_rabbit
I've never found it that useful. I just hold down Ctrl and issue commands. I guess it's sort of like a rapid mode switch.
10:16:31
jack_rabbit
No Ctrl - input mode, Ctrl - command mode.
10:16:38
jack_rabbit
or meta, or whatever.
10:17:09
makomo
when you start out you're in "normal mode", to enter insert mode you just press "i", and then "ESC" to go back to normal mode
10:17:17
makomo
while in normal mode i just use "hjkl" to move around
10:17:37
makomo
with other appropriate motions, etc.
10:17:49
jack_rabbit
Yeah, I'm somewhat familiar with vim.
10:17:57
jack_rabbit
I know how to get around, anyway. :)
10:20:56
jack_rabbit
Does anyone know who maintains cliki.net?
10:21:08
KZiemian
If some one here is on ELS
10:21:23
KZiemian
Happy celebrating 60 years of Lisp and it future!!!
10:21:57
KZiemian
I want to be with you but due to timidity I mess it up
10:24:52
hajovonta
first I used Emacs in cua mode. for years.
10:25:12
hajovonta
then I slowly became more hardcore and disabled it.
10:25:48
hajovonta
I now use the old C-f, C-b etc. keybindings to navigate around
10:26:11
hajovonta
this is because it was hard to switch when I used paredit to navigate lisp code
10:33:34
TMA
the problem with the default emacs keybinding for me is my supershort pinky finger. that and the left ctrl being too far, the right too awkwardly positioned.
10:35:55
hajovonta
I swapped the capslock and left ctrl for the same reason
10:36:14
hajovonta
it was real easy to get used to
10:40:10
p_l
TMA: get a classic full size keyboard and use opposite hands for modifier keys?
10:45:39
fe[nl]ix
jackdaniel: are you at the ELS ?
10:46:34
jackdaniel
I saw your peer review, thanks
10:57:05
dim
is it possible to build SBCL in a way that the sbcl binary then contains extra .so dependencies, such as openssl.so or sqlite.so?
11:00:21
jack_rabbit
dim, Is there a reason you want to do that?
11:03:31
dim
yeah, to avoid having to dlopen from the image when it's possible that the symbol found at dlopen won't match the symbols found at image creation time
11:04:38
dim
now that I had to write this, I wonder if having the .so in the binary header rather than used with dlopen() is going to have an impact on the problem...
11:05:51
p_l
dim: you might want to write a hook before save-lisp-and-die, which dumps a list of shared objects, copies them to where the image is to be saved, and rewrites the list to contain image-relative paths
11:06:31
p_l
but getting dlopen to link code from arbitrary memory location might be tricky
11:06:53
p_l
(unless your bootstrap code unpacks them to filesystem before calling dlopen() )
11:36:40
lieven
there was a tool called statifier that did something like that
11:53:57
theemacsshibe[m]
Hi ebrasca and p_l
12:58:53
ebrasca
Is there some library for visualizing functions relations in common lisp?
13:05:18
jack_rabbit
ebrasca, function relations?
13:06:22
ebrasca
jack_rabbit: Like function a used by function b.
13:08:28
jack_rabbit
Ahh. Not that I know of.
13:17:23
pierpal
ebrasca: http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/tools/xref/0.html
13:17:47
pierpal
and probably hundreds more
13:30:07
p_l
The big problem is getting xref out
13:30:24
p_l
Then you can render it with graphviz or whatever
13:38:03
p_l
Regarding visualising function dependencies
13:38:14
p_l
Did that recently with T-SQL
13:51:38
Shinmera
makomo: I'm glad you enjoyed my talk demo!
14:21:15
warweasle
** NICK warweasle_afk
14:26:35
shka
what "Known attributes" in sbcl documentation means?
14:29:58
puchacz
hi, I would like to give unique identifiers to threads.
14:30:35
puchacz
I know they can have names, but names are not unique and they exist only for threads I create.
14:31:00
puchacz
in Java, there is something called ThreadLocal variable
14:31:11
puchacz
can I have something similar?
14:33:14
shka
puchacz: you can bind dynamic variables when thread starts
14:33:32
puchacz
I am not sure about semantics of special variables; (let ((*special-var* (random-string))) ....) for example ?
14:33:51
shka
for instance, but i would rather use (gensym)
14:35:21
shka
puchacz: does that answer your question?
14:36:06
puchacz
shka: yes, it will work. however I was hoping I could have a mechanism that works for all threads I can encounter, not only these I create or control somehow
14:36:43
puchacz
for truly ThreadLocal variables, I could just (unless (threadlocal :name) (setf (threadlocal :name) (gensym))
14:36:48
shka
i don't know way to do that
14:37:07
puchacz
without any locking or anything like this, because they would be thread local
14:37:08
shka
myself, i almost always try to use lparallel whenever it makes sense
14:37:29
puchacz
I know lparallel, btw it names all threads "lparallel" :)
14:39:13
shka
anyway, i don't run into thread issues, mostly because i am really good at avoiding explicit synchronization :P
14:39:34
puchacz
I am poor at multithreading
14:40:54
shka
everybody is, just don't try to be smart, keep things simple and separated and you are fine
14:42:04
shka
so share very little between threads (mutable stuff), and explicitly mark those things
14:42:19
shka
it makes life so much easier
14:43:55
puchacz
yes, I agree with the theory
15:35:38
warweasle_afk
** NICK warweasle
17:28:13
puchacz
hi, in unwind-protect, will cleanup body be executed even if return-from the whole function?
18:08:21
makomo
i would like to use conses as keys into my hashtable but i would like a special equality test for them
18:08:46
makomo
two keys would compare equal if the stuff in the cons itself is EQ/EQL
18:08:55
makomo
i don't want EQ/EQL to be performed on the cons itself
18:09:15
makomo
what are my options? i don't think the standard hash table allows me to do this
18:20:26
cage_
maybe: https://github.com/metawilm/cl-custom-hash-table
18:22:44
makomo
shka_: but that will recursively use EQUAL right?
18:23:02
makomo
but i can guarantee that the car and cdr can be compared using just EQ/EQL
18:24:04
makomo
that's also a good point i guess
18:24:11
makomo
i mean, it certainly won't matter, i'm pretty sure of that
18:24:18
makomo
just wanted to see if there's some other nice way
18:27:33
shka_
makomo: custom-hash-table, if you really want to
18:28:05
shka_
but honestly, it is not really practical
18:28:58
shka_
if you need to use a vector as a key, well, it makes things very different!
18:30:27
shka_
makomo: i mean, your time can be used in better way
18:30:32
makomo
shka_: could you describe the situation with the vector a little more?
18:30:42
makomo
if i had lots of elements or something?
18:31:53
shka_
1193941381096739655 (in sbcl)
18:32:27
makomo
hm well, that's "just" a collision
18:32:31
makomo
stuff like that happens i guess?
18:32:31
sjl
If you want to use vectors as keys based on their contents, you need to use #'equalp, but that will also make strings ignore case
18:33:02
shka_
makomo: sxhash will always return same number for vector
18:33:18
shka_
so let's say you want to hash binary blobs
18:33:33
shka_
and sure, hashtable will work
18:33:39
shka_
because that's just collision
18:33:46
shka_
but i degenerates to O(n)
18:33:58
sjl
sxhash doesn't always return the same number for vectors
18:34:06
sjl
(sxhash "foo") (sxhash "bar")
18:35:10
sjl
SBCL's does seem to do it for non-string vectors, which is odd
18:35:37
shka_
sjl: actually, if you want to be so anal about sxhash, standard allows returning same number for every string as well
18:35:58
shka_
and sbcl does that for non-string vectors
18:36:17
shka_
it won't matter if you use 'eq as comparsion
18:36:28
shka_
but anyway, it is something to remember
18:37:09
shka_
makomo: and if you want to use some sort of objected defined with defclass
18:37:44
shka_
there is plenty of use cases for custom hashtables, but it is not worth to use it if you can simply use equal
18:38:43
makomo
i mean, it would definitely be overkill, but using the chance to explore other options is always nice
19:04:46
puchacz
shka: you said you use lparallel for multithreading, anything else please?
19:40:17
doesthiswork
(OPERATE 'TEST-OP :CFFI-TESTS) don't match lambda list (O C)
19:40:35
doesthiswork
version 0.19.0 of CFFI
19:48:19
Baggers
doesthiswork: a bit quiet here today, maybe due to ELS. If you have time it could be worth reporting this on the mailing list.
Monday, 16th of April 2018, 22:13:50 UTC