<saltrocklamp[m]>
does mcclim have support for accessibility tools like screen readers?
<beach>
Good morning everyone!
<beach>
saltrocklamp[m]: No, I don't think so.
karlosz has joined #commonlisp
<mfiano>
Hello all. I have been looking for some more Lisp books to read/add to my collection, and I stumbled on this site with a lot of the hard to find gems I already read, and others I haven't heard of yet. It might be interesting to some of you: http://www.ai.sri.com/~delacaze/alu-site/alu/table/books.htm
Skyfire has quit [Quit: WeeChat 3.2]
igemnace has quit [Quit: WeeChat 3.2.1]
semz has quit [Ping timeout: 252 seconds]
taiju has quit [Ping timeout: 260 seconds]
<saltrocklamp[m]>
that's too bad, thanks beach
<saltrocklamp[m]>
mfiano: that page is a 404 for me
<beach>
Works for me.
<hayley>
Works for me too.
semz has joined #commonlisp
<saltrocklamp[m]>
weird, it works for me now!
khrbt has quit [Ping timeout: 252 seconds]
abrantesasf has joined #commonlisp
charles_ has joined #commonlisp
khrbt has joined #commonlisp
X-Scale has joined #commonlisp
zagura__ has joined #commonlisp
Lord_Nightmare2 has joined #commonlisp
boro has joined #commonlisp
dstein64- has joined #commonlisp
Mandus_ has joined #commonlisp
phadthai_ has joined #commonlisp
jackdani1l has joined #commonlisp
Demosthe1ex has joined #commonlisp
seere_ has joined #commonlisp
utis_ has joined #commonlisp
Antsan has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
Mandus has quit [*.net *.split]
X-Scale` has quit [*.net *.split]
charles__ has quit [*.net *.split]
dstein64 has quit [*.net *.split]
phadthai has quit [*.net *.split]
Spawns_Carpeting has quit [*.net *.split]
Demosthenex has quit [*.net *.split]
jackdaniel has quit [*.net *.split]
borodust has quit [*.net *.split]
katya has quit [*.net *.split]
Krystof has quit [*.net *.split]
commandoline has quit [*.net *.split]
Lord_Nightmare has quit [*.net *.split]
Aksej has quit [*.net *.split]
zagura has quit [*.net *.split]
utis has quit [*.net *.split]
seere has quit [*.net *.split]
Lord_Nightmare2 is now known as Lord_Nightmare
CrashTestDummy3 has quit [Ping timeout: 252 seconds]
dstein64- has quit [Ping timeout: 252 seconds]
zagura__ has quit [Ping timeout: 252 seconds]
srhm has quit [Ping timeout: 252 seconds]
dstein64 has joined #commonlisp
bwestbro has quit [Ping timeout: 252 seconds]
srhm has joined #commonlisp
bwestbro has joined #commonlisp
zagura has joined #commonlisp
char has joined #commonlisp
charles_ has quit [Ping timeout: 252 seconds]
morte has joined #commonlisp
boro has quit [Ping timeout: 252 seconds]
jhi has quit [Ping timeout: 252 seconds]
jhi has joined #commonlisp
borodust has joined #commonlisp
Spawns_Carpeting has joined #commonlisp
terrorjack1 has joined #commonlisp
gin_ has joined #commonlisp
pl_ has joined #commonlisp
White__Flame has joined #commonlisp
dale has quit [Ping timeout: 252 seconds]
sndr has joined #commonlisp
dale has joined #commonlisp
karlosz has quit [Ping timeout: 252 seconds]
mortemeur has quit [Ping timeout: 252 seconds]
pl has quit [Ping timeout: 252 seconds]
White_Flame has quit [Ping timeout: 252 seconds]
sander has quit [Read error: Connection reset by peer]
pl_ is now known as pl
ecraven has quit [Quit: quit]
katya has joined #commonlisp
ecraven has joined #commonlisp
gin has quit [Ping timeout: 252 seconds]
sndr is now known as sander
abrantesasf has quit [Quit: Leaving]
Lord_Nightmare has quit [Ping timeout: 252 seconds]
terrorjack1 is now known as terrorjack
terrorjack has quit [Ping timeout: 252 seconds]
Lord_Nightmare has joined #commonlisp
abrantesasf has joined #commonlisp
GreaseMonkey has quit [Ping timeout: 252 seconds]
greaser|q has joined #commonlisp
phadthai_ is now known as phadthai
OlCe has quit [Ping timeout: 252 seconds]
phantomics has quit [Excess Flood]
phantomics has joined #commonlisp
aeth_ has joined #commonlisp
aeth has quit [Killed (NickServ (GHOST command used by aeth_))]
aeth_ is now known as aeth
molson_ has joined #commonlisp
elderK_ has joined #commonlisp
CrashTestDummy3 has joined #commonlisp
charles_ has joined #commonlisp
White__Flame is now known as White_Flame
victor_ has joined #commonlisp
notzmv has quit [Ping timeout: 252 seconds]
victor has quit [Ping timeout: 252 seconds]
elderK has quit [Ping timeout: 252 seconds]
jeosol has quit [Ping timeout: 252 seconds]
char has quit [Read error: Connection reset by peer]
elderK_ is now known as elderK
victor_ is now known as victor
Mandus_ has quit [Ping timeout: 252 seconds]
srhm has quit [Ping timeout: 252 seconds]
notzmv- has joined #commonlisp
Mandus_ has joined #commonlisp
molson has quit [Ping timeout: 252 seconds]
srhm has joined #commonlisp
CrashTestDummy2 has quit [Ping timeout: 252 seconds]
abrantesasf has quit [Quit: Leaving]
terrorjack7 has joined #commonlisp
jhi_ has joined #commonlisp
jhi has quit [Ping timeout: 252 seconds]
jhi_ is now known as jhi
terrorjack7 is now known as terrorjack
cyberbanjo has quit [Read error: Connection reset by peer]
Demosthe1ex has quit [Ping timeout: 252 seconds]
Demosthenex has joined #commonlisp
andreyorst has quit [Ping timeout: 252 seconds]
andreyorst has joined #commonlisp
abrantesasf has joined #commonlisp
cyberbanjo has joined #commonlisp
Mandus_ has quit [Ping timeout: 240 seconds]
Mandus_ has joined #commonlisp
asarch has joined #commonlisp
elderK has quit [Quit: Connection closed for inactivity]
Devon has quit [Ping timeout: 260 seconds]
OlCe` has joined #commonlisp
semz_ has joined #commonlisp
jhi_ has joined #commonlisp
semz has quit [Ping timeout: 252 seconds]
jhi has quit [Ping timeout: 252 seconds]
jhi_ is now known as jhi
abrantesasf has quit [Quit: Leaving]
abrantesasf has joined #commonlisp
<pl>
saltrocklamp[m]: right now none of the CLIMs work with any good results with accessibility stuff (extensions that OCR the screen /might/ work but will be probably iffy). Figuring how to handle it properly is... non-trivial
abrantesasf has quit [Quit: Leaving]
abrantesasf has joined #commonlisp
asarch has quit [Quit: Leaving]
abrantesasf has quit [Quit: Leaving]
taiju has joined #commonlisp
abrantesasf has joined #commonlisp
<akater[m]>
CLIM supports “drawing” to arbitrary streams, including those not resembling visual canvas. This implies OCRing the screen instead would be a very unnatural decision, no?
Qwnavery has joined #commonlisp
noircode has joined #commonlisp
taiju has quit [Ping timeout: 252 seconds]
karlosz has joined #commonlisp
abrantesasf has quit [Quit: Leaving]
abrantesasf has joined #commonlisp
<pl>
akater[m]: this implies there's no clean way to hook accessibility APIs and considerable portions of code use unstructured drawing, iirc
abrantesasf has quit [Remote host closed the connection]
taiju has joined #commonlisp
cyberban` has joined #commonlisp
cyberbanjo has quit [Ping timeout: 268 seconds]
pve has joined #commonlisp
<hayley>
I read that the fancy screen readers end up hooking graphics libraries, which would be tricky if font rendering is done on the Lisp side. But I admit I don't know how any specific CLIM handles font rendering.
Skyfire has joined #commonlisp
akoana has left #commonlisp [#commonlisp]
noircode has quit [Quit: noircode]
frgo has quit [Remote host closed the connection]
shka has joined #commonlisp
amb007 has quit [Ping timeout: 265 seconds]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
Inline has quit [Quit: Leaving]
amb007 has joined #commonlisp
attila_lendvai has joined #commonlisp
cosimone has joined #commonlisp
rgherdt_ has joined #commonlisp
karlosz has quit [Ping timeout: 252 seconds]
cosimone` has joined #commonlisp
cosimone has quit [Ping timeout: 252 seconds]
<pve>
Good morning! Is it ok to say "at runtime" here: "The body of a WHEN-PACKAGES-DYNAMIC form will be evaluated if PACKAGES exist at runtime."
<pve>
or is something like "execution time" more correct?
cosimone` has quit [Remote host closed the connection]
cosimone has joined #commonlisp
<hayley>
I think the description of EVAL-WHEN would give some unambiguous terms to use.
<jackdani1l>
you could associate arbitrary meta information with any output record, so drawing may have first class semantics instead of some guessing via ocr
<jackdani1l>
in CLIM
karlosz has joined #commonlisp
srhm has quit [Read error: Connection reset by peer]
srhm has joined #commonlisp
<hayley>
Hm, the HyperSpec page says :execute "controls whether evaluation occurs for other eval-when forms (rather than top-level forms)". Perhaps the body is evaluated if PACKAGES exist when the WHEN-PACKAGES-DYNAMIC form is evaluated?
<jackdani1l>
so adding "accessibility" abstraction is a matter of stepping in and implementing them (i.e the dev time is the bottleneck, no some architectural difficulties)
<hayley>
(Provided I understand what WHEN-PACKAGES-DYNAMIC does, I suppose.)
<hayley>
I wondered about adding accessibility tools for CLIM, but then I decided I should have another, more "first-class", sort of presentation for screen readers.
<pve>
I was looking at the eval-when page, but it seemed like I might
<pve>
have to distinguish between top-level and not top-level..
<pve>
but I think "evaluated" sounds good
<pl>
hayley: accessibility tools hook into accessibility APIs
<pl>
those generally provide a "graph" of objects of interest to them
hendursa1 has joined #commonlisp
hendursaga has quit [Ping timeout: 276 seconds]
gaqwas has joined #commonlisp
karlosz has quit [Ping timeout: 245 seconds]
karlosz has joined #commonlisp
karlosz has quit [Quit: karlosz]
noircode has joined #commonlisp
noircode has left #commonlisp [#commonlisp]
cyberban` has quit [Remote host closed the connection]
frgo has joined #commonlisp
Mandus_ has quit [Ping timeout: 252 seconds]
Mandus_ has joined #commonlisp
Inline has joined #commonlisp
cage has joined #commonlisp
dickbar__ has joined #commonlisp
Inline has quit [Ping timeout: 252 seconds]
q3cpma has joined #commonlisp
<dickbar__>
[Q] Function APPLY in eval.lisp (SBCL). I tried to understand the source code. It is a recursive function, but i cannot find the base case. When i copy the function and rename it, including renaming the recursive calls, it doesn't work. CLHS says it's a normal function. What am i missing?
<q3cpma>
Hello, does anyone know why I can't do (require :pkg) (pkg:somefun somearg) when in a let body?
<pve>
scymtym: oh hi, I didn't realize it had already been done :)
<scymtym>
pve: i hadn't published it
<White_Flame>
dickbar__: when you M-. on APPLY, you'll see that there isn't just the DEFUN, but also other transforms. Those compile the root forms of those expressions in that DEFUN APPLY source code
<pve>
scymtym: ok great, I'll compare notes later today, have to step out now.. thanks for showing
<scymtym>
pve: sure
<White_Flame>
dickbar__: srctran.lisp, line 4258
amb007 has joined #commonlisp
random-nick has joined #commonlisp
tfeb has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
<dickbar__>
@White_Flame : Thanks. So the sbcl compiler does some transformations (the macro DEFINE-SOURCE-TRANSFORM) to produce source code that does the APPLY thing. I probably don't want to know al that:-)
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Ping timeout: 252 seconds]
Inline has joined #commonlisp
jeosol has joined #commonlisp
frgo has quit [Remote host closed the connection]
amb007 has joined #commonlisp
frgo has joined #commonlisp
tfeb has quit [Quit: died]
igemnace has joined #commonlisp
igemnace has quit [Client Quit]
igemnace has joined #commonlisp
Devon has joined #commonlisp
Inline has quit [Remote host closed the connection]
q3cpma has quit [Quit: leaving]
<scymtym>
speaking of Eclector, would anyone object to passing "raw" character names to the client from the sharpsign backslash (#\<x>) reader macro, that is shifting the responsibility of upcasing the character name from Eclector to the client? this would be an incompatible change but would be better in my view: 1) clients could obtain the original "spelling" 2) no unnecessary upcasing for clients that look up characters in some other
<scymtym>
case-insensitive way
Mandus_ has quit [Ping timeout: 245 seconds]
Mandus_ has joined #commonlisp
tyson2 has joined #commonlisp
Qwnavery has quit [Quit: WeeChat 3.3]
igemnace has quit [Ping timeout: 252 seconds]
lottaquestions has joined #commonlisp
frgo has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 252 seconds]
amb007 has joined #commonlisp
dec0d3r has joined #commonlisp
dickbar__ has quit []
amb007 has quit [Ping timeout: 252 seconds]
<beach>
scymtym: I have no objections.
<beach>
I assume you mean the case where <x> is not a single letter, but a word, right?
lottaquestions has quit [Ping timeout: 252 seconds]
<phoe>
that's what I understood - right now e.g. #\sPaCe evaluates to #\ on SBCL, same as #\Space and #\SPACE, but some clients might want to be able to tell the character cases apart for reasons I don't yet know myself - signaling conditions or whatever
Inline has joined #commonlisp
cage has quit [Remote host closed the connection]
amb007 has joined #commonlisp
<beach>
Er, wait. The reader is supposed to return a character object.
<scymtym>
beach: yes. although i just realized that currently the client is not involved in the single-character case. i should probably change that as well since (find-character … string) and (find-character … character) would be nice for dispatch and compatible with the current behavior
<beach>
Now, I'm lost.
<scymtym>
phoe: client could already distinguish "#\ " and #\Space, but not #\Space and #\SPACE
* scymtym
started replying before reading everything
<scymtym>
beach: can you explain the issue "The reader is supposed to return a character object." is referring to?
<beach>
When you say `passing "raw" character names to the client', presumably you mean not back as the result from READ, but to the generic function that turns character names to characters, yes?
attila_lendvai_ has joined #commonlisp
<scymtym>
yes, i was referring to the character name argument in the FIND-CHARACTER call, sorry. the change i mentioned first is not upcasing the character name that is received by FIND-CHARACTER so the client can see the raw name/original spelling
attila_lendvai has quit [Read error: Connection reset by peer]
<beach>
Whew. OK, yes, then no problem.
<scymtym>
the change that came to my mind after that is calling FIND-CHARACTER in the single-character case at all. the single-character case is currently handled by just returning that character and not calling FIND-CHARACTER, but that seems unnecessarily restrictive in hindsight
<beach>
Sure.
<pjb>
phoe: 2.4.8.1. When the token x is more than one character long, the x must have the syntax of a symbol with no embedded package markers. In this case, the sharpsign backslash notation parses as the character whose name is (string-upcase x);
<scymtym>
i mean, what if someone wants to make a CENSORING-CLIENT that reads #\💩 as #\🙊, right?
<pjb>
phoe: if you wanted to have case sensitive character names, I guess you would have to escape them: #\|Space| vs. #\space = #\SPACE
<scymtym>
pbj: i think we are all aware of that. the question is how the involved responsibilities should be distributed between Eclector and the client
<scymtym>
pjb: ^, sorry
<pjb>
ok. Now, the question is what "syntax of a symbol" means here: does it mean that this token is read applying the *readtable* setting, notably (readtable-case *readtable*) ?
<pjb>
Perhaps not sine string-upcase is cited explicitely.
Mandus_ has quit [Ping timeout: 252 seconds]
<scymtym>
i think it means that token termination and single and multiple escapes work as for symbols. but things related to case don't matter due to the explicit upcase before the lookup
<pjb>
That sounds reasonable.
attila_lendvai_ has quit [Read error: Connection reset by peer]
attila_lendvai has joined #commonlisp
<pjb>
Otherwise, for the single character case, #\x is taken as a literal, so you wouldn't want to map x to something else. find-character is indeed useless in this case. Unless you consider it as a hook to be applied to all characters read; but such a hook should then be applied in read-char, I'd say.
gaqwas has quit [Ping timeout: 252 seconds]
igemnace has joined #commonlisp
<scymtym>
i wouldn't say useless per se, the client may want to /know/ about character literals being read, even if it doesn't change anything. the client could also "re-map" characters as the (admittedly silly) CENSORING-CLIENT example mentioned. and besides, always going through FIND-CHARACTER seems more regular and i don't see a risk of making anything worse by doing it
<pjb>
Yes using their name: (char-name #\a) #| --> "LATIN_SMALL_LETTER_A" |# #\LATIN_SMALL_LETTER_A #| --> #\a
Inline has quit [Remote host closed the connection]
rgherdt__ has joined #commonlisp
Inline has joined #commonlisp
rgherdt_ has quit [Remote host closed the connection]
Inline has quit [Remote host closed the connection]
Inline has joined #commonlisp
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
igemnace has joined #commonlisp
lisp123 has joined #commonlisp
<lisp123>
mfiano: Thanks for the link, that's a great list
mortemeur has joined #commonlisp
Lord_of_Life has quit [Excess Flood]
morte has quit [Ping timeout: 252 seconds]
Lord_of_Life has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
<lisp123>
Is there anything you wish CLOS had or is it perfect?
gaqwas has joined #commonlisp
* edgar-rft
wants a CLOS pony
<lisp123>
edgar-rft: a batteries and ponies-included CLOS ;)
<beach>
lisp123: That's a very strange question. What is your reason for asking it?
<beach>
Also, since CLOS is defined using CLOS, you can adapt it an oh so many ways.
<beach>
So, usually, if there is something missing, you can supply it.
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<lisp123>
beach: Worded in another way, have there been any advances in objected oriented programming / MOP / or other related fields that you wish were in CLOS?
<lisp123>
It seems like most other languages are catching up to these ideas, but are there ideas that CL has to catch up to?
<edgar-rft>
having 0 and 1 is enough, everything else can be computed from that
<beach>
lisp123: I still wonder about your reason for asking these questions.
<lisp123>
Curiousity
<edgar-rft>
nothing in the world is perfect so why should it be CLOS, but I really can't find any things out of my head that I frequently have problems with
CrashTestDummy2 has joined #commonlisp
taiju has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
CrashTestDummy3 has quit [Ping timeout: 252 seconds]
<lisp123>
edgar-rft: Thanks
igemnace has quit [Quit: WeeChat 3.2.1]
tyson2 has joined #commonlisp
mortemeur has quit [Read error: Connection reset by peer]
CrashTestDummy3 has joined #commonlisp
<etimmons>
If called with a restart object, should invoke-restart call its test function?
<etimmons>
My gut, SBCL, ABCL, and CCL say no. But ECL says yes. And I'm having trouble figuring out which way is right based on the spec.
<jackdani1l>
undefined behavior?
<jackdani1l>
i.e. both are right
CrashTestDummy2 has quit [Ping timeout: 252 seconds]
mortemeur has joined #commonlisp
<etimmons>
That's basically what I'm thinking. But am curious if others have a more definitive reading
lisp123 has quit [Quit: Leaving...]
gxt_ is now known as gxt
<jeosol>
Good morning guys
<cage>
jeosol: hi!
<jeosol>
I want to check that I am not missing something in my workflow. I had some esrap related errors with my update to SBCL 2.1.9. Esrap has been fixed. I tried to update ql with (ql:update-dist ...) and it still didn't pick the updated esrap. For now I clone the updated esrap and put it in my local-projects directory. How are you guys dealing with
<jeosol>
this pull recent library issue
<jeosol>
cage: hi
<jeosol>
I hear there is an ultralisp option, but I don't want to pull everything that is changing very fast and can break things
<jeosol>
You'll say the above local-projects work, but I was trying to build an image with Docker and realized that the upstream image didn't have the update esrap and the downstream image (building from earlier) one failed to complete
<scymtym>
etimmons: what in the specification indicates that INVOKE-RESTART should call the test function? i don't see which condition INVOKE-RESTART could supply to the test function. the "Description" section says the restart must be "valid", not "active" or "applicable", so the test function doesn't seem to be involved there either
<etimmons>
jeosol: With QL, your only real options are local-projects or keep SBCL at a slightly older version.
<jeosol>
etimmons: really. Oh men. Thanks Eric
<etimmons>
scymtym: I think that's really the root of my confusion. What does a "valid" restart mean? I don't see that term used anywhere else for restarts.
<jeosol>
etimmons: trying not to lag by more than 2 versions of SBCL. I noticed the problem when trying to over 2.1.8, then reverted back to 2.17, and when I moved to 2.1.9 issue was still there but _death suggested pulling updated esrap, so problem was gone (at least on local setup)
<jeosol>
I guess, maybe I will stay at SBCL 2.1.7 in the container
<scymtym>
etimmons: everything points to "valid" meaning "not de-established". this is otherwise called "active (handler)"
mortemeur has quit [Quit: Leaving]
notzmv- is now known as notzmv
frgo has joined #commonlisp
greyrat has quit [Quit: Bye]
<scymtym>
etimmons: it seems that the issue was not applied in full. #4, adding an optional parameter to INVOKE-RESTART in order to pass a conditional doesn't seem to have happened, and how could it, given the &rest arguments
<etimmons>
Well, #4 doesn't mention invoke-restart at all, and #7 explicitly says invoke-restart should always use nil as the condition
greyrat has joined #commonlisp
frgo has quit [Client Quit]
<etimmons>
But under this reading where valid /= visible, does that imply invoke-restart given a symbol name should not evaluate the test function? SBCL does invoke the test function when given a symbol name. I haven't checked other implementations.
<scymtym>
is visible the same as applicable?
<etimmons>
Sorry, yes. Not sure where I got visible from
<scymtym>
my understanding is valid = active = established and not yet de-established. applicable = active and test function is true
<etimmons>
Ah. a few places mention visible, which I think means applicable. Such as 9.1.4.2.3
<etimmons>
Interesting. That does imply invoke-restart should not check applicability (call the test function) under any circumstances.
<etimmons>
Not what my gut said, but I think that is the most straightforward reading
<scymtym>
for original question, that is passing a restart object to INVOKE-RESTART, i lean towards invoking without calling the test function since it says "valid" but not applicable
waleee has quit [Quit: WeeChat 3.3]
<scymtym>
the notes for INVOKE-RESTART says that the "restart functions", CONTINUE and friends, go through it. maybe that means WITH-CONDITION-RESTARTS must be used
waleee has joined #commonlisp
<etimmons>
Oh, and that interpretation is further bolstered by the definition for "restart designator" (what INVOKE-RESTART) accepts. "[...] a non-nil symbol (denoting the most recently established active restart whose name is that symbol)"
<etimmons>
No mention of applicability
<Alfr>
Maybe also look at restart-bind's description; there the resulting function from test-function is only mentioned in the interactive invocation case.
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
<etimmons>
I think it's definitely used by more than the interactive case. FIND-RESTART says it returns an applicable restart when given a symbol, which is defined to have the test return non-NIL
amb007 has quit [Ping timeout: 245 seconds]
<scymtym>
yes, i think (find-restart … condition) can only return a restart that 1) is active 2) is explicitly associated with CONDITION or not associated with any 3) whose test function returns true 4) innermost one with that name
Mandus_ has quit [Ping timeout: 252 seconds]
Mandus_ has joined #commonlisp
amb007 has joined #commonlisp
frgo has joined #commonlisp
amb007 has quit [Ping timeout: 245 seconds]
amb007 has joined #commonlisp
<Alfr>
etimmons, if you call invoke-restart with a restart object, what what is the condition that should be feed to the restart's test-function?
<etimmons>
The only thing you can give it is NIL (that's what ECL does)
<scymtym>
what happens if the test returns false in that situation? CONTROL-ERROR?
<etimmons>
Yes.
<etimmons>
I noticed because it makes it impossible to invoke some types of restarts.
<scymtym>
right
<scymtym>
if you need COMPUTE-RESTARTS followed by INVOKE-RESTART
<scymtym>
because there is no name or the restart is not the innermost of that name
<etimmons>
Yep
<Alfr>
Whether it has a name doesn't matter, as we're talking about restart objects, which denote themselves when used as an restart designator.
<scymtym>
it does matter: if INVOKE-RESTART calls the test function and the test function only returns true if a condition is supplied, INVOKE-RESTART cannot be used to invoke that restart by passing the restart object. thus the restart has to be invoked by name which is only possible if it has the name and is the innermost restart with that name
<Alfr>
scymtym, and I don't think that invoke-restart is allowed to do that test.
<scymtym>
Alfr: i tend to agree. what etimmons said was that doing the test (as in ECL) makes invoking certain restarts impossible
<Alfr>
scymtym, 9.1.4.2 first paragraph together with "valid" from invoke-restart's description.
<yitzi>
It is the same in CLASP since it inherited its restart system from ECL.
<Alfr>
(Admittedly it'd be an interesting problem to get the restart object.)
<etimmons>
scymtym: Something interesting is that SBCL's INVOKE-RESTART *does* call the test function if given a restart name. Which you've now made me think is the incorrect behavior.
<scymtym>
Alfr: yes, i thought etimmons and i have been saying that "valid" is probably the same as "active" in this context which does not involve the test function
<scymtym>
etimmons: i changed this stuff in SBCL at one point. i hope i wrote an explanation
<yitzi>
Actually, scratch my last statement about CLASP. they appeared to have changed `invoke-restart`.
<Alfr>
For invoke-restart the most specific interpretation of valid is (from i-r's description): "Restart must be valid in the current dynamic environment."
<scymtym>
if this doesn't call for a WSCL issue, i don't know what does
<yitzi>
That is just what I was thinking!
<etimmons>
Ha, I actually checked WSCL before asking this to see if had already been addressed
<Alfr>
scymtym, the glossary entry for dynamic environment explicitly lists restarts.
<Alfr>
scymtym, not sure that's really an ambiguity in the spec.
<etimmons>
Alfr: I think the ambiguity is what "valid" means
<scymtym>
Alfr: i'm not following. can you connect the dots for me?
<etimmons>
active or applicable ?
<Alfr>
scymtym, that was only regarding WSCL.
<Alfr>
etimmons, you mean that on used in the exceptional situations section? I'd take it to be the one implicitly introduced in the description.
<scymtym>
Alfr: hm, but if nothing else, isn't at least the use of "valid" (and "visible" as etimmons points out) unclear, given that the terms "active" and "applicable" exist and have actual definitions?
<Alfr>
scymtym, not sure about "visible", but I'd consider valid restart to be defined---albeit locally.
<Alfr>
scymtym, but I guess an addition to the glossary would be nice, if "valid restart" is not used anywhere else.
<scymtym>
i think it should say either "active restart" or "applicable restart" (although i don't think this one makes much sense, as discussed before) which are the two defined terms. adding a "valid restart" term that could mean one thing or the other doesn't seem to help
<scymtym>
or would the meaning of "valid restart" be different from both in some aspect?
<Alfr>
scymtym, valid restart means the same as active restart, imo. As being in the current dynamic environment, amounts to having been established and not having been yet disestablished.
<scymtym>
Alfr: i also prefer that interpretation, but why /can't/ it mean that the test function must also return true?
<scymtym>
i don't see the connection. which passages conflict in this case?
<Alfr>
scymtym, as to the ambiguity what "valid" should mean.
<scymtym>
but there is no definition instead of two conflicting definitions as far as i can tell
<Alfr>
scymtym, yes. I may have misinterpreted the intention as you mentioned "active" and "applicable".
<Alfr>
scymtym, I wanted only to clarify that it doesn't necessarily has to be any of these solely based on the fact that they have glossary entries. (Though in this case, I think, a valid restart is simply an active one.)
<pve>
scymtym: I had a look at your syntax extension, and it looks somewhat more "proper" than my sloppy hack :)
<pve>
I was not 100% clear on the the purpose of check-symbol-token or interpret-symbol-token, so I kinda skimmed over them
<scymtym>
check and interpret are separate so that a client can change the interpretation without re-implementing the validity checks
<pve>
right
<scymtym>
or restrict/relax the check, i guess
<pve>
I just saw that symbol-name-must-not-end-with-package-marker was an exported condition so I figured I would just catch it like an idiot an take it from there :)
<pve>
exported symbol, I mean
<pve>
scymtym: btw, does your solution honor package locks?
<scymtym>
pve: the code should be portable and thus do whatever INTERN does
<scymtym>
but yeah, reading the inner expression while "being in the package" should probably account for package locks on implementations that have them
<pve>
ok
<pve>
scymtym: do you have any other syntax extensions cooking?
<scymtym>
nothing worth mentioning
attila_lendvai_ has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
jrx has joined #commonlisp
Inline has joined #commonlisp
tfeb has joined #commonlisp
seere_ is now known as seere
Krystof has joined #commonlisp
tfeb has quit [Quit: died]
Mandus_ has quit [Ping timeout: 252 seconds]
<pve>
Is a package name allowed to be empty? So I could have something like ||::foo
<pve>
the hyperspec page doesn't seem to forbid it at least..
Mandus_ has joined #commonlisp
attila_lendvai has joined #commonlisp
attila_lendvai_ has quit [Remote host closed the connection]
<akater[m]>
pve: Any symbol's name could be any string so almost certainly you could have a package named "" but I'm not sure how to reference explicitly a package's symbol when a package's name is "". And providing a package so named is not a good idea.
<pve>
akater[m]: it's "||::foo" as far as I can tell
jrx has quit [Quit: ERC (IRC client for Emacs 27.2)]
dec0d3r has quit [Remote host closed the connection]
<pjb>
pve: the only problem is that some implementation put "" as a nickname to "KEYWORD", so that :foo is read as ||:foo ; but the conformity of that is dubious to the least.
<pve>
pjb: oh, that's interesting
<akater[m]>
pve: Well here you go.
<akater[m]>
Elisp has a package that uses `-` and `--` prefixes and somebody called it “asshole naming” and I don't even want to point this out as being rude.
<pve>
akater[m]: yes, I get that it's a bad idea, I just wondered if it's allowed
attila_lendvai has quit [Remote host closed the connection]
cage has quit [Remote host closed the connection]
Mandus_ has quit [Ping timeout: 245 seconds]
loskutak has joined #commonlisp
Mandus_ has joined #commonlisp
Izem has joined #commonlisp
<pve>
scymtym: I could be wrong, but should check-symbol-token include "(not (equal '(0 . 0) (car escape-ranges))") or something to that effect, in the two-package-markers-must-not-be-first case?
<pve>
because eclector seems to get confused by "||::foo"
<Alfr>
Can the reader even distinguish between :xxxxx and ||:xxxxx ?
<mfiano>
They can even distinguish between ||::xxxxx and ||::xxxxx!
<mfiano>
There are ZWSP's in that :)
<scymtym>
so ::foo (often read as a keyword) and ||:foo would both be invalid. the question is whether this is actually meant to be applied without regarding escaped beyond applying them to produce the token pattern
<scymtym>
s/escaped/escapes/
<Alfr>
pve, hm ... strange. Shouldn't something starting with ||, simply discard the two multiple escapes, by 6, 9, and then proceeding to read the rest starting at 8?
JeromeLon has joined #commonlisp
attila_lendvai has joined #commonlisp
attila_lendvai has quit [Read error: Connection reset by peer]
<pve>
Alfr: I'm really not the one to ask, but it reads like that to me too
<pve>
scymtym: thanks for clearing it up, it makes sense now
Izem has left #commonlisp [Good Bye]
<JeromeLon>
Do I understand correctly that the only in-memory streams provided by default are string based, and as such can't stream binary bytes but only characters?
dra has joined #commonlisp
<mfiano>
You would be mistaken.
<mfiano>
#'open takes an element-type
dra has quit [Remote host closed the connection]
<mfiano>
There are ways to read and write binary data, and several libraries for working with binary streams
<mfiano>
Ah "in-memory". There's several ways to do this, such as using flexi-streams
sm2n has quit [Ping timeout: 246 seconds]
<JeromeLon>
mfiano: thanks! so, to rephrase your answer: nothing by default, but flexi-streams is a popular option to manipulate streams and it does include in-memory binary ones?
<mfiano>
Right. You would need Gray streams
<mfiano>
(a specification that didn't make it into ANSI), which flexi-streams uses
<mfiano>
Gray streams is very powerful, like the MOP
srhm has quit [Read error: Connection reset by peer]
srhm has joined #commonlisp
<mfiano>
JeromeLon: Yes, it includes probably everything you would want. in-memory streams, binary or otherwise, input or output
<JeromeLon>
mfiano: thanks!
<mfiano>
Sure
kevingal has joined #commonlisp
cosimone has quit [Remote host closed the connection]
Lord_of_Life has quit [Read error: Connection reset by peer]
<pjb>
JeromeLon: If by "provided by default" you mean "provided by the standard", then yes. But there are common externsions, gray-streams and flexi-streams that let you do in-memory binary streams.
Lord_of_Life_ is now known as Lord_of_Life
<Alfr>
pjb, thanks.
blihp has quit [Quit: Leaving]
<Alfr>
pjb, but I don't understand how the reader algorithm can produce different tokens for ":foo" and "||::foo".
<pjb>
Good question.
<Alfr>
Aehm ... that second one should have been "||:foo".
<Alfr>
Otherwise there'd be one more colon, obviously.
<pjb>
Alfr: I think you are perfectly right, there can be no difference. First the reader algorithm accumulates a token, with constituent traits for each accumulated character, but escapes are not accumulated. So the exact same token shall be read for both "||::foo" and for "::foo". In both cases, it'll be parsed as a keyword.
<Alfr>
pjb, one colon only; the ::aaaaaa case is undefined (2.3.5).
<pjb>
So, if we defined a package named "", it could be difficult to read symbols in it, if it's not a nickname for "KEYWORD".
<pjb>
Also note that ::aaaaa is undefined (implementations usually intern in KEYWORD, but it could be defined to be something else; programs should not use this form).
<Alfr>
pjb, but I'm also unsure about that; would you have a look at the last of the examples? Namely the "5||".
<pjb>
Yes. The reader algorithm should flag the passage thru the state 9.
<Alfr>
pjb, 5 isn't quoted, thus accumulated normally, and then the pair of multiple escapes is discarded. So why should it be a symbol?
<Alfr>
pjb, ah ... good to know. Thanks. :)
<Alfr>
pjb, this exception feels a little bit strange still, hm ...
<pjb>
Well, the specification in inconsistent and incomplete. So the reader algorithm + the token parsing are incomplete and miss the case 5|| but since it's specified to be a symbol (and we can agree it's a good idea), then we must augment the algorithm with such a flag passed to the token parser. (or it could just reset the constituent traits in buffer).
jealousmonk has joined #commonlisp
Psybur has joined #commonlisp
cjb has joined #commonlisp
attila_lendvai has joined #commonlisp
<Alfr>
pjb, :)
random-nick has quit [Ping timeout: 245 seconds]
shka has quit [Ping timeout: 252 seconds]
JeromeLon has quit [Ping timeout: 245 seconds]
dec0d3r has joined #commonlisp
Lycurgus has joined #commonlisp
gaqwas has quit [Ping timeout: 252 seconds]
dec0d3r has quit [Remote host closed the connection]
dec0d3r has joined #commonlisp
lotuseater has quit [Ping timeout: 264 seconds]
Oddity has joined #commonlisp
loskutak has quit [Ping timeout: 252 seconds]
Kabouik has quit [Remote host closed the connection]
Kabouik has joined #commonlisp
Kabouik has joined #commonlisp
hendursa1 has quit [Quit: hendursa1]
zups has quit [Ping timeout: 268 seconds]
zups has joined #commonlisp
hendursaga has joined #commonlisp
abrantesasf has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
CrashTestDummy3 has quit [Ping timeout: 252 seconds]