<no-defun-allowed>
Does the rest of CL not strike you as absurdly verbose?
<equwal>
No, but if we had things like define-backquotable-macro or define-function instead of defmacro/defun I would.
<beach>
equwal: As an implementer of Common Lisp, I very much appreciate how the Common Lisp HyperSpec is helping me figure out how to implement various standard features by specifying lower-level primitives for doing it.
<beach>
equwal: I think what you are seeing is that you are reading a specification meant for implementers and taking it to be a user guide.
<White_Flame>
still the immediate use case can be shrunk by using with-output-to-string
<beach>
equwal: White_Flame is right, the end user should use with-output-to-string instead.
<equwal>
beach: that is a good point about the implementation. I did notice how easy it was to accidentally define things like with-output-to-string.
<beach>
equwal: Yes, and in fact, I sometimes feel lost when the Common Lisp HyperSpec fails to give me hints about how things ought to be implemented. :)
<White_Flame>
and the opposite like here, when you find the low level bits, but didnt' notice the higher level helper stuff
<beach>
... but I can see how the Common Lisp HyperSpec would be confusing to the application programmer, because it does not give hints about what features would be the preferred ones.
<beach>
White_Flame: Exactly!
<beach>
This is why we need a Common Lisp reference manual that is structured so that this information is explicit, with appropriate hints to application programmers and implementers.
<equwal>
I'm currently reading CLtL2, which I think it does a better job than the Hyperspec in this regard.
<equwal>
However, it still is definitively an implementor's manual.
<beach>
Sure.
lnostdal has joined #lisp
<equwal>
So how could I go about making a list of these functions (or functions for another purpose) in order of their level of abstraction?
<beach>
Not an easy task. Read up a lot and ask here, I guess.
clothespin__ has joined #lisp
clothespin_ has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
earl-ducaine_ has quit [Ping timeout: 240 seconds]
oni-on-ion has quit [Remote host closed the connection]
ahungry has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
MetaYan has quit [Ping timeout: 246 seconds]
sauvin has joined #lisp
earl-ducaine has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
shka_ has joined #lisp
froggey has quit [Ping timeout: 265 seconds]
froggey has joined #lisp
quazimodo has quit [Ping timeout: 246 seconds]
MetaYan has joined #lisp
brown121408 has quit [Ping timeout: 265 seconds]
brown121407 has joined #lisp
dale has quit [Quit: My computer has gone to sleep]
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
<ck_>
you could start with elementary functions cons and build up a directed graph of 'uses' relations
<ck_>
I'm sure the Machine Learning community has lots of ideas on how to self-supervisedly learn the abstraction boundaries in the resulting graph. Maybe in the Cloud?
<ck_>
Something will have to be 'leveraged' as well.
william1 has joined #lisp
shka_ has quit [Ping timeout: 265 seconds]
<beach>
ck_: I haven't thought about it much lately, but there is no such unique directed graph. It can be constructed in several different ways.
<beach>
A trivial example, does FIRST use CAR, or is it the other way around?
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
<beach>
Does FIND use LOOP?
<beach>
There is also the question of compile-time and run-time.
<beach>
FIND can use LOOP at run time and LOOP can use FIND at compile time.
<White_Flame>
IF and COND are another basic pair
Cymew has joined #lisp
<beach>
In fact, SICL LOOP used MAKE-INSTANCE and other CLOS stuff at compile time.
scymtym has quit [Ping timeout: 240 seconds]
gxt has quit [Ping timeout: 260 seconds]
<equwal>
Yeah, I was thinking something really fuzzy. They cannot be rated very easily, but they are commensurable.
Codaraxis has joined #lisp
<equwal>
Seeing how absurd it is, I feel that the question was not very good.
<equwal>
Good night beach,
<beach>
'night equwal.
rgherdt has joined #lisp
vlatkoB_ has joined #lisp
loskutak has joined #lisp
vlatkoB has quit [Ping timeout: 268 seconds]
heisig has joined #lisp
enzuru has joined #lisp
scymtym has joined #lisp
smokeink has quit [Remote host closed the connection]
smokeink has joined #lisp
dim has quit [Ping timeout: 250 seconds]
<ck_>
beach: yes, I agree, that's why I said "a directed graph", not "the directed graph"
loskutak has quit [Ping timeout: 268 seconds]
loskutak has joined #lisp
enzuru has quit [Quit: Lost terminal]
clothespin_ has joined #lisp
clothespin has quit [Ping timeout: 245 seconds]
Duuqnd has joined #lisp
loskutak has quit [Ping timeout: 265 seconds]
clothespin has joined #lisp
clothespin_ has quit [Ping timeout: 252 seconds]
greaser|q has quit [Remote host closed the connection]
greaser|q has joined #lisp
_whitelogger has joined #lisp
vseloved has joined #lisp
oxum_ has joined #lisp
mn3m has joined #lisp
oxum has quit [Ping timeout: 276 seconds]
davepdotorg has joined #lisp
oxum_ has quit [Remote host closed the connection]
oxum has joined #lisp
hhdave has joined #lisp
oxum has quit [Remote host closed the connection]
oxum has joined #lisp
<LdBeth>
I guess it’s like seeking “what could be the best practice”
<LdBeth>
Alternatively, “the only one exactly right way”
elfmacs has quit [Ping timeout: 265 seconds]
elfmacs has joined #lisp
Frobozz has quit [Quit: quit]
libertyprime has joined #lisp
stux|RC has quit [Read error: Connection reset by peer]
oxum_ has joined #lisp
oxum_ has quit [Remote host closed the connection]
pilne has quit [Quit: Man who run behind car get exhausted]
vlatkoB_ has quit [Remote host closed the connection]
nckx has joined #lisp
vlatkoB has joined #lisp
Bourne has joined #lisp
nitrix has quit [Read error: Connection reset by peer]
nitrix has joined #lisp
nitrix is now known as Guest15585
JohnMS_WORK has joined #lisp
jmercouris has joined #lisp
_paul0 has quit [Remote host closed the connection]
_paul0 has joined #lisp
<earl-ducaine>
A continuing ASDF frustration for me is trying to track down errors when loading a system. I get a message like "Package QT does not exist. Line: 1, Column: 12, File-Position: 12" But there seems to be no information what file generated it.
<phoe>
earl-ducaine: take a look at the restarts, there should be a pathname in there
<earl-ducaine>
I'm using quicklisp, and even when I switch :verbose t I can't find it.
<earl-ducaine>
These are my restarts: 0: [CONTINUE] Use the current package, COMMON-LISP-USER.
<earl-ducaine>
2: [USE-VALUE] Specify a different package
<earl-ducaine>
3: [UNINTERN] Read the symbol as uninterned.
<earl-ducaine>
1: [RETRY] Retry finding the package.
<earl-ducaine>
4: [SYMBOL] Specify a symbol to return
<earl-ducaine>
Really my question is more general, since I can always figure this out. The question is: is there a way to run ASDF to get better debugging info.
<earl-ducaine>
And, why is the debugging information so poor in ASDF? At least the default info.
<phoe>
I am confused because I expected to see ASDF restarts in there
<phoe>
and I don't see them
jmercouris has quit [Ping timeout: 245 seconds]
<phoe>
so my question is whether ASDF was actually invoked
<phoe>
there are the unknown-package restarts, and then the SLIME REPL restarts with nothing in between
<earl-ducaine>
It's clear god is punishing me for my lack of patience and perspective....
<phoe>
I can literally reproduce this by typing (qt:quickload :clung)
<phoe>
which is an ugly typo
<earl-ducaine>
yup.
<phoe>
do show me your stack then, I am curious why ASDF didn't put its restarts there
<earl-ducaine>
nothing to do with ASDF...
<phoe>
I am confused now
<earl-ducaine>
qt --> ql
<phoe>
ha!
<phoe>
well then, the error message is valid indeed
<phoe>
and ASDF is not to blame in that specific case
<earl-ducaine>
yup
jmercouris has joined #lisp
<earl-ducaine>
ASDF still drives me crazy with it's error handling. Currently it's genering an error, it issues an error but not a line number unless I abort.
<earl-ducaine>
But, since I proved my lack of good standing with my previous message, I'll have to hide my head and shame and suck it up.
<phoe>
not really
<phoe>
the fact that this was a silly typo proves nothing about ASDF's poor error handling
<phoe>
so if there's an actual issue with ASDF then please post it here
tourjin has joined #lisp
<phoe>
and if you suspect that there's an ASDF issue then post it here anyway, in the worst case someone will point out another typo (;
<phoe>
the lisp world will become a bit better place either way
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
loskutak has joined #lisp
<tourjin>
https://bpaste.net/show/N4Z5I to my understanding it iterates n times adding k. is there a way to trace every changing n's sum of k's?
gxt has joined #lisp
<earl-ducaine>
The problem I've run into in the past is that there have been situations where I've had to individually load files to get the line number location of an error.
<earl-ducaine>
But, for example the problem that I just ran into was a warning which doesn't generate line information in SBCL either.
<earl-ducaine>
And ultimately that's the challenge: you have SBCL interacting with slime interacting with ASDF and most of the CL debugging infrastructure is implementation dependant.
rgherdt has quit [Ping timeout: 250 seconds]
<earl-ducaine>
So, support is sort of the lowest common denominator.
smokeink has quit [Quit: Leaving]
<tourjin>
as for above codes, block followed after labels is local definition inside defun and last (temp n) initiates recursive excutions. do I understand correctly?
<pjb>
tourjin: some implementations allow you to TRACE inner functions, using a specifier such as (recursive-times temp); check the user manual of your implementation.
<pjb>
tourjin: otherwise you can use the cl-stepper.
<earl-ducaine>
pjb: If i load this using (ql:quickload :flavor :verbose t) as a local quicklisp project, it generates a load error and puts me into the interactive debugger. (listed: SLIME debug window)
<earl-ducaine>
pjb: But the only information the interactive debugger gives me is the file being loaded, not the function or line number. If I try to view source, by pressing 'v' on any of the listed stack frames, I'm not given any useful information about the load.
<earl-ducaine>
pjb: If I look over at the SBCL repl I see a number of warnings. But I not told which one caused the load error.
<phoe>
earl-ducaine: this is because warnings are treated as errors
<phoe>
so I think that any warning is a full stop at this point
<phoe>
so, in a way, all of them caused ASDF to choke
<phoe>
all and any
<earl-ducaine>
:phoe But some warning are for sure not treated as errors, like unused variables.
<earl-ducaine>
:phoe So it's difficult to know what the minimal fix is to get a system to load.
<phoe>
earl-ducaine: um correct - all warnings except style-warnings
raghavgururajan has joined #lisp
rgherdt has joined #lisp
<earl-ducaine>
But, my point isn't that ASDF, or slime, or swank, or SBCL are wrong, per se, but rather that the debug envirnoment when trying to troubleshoot system loadng can be quite confusing and not as helpful as one would like.
<earl-ducaine>
And my apologies, I meant to mention phoe: not pjd: in my previous message.
brown121407 has quit [Read error: Connection reset by peer]
brown121407 has joined #lisp
Bourne has quit [Read error: Connection reset by peer]
raghavgururajan has quit [Remote host closed the connection]
rgherdt has quit [Quit: Leaving]
<phoe>
earl-ducaine: yes, that is correct. And sad.
<phoe>
It could use some improvement and consistency.
lucasb has joined #lisp
sunwukong has joined #lisp
loskutak has joined #lisp
<tourjin>
<pjb> tourjin: of course, you can always add a PRINT, it's the simpliest solution. this was the only solution for now. thank you.
<Kabriel>
tourjin: recursive-times is not recursive; it is only called once.
atgreen has joined #lisp
random-nick has joined #lisp
wiselord has joined #lisp
<tourjin>
kabriel I don't get it. https://bpaste.net/show/HUNFI this is not recursive? I get 10 to 0 from princ . does'nt it mean it was executed 10 times?
<Kabriel>
look at the trace. I only see recursive-times called 1x (0: (recursive-times 1 10))
<phoe>
tourjin: you do sound like you need tutoring on some basic Linux and Git workflows
<tourjin>
informatimago/
<tourjin>
I see this under d:/home/quicklisp
<phoe>
maybe #clschool will be of some more assistance
<tourjin>
yes I must.
<phoe>
just delete the directory in that case
<tourjin>
ok thanks
<phoe>
git clone creates a directory with all the stuff for a given repository; to "uninstall" the repository, just delete its dir.
<tourjin>
thank you.
jmercouris has joined #lisp
jayspeer has joined #lisp
clothespin has quit [Ping timeout: 268 seconds]
clothespin__ has quit [Ping timeout: 268 seconds]
loskutak has quit [Ping timeout: 246 seconds]
elfmacs has quit [Ping timeout: 252 seconds]
<katco>
is there an idiom for iterating over multiple sequences at different rates? i can only think of using a recursive function.
<jmercouris>
katco: what do you mean at different rates? concurrently?
<jayspeer>
can anyone point me to good direction? I don't have much experience with common lisp. I'm trying to quickload "cube" project (common lisp kubernetes client), but I get stuck on alexandria.0.dev:read-stream-content-into-string. ALEXANDRIA.0.DEV does not exists, and ALEXANDRIA.1.0.0 does not have the symbol bound
<katco>
jmercouris: yes, concurrently, so on one iteration i might move forward one slot in list `A`, but not at all in list `B`
<jmercouris>
jayspeer: are you able to quickload any other libraries?
<jmercouris>
katco: must the movement be synchronized? if not, you can use bordeaux threads
<jmercouris>
katco: if it must you can use loop to go through multiple sequences, I can't remember how though :\
<katco>
i want to do something like `(loop for i in list-foo if (pred) for j in list-bar do (foo))`
<jmercouris>
Ah, a nested loop!
<jmercouris>
why not just write exactly what you wrote above?
<jmercouris>
I guess I don't understand what the problem is
<katco>
that doesn't work, the `loop` macro doesn't allow `for` within an `if` block
<jmercouris>
ah, you just don't know the syntax
<jmercouris>
I see
<katco>
it's not quite a nested loop either
<jmercouris>
sure it is
<jackdaniel>
it isn't
<jmercouris>
instead of "if pred"
<Bike>
no, if you want to go through the lists at different rates you can't do that with loop
<Bike>
i mean, not directly
<Bike>
you can use for =
<jackdaniel>
katco: I'd write a macro based on DO
<jmercouris>
what he wrote in pseudocode is definitely not going through two lists at the SAME time
<jayspeer>
jmercouris: yeah, previous dependencies installed just fine
<jmercouris>
jayspeer: do you have perhaps an old QL dist?
<jayspeer>
I just installed it :)
<katco>
jmercouris: not a he, but anyway: two lists at the same time, but one of them conditionally, so, what everyone else is saying, different rate
<jayspeer>
jmercouris: there is alexandria, but not 0.dev version
<Bike>
you can do this with the iterate macro's generators, or do something yourself, prolly
<jmercouris>
I still don't see how that is two lists at the same time, but if they help you, then that should be enough
<jmercouris>
jayspeer: you may manually download it and place it in a place where asdf can find it then
<katco>
Bike: i considered manually unrolling the list, but that seemed cumbersome
<jmercouris>
jayspeer: you can use the local projects directory
<Bike>
well, you'll have to do something like that under the hood, eventually
<Bike>
pop the list or whatnot
<katco>
Bike: i think recursion seems cleaner than that? just conditionally `cdr` the parameters?
fookara has joined #lisp
<Bike>
it works out the same
<Xach>
jlarocco:
<Xach>
jayspeer: "cube" is using an old interface that has been updated recently
<jayspeer>
Xach: Can you point me to a solution?
<Xach>
jayspeer: I'll check it out
<katco>
jmercouris: hopefully this helps: here's more "complete" (but woefully invalid) pseudocode: `(loop for i in '(1 2 3) if (evenp i) for j in '(1 2 3) collect (* i j))` i would expect to see `(1 4 6)`, not `(1 4 9)` nor, `((1 2 3) (2 4 6) (3 6 9))` (which would be a nested loop)
<katco>
thanks for the advice, all
<katco>
Xach: hey, i queried you awhile ago about submitting bug reports to zs3. i'll be doing some work with it in the new year, so just a heads-up again :)
<jmercouris>
katco: ah, I see now
<Xach>
jayspeer: update the reference to alexandria.0.dev to just alexandria, or the new versioned package name.
<Xach>
katco: excellent!
<katco>
Xach: one thing that may be more of a conversation: are there any plans for multi-part uploads so i don't have to store large files in memory before streaming up?
AnimalCl` has quit [Ping timeout: 276 seconds]
jmercouris has quit [Remote host closed the connection]
cosimone has joined #lisp
<jayspeer>
Xach: it worked, thank you :)
pfdietz has joined #lisp
Kevslinger has joined #lisp
brown121407 has quit [Read error: Connection reset by peer]
brown121407 has joined #lisp
shka_ has joined #lisp
<drmeister>
I registered with gitlab and I can see a "Fork" button on the asdf/asdf project - but it is greyed out and I cannot activate it.
<drmeister>
I jumped through all the registration hoops that were put in front of me - is there one more?
<drmeister>
I've contacted flip214 (suggested by stassats) to solicit his advice about this.
clothespin has joined #lisp
<drmeister>
Would anyone else know what I need to do to be able to fork ASDF?
clothespin_ has joined #lisp
* drmeister
doesn't like grey buttons.
<phoe>
drmeister: gitlab.common-lisp.net?
gxt has quit [Quit: WeeChat 2.6]
<Xach>
katco: I think it is a good idea but I won't be working on it any time soon
<phoe>
if yes, then poke ehuelsmann on #common-lisp.net and ask him to bump up your repository limit - the last time I remember this happening, it was because of that
<katco>
Xach: understood, thank you. with proper issues/agreement, are you open to patches?
* drmeister
only likes grey buttons in minecraft.
<Xach>
katco: yes. to me that means following the conventions of the surrounding code and writing good documentation. the documentation is plain old html. (i have emacs code to make it easier and can share if it helps.)
rgherdt has joined #lisp
<drmeister>
We have decided to use directories as fasl files in Clasp to support debug info on macOS and ASDF currently is hardcoded to only allow fasl files to be files.
<drmeister>
Note the sad shade of grey of the "Fork" button.
<drmeister>
BRB - moving between trains.
brown121407 has quit [Ping timeout: 265 seconds]
brown121407 has joined #lisp
<Xach>
katco: if i had time, i'd try to add all the new things in S3
<Xach>
Someone also complained in a blog that it doesn't support async operation (but never mentioned it to me) - I'd love to make the processing components async-agnostic at least.
<phoe>
drmeister: file a formal complaint on channel #common-lisp.net then
<katco>
Xach: i empathize with the time dilemma! i'll try and do what i can within the bounds of my project
grewal has quit [Ping timeout: 268 seconds]
grewal has joined #lisp
<katco>
i could easily spend my entire work day contributing back to open source. but alas, not enough time in the day :(
sunwukong has quit [Remote host closed the connection]
smazga has joined #lisp
kmeow has joined #lisp
jlarocco has quit [Ping timeout: 240 seconds]
loskutak has joined #lisp
khisanth_ has joined #lisp
raghavgururajan has joined #lisp
khisanth__ has quit [Ping timeout: 276 seconds]
Guest15585 has quit [Changing host]
Guest15585 has joined #lisp
Guest15585 is now known as nitrix
jayspeer has left #lisp ["ERC (IRC client for Emacs 26.3)"]
jjkola has quit [Quit: Ex-Chat]
AnimalCl` has quit [Read error: Connection reset by peer]
buffergn0me has joined #lisp
gareppa has quit [Quit: Leaving]
davd has quit [Remote host closed the connection]
gareppa has joined #lisp
payphone` has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
<drmeister>
phoe: Thank you - I will chat on #common-lisp.net
slyrus has joined #lisp
slyrus__ has quit [Ping timeout: 268 seconds]
ArthurStrong has joined #lisp
<drmeister>
The folks on #common-lisp.net were very helpful. I've transcended to forkable status.
* drmeister
is a somebody now.
ArthurStrong has quit [Quit: leaving]
<phoe>
you have achieved enforkeability
davepdotorg has quit [Quit: Leaving...]
<drmeister>
A question on style... In ASDF they have... (let ((source (ensure-pathname source :namestring :lisp :ensure-physical t :want-file t)) ... )
<drmeister>
For Clasp we want to use directories as fasl files and so I would suggest:
<_death>
maybe just dropping want-file would be a good idea
<jackdaniel>
#-clasp #-clasp :want-file t -- is it (#-clasp #-clasp) (:want-file t) or #-clasp (#-clasp :want-file) t
Ankhers has joined #lisp
<william1>
Is anyone working on anything lispy that I can have a read of?
<william1>
Trying to learn cl to stretch my programming brain :)
<Xach>
william1: i think cl-ppcre has some interesting code to read
<jackdaniel>
minion: tell william1 about paip
<minion>
william1: paip: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
<jackdaniel>
william1: ^ this book has very interesting case studies in common lisp
<william1>
Thanks :)
<Xach>
it does a useful thing that is probably familiar, and does it with both very good performance and readable code
<william1>
I love Norvig
<william1>
He's such a dude
dvdmuckle has quit [Quit: Bouncer Surgery]
kritixil1 has joined #lisp
oni-on-ion has quit [Remote host closed the connection]
oni-on-ion has joined #lisp
kritixilithos has quit [Ping timeout: 260 seconds]
dvdmuckle has joined #lisp
DGASAU has quit [Read error: Connection reset by peer]
kritixil1 has quit [Ping timeout: 260 seconds]
wiselord has joined #lisp
DGASAU has joined #lisp
rotucer has joined #lisp
fanta1 has quit [Quit: fanta1]
buffergn0me has quit [Ping timeout: 246 seconds]
atgreen has quit [Ping timeout: 265 seconds]
slyrus__ has joined #lisp
slyrus_ has quit [Ping timeout: 240 seconds]
amerlyq has quit [Quit: amerlyq]
<pjb>
phoe: in my time, code was precious. You can't imagine the lengths we went to get some and collect it! Collecting any strip of paper tape, even buggy ones. Buying reviews, and typing it back from listing, spending hours on 300 b/s modems to collect it in chunks and cat'ing back tar files, filling dearly bought floppies. Nowadays, it's just throwable. You git clone, and then rm -rf it! :-(
<pjb>
Without even reading it…
<pjb>
drmeister: perhaps you need to log-in in addition to registering?
<oni-on-ion>
yeah =( =( its become factory work now too. art form passed =(
<jackdaniel>
prawdziwyyych, cyganów, już niee ma ,-)
<jackdaniel>
there are plenty of hackers, no worries. it is just a number of people writing code grows faster (due to market deamand and education strategy)
eeeeeta has joined #lisp
<jackdaniel>
admittedly #lispcafe topic, sorry
dale_ has joined #lisp
dale_ is now known as dale
vaporatorius has quit [Ping timeout: 268 seconds]
brown121407 has quit [Ping timeout: 265 seconds]
brown121407 has joined #lisp
<drmeister>
pjb: Everything is fine now - thank you.
<pjb>
drmeister: good. I've been watching some videos of train wrecks, so I was worried. There seem to be quite a surprising number of train accidents…