freenode/#lisp - IRC Chatlog
Search
16:18:31
Demosthenex
ok, so i've in the past used R for simple graphing and stats. i recall seeing (but cant find) a post on reddit that said CL could do all the same stuff with some library. does anyone have a recommendation?
17:07:40
edgar-rft
Demosthenex: if I know this right then XLISP-STAT was one of the predecessors of R and there had been several attempts to port XLISP-STAT to Common Lisp, for example https://github.com/blindglobe/common-lisp-stat
17:08:50
edgar-rft
if that's not what you're looking for see here for alternatives https://www.cliki.net/site/search?query=statistics
17:28:51
Josh_2
How do I convert a string like this https://plaster.tymoon.eu/view/1580#1580 to a list?
17:34:34
pfdietz
Also, use jsown. It's much faster than cl-json, even if you have to intern some of the names yourself.
17:34:37
phoe
and if you want to be super paranoid, set *PRINT-READABLY* to T in case you get an unreadable object
18:11:11
Demosthenex
edgar-rft: yeah, in R i use more the plotting library ... i don't do deep statistics.
22:03:30
no-defun-allowed
If you are going to use jsown, I would strongly suggest you go into the sources and change every (declaim (optimize ... (safety 0) ...)) to (safety 1) at least, because you will get some very strange conditions if you make a mistake otherwise.
22:08:57
phoe
does the standard actually guarantee that top-level DECLAIM OPTIMIZE settings do not leak out of the currently compiled file?
22:10:00
no-defun-allowed
"As with other defining macros, it is unspecified whether or not the compile-time side-effects of a declaim persist after the file has been compiled."
22:10:44
no-defun-allowed
I'm not good at reading CLHS-ese, but I think this means there's no guarantee.
22:14:28
no-defun-allowed
Can't say, but it's still incredibly impolite to use (SAFETY 0). I had to spend a good half hour debugging with a friend because we got memory faults by giving it the structure (:obj ((a . b) ...)) instead of (:obj (a . b) ...)
22:26:29
no-defun-allowed
(EVAL-WHEN is one of the parts of CL I don't get, so I think you should wait for someone more knowledgeable to answer.)
23:06:12
aeth
no-defun-allowed: yet another piece of evidence that every JSON library for CL that I've heard of is awful
23:07:16
aeth
For whatever reason, every JSON library looks to me like an irredeemable failure that fails to understand either CL or JSON. I've ranted about that before here, though.
23:31:35
no-defun-allowed
aeth: I have a *very* large JSON file I want to analyse, so I will probably have to make my own with some kind of "stream"ing.
23:32:28
no-defun-allowed
And I remember jsown didn't understand some part of the \u syntax until recently, FWIW
23:44:21
jfrancis
I got almost three years into a work project using cl-json before hitting a missing feature that forced me to jsown. That was six months ago, and I still haven't gotten around to re-writing all the cl-json stuff with jsown. I just have one single file that uses jsown instead of cl-json. Every time I look at that project and compare it with all the features I have yet to complete, it moves further and further down the list of priorities.
23:45:00
jfrancis
Which is why good software projects have project managers, to force stuff like that up to the top.
23:47:44
White_Flame
of course, that's also why having application-specific functions which wrap your libraries are also good
0:14:15
Josh_2
I keep getting the error bad-file-descriptor when calling socket-accept on my listen socket, the fd is -1 for some reason
0:17:59
aeth
jfrancis: Well, I think you brought up a good point with project managers, but most people do CL on their own time, in which case the problem is motivation, so the order to do things in imo kind of reverses. Instead of building a solid foundation of libraries and then the application, you need to get a MVP of the application/library done as quickly as possible to maintain motivation. At least, imo/ime.
0:18:22
aeth
So it doesn't surprise me that people work with an 80% good-enough JSON library instead of writing a perfect fit one, even though 80% good-enough isn't actually good enough.
1:28:55
lavaflow
from what I understand common lisp doesn't guarantee tail call optimization in every scenario, but does it in any specific circumstances, like a procedure invoking itself in the tail position?
1:29:42
lavaflow
I'm reading land of lisp and some of the examples have procedures invoking themselves in the tail position to loop. I thought that was a scheme-ism
1:34:05
Xach
lavaflow: implementations might convert calls like that in some circumstances but nothing is guaranteed by the standard
1:38:21
PuercoPope
no-defun-allowed: an alternative to modifying the sources, if you use SBCL, is to restrict the compiler policy. ie. (restrict-compiler-policy 'safety 1)