freenode/#lisp - IRC Chatlog
Search
10:51:13
loke[m]
I see. But if there's no deadline it'll take a very long time to prepare a presentation :-)
10:52:39
phoe
and I'll need the abstract for sending via mail at least a week before the meeting, and the video at least 24h before streaming
10:59:01
phoe
that's the way that the ELS worked this year, and I've copied this way to the online meetings
10:59:25
phoe
because I've noticed that it works pretty well and eliminates many possibilities of technical issues
11:03:36
jackdaniel
ACTION shuffles through the deck of notecards labelled "You can't do that because" ;)
11:03:46
adlai
the latest pain point with scalpl has been the state of websocket client libraries. Eitaro's library works, although it appears to be the only one.
11:04:39
no-defun-allowed
lonjil and I have both wanted to create another websocket client, I guess with the three of us complaining it should be done.
11:05:55
adlai
there's also a partial client implementation that 3b published, although I don't think he made any claims about its usability; just, "here's how far I got, maybe someone else will find the leftovers useful"
11:06:05
no-defun-allowed
I used to also have a prototype of that. I'll check tomorrow morning if it's still there, but it wouldn't be so useful.
11:07:33
adlai
the actual problem, for which a websocket client is necessary, is synchronization of exchange order books; I'm unaware of any datastructure library that offers structures specifically for storing such data, although perhaps there's a gaping hole in my so-called education.
11:08:44
adlai
ACTION has been using a regular cl hash table, keyed on prices, which is good enough for sleepy markets; will almost certainly be a bottleneck for the busier markets.
11:09:29
no-defun-allowed
But, to be fair, I can't think of any changes I would make to the design of websocket-driver.
11:10:39
no-defun-allowed
adlai: My own concurrent-hash-tables could push back the limits somewhat, but I don't know your usecase well enough to say if it would be a bottleneck.
11:11:11
no-defun-allowed
Well, if you want a faster hash table, but perhaps there's another data structure that fits your queries better.
11:11:56
no-defun-allowed
And if you need concurrent access. I saw "synchronisation" and got excited - perhaps you don't need it at all.
11:13:24
adlai
concurrent access is almost a hard requirement, in the long term, because market participants should be considering the arbitrage opportunities between multiple trading locations; in the short term, I have specifically limited myself to first operating only within one centralized market at a time, so it is not a requirement yet.
11:14:30
adlai
ACTION is terribly ambitious; the hoped time for scalpl to return to ql:quickload levels of usability is a decade, and the expected - probably closer to three.
11:30:18
adlai
it seems that the nicest way to heat the universe with flailful searches through #lisp's history is by locally combing through a copy of whitequark's db.
13:51:36
flip214
has someone cl-yaml working in windows? for me the self-tests crash already (with sbcl 2.0.11)
14:19:17
flip214
phoe: when loading a 1200 byte file it says "invalid octet at 420000000" or something to that effect
14:28:43
phoe
jmercouris: the original LISP had a thing called LABEL that was basically a named local function
14:29:25
phoe
labels were able to refer to one another; flet is just let except in the function namespace
14:32:13
pfdietz
I want to expand sets of patterns to methods, but I can't do that in a flet-like way.
14:32:16
jackdaniel
every person who looks at your code will wonder what is fletrec and why it was introduced
14:32:42
jackdaniel
and the explanation "I don't like the standard operator name" isn't a very convincing argument
14:34:52
Nilby
I think most these decisions were argued to death in the 10 or so years of the CL committee, balancing for compatibility and aesthetics. I think one can still read the the old mailing list and the committee notes.
14:44:11
jackdaniel
no, I'm just making a joke regarding "impact" of the discussion whether you like caddddr or not (n.b, using such operations is discouraged in norvig's style guide, and in numerous other places)
14:51:10
jackdaniel
however it doesn't buy you much because you need to traverse the list (instead of modifying the last cons)
14:51:50
jackdaniel
with the cmu's collect macro you have the collecting decoupled from loop, so you may collect "anywhere", but that's another story
14:53:08
jackdaniel
(there are multiple derivatives and copycats of this macro in quicklisp, i.e in the cl-collectors library - I think that this was its name)
14:53:55
jackdaniel
either something with scoping or with multiple collections not working as expected, so I'd rather discourage from using it
14:58:10
Nilby
I don't know what optimizations loop does, but isn't it better just to push and nreverse at some point?
15:00:14
pfdietz
The rplacd approach uses a dummy head cons cell, but that can be stack allocated w. dynamic-extent.
15:02:57
splittist
phoe: thanks. How do I use that to look for, e.g., command line processing libraries?
15:04:55
Bike
pfdietz: the thing with generic-flet is that defining and undefining methods later is less relevant, and that's a lot of the appeal of clos. if your set of methods is static, can't you just use typecase?
15:05:59
phoe
splittist: I have no idea, actually. how would you do that with quickdocs? AFAIK it only gave you autogenerated documentation
15:09:29
splittist
phoe: thanks. (I have you in my headphones talking about control flow, too. Strange feeling.)
15:21:53
Nilby
splittist: I got results of (apply-argv cl-cli cli-parser net.didierverna.clon.core command-line-arguments configuration.options-source-commandline hu.dwim.util/command-line com.google.flag ufo unix-options unix-opts utility-arguments) from an older quicklisp dist.
18:50:13
phoe
#lisp is about mostly-on-topic Common Lisp discussion, #clschool is about learning Common Lisp, #lispcafe is a mostly-off-topic hangout
19:00:35
aeth
"Lisp" can mean "Common Lisp" (e.g. the .lisp extension) or it can mean "the Lisp family of languages"
19:01:22
aeth
There aren't really a lot of Lisps that aren't something else more than they're Lisp (e.g. Schemes) so it's not particularly useful to talk about Lisps as a whole.
19:02:43
aeth
Common Lisp is called "Common" Lisp because it should be able to run most historic Lisp programs (including Emacs Lisp, which is intentionally archaic, even though it came after Common Lisp) with very little, if any, modification.
19:03:56
aeth
Most other Lisps represent a radical break in compatibility, with the possible exception of Scheme, which still renames practically everything.
19:05:57
aeth
For perspective, sometimes people come here with Emacs Lisp questions and it takes a while to find out that it's not in fact a question about Common Lisp code.
19:28:24
jmercouris
any way to do some operation like 'push' but where I can actually individually push all the elements?
19:30:06
Bike
jmercouris: i mean, push is just setf x under the hood. you can use define-modify-macro to get appendf, or else i think alexandria has it
19:30:58
Bike
...er, would that work, or would it try to modify the quoted list? maybe that wouldn't work
19:35:50
adlai
jmercouris: I realize your example for this was only an example; however, I hope that you are aware that all these examples modifying quotes structure are undefined behavior.