freenode/#lisp - IRC Chatlog
Search
6:53:13
fbmnds
I guess, some traffic has been generated https://gitlab.com/eql/EQL5-Android/-/issues/17
8:32:10
minion
seok, memo from phoe: traditional DBs often use indices to speed up searches and avoid full loops over tables, so it is possible that an in-memory linear iteration over a whole table is going to be *slower* than database access that is logarithmic or better - that's a data structure problem
8:33:46
phoe
seok: I just found an article on Hacker News yesterday that sounds really related - https://blog.dbi-services.com/the-myth-of-nosql-vs-rdbms-joins-dont-scale/
8:34:31
phoe
tl;dr you can define where indices should be created by the database, and that allows the DB to avoid full table scans. that's off-topic for #lisp, but that article should give you pointers and search keywords for future digging up
8:35:05
phoe
this article also compares SQL databases to NoSQL databases a little bit, and in-memory key-value stores are a form of NoSQL - hence further relevance to your topic
9:15:20
pve
Hi, is loading a source file equivalent to binding *package* and *readtable* and then doing roughly (do-until-eof (eval (read file-stream)))?
9:18:35
jdz
There are also *load-pathname* and *load-truename*, and interaction with EVAL-WHEN I'm not quite sure about.
9:19:05
pve
beach: my toy language has a load-source-file function, and I was just considering how similar it is to CL:LOAD
9:25:38
pve
I'm now at the point where I can compile and load source files into my running lisp with C-c C-k, so I'm pretty happy with that
10:10:17
dim
seok: about database vs lisp objects, the main question is about concurrency behavior. how do you intend to approach concurrent edits to the same objects from multiple threads? can you run more than one lisp image with the same dataset? that's where a database solves many problems, concurrent accesses to a single data set, with business guarantees (constraints), and then ACID is a nice set of properties to have, and all falls down from there, including SQL
10:11:10
dim
SQL allows to send computations where the data is and in a way that remains ACID compliant, and makes it easy enough to reason about etc
10:11:40
dim
seok: if you have a solid answer then it's all good, I'm trying to say that this is the main question you should consider here, in my opinion
10:12:23
dim
sorry about that, but yeah, sure, it took only years and years of very hard work from very talented people to implement ACID, and almost all implementations of it are buggy in different ways
10:12:52
dim
seok: if you think ACID isn't so difficult, may I suggest you spend some quality time reading https://jepsen.io ?
10:13:52
dim
if you can understand this article on the first read, then maybe you can implement your own acid needs yourself, otherwise I personnaly would not even try: https://jepsen.io/analyses/postgresql-12.3
10:15:05
seok
I agree with what you are saying that there are certainly bug-prone areas for a general solution database accommodating multiple read write clients,
10:15:10
dim
anyway, I got triggered with database vs internal in-memory objects, the trade-off is all about concurrency, that's my message ;-)
10:17:50
dim
PAIP has nice chapters all about solving search problems in lisp, including writing a prolog interpreter from scratch and then a compiler to optimise it
10:24:06
Harag
seok: I run 10 mil records in a in memory database on sbcl no problem and searches can be done in sub seconds on 10 mil
10:51:34
red-dot
Hola everyone. For those using gitlab.commonlisp.net: is there something special you need to do to fork a repository? All the fork buttons are greyed out for me.
11:00:44
red-dot
That's interesting. It looks like there are 0 forks of all the projects I looked at. Are forks disabled on gitlab.commonlisp.net? If so, how to people contribute improvements?
11:04:48
|3b|
https://gitlab.common-lisp.net/alexandria/alexandria and https://gitlab.common-lisp.net/asdf/asdf seem to have forks, though not sure how to see it on those pages
11:07:15
phoe
you can't fork because your default repo limit is at 0; AFAIK that's an unfortunate implication of spambots having it really really hard on clnet's gitlab
12:21:35
_death
ebrasca: do you mean something like https://github.com/stassats/lisp-bots/blob/master/colorize.lisp ?
12:24:21
phoe
if it's able to highlight stuff like https://plaster.tymoon.eu/view/1944# then it must use something for that
18:00:24
aaaaaa
Hi all. how do you serialize data to file? I just want (1.2) to be stored like the "(1.2)" string. and read it back then. I saw this in some lisp/scheme textbooks, but forgot.