freenode/#lisp - IRC Chatlog
Search
15:03:35
_death
puchacz: as for the memory corrutpion, I don't know that it has to do with the fd trouble.. for that I would either pepper my source code with log forms to try to localize the problem, or try to use sbcl's debugger (ldb) to figure out more, or maybe use other tools.. maybe good to consult #sbcl to get tips on how to debug that
15:04:26
mister_m
Can someone help me find documentation on the `:read-file-form` function I see used when defining some asdf systems? For instance, when loading a version -- :version (:read-file-form "version.txt"). Google is really failing me.
15:06:17
_death
at least it's good to log the thread ids and their roles (e.g., "hunchentoot handler thread", "acceptor thread", etc.).. the thread id where the corruption is detected is in the error message
15:06:56
_death
that of course does not mean that that's where the corruption happens.. but may provide clues
15:08:11
puchacz
I understand I can corrupt data structures in my program in a sense of having something unexpected in a variable or cons cell, but can I break lisp itself?
15:10:02
_death
puchacz: #sbcl is better informed than me on that.. but note that your program uses ffi (cl+ssl)
15:15:35
_death
yeah, you landed there because of the second issue, I'm guessing. but I'm talking about the low-level sbcl debugger
15:21:33
_death
well, if there's memory corruption some low-level knowledge may be needed to find out the problem
16:01:26
jmercouris
Anyone know of a CL LSP or efforts to create one to allow for easier editing of CL outside of the Emacs ecosystem?
16:02:35
beach
jmercouris: Yes, I am working on SICL, and I am planning (with a lot of help) and IDE that is not Emacs based.
16:03:51
beach
Maybe. I know there are attempts to create an editor using the LSP, but I don't know whether it will be Second Climacs.
16:07:06
beach
I have not thought about it for some time. When I realized I was unable to write code using only a subset of the language, it became impossible for me to imagine starting with a small subset and building the rest from there.
16:07:43
oni-on-ion
or did he mean something like https://sep.yimg.com/ty/cdn/paulgraham/jmc.lisp?t=1564708198&
16:07:53
jmercouris
I am just thinking about it from a porting perspective, that's really why I am curious
16:09:06
jmercouris
and kind of minimizing that work by making it so you only have to make a very small amount of Potato lang functions to get everything started
16:09:12
samsepi01
When using SBCL timers, I get messages like "WARNING: Starting a poll (2) without a timeout while interrupts are disabled." I can’t understand what am I doing wrong?
16:09:27
jmercouris
that's why I am so hung up on figuring out how to reduce the amount of work you would have to do in Potato lang to get started
16:09:32
beach
jmercouris: I have no idea why you would want that. Why not generate native code directly?
16:10:21
jmercouris
beach: whether you are generating the code or writing it by hand, there is an amount of work in making your CL code compile via the Potato lang compiler
16:10:41
jmercouris
_death: that sounds correct based on my knowledge of words, but I don't know exactly what that is
16:11:17
jmercouris
beach: let's say you wanted to make your own version of ABCL, but instead of that it is PCL, potato common lisp
16:12:28
beach
jmercouris: So you want to take an existing Common Lisp system written in some language L1 (which i not Common Lisp), and you want to have it written in a language L2 instead (which is also not Common Lisp). Is that it?
16:14:01
jmercouris
I want to know how I can write code in Y language to compile X language with the smallest amount of work
16:14:23
jmercouris
after the initial compilation/bootstrapping, of course I could use X language to recompile X language
16:16:12
beach
I don't care how we arrived at the current situation, but it is there, and I can take advantage of it.
16:16:48
jmercouris
could we potentially build some sort of interop with Potato lang by using its compiler?
16:17:25
jmercouris
I've been thinking and thinking about it, and I was wondering why there is so much C++ code
16:17:32
pjb
jmercouris: the only reason you may have to do bootstrapping, is if you're lost on Mars, can't communicate with Earth, and have built a new computer from scratch.
16:19:21
pjb
Already in the 60s, people DID NOT bootstrap anymore. At IBM, they implemented emulators of new computers to be able to develop the software with old computers for the new computer before the hardware was ready. Bootstrapping is so '40s!
16:21:01
beach
jmercouris: I call it "bootstrapping" in SICL, but it is not that kind of bootstrapping.
16:22:03
beach
jmercouris: I use an existing Common Lisp system to execute SICL code that generates (or will generate) native code.
16:24:19
pjb
jmercouris: already, people implementing new compilers by bootstrapping nowadays cheat, since they use top-notch macOS systems to edit and debug their code. They should bootstrap it using a KIN-1 !!! http://oldcomputers.net/kim1.html
16:25:51
beach
jmercouris: My guess with respect to Common Lisp is that there is this idea that Common Lisp has to be created using some lower-level language, but that is not the case, of course.
16:26:16
beach
jmercouris: Now, building a Common Lisp system is considerably harder than (say) writing a C compiler in C.
16:27:07
beach
jmercouris: The reason is that a C compiler is a simple file translator, whereas a Common Lisp system contains a complex graph of objects right from the start.
16:27:37
Xach
jmercouris: i found it helpful to understand that code to run on a machine is just a sequence of bits, and it's not hard to make a program in any language create a sequence of bits, either in memory on on disk. sometimes it's tricky to know what bits to put in what order, but they are all bits at the bottom.
16:28:07
beach
jmercouris: And, the best way of creating that graph is to execute code. And it is best if that code is Common Lisp code.
16:28:46
Xach
so if the bits on x86 to test for zero and jump are 42, and on arm it's 31, it's not a big deal to make a compiler on x86 generate arm, as long as you configure it to produce the right bits.
16:29:21
Xach
the higher-level management of program meaning is one thing and generating the right bits is another.
16:29:24
jmercouris
Right, I was just thinking about stuff like RISC or something which is quite different than x86
16:30:10
jmercouris
I bet it would be insanely difficult to formally prove that they are computionally equivalent
16:30:42
jmercouris
I did study some formal verification in graduate school, I ended up leaving the class feeling like it was a toy that could never really be used
16:31:40
jmercouris
thanks for the explanations and links, more to think about, I'm off to cook some dinner now
16:38:41
puchacz
so I started ccl locally, I can see its make-hash-table non-standard keyword arguments, but where is it documented?
18:29:55
_death
have you tried reducing the amount of code that runs? if it's only a trivial handler, does it still happen?
20:20:42
mfiano
Suppose I make a project on my github called "alexandria" and click the big blue button on ultralisp.org to add it. Everyone that updates their dist and loads a system that depends on it (nearly anything transitively), and they likely won't know that it secretly deletes / recursively until it's too late. I can't believe there is no review process and it updates every 5 minutes. Maybe I'm missing
20:41:22
borodust
Xach: hi! anything new with PGP for quicklisp dists? i apologize in advance, if i missed some critical news regarding that feature
22:34:21
luis
Alexandria has a parse-ordinary-lambda-list. Is there a parse-macro-lambda-list somewhere?
22:47:23
Bike
implementations probably has it, but it's not as easy to define, since the recursive structure means the multiple value return isn't enough