freenode/#lisp - IRC Chatlog
Search
22:29:00
catern
so many lisps drop the user into a nested-REPL when there is an error, and let the user handle the error and resume computation
22:29:39
catern
is there any syntax or usual way to handle, "I want some value but I don't know how to get it, I'll drop to a REPL and the human will return it to me"?
22:29:53
catern
like, I'm essentially looking for syntax for handling "asking a human" for something
22:33:03
catern
but I'm talking presenting the user with a full-on REPL, where they might use data passed to them or inspect the stack or whatever, in their quest to produce the desired value
22:59:20
Bike
(make-array ... :fill-pointer t) initializes the fill pointer to be the initial length
23:06:45
p_l
nickername: well, there's a faq on website, iirc, github issues are AFAIK the actual final submission mechanism, but for stuff not covered there you can probably bug Xach ?
23:40:02
nickername
Email isn't too good to me right now. I hate to ask, but can I just put it here?
23:43:08
nickername
I don't like being forced to use Freenode, but it's the least objectionable option.
23:43:30
nickername
Now, you can either add my programs, as I've been asking for months, or I can create a quicklisp competitor.
23:44:23
Xach
If you email me about it, I'll look at them again, but if you don't want to email and don't want to use github, please do whatever you like.
23:45:03
Xach
I think it would be very challenging to work with a community if you don't want to interact with gmail or github, but life would be boring without challenges.
23:45:53
jasom
ebrasca: you were asking for examples of when defun (setf ...) doesn't work? I just thought of one; if you e.g. wanted to make a (setf (assoc ...) ...) that might add a new item to the front of the list without modifying the tail, you can't do that in a function (if you are okay modifying the tail then it's no problem because you could just add a cons after the head, and swap the CARs)
23:50:07
Xach
For those not in #quicklisp, verisimilitude/nickername is someone who wants to remain anonymous while submitting libraries to quicklisp. I told them I had to think about that a while, and every day, sometimes multiple times per day, they asked for status updates. I didn't want that pressure while thinking about it.
23:50:55
Xach
I decided I am ok with it, but I don't really appreciate the way it has been requested.
23:54:32
jasom
I'm just happy I live in a different world from verisimilitude; he seems to live in a world with a lot more idiots in it than mine.
0:18:37
jasom
is there a library that provides atomic increment/decrement operations across implementations?
0:29:38
sukaeto
Let's just say that verisimilitude hasn't been making the best impression on me since they've showed up here. I'll try to hold my tongue from here on out.
0:30:55
Bike
i am curious if/when quicklisp will be non-beta. of course it works pretty fine as-is, and i vaguely remember the block being documentation
0:43:17
p_l
Xach: I've been thinking recently about possibly packaging QL into separate static executable, kinda like roswell, to provide an environment a bit more familiar to newcomers (and to be able to easily link with TLS libs for verification)
2:20:32
z3t0
I am using QTools with SBCL and am having the application and sbcl crash once a window receives focus
2:54:25
iqubic
like prettify-symbols-alist and I want replace the entry ("<->" . 8596) with ("<->" . 8660).
2:56:01
Bike
(setf (alexandria:assoc-value "<->" alist :test #'string=) 8660) is how i'd do it probably
2:57:02
iqubic
I see. Why do you have to pull in a library for what I assume would be a simple operation.
2:58:28
Bike
(let ((pair (assoc "<->" alist :test #'string=))) (if (null pair) (push (cons "<->" 8660) alist) (setf (cdr pair) 8660)))
3:06:06
Bike
they have basically the same performance characteristics as alists, and match function call syntax
3:11:04
Bike
'(a . b) will evaluate to a cons, but it won't be freshly allocated at runtime, and as pierpa alluded to, a and b won't be evaluated as they would be in (cons a b)
3:12:45
iqubic
Now, this is going to sound stupid, but the THEN and ELSE arguments of the if macro can only ever be one s-exp, right?
3:13:44
iqubic
No. Emacs tells me that COND is only ever one s-exp, but ELSE can be as many as I want.
3:55:14
loke
beach: I created a bug report about the output recrod problem, as well as a simplified test case. I even created screenshots:
3:56:12
loke
beach: Thanks. I'd appreciate even the slightest hint as to where the problem could originate.
4:02:03
loke
beach: not this one, no. There are actually two separate issues relating to output records. I stumbles on both of them at the same time, but I discovered they are separate.
4:02:34
loke
The onw I posted just now is actually independent of the text. I'm still researching a good proposal for the other one.
4:03:38
loke
The text issue has to do with the fact that DRAW-TEXT is underspecified in that the output record can't draw transformed text. I have some ideas how to fix that one.
4:06:00
beach
The first thing I will do is to stick a call to Clouseau in there and examine the output-record hierarchy.
4:08:19
loke
The really weird part that I don't understand is why the second box gets revealed as I resize the window.
4:38:49
beach
Crap. Someone seems to have modified the inspector so that it now writes to standard-output, and it modifies the output history.
4:51:15
beach
loke: My tools are failing me, so this is going to take more than a few hours. I'll work on it during the day.
5:17:07
z3t0
this is odd, for some reason qTools works just fine using ccl on macos whereas sbcl fails horribly
5:23:39
mfiano
It's a known bug, and stassats recommends opting in to the mac beta (he said he won't fix it)
6:00:31
jasom
https://www.reddit.com/r/lisp/comments/8de7ol/notice_for_lisp_game_jammers_sbcl_macos_bug/
8:54:50
xificurC
in sbcl, the implications/limitations of `eval` are the same as of `compile` right? The manual states that `eval` is mostly just (funcall (compile nil (lambda () ...)))
8:56:38
xificurC
is there a good, down-to-earth explanation of lexical and dynamic environments? I understand the concepts from other languages but am failing to extrapolate the knowledge here. E.g. to understand why `eval` cannot see the lexical scope and how is the lexical and dynamic scope actually implemented
8:58:53
xificurC
next: the sbcl manual states that fasls are binary compatible only with the version they were compiled with. Can I write a load-compile function that will always load a fasl compiled version of the given file by recompiling the source code file when necessary?
8:59:26
xificurC
I'll hope for someone smart to chime in :) Oh and the topic needs updating sbcl version :)
8:59:58
phoe
xificurC: if you use ASDF to load your systems, it will automatically recompile the files when necessary.
9:00:39
xificurC
phoe: we are using sbcl as a scripting environment right now, loading asdf for each invocation is too costly
9:02:17
xificurC
phoe: I can make an image with all the libraries pre-loaded, can't I. I'm saying we are using a clean image as the distribution provides and loading things as needed
9:03:12
xificurC
the moment we start creating our own image is the moment we have moved from distributing scripts to distributing compiled units
9:03:54
phoe
xificurC: in layman's terms, dynamic environment consists of everything on the stack; lexical environment consits of everything inside a given pair of parentheses.
9:04:45
phoe
this is why when function A invokes function B, the lexical environment of A does not move over to B, because B is defined in a different pair of parens, but the dynamic environment from A moves over to B, because A and B are both on the stack now.
9:05:44
phoe
an implementation can keep some symbol references for debugging purposes, but other than that, the lexenv disappears after compiling code.
9:06:26
xificurC
phoe: this leaves the implementation the option of e.g. keeping the lexical env in registers?
9:07:19
aeth
Lexical variables can be optimized, and they're known. Usually even the type is known. SBCL is only really "fooled" by numbers and sequences.
9:07:58
phoe
An implementation *can* keep it for debugging, etc., but other than that, it's a by-product.
9:08:22
aeth
It's implementation-specific, but they're probably kept at (debug 3) and not at (debug 1) (speed 3)
9:09:21
xificurC
phoe: ok i see what you mean I think, you're saying the compiler can optimize the usage so that the resulting assembly will have no trace of it
9:15:03
xificurC
rust is *huge* and compiled only, with no normal REPL (last time I checked). CL is not just compiled, fully interactive, garbage collected... Hard to compare the 2 isn't it?
9:17:01
blep-on-external
i'm not selling it to a compsci student or a mathematician: this is a person neckhigh in modern bollocks
9:17:27
xificurC
capisce: CL is huge in a different way. If you learn parentheses and a couple more things you know the language and can start reading about what's in the standard.
9:17:51
aeth
blep-on-external: Show them something that normally is written in C++, but is written in CL instead. (Which of course implies that the GC doesn't matter that much in the end.)
9:17:54
xificurC
tell me how long will it take for a newcomer to learn all of rust's syntax and semantics
9:19:48
xificurC
I'll circle back to my question about load-compile - I can imagine the logic being: if no fasl or incorrect version or older than .lisp recompile, then use fasl. How can I check for the incorrect version?
9:21:24
jackdaniel
some implementations will warn you and reject such fasl with error when you try to load it
9:23:36
xificurC
blep-on-external: I think rust macros were at least partially based on racket's syntax-parse
9:25:18
xificurC
jackdaniel: the first time I asked, which was when I joined. Not sure if you were around at that point
9:27:31
xificurC
jackdaniel: I found that in the manual in 30s too, but it's a mixture of sbcl's internals and various asdf operations. I couldn't find docs for invalid-fasl