freenode/lisp - IRC Chatlog
Search
12:12:09
drmeister
jackdaniel: ECL has this thing ECL_USE_MPROTECT that uses mprotect to trap access to the environment to indicate that there is a pending signal. I don't understand why that is faster than the alternative of calling ecl_check_pending_interrupts(env) in https://gitlab.com/embeddable-common-lisp/ecl/blob/develop/src/h/external.h#L1865
12:13:03
drmeister
I don't know if you have dug into this part of ECL - but do you have any insight as to why using mprotect is faster than the alternative?
12:16:40
flip214
drmeister: probably because checking a flag in tight loops costs performance in each iteration, while the "memory protection fault" comes mostly free with the next access
12:26:51
jackdaniel
didi: ASDF manual is updated frequently and ASDF's API change, you probably have version bundled with your implementation
12:28:48
jackdaniel
oh, then you'll probably be out of luck with getting help here (people rarely use lisp-controller from my observation)
12:29:36
didi
jackdaniel: I don't think lisp-controller is used much nowadays in Debian, but I might be wrong.
12:30:08
iago
that's something I was asking on clnoobs. What is better use the libraries provided by your package manager or to set up your own environment ?
12:30:52
jackdaniel
for development its better to use quicklisp (and that's what most people do) – deployment is another story
12:31:24
flip214
Sorry. I'd *like* to use debian packages (because they'd be kept up to date "automatically"!), but unfortunately most are too old. So I use Quicklisp too.
12:32:01
flip214
jackdaniel: QL can use older package sets as well, so some fixed-version deployment is easy as well
12:34:14
flip214
z0d: well, debian testing/unstable is quite nice for most packages... sadly the CL stuff isn't that regularly updated as in QL
12:35:10
jackdaniel
didi: if you stick to debian version, then you don't want asdf manual, but rather documentation installed with the package
12:40:13
flip214
I even pin "sbcl" to "experimental" to get the good stuff as early as possible... ;)
13:26:13
jackdaniel
jdz: you may want to use :initial-bindings argument to make-thread, so you don't have to declare it locally
13:27:17
jdz
This way it's more flexible -- I don't have to control the thread creation to use the facility.
13:27:54
flip214
jdz: depending on how small the loops are where this is checked, you could also have a global hash-table
13:28:00
jdz
OK, so it's not too horrible. I'll leave this in my code, and see when I trip up on it myself :)
13:29:07
flip214
jdz: could have weak keys, so that threads quitting would clean that up automatically
13:29:40
warweasle
minion: memo for XachX: I think I fixed clinch. It built with (ql:quickload :clinch :verbose t)
13:30:04
warweasle
jackdaniel: I've been awayish for a while. Trying to get back to my roots as a lisper.
13:30:50
jackdaniel
warweasle: I'm waiting impatiently until clinch api stabilizes, so I can get back to hacking with it – it was fun afair :)
13:32:29
warweasle
Xach: I had to do some old asdf style manual package management. I should be thanking you.
13:33:43
warweasle
jackdaniel: I have several new examples. It's much nicer now. I expect the API to remain fairly constant. I have a couple of issues but I'll leave them for a while to keep things stable. (pango still uses bad key names :pango_alignment_left, etc)
13:35:20
kuba-orlik
Hi! Could you help me figure out why the last line throws an error? http://pastebin.com/9TmHCHSj
13:42:59
ogamita
kuba-orlik: notice that even emacs lisp has structures and objects, so you don't really need to use this old fashioned style.
13:50:45
daemoz
Is there a way to have emacs store my fasl files somewhere cleaner? Or is it pretty standard for them to live in the source code directory?
14:01:57
daemoz
beach: So far the community has been incredible and has already pointed me at so many amazing resources. About 3/4th of the way through Practical Common Lisp at this point.
14:06:27
White__Flame
kuba-orlik: they're called "earmuffs", and generally indicate that that symbol is a toplevel/global/special variable
14:10:35
warweasle
kuba-orlik: In the repl, however, * ** & *** are the last, second to last, and third last results.
14:11:10
warweasle
kuba-orlik: They are similar to $_ in perl. Some despise them, but I use them all the time.
14:14:16
TMA
I would love to use them, but by the time I figure out whether they are * ** and *** or / // /// or + ++ +++ or - -- --- the result I am interested in is lost (I know, that one of the + or - do not have the double/triple version)
14:20:37
jackdaniel
malice`: sometimes I want to access second returned value, * doesn't give me that
14:24:24
ogamita
TMA: Notice however that ! is a reader macro giving you the expression. so: (incf *x*) !! !! will keep incrementing, while (incf *x*) * * would just print the result again.
14:54:26
ogamita
jam: 3. an improvised performance by a group of musicians, especially in jazz or blues.
14:55:06
axion
The term can also be used to denote a fruit spread, amoung other things. It is quite ambiguous.
15:01:17
didi
So... do you write tests inside the package you're testing or outside it, using another package like foo/test?
15:03:22
ogamita
didi: if you test the API, in a test package using only the public interface of the package (exported symbols).
15:03:38
pebblexe
how can I define a macro that I can pass a condition to? like let's say I want to pass (<= 1 x 10) in as a condition. but what do I do instead of placing x there?
15:03:56
ogamita
But sometimes, you want to test a function or an internal mechanism that is not exported, then the test is in the same package (different files, so you can load the tests optionally).
15:05:21
ogamita
pebblexe: are you sure you want to write a macro? It looks like you'd rather have a function with a predicate parameter: (f (lambda (x) (< 1 x 10)))
15:05:49
ogamita
pebblexe: but with a macro, you could indicate to the macro the list of variables the macro should bind to evaluate the expression: (m (x) (< 1 x 10))
15:06:28
ogamita
pebblexe: probably you should be more specific, and present the code you have so far ( http://paste.lisp.org/new ).
15:08:52
pebblexe
loke___: make match a nice easy looking version of the function I am trying to write
15:10:26
pebblexe
loke___: I am trying to port msgpack to cl, so this is a serialization/deserialization library
15:10:46
pebblexe
I am really trying to port this: https://github.com/edma2/clojure-msgpack/blob/master/src/msgpack/core.clj
15:14:39
flip214
so for an API msgpack is still much easier to use. thanks for the link, though; perhaps I'll use it in some project.
15:18:57
flip214
not sure whether that is constant, ie. whether a GC will change the values, though.
15:21:25
axion
ogamita: I apologize. I thought I was in the #lispgames channel. I can see how you didn't have enough context now as you haven't been there in over a year.
15:49:48
didi
Heh, this "serapeum" looks like my own collection of functions. I think every CL programmer might have one such companion.
16:08:30
loke___
And in line with the JS implementation (here: https://www.npmjs.com/package/isarray), the CL implementation should be:
17:32:01
antoszka
I booked a bed in a dorm, it was crazy cheap, but I suppose „normal” rooms are available as well.
17:34:32
attila_lendvai
antoszka: which dorm? in case I make a last minute decision... I'm considering
17:41:00
Xof
I haven't been following anything about ELS this year. Is there a social activity on the Sunday evening?
17:42:46
jackdaniel
if anything is planned, I'd vote for time after or during ELS, many people arrive at Sunday
17:44:46
antoszka
attila_lendvai: I've no idea which dormitory it is… Just clicked the cheapest one on booking.com
17:45:13
antoszka
attila_lendvai: feel free to ask the hotel staff about my reservation under the name of 'Antoni Grzymala'
17:53:27
antoszka
attila_lendvai: i looked at the reservation e-mail and all it says is just 'dormitory'.