freenode/lisp - IRC Chatlog
Search
11:18:02
Demosthenex
maybe i need to wrap my final code in a main function, and then only call that when i use --script
11:40:41
Demosthenex
is there a way i can say "call (main) only if called from sbcl --script, ie: not sly?"
11:45:26
Nilby
But perhaps it's best to put whatever you want to do only interactively in separate function.
13:46:18
rumbler31
Xach: I don't know if this would be useful to have in quicklisp, but I wrote a function to copy a single local project into the bundle directory. Problems that I see with adopting it are that I don't yet account for dependencies that might need to be pulled in from other local projects, and discovery of the bundled location on the user's behalf (which might be impossible)
13:46:34
rumbler31
the goal is to reduce the amount of code that makes it into the bundle, I don't want all of my local projects to get pulled in
13:51:37
rumbler31
I'm not in front of the code but I think I use asdf to find the named package locations, make pathnames for each of the .lisp and .asd files found in that directory to the location of the bundle/local-projects/myproject folder and does a uiop file copy
13:54:47
Xach
rumbler31: I'd look at what ql-minitar does, I think, except copying from filesystem files rather than a tar stream.
13:56:26
brandflake11
Hello all. Have you worked with extremely large datasets in lisp before? I'm trying to load in a huge list to use with lisp (800000+ lines), but it seems like sbcl freezes everytime I do that. Do I just have to wait for it to load in, even though sbcl says it's not taking any cpu? What has been your experience with large datasets in lisp?
13:56:56
Xach
brandflake11: sometimes the freeze is when it tries to print the result, not loading or working with it. one option is to set *print-length* to something like 100.
13:57:21
Xach
brandflake11: using too much memory results in a different symptom (landing in ldb or crashing outright)
13:58:48
Nilby
I've used much bigger datasets and the important thing is set --dynamic-space-size high enough, and don't print it.
13:59:24
brandflake11
Nilby: I don't know anything about dynamic-space-size. Do you set this when loading sbcl, or can you set it with a global variable?
14:01:26
phoe
CLHS says, "If [*PRINT-LENGTH*] is false, there is no limit to the number of components printed."
14:01:53
brandflake11
Oh, I didn't know the hyperspec had info about global variables that are important.
14:07:18
brandflake11
Nilby: I took a .csv file and converted it into one big list of lists to then parse out later as OSC commands. At this point in my lisp journey, it seemed like the simplest option.
14:08:03
brandflake11
But I'm still having trouble getting the list to even load. I need to try to dynamic-space-size option
14:08:46
phoe
brandflake11: how does it hang? if you're using slime/sly, check the inferior-lisp buffer
14:08:59
phoe
maybe you need more heap to be able to load this much at once, if you get an error about heap exhausted in there
14:09:35
beach
brandflake11: 800000 lines doesn't sound like much, depending on what a "line" is of course.
14:10:48
brandflake11
phoe: You are so right, I get this "Heap exhausted during garbage collection: 48 bytes available, 64 requested. "
14:11:26
jdz
Also it might be a good idea to process lines as they are parsed from the file (say by providing a callback function to run on each parsed line) instead of doing it in two stages.
14:13:11
brandflake11
jdz: Well, the list is a dataset with times of events and the events themselves. So, I want to be able to replay these events in order
14:17:07
jdz
I use a couple tricks when doing this on SBCL: a) if the text does not have any unicode characters coercing each line into SIMPLE-BASE-STRING, and b) if there are fields that may have duplicate (string) values longer than 8 characters then using a hash-table to de-duplicate them.
14:17:51
brandflake11
When doing this option with slime, do you just set the option in emacs's inferior-lisp-program variable?
14:18:53
phoe
brandflake11: my elisp variable, inferior-lisp-program, is "ros dynamic-space-size=8192 -Q run"
14:19:59
Nilby
I just tested reading a 800+k line 217.3M csv with the naive list reader with --dynamic-space-size 4096 and it was fine. (The slow part is guessing the column data types)
14:20:43
brandflake11
I just set it to "/usr/bin/sbcl --dynamic-space-size 2048". I'll see what happens
14:22:13
brandflake11
lol, I have a fast internet connection, downloading more ram should be no problem XD
14:25:20
brandflake11
I get DYNAMIC-SPACE-SIZE is unbound, so I'm guessing setting it where I did with the emacs variable didn't work
14:28:28
brandflake11
Oh man, I'm glad you all helped me with this. I would not have been able to figure this out on my own
14:30:23
brandflake11
I was really worried lisp just wasn't able to handle huge datasets, but i'm glad that it was just a matter of increasing the ram allowed to it
14:30:56
beach
brandflake11: Either way, it would not be a language limitation, but a limitation on specific implementations.
14:32:03
beach
brandflake11: Also, it is not RAM that you are assigning, it is just heap size. If you have virtual memory, that would work too, but more slowly.
14:32:28
Nilby
There is even hope on the horizon that sbcl will be able to increase it's own memory.
14:35:46
beach
ldbeth: Probably not. You would somehow have to teach the garbage collector where to find it. Plus, the way a lisp object is represented is not standardized.
14:37:39
brandflake11
I just got the database list assigned as a variable. You guys all rock. Thank you so much for the help and teaching me something
14:39:37
jcowan
back to numeric representations: in Scheme, #e forces a float-style syntax to be implemented as an exact number: thus #e1e20 is the integer 1^20, and #e1.5 is 3/2.
14:40:50
jcowan
Note that this is not just a coercion: 1e400 is normally infinity, but #e1e400 is the integer 10^400.
14:41:14
phoe
I don't think there's a standard CL way other than #.(* 1 (expt 1 20)) for integers and #.(rational ...) for ratios
14:44:11
brandflake11
Nilby: maybe I did something wrong. I got it all loaded in though, so that's what I'm happy about
14:46:42
brandflake11
Maybe I should just use cl-csv instead now. I couldn't get that to load in the .csv file (I didn't know about checking *inferior-lisp* buffer to see that the heap was too low) so I turned the .csv into a list of lists using bash sed.
14:48:55
brandflake11
("0.000000" "1" "68" "92.45.54.178" "10.50.209.134" "" "" "" "" "" "116" "UDP")
14:51:22
beach
For example, if you have lots of empty strings, then the reader will allocate a separate empty string for each one. That could become quite wasteful.
14:53:10
beach
You could do that, but if you do it after the thing is read, then you still need as much space, at least temporarily.
14:57:46
beach
brandflake11: When I asked about duplication, I didn't necessarily mean the full list in your example, but also individual elements such as "1" or "10.50.209.134".
14:59:17
brandflake11
beach: I'll look into hash tables. I have never used a hash table before. It's not hard to grasp is it?
15:00:15
beach
brandflake11: Does your file consist of a single huge list, where each element is a list as in the example above?
15:01:35
brandflake11
beach: It's pretty much my first serious programming language. I am from the Music and Composition and Linux world, where I learned pure data as my first language. I learned a little bit of C++ on my own time last year, and then discovered common music, which brought me into common lisp. I love the syntax and realtime feeling of common lisp, so I've been learning it now to do other stuff
15:02:35
phoe
wrt books, you might want to read either Gentle or Practical Common Lisp; I'd recommend that you start with the former, and if you find it too gentle indeed, then switch to PCL
15:02:42
minion
brandflake11: look at gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
15:02:46
minion
brandflake11: please look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
15:03:12
brandflake11
phoe: Oh yeah, I've gotten to chapter 3 of practical common lisp (not very far I know). I need to keep working at it
15:03:38
brandflake11
Actually people on here recommend I read Practical Common Lisp. It was all thanks to this IRC channel!
15:03:39
beach
brandflake11: Then, what I would do would be to not read the entire thing with a single READ, but to read one element list (as in your example) at a time, then process it by checking whether an element is in a hash table, and if so, reuse it.
15:04:45
brandflake11
beach: Thank you I really appreciate your suggestion. I'll look into doing that to reduce memory
15:04:48
phoe
in my opinion, PCL chapter 3 goes straight into business without explaining that the first practical chapter with disc DB is likely not meant to be fully understood straight away and is rather meant to give the reader an overall feeling of how to work with the language
15:05:14
phoe
it's the only explanation I see for "chapter 3 is where we make a database, and chapter 4 is where we actually start explaining what we've done"
15:05:44
brandflake11
phoe: I stopped reading it because I was more interested in making music with Common Lisp. I've been reading Heinrich Taube's "Notes from the MetaLevel" at the moment instead to get more music making done
15:06:15
brandflake11
phoe: Thank you though, I plan on keep going with it. I want to be able to do cool stuff with lisp
15:08:06
brandflake11
phoe: There is a version of Common Music that integrates a realtime midi out using incudine. That's the version I'm using now
15:08:47
brandflake11
I'm able to use emacs as my music composition tool, which is really cool and spit out midi through jack to my synths and other toosl
15:50:21
kevingal
I've had this in my bookmarks for ages, been meaning to try it out: https://nunotrocado.com/software/cl-collider-tutorial-1.html
17:55:29
CL-ASHOK
How do I "minimise" emacs terminal? I'm trying to run a Hunchentoot process, but want to return to the terminal (this is on a VM)
17:58:04
CL-ASHOK
@xach: what is that? (I'm currently remote into a Google VM with the non-gui emacs)
18:04:01
Bike
it's not as sophisticated, but you could also suspend the emacs process with probably control z
19:56:42
nij
Hello, is there any functional "package manager" (or rather, system manager) for common lisp? I'm thinking of it as an analogue of straight.el (for elisp).
19:58:35
Shinmera
nij: what does it mean to 'reproduce all systems'? Download them? Load them into the image?
19:59:03
nij
For example, straight.el lets you do this : (el-patch :type git :host github :repo "raxod502/el-patch")
19:59:30
Shinmera
just put (ql:quickload '(a b c)) into a file then or is that not declarative enough
19:59:41
nij
With this in a declarative file, which is run by the package/system manager, the corresponding package/system will be fetched.
20:01:05
Shinmera
No, quicklisp packages snappshots of the ecosystem so that all the libraries are versioned as one thing at once, since usually systems do not specify versioned dependencies.
20:01:06
nij
E.g. I might want ql to fetch the system from a specific repo (maybe even local!).. and I might want a specific version/commit.
20:02:22
Shinmera
ASDF cannot deal with knowing multiple versions of the same system at once. It'll only accept one.
20:02:22
waleee-cl
nij: if you put it in ~/common-lisp or the appropriate subdir of ~/quicklisp it will be preferred
20:02:42
Shinmera
So you'll have to either manage the system registry manually, or replace ASDF wholesale.
20:04:00
Shinmera
I want to do the latter at some point and have some fun ideas for it, but am wholly lacking in time lately.
20:04:57
waleee-cl
there's https://gitlab.common-lisp.net/clpm/clpm but that still uses quicklisp atm
20:07:18
Shinmera
nij: then either it breaks at compile time and quicklisp won't release a new dist until it's fixed, or it breaks at runtime and users will complain until it's fixed.
20:09:11
nij
Wow. So suppose A is what many things depend on.. say Alexandria, and say one day A upgrades.
20:09:29
nij
If one single system doesn't upgrade accordingly, quicklisp won't accept the newer Alexandria?
20:11:20
Lycurgus
https://gitlab.common-lisp.net/clpm/clpm Supports HTTPS, what is that saying about ql ?
20:12:32
nij
Well.. I guess all sorts of package managers suffer from the same issues - except things like nix or guix.
20:13:05
nij
So this model has been working for years. I shouldn't say it's so wrong then :-( My apology.
20:13:35
Shinmera
nij: It's not great, but it's the best Xach can do with the ecosystem we have (particularly ASDF)
20:14:42
fiddlerwoaroof
I also like that this model encourages people to not make breaking changes :)
20:15:12
fiddlerwoaroof
My personal policy is to fork and rename rather than push a breaking version
20:15:57
fiddlerwoaroof
In the JS world, there's so much useless time spent fixing breaking version changes
20:16:19
fiddlerwoaroof
Very few breaking changes are actually worth it, if you account for the cost to your users
20:16:55
fiddlerwoaroof
When I pin a guix/nix version, I'm opting out of bug-fixes and security fixes
20:17:56
nij
And in the classical model as well.. say in the case of ql, if no releases is given, bug/security fixes are out of reach too.
20:19:17
fiddlerwoaroof
What I mean is just that, if library authors rename rather than introduce breaking changes, updating libraries becomes relatively safe
20:20:33
Shinmera
This assumes that packages are actually self-contained and don't have changes that influence other parts
20:21:38
Shinmera
fiddlerwoaroof: a system can affect other parts than the packages it declares and modifies though.
20:21:41
fiddlerwoaroof
Cool, yeah: two systems modifying the same Lisp package seems like a bad practice
20:22:39
fiddlerwoaroof
Yeah, actually implementing this completely ranges from difficult to impossible, but I think it's useful to approach distributing libraries with this mindset
20:23:38
fiddlerwoaroof
I think Rich Hickey's ideal world involves something like a spec/test registry inside your library manager (QL, or such) that rejects updates that cause existing tests/specs to fail
20:24:09
Shinmera
mfiano: for instance systems can offer generic functions to extend, or hook lists that another system might latch on to. Just making two packages won't resolve the conflict, then.
20:24:16
fiddlerwoaroof
So, quicklisp would refuse to update a package unless all the pre-existing tests past, as well as any newly added tests
20:24:40
Shinmera
Anyway, the point being that it's not always that easy to allow multiple versions at once.
20:25:37
fiddlerwoaroof
Every change to the code of an existing symbol is backwards compatible and backwards incompatible changes force a rename
20:27:03
fiddlerwoaroof
There's a summary and link here: https://news.ycombinator.com/item?id=19076444
20:27:16
fiddlerwoaroof
"any breaking change (i.e. a major version bump in semver) might as well be considered another product/package/lib and should better choose another name instead of pretending to be the same thing with a bumped number."
20:28:24
fiddlerwoaroof
Whether or not this is practical, it's extremely appealing for someone who's dayjob is all JS/React stuff
20:29:31
fiddlerwoaroof
Also, I think people who force themselves to always keep their dependencies up to date find themselves rejecting libraries that exhibit a pattern of breaking changes
20:30:04
mfiano
My solution it the Lisp curse. I rarely find libraries that are production ready/suitable for my needs, so I write my own :x
20:31:06
mfiano
Not good at understanding someone else's thought processes with heravy macros and protocols that I would have never designed.
20:31:30
mfiano
Lisp is tyoo flexible in that it has a larger burden for onboarding new collaborators due to that
20:32:08
fiddlerwoaroof
A lot of people I've worked with are really unwilling to take a dependency because of the ongoing maintenance cost the dependency's lifecycle imposes
20:32:30
tom-bsd
Hey guys. I'm on FreeBSD trying to install some quicklisp libraries with SBCL and it gives me errors like `Can't create directory /usr/local/lib/common-lisp/alexandria/sbclfasl/`. It's probably a permissions problem but isn't there a way to install these libraries to my home?
20:32:34
fiddlerwoaroof
mfiano: yeah, although I tend to find that just forcing myself to fix the problem I find in a library really helps
20:34:42
mfiano
My software is always pre-0.1.x, use at your own risk. Mostly because gamedev and support libraries are hard.
20:35:42
fiddlerwoaroof
It's a choice between an ongoing maintenance cost for in-house tools, or an ongoing maintenance cost whenever some random person decides to update the tool
20:39:06
tom-bsd
Odin-: quicklisp is installed locally but loading libraries complains about making the aforementioned folder
20:39:11
no-defun-allowed
Imagine complaining about flexibility and being able to do things yourself, this meme made by "who the fuck actually believes in the Lisp 'curse' lmao" gang
20:39:16
mfiano
That was requersted by Xach and phoe iirc. I don't mind I guess, but I'm not interesting in developing for others. My code is MIT and anyone can use/fork do whatever, and I don't have to "fix" it for their strange use cases
20:41:43
mfiano
I liked it best when I wrote code before code on the internet was a thing. Nobody likes my code, but I do, so problem solved.
20:43:18
mfiano
yes usually CL, though not currently, but i heard a clojure contract is coming my way soon.
20:44:46
mfiano
Maybe one day when I actually make something usable, complete with offline documentation, manuals, books, etc, I'll publicize my stuff.
20:44:46
moon-child
I don't think the 'lisp curse' thing is _incorrect_, strictly, it just reflects a perversion of sensibilities and morals
20:44:50
fiddlerwoaroof
no-defun-allowed: but it was based on "The Bipolar Lisp Programmer" by Tarver
20:45:40
fiddlerwoaroof
My read on Tarver is that he bought into stuff thinking that it would mean he would get free work on Qi/Shen and then got really annoyed to discover that using the GPL didn't mean that people would be interested in his project
20:46:32
no-defun-allowed
My own (actual) argument is that for any progress to be made any time soon, you do in fact need to produce half-assed prototypes, and only from there is it reasonable to start talking about a common design based on what information you have.
20:46:35
mfiano
Rich Hickey did make one point that has always stuck with me. Most programmers, and especially Lispers, are too focused on code, and not the artifact. Does the code matter if it doesn't provide something innovative or to fill a niche in computing?
20:47:30
fiddlerwoaroof
90% of the code I write I write because it solves a problem I or the company I work for has
20:48:15
no-defun-allowed
So the faster I can crank those out the better. But it's also falsely applied when two projects have similar but incompatible design goals, which annoys me further.
20:48:25
fiddlerwoaroof
I think treating "filling a niche in computing" this way has a tendency to create projects that never actually finish
20:49:42
no-defun-allowed
For example, one very clever HN poster complained people made too many array processing libraries. To pick two arbitrarily: one uses lazy arrays which you must manually force computation of. One is feature-compatible with numpy. The latter precludes the former, so it is nonsense to say they are redundant.
20:50:50
fiddlerwoaroof
Because the developers of alexandria are really picky about the code they accept
20:51:30
mfiano
fiddlerwoaroof: I am perfectly fine with that. I program to learn, not to create. But I'm not focused on designing new macrology usecases, MOP, or other meta-programming. My current project is roughly 40kloc, and all my brain power is whiteboarding and cranking out code I need for the artifact, not how I can bend the language with more yaks
20:52:26
mfiano
I would be doing it in any other language if some dude 20 years ago didn't rip Python out of my hands to show me that CL was better at RAD
20:52:55
no-defun-allowed
And I think that to make a library which supports both, you would need people aware of compiling either. But if APL implementations weren't doing lazy computation behind the back, or we picked something completely new, I doubt the magical utopia where everyone does one library per concept would have ever discovered that it might be useful.
20:53:29
fiddlerwoaroof
Yeah, I've never understood the desire to have _a_ array programming library
20:53:34
no-defun-allowed
Odin-: That continues to the "wheels in the head" point, so on and so forth.
20:54:40
fiddlerwoaroof
I'm just going by the README: https://gitlab.common-lisp.net/alexandria/alexandria
20:55:24
no-defun-allowed
(Then for the actually hard stuff, e.g. compiling pattern matching, you still have few people attempt to do it well, and so there is still approximately 1 pattern matcher used in CL. I'm just remembering what I wrote in the book.)
20:55:35
fiddlerwoaroof
The developers of alexandria seem generally committed to a no-backwards-incompatible changes philosophy
20:55:47
mfiano
It was rewriting LERP to use the numerically stable method (at the cost of an extra multiply, which smart compilers could fuse it, so the precision is well worth it)
20:57:04
fiddlerwoaroof
Pattern matching, like CASE and friends, is a static dispatch technique, and I generally try to use dynamic-dispatch wherever possible :)
20:58:13
Odin-
no-defun-allowed: I'm just always a little interested in how people seem to simultaneously consider software development to follow completely different rules from other productive activity and expect it to function exactly the same.
20:58:52
no-defun-allowed
Sure, I am not making a comment on pattern matching though, but there are a few methods to compile it, and they require some effort to make. You can make the language bend as much as you want, but the algorithm has to get in there somehow.
20:58:54
fiddlerwoaroof
This might be a sign that I learned to program from 90s books about OOP, but I have an aversion to conditionals that can't be extended without modifying the code
20:59:02
mfiano
eric normand gave a good talk last week about the wrong direction software development is taking, and i have agreed with that for a good 10 years
21:00:54
fiddlerwoaroof
mfiano: one really clarifying thing for me about Lisps/FP/etc. was listening to the episode of Cognitect's podcast featuring Matthew Flatt (of Racket fame)
21:01:33
mfiano
I am not familiar with it, but given the number of talks I've seen on FP and the like, and my short-term meory, that isn't surprising
21:01:50
fiddlerwoaroof
At one point the host just sort of asserted the Clojure dogma `data > functions > macros` and Matthew Flatt responded, "actually I think functions > macros > data"
21:03:09
fiddlerwoaroof
Clojurians like to say "try to solve a problem by representing it with data, then use functions if that doesn't work and finally use macros"
21:03:54
fiddlerwoaroof
I've come to think that one should almost always prefer functions and macros to data representations (especially raw data literals in code)
21:04:11
no-defun-allowed
I found this excellent rule engine called EVAL, you should totally use it with...data yes that's data
21:04:36
fiddlerwoaroof
My experience is that a codebase built around domain-specific abstractions ends up being much more maintainable long-run, than a code base built around data
21:05:37
fiddlerwoaroof
Because when you need to make an architecture change, you don't have to spend as much time tracking down data dependencies, you just re-implement the abstractions
21:06:28
mfiano
Maintainable code comes from understanding the domain. How you use the constructs available matters less.
21:07:16
fiddlerwoaroof
I don't think that's really true: your understanding of the domain should be reflected in the language you build to write your software
21:07:50
fiddlerwoaroof
Domain knowledge should, almost always, be reified into the constructs of your programming language so you can program in the language of your domain
21:08:35
fiddlerwoaroof
Not following this principle creates huge messes for the people that maintain the code
21:09:21
no-defun-allowed
Something rubs me the wrong way about using maps and sequences for everything. Maybe I don't do the kinds of problems where those are fine.
21:09:52
mfiano
The point is general purpose abstractions, like design patterns as they are called in other languages, are just usually the result of one caring too much about the code and not how it should be structured for your domain. Maintainability just sort of falls out from a deep understanding of your field/and lots of whiteboarding.
21:10:06
fiddlerwoaroof
The biggest issue is you create an implicit dependency between line 40 with {:a 1 :b 2} and line 80 with {:a 1 :b 2}
21:10:21
no-defun-allowed
(Though for it to be "everything", we should define #{} to be 0, #{#{}} to be 1, so on and so forth.)
21:11:34
fiddlerwoaroof
mfiano: I agree with that, I just think saying "how you use the concepts available matters less" misses the point: understanding the domain is not enough, you need to write code that reflects your understanding of the domain
21:11:46
mfiano
There are whole periods of weeks where I can't write code because I'm still understanding the math, logic and how it all permutes to be written in a maintainable fastion. POD, mixins, design patterns...none of that matters until the domain is well understood
21:12:29
fiddlerwoaroof
Yeah, I'm sort of the opposite: I can't understand the domain without having a repl open to mess around with
21:13:41
mfiano
I've had to work on serious projects professionally where we couldn't afford to make these types of mistakes that arise from "just coding"
21:14:01
Odin-
There are still people who think there's really something called "plain text" in computers.
21:15:03
fiddlerwoaroof
It's just that I find iterating with prototypes designed to explore one corner of the search space ends up being more efficient than trying to think through the domain
21:16:25
TMA
I have an experience that is in the middle between fiddlerwoaroof and mfiano. there is the exploration to learn something of the domain, which is usually ill specified and therefore not available with a priori reasoning alone
21:17:14
TMA
but there is also the need to pause and whiteboard, to build the model in the head prior to coding
21:17:38
fiddlerwoaroof
TMA: yeah, when talking about these things I find that I occasionally express a position that sounds more extreme than it actually is
21:18:34
fiddlerwoaroof
I do spend time whiteboarding/learning, I just have also had the experience of a project where we spent weeks planning only to discover that what we thought was possible wasn't
21:19:31
fiddlerwoaroof
Or, in one case, a team insisting on like a month of onboarding training before I was allowed to write code
21:19:55
fiddlerwoaroof
Most of which was basically useless because I didn't really understand the context until I tried to change the code
21:20:50
mfiano
I could write a whole book on debunking the ECS paradigm some time...and I probably will. It amazes me how people flock to shiny things that just shift the shift the complexity around (and add new issues because they hadn't considering their design may require a new architectural model coupled to the domain.
21:21:50
TMA
mfiano: I will refrain from ignoring your opinions, if I may. There is certainly much to be learned, even if there are minor corrections to be applied.
21:22:09
no-defun-allowed
I still need to write my implementation of "ECS" using CLOS for serial parts just to spite someone. But I forgot who I'm supposed to be spiting.
21:22:54
Shinmera
ACTION wonders if he could find a way to use no-defun-allowed's time for his own projects by coercing her into spiting him for something
21:23:32
mfiano
A true ECS is impossible anyway, so can only go so far before you have stateful code
21:24:21
no-defun-allowed
Sorry, I have a waiting list of about three months, if you wouldn't mind writing your name and project down here then I'll get back to you then
21:25:04
fiddlerwoaroof
no-defun-allowed: it sounds to me like you're just saying we have to make you angry enough
21:26:43
nij
If I get a cl system from guix, how do I load it? QL:QUICKLOAD doesn't look at those paths by default after all.
21:27:15
no-defun-allowed
mfiano: Right now, I just finished the first part of redoing my regular expression compiler, which was to use (and debug) someone else's technique for submatching with a DFA. Next is to add a protocol for letting the client provide optimisations (e.g. optimising constant string searching). Then I have to look after two lock-free hash table implementations.
21:27:35
fiddlerwoaroof
nij: you have to figure out how guix expects you to configure ASDF's registry
21:27:36
mfiano
no-defun-allowed: Did I not see a post a couple weeks ago stating you were not contributing to open source anymore or something of the sort?
21:28:21
no-defun-allowed
I announced I am taking a break from Netfarm because, wow, I'm actually too fed up with people there to bother improving their lives in any meaningful way. But now I also have a paper on that to edit.
21:28:43
no-defun-allowed
mfiano: Yes, now I've decided to work on other things because otherwise I have too much spare time :)
21:29:06
mfiano
The only mention I ever heard of it is from you, so I'm curious who these people are that annoyed you. Getting the torches ready
21:30:26
mfiano
Ok then. Well one thing I know all too well is breaks are good. I would never be able to commit to one project and stay sane.
21:32:01
mfiano
Mostly because I have to figure out hard problems on my own that require subconscious thinking
21:34:28
fiddlerwoaroof
yeah, my guess is that reading guix expressions for something like nyxt might be helpful too
21:34:58
fiddlerwoaroof
my guess is that it involves `guix environment` but, unfortunately, I can't use guix because of their stance on mac support/free software
21:35:38
no-defun-allowed
In short, despite many differences of opinion on design, only one CL person has come close to saying that all my work is worthless.
21:47:55
Shinmera
no-defun-allowed: I've had people almost word for word say all my libraries are worthless. The good thing is that doesn't actually matter.
21:49:28
no-defun-allowed
Shinmera: That was a slight simplification, they said any free software was worthless. Normally I'd be laughing, but no one there disagreed there. On the other hand, they could have been laughing internally as well.
21:50:27
mfiano
All my work is worthless, in the fact that it isn't usable by others, is broken until I finish it, and is unknown by others...but I still think it is very _worthwhile_ to work on given my goals of bettering myself and the hopeful one day it will at the very least be usable to me (and others would be a bonus)
21:51:41
no-defun-allowed
Pretty sure there is no network stack (and/or operating system) without any open-source components, including proprietary ones, so I wonder how they didn't contradict themself by being able to write that.
21:53:06
no-defun-allowed
What I read was straight slander, and there's no point discussing that in itself, but that it was taken remotely seriously is telling.
21:58:15
no-defun-allowed
My thought process went something like "Here's my audience I suppose, if anyone would immediately be interested in e.g collaborative filtering for moderation it'd be them, and they're now saying no open-source program has done anything good for society. And half my time these days is spent cleaning up code and writing documentation. How kind of you!"
22:31:51
dim
I just cleaned my cache, too, so that might be related (in that it's trying to compile something?)
22:32:59
dim
anyway I wanted to hack in CL and/or pgloader this vacations, but I guess I'll do something else instead :/
22:39:49
fiddlerwoaroof
dim: what are you using? I'm on an x86-64 MBP, my M1 sees a lot more SIGABRTs with sbcl
22:41:18
dim
yeah except if you use/develop anything that doesn't know how to process EINTR when doing open(2), like Postgres and most of the source code I work with
22:41:49
dim
and except if you have hardware that doesn't support BigSur yet, too (I'm still waiting for drivers updates for an audio interface)
22:47:02
dim
Condition of type: SIMPLE-ERROR ; Unable to create pipe C ; library explanation: Too many open files.
22:47:30
dim
I had a nice shot tonight, won't happen again anytime soon if I must first fix all those things