pjb has quit [Read error: Connection reset by peer]
pjb has joined #commonlisp
pjb has quit [Read error: Connection reset by peer]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
zacts has joined #commonlisp
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
<cheers>
beach: i see; thanks for the update!
<cheers>
re: SICL, that is
taiju has quit [Ping timeout: 268 seconds]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
waleee has quit [Ping timeout: 252 seconds]
yewscion has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
dsk has joined #commonlisp
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
zacts has quit [Ping timeout: 246 seconds]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
zacts has joined #commonlisp
zacts92 has joined #commonlisp
kakuhen has quit [Ping timeout: 255 seconds]
zacts has quit [Killed (NickServ (GHOST command used by zacts92))]
zacts92 is now known as zacts
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 246 seconds]
Lord_of_Life_ is now known as Lord_of_Life
cjb has quit [Quit: rcirc on GNU Emacs 28.0.50]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
zacts has quit [Ping timeout: 246 seconds]
pjb has joined #commonlisp
prxq has joined #commonlisp
prxq_ has quit [Ping timeout: 252 seconds]
pillton has joined #commonlisp
<beach>
Good morning everyone!
akoana has joined #commonlisp
IPmonger has joined #commonlisp
IPmonger has quit [Remote host closed the connection]
derelict has quit [Ping timeout: 240 seconds]
pegaso has joined #commonlisp
cjb has joined #commonlisp
<PinealGlandOptic>
beach: !
pjb has quit [Remote host closed the connection]
derelict has joined #commonlisp
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
pjb has joined #commonlisp
pegaso has quit [Quit: Leaving]
srhm has quit [Remote host closed the connection]
taiju has joined #commonlisp
Jach has quit [Quit: Leaving.]
Jach has joined #commonlisp
pjb has quit [Ping timeout: 255 seconds]
pjb has joined #commonlisp
derelict has quit [Quit: WeeChat 3.2]
pjb has quit [Remote host closed the connection]
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
svillemot has quit [Ping timeout: 240 seconds]
svillemot has joined #commonlisp
pjb has joined #commonlisp
pjb has quit [Remote host closed the connection]
yewscion has quit [Ping timeout: 240 seconds]
pjb has joined #commonlisp
Bike has quit [Quit: Lost terminal]
citizenajb has quit [Quit: Client closed]
<susam>
Good morning, beach!
<susam>
Good morning, everyone!
<beach>
Hello susam.
ldb has joined #commonlisp
<ldb>
good afternoon
<beach>
Hello ldb.
cjb has quit [Ping timeout: 246 seconds]
kakuhen has joined #commonlisp
cjb has joined #commonlisp
Inline_ has quit [Quit: Leaving]
<beach>
There are rumors that recent versions of the software produced by the Muse Group is spyware. Perhaps this is a good time, then, to consider a Common Lisp implementation of an editor for music scores. It is insane anyway to write such a program in C++. We can do much better.
<ldb>
What is the difference between a music score editor and GNU LilyPond?
<ldb>
the later claims to be "music engraving program"
isekaijin has joined #commonlisp
<beach>
I think they are the same. But as I recall, LilyPond is not interactive.
<ldb>
It is TeX underneath
<beach>
Right.
isekaijin has quit [Client Quit]
isekaijin has joined #commonlisp
<beach>
So the idea would be to create a CLIM/McCLIM-based interactive program that uses the new standard for music fonts, and the new (apparently excellent and free) implementation of that standard.
<cjb>
isn't there a nice GUI for lilypond that lets you input scores really fast?
<ldb>
I think lilypond is like a preprocesor to TeX, simplfies a lot of things of MusiXTeX
<ldb>
MusiXTeX is almost impossible for any pratical use.
<edgar-rft>
right, lilypond uses GNU Guile as a preprocessor for TeX, plus some C++ hacking to extend Guile
<beach>
I see absolutely no advantage of using TeX for typesetting music scores.
<edgar-rft>
lilypond is a hodgepoge of piled-up tools with not really clever design choices
<edgar-rft>
for example the current lilypond versions are still stuck with Guile 1.8 because all other Guile version afterwards make lilypond unbearably slow
<beach>
Wow.
<ldb>
beach: TeX resembles movable type, so it suits the aesthetics of retro enthusiasts
<ldb>
despite that, TeX is not designed for music ;)
<beach>
Exactly.
<beach>
The rules of music engraving are completely different from those of typesetting text, so I don't see what TeX can contribute.
<edgar-rft>
The lilypond developers mainly work in the music or typesetting/printing business, I think they choosed TeX because they didn't want to write their own typesetting program and choosed Guile because it was said to become the "standard GNU scriptiung language". I can ask on the mailing list if somebody needs details.
<beach>
Don't do it for me.
<ldb>
They are also former contributors to the MusiXTeX
isekaijin has quit [Quit: WeeChat 3.2]
<beach>
I think Common Lisp would be the ideal implementation language for an interactive score editor/engraving program.
amb007 has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
<edgar-rft>
beach: that may be but have you the slightest idea how much work that is?
<beach>
I did Gsharp some time ago, but made some wrong design decisions. Also, at the time, McCLIM was not as good as it is now. And the font technology was not available. Now is a good time to do something better.
unyu has joined #commonlisp
<beach>
edgar-rft: I am not entirely ignorant. I have read up on all the rules of music engraving, and I have experience with Gsharp.
pjb has quit [Remote host closed the connection]
<edgar-rft>
beach: I didn't mean that I think you're stupid :-)
<beach>
Sure, stupidity and ignorance are not the same.
<ldb>
i'm getting interested, is there any reading I can do to start learning music engraving?
<beach>
ldb: Yes, there is a very good book. Let me find it for you...
<edgar-rft>
beach: sure, I know *some* things but I'm ignorant in *most* others :-)
<edgar-rft>
ldb: there are papers from Werner Lemberg (main typesetter and music font designer of lilypond), gimme some seconds to look...
<susam>
Learnt about Gsharp now. Hadn't heard about it before. I have used LilyPond about 10 years ago and the PDFs it rendered looked very good. The Gsharp screenshots at https://common-lisp.net/project/gsharp/ don't look as good. I think I see a lot of aliasing.
<beach>
ldb: The trick is to encode those rules in software, while still allowing the user to tweak the layout when necessary.
<beach>
susam: Yes, the technology at the time wasn't good enough.
<moon-child>
cjb: side-by-side preview is not really 'interactive', particularly for tex which takes quite a while to render
<beach>
susam: Like I said, McCLIM is much better now. We also have Common Lisp support for OpenType fonts, and we have a free OpenType music font that is apparently excellent.
<susam>
beach: Yes. That makes sense. I agree, a very good music score system can be made with CL.
pillton has quit [Quit: ERC (IRC client for Emacs 27.2)]
cjb has quit [Quit: rcirc on GNU Emacs 28.0.50]
lisp123 has joined #commonlisp
shka has joined #commonlisp
yewscion has joined #commonlisp
cranium has joined #commonlisp
Duuqnd has joined #commonlisp
hendursa1 has joined #commonlisp
<pve>
Hi, are there any examples of libraries or applications where, in order to compile the code, one needs to load the source code first (i.e. the lisp files) before compiling anything?
hendursaga has quit [Ping timeout: 244 seconds]
yewscion has quit [Ping timeout: 255 seconds]
domovod has quit [Ping timeout: 252 seconds]
<beach>
Probably not. It would be strange to organize the code that way.
<flip214>
pve: if reader macros are in use, they're needed to read other source files. CL-INTERPOL (used eg. for CL-PPCRE), or NAMED-READTABLES, or similar stuff comes to my mind.
<beach>
Oh, sorry, I thought you said "many" but you said "any".
<beach>
It is possible that there are a few such examples.
<pjb>
Well, some old application could have needed that. Basically, in Patchwork, which was developped in part in the image, had files with a lot of circular dependencies. Loading everything before compiling would have helped compiling without error or warning.
<pjb>
But this is not clear. The first thing I did of course was to sort that out and write an asd file to compile it normally.
<beach>
flip214: You would do that by making sure the compiled file containing reader macros was loaded before the others.
<pjb>
So you only need to load (compiled) files before compiling other files when the former contain functions or other definitions needed at read-time or compilation-time of the later (reader-macros, functions used by macros, macros, etc).
<beach>
Exactly.
<pve>
yeah, I'm looking at "The Description of Large Systems" by Kent Pitman and get the impression that such code might exist
<pjb>
pve: let's say that you wouldn't aim at such a system…
<pve>
(probably old code)
<pjb>
Yes.
<beach>
pve: ASDF typically compiles and loads one file at a time, so as long as the order is respected, there should be no such issues.
<pve>
So I was curious to see if there's some case where doing things that way would be called for (maybe increased convenience..)
<pve>
thanks beach, pjb
silasfox has joined #commonlisp
silasfox_ has joined #commonlisp
<beach>
Sure.
silasfox has quit [Ping timeout: 252 seconds]
silasfox_ has quit [Read error: Connection reset by peer]
kevingal has joined #commonlisp
silasfox_ has joined #commonlisp
selwyn has joined #commonlisp
silasfox1 has joined #commonlisp
<pve>
flip214: yeah, i guess you wouldn't need to wrap certain function calls, like (enable-some-reader-syntax ..), with an eval-when
<cranium>
re: music engraving in Lisp, I think https://opusmodus.com/ should be mentioned in this.
<lisp123>
beach: Will SICL be a powered up version of ANSI CL (i.e. some new functionality that is covered by libraries currently) or is it focused mostly on portability?
<moon-child>
I do not see why you would put into the implementation functionality which could be put into libraries
<moon-child>
sicl is rather geared the other way around, with components designed to be reusable by other implementations
<lisp123>
moon-child: I realised today that the standard doesn't support custom equality tests for hash tables, so was wondering if this was something that could be extended into a new implementation without libraries
<lisp123>
moon-child: thanks for clarifying on what SICL will do
<moon-child>
lisp123: the problem you have there is portability
silasfox_ has quit [Ping timeout: 252 seconds]
<moon-child>
you don't want your code to be tied to a certain implementation
<lisp123>
moon-child: i agree :) that would be terrible (IMO)
<lisp123>
i just realised how stupid my question was :) ignore me (if a new implementation extended CL then it would no longer be portable)
silasfox has quit [Read error: Connection reset by peer]
silasfox has joined #commonlisp
<moon-child>
well, there is certain functionality overlooked by spec which must go into the implementation
<moon-child>
such as threads
<beach>
lisp123: The improvements are mostly in code maintainability and algorithms for various things including bootstrapping and generic dispatch.
<moon-child>
but the difference there is that threading is (somewhat--see boehm paper on c's (lack of) memory model) orthogonal to other language functionality. Also that such extensions are generally abstracted over by generic libraries such as bordeaux threads
<beach>
cranium: Thanks for the links.
<beach>
lisp123: If there are good existing libraries, I see no reason to re-implement. But mostly it's the other way around. The SICL project will create new libraries that did not exist before like Clostrum, Trucler, Eclector, etc.
<beach>
... as moon-child said. :)
notzmv has quit [Read error: Connection reset by peer]
<beach>
lisp123: The idea here is that these libraries could be used by other implementations to improve modularity and maintainability. However, since we decided some time ago that there can be no "order" between the libraries, to actually use them natively in a Common Lisp implementation, something like SICL bootstrapping is required.
<beach>
And I haven't (yet) figured out how to make SICL bootstrapping usable in other implementations.
OlCe has joined #commonlisp
akoana has quit [Quit: leaving]
edgar-rft has joined #commonlisp
Th30n has joined #commonlisp
jeosol has quit [Quit: Ping timeout (120 seconds)]
lotuseater has joined #commonlisp
<lisp123>
beach: thanks :-) thats great to hear
<lisp123>
moon-child: thanks also
makomo has joined #commonlisp
asarch has joined #commonlisp
<asarch>
With Caveman2, you can create a controller for a specific HTML request like: (defroute "/students/:id/information" (&key id) (let ((student (with-connection (db :school) (retrieve-one (select :* (from :student) (where (:= :id id))))))) (render #P"students.html" (list :student student))))
<asarch>
In the web app I am writing, I have ~163 controllers
<asarch>
In one of them I can use variables without actually "declaring" them
<asarch>
So, if I do: (setf tacos 10) without previously do a (let (tacos...) ..., SBCL does not complain
zagura has quit [Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number]
<asarch>
How is that possible?
<lotuseater>
Good morning everybody :)
<moon-child>
perhaps the code is not getting compiled? If you actually request a uri served by that controller, does it work?
<asarch>
Yeah, I even get the valor of 'taco' with a (format t "Valor de taco: ~d" taco)
<asarch>
This is from Caveman2 output log: [04:52:14] <DB> SELECT * FROM "idioma" ORDER BY "id" () [8 rows] | LACK.UTIL:FUNCALL-WITH-CB
<asarch>
And then my message: Valor de taco: 10
<asarch>
And then the request: 127.0.0.1 - [22/Jul/2021:04:52:14 -05:00] "POST /expresiones/buscar HTTP/1.1" 200 3867 "http://localhost:5000/expresiones/buscar" "Mozilla/5.0 (X11; Linux x86_64; rv:90.0) Gecko/20100101 Firefox/90.0"
<moon-child>
are you certain that 'taco' is not defined anywhere dynamically? What if you read from 'taco' without assigning to it? What if you use another name?
<flip214>
jackdaniel: just did an QL:update-all-dists, so I don't think so. thanks for the example!
<jackdaniel>
flip214: by stale fasls I mean old files in ~/.cache/common-lisp/
<jackdaniel>
they might be old because asdf did not realize some changes or because mcclim asd definitions are not correct
<jackdaniel>
because these changes were introduced in the same merge request, so these arguments are valid initialization arguments for the application frame
<flip214>
jackdaniel: The value 69/68 is not of type (OR (SINGLE-FLOAT 0.0 1.0) (DOUBLE-FLOAT 0.0d0 1.0d0) (RATIONAL 0 1)) [Condition of type TYPE-ERROR]
<flip214>
with your example
<flip214>
now recompiling everything, including sbcl
<jackdaniel>
recompiling sbcl is a bit excessive :)
<jackdaniel>
replace the last clause in make colors with (colors (make-rgb-color 1.0 1.0 (* i number)))
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
<lotuseater>
how do i correctly create a subclass to a built-in class, by providing (:metaclass built-in-class) to DEFCLASS. let's say (defclass safe-vector (vector) () (:metaclass built-in-class))
<pjb>
You can't.
<pjb>
That's the point of built-in-classes. If they could be extended by standard methods, they wouldn't be built-in.
Bike has joined #commonlisp
<pjb>
lotuseater: also, note how integer is a built-in-class. What's the meaning of subclassing integers? Make colored integers?
<pjb>
lotuseater: on the other hand, if you're an implementer, then you can always create more built-in-classes, and possibly deriving one from another, depending on how they're implemented.
<lotuseater>
sad :( but thx again
<lotuseater>
one must also learn about forbidden magic ^^
<pjb>
lotuseater: this also mean, that it's possible that some implementation let you do it, at least for some classes, using implementation level APi.
<pjb>
But it would not be wise to use that in an application or library…
<lotuseater>
so also disallowed first do (defclass internal-class (built-in-class)) ?
<pjb>
Indeed.
<Bike>
i don't know if it's disallowed to define a subclass of BUILT-IN-CLASS. defining a subclass of _a_ built in class (vector, number, etc) isn't allowed
<lotuseater>
okay :)
<Bike>
except that some implementations let you subclass SEQUENCE
<jackdaniel>
lotuseater: built-in-class is not the standard class so all bets are off regarding how it behaves, what would be a reason to subclass it?
<lotuseater>
but I was productive up to know and got ecl on raspberry work with quicklisp (as you advised me some days ago using setup.lisp) and compiled ccl, it just needed m4. but it's not obvious to me now how to link ccl for startup correctly
ldb has joined #commonlisp
<lotuseater>
pjb: subclasses of integer could many things be, starting with even or odd integers. ok or using (deftype even-integer () '(and integer (satisfies even-integer-p))) by wrapping #'even-integer-p in an eval-when
<Bike>
that's a type, not a class
<lotuseater>
jackdaniel: more theoretical question that came to my mind
<lotuseater>
Bike: i know, was meant as an alternative to subclassing integer
<jackdaniel>
lotuseater: mcclim presentation type system allows you to parametrize cl classes (even built-in ones)
tyson2 has joined #commonlisp
<jackdaniel>
s/mcclim/clim/
lisp123 has joined #commonlisp
<pjb>
If we were smalltalk. But even with smalltalk, there are usually optimizations that would break subclassing of integer and similar.
Th30n has joined #commonlisp
lotuseater has quit [Ping timeout: 272 seconds]
lisp123 has quit [Ping timeout: 256 seconds]
Duuqnd has quit [Remote host closed the connection]
Duuqnd has joined #commonlisp
domovod has joined #commonlisp
domovod has quit [Client Quit]
domovod has joined #commonlisp
pve has quit [Ping timeout: 265 seconds]
ryanbw has quit [Ping timeout: 265 seconds]
pve has joined #commonlisp
makomo has joined #commonlisp
ryanbw has joined #commonlisp
<flip214>
jackdaniel: can I eliminate the blinking, eg. via double-buffering or so?
<jackdaniel>
flip214: if you don't execute new commands then it shouldn't blink. that said - clx-fb backend has double buffering, "native" one has planned feature for that
<jmercouris>
OK, false alarm, I was in fact doing something stupid... sorry for the noise
makomo has joined #commonlisp
makomo has quit [Client Quit]
makomo has joined #commonlisp
dlowe has joined #commonlisp
zacts has joined #commonlisp
<dlowe>
Does anyone have experience migrating from stefil to fiasco or is it just me?
dlowe has quit [Remote host closed the connection]
dlowe has joined #commonlisp
jeosol has joined #commonlisp
zacts88 has joined #commonlisp
zacts has quit [Ping timeout: 246 seconds]
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
makomo has quit [Ping timeout: 252 seconds]
OlCe has quit [Remote host closed the connection]
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
dsk has joined #commonlisp
unyu has quit [Read error: Connection reset by peer]
Th30n has quit [Quit: WeeChat 3.2]
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
zacts88 is now known as zacts
frgo has joined #commonlisp
selwyn has joined #commonlisp
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
unyu has joined #commonlisp
OlCe has joined #commonlisp
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
<jcowan>
edgar-rft: Probably no one cares any more, but Guile 3's JIT makes it essentially as fast as Guile 1, so lilypond could be updated. Although it would still run unbearably slowly on a Vax.
zacts has quit [Quit: Ping timeout (120 seconds)]
makomo has joined #commonlisp
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
OlCe has quit [Remote host closed the connection]
zacts has joined #commonlisp
zacts has quit [Client Quit]
sjl has joined #commonlisp
Inline has joined #commonlisp
terrorjack has quit [Remote host closed the connection]
<beach>
Tell me that the phrase "use-package checks for name conflicts between the newly IMPORTED [my emphasis] symbols, and those already accessible in package" is wrong.
<Bike>
sure looks wrong
<beach>
Thanks.
dsk has quit [Ping timeout: 250 seconds]
<beach>
The glossary says "import v.t. (a symbol into a package) to make the symbol be present in the package".
cuz has joined #commonlisp
<beach>
"use-package does not cause any new symbols to be present in package..."
<beach>
I'll turn it into a WSCL issue tomorrow I guess.
<beach>
Since I am now working on the package system, I am slowly convincing myself that the entire package system could be defined in an external library.
<beach>
The package system is relatively independent of other parts of Common Lisp.
<beach>
There are some minor interactions with symbols, like changing the home package of those symbols.
OlCe has joined #commonlisp
<beach>
Those interactions could be handled by the standard way that we have developed, i.e., the library has a generic function that it calls, and client code has to define a method on it.
duuqnd_ has joined #commonlisp
Duuqnd has quit [Read error: Connection reset by peer]
<Xach>
beach: i have a favorite example problem with the package spec...let me dig it up
<lisp123>
how to close slime when its in a infinite loop?
<lisp123>
without closing emacs
<Bike>
slime-quit-lisp, i think? usually i'd just restart it, and this is assuming C-c C-c isn't working
<lisp123>
Bike: My computer thanks you!
<edgar-rft>
jcowan: I's not neccessarily my opinion but the people on the lilypond mailinglist who frequently are running Guile tests say otherwise. As far as I know the main problem is that it's the unneccessary Guile "compile" step that slows everything down. Lilypond passes the Guile results directly to C++ and therefore needs a fast Guile *interpreter*, it throws away the compiled code anyway.
<jcowan>
Ah, yes. If all code is throwaway, then a fast interpreter is indeed what you want.
duuqnd_ has quit [Quit: Leaving]
<pjb>
beach: In my understanding, using a package doesn't import the (exported) symbols.
<pjb>
beach: so formally, the sentence is wrong.
<beach>
xach: I'll study the example. Thanks.
<beach>
pjb: Right, thanks.
<jcowan>
It does, and en masse at that, which is why use is dangerous.
terrorjack has quit [Remote host closed the connection]
terrorjack has joined #commonlisp
makomo has quit [Ping timeout: 256 seconds]
cranium has quit [Quit: Leaving]
srhm has joined #commonlisp
<beach>
jcowan: What does what en masse?
<jcowan>
use-package imports the exported symbols of the package being used en masse, contra pjb's remark
<beach>
We just agreed that it does not import.
<beach>
I quoted the relevant passages from the Common Lisp HyperSpec.
tyson2 has quit [Ping timeout: 255 seconds]
lisp123 has quit [Remote host closed the connection]
makomo has joined #commonlisp
OlCe has quit [Remote host closed the connection]
xlei has quit [Excess Flood]
xlei has joined #commonlisp
makomo has quit [Ping timeout: 252 seconds]
lisp123 has joined #commonlisp
tyson2 has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
bpanthi977 has joined #commonlisp
OlCe has joined #commonlisp
lisp123 has joined #commonlisp
notzmv has quit [Ping timeout: 240 seconds]
<lisp123>
Is there a way to get the full call stack when calling a function? I have one with many nested loops & recursion and debugging is going slow
<pve>
lisp123: maybe "trace" would help?
<_death>
you can insert (break) where you want it to enter the debugger
<lisp123>
_death: thanks
<lisp123>
pve: how does that work?
<pve>
lisp123: (trace my-function), then call it
<pve>
and then later (untrace my-function)C
<lisp123>
pve: thanks, that also is very helpful, will experiment with it more now
yitzi has joined #commonlisp
<pve>
lisp123: I believe SBCL also allows (trace "MY-PACKAGE")
<Bike>
if you (declare (optimize debug)) appropriately you will probably get more complete call stacks, e.g. by preventing tail call optimization
<lisp123>
is there a way to step into any of the lines? the numbers seem to suggest so
<pve>
lisp123: you'll want to use (break) for that
<lisp123>
pve: many thanks :)
<pve>
and then hit 0 until you get to the one you want
<pve>
or break only when some condition is true
<lisp123>
will do
lisp123 has quit [Read error: Connection reset by peer]
lisp123 has joined #commonlisp
azimut has joined #commonlisp
gaqwas has joined #commonlisp
dale has quit [Remote host closed the connection]
azimut_ has quit [Ping timeout: 244 seconds]
dale has joined #commonlisp
<pve>
lisp123: are you aware that you can do all kinds of cool stuff in the slime debugger? (you probably are, just checking)
makomo has joined #commonlisp
zacts has joined #commonlisp
dsk has joined #commonlisp
igemnace has quit [Ping timeout: 255 seconds]
igemnace has joined #commonlisp
Krystof has joined #commonlisp
notzmv has joined #commonlisp
cuz has quit [Ping timeout: 240 seconds]
domovod has quit [Ping timeout: 240 seconds]
domovod has joined #commonlisp
aleamb has joined #commonlisp
domovod has quit [Quit: WeeChat 3.2]
zacts has quit [Quit: zacts]
yitzi has quit [Remote host closed the connection]
cuz has joined #commonlisp
terrorjack has quit [Read error: Connection reset by peer]
terrorjack has joined #commonlisp
cuz has quit [Ping timeout: 252 seconds]
ec has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
<dieggsy>
is there a manual way of checking a list of arguments against the acceptable parameter list of a function without actually calling it?
<dieggsy>
basically check if an apply will succeed (based on num args, keywords, etc.) before actually applying it
hendursaga has quit [Ping timeout: 244 seconds]
hendursaga has joined #commonlisp
kpoeck has joined #commonlisp
<Bike>
dieggsy: no, for several reasons, first of which is that the implementation doesn't actually have to save the lambda list of a function
<dieggsy>
fair. a manual check it is then i suppose
fourier has joined #commonlisp
bpanthi977 has quit [Quit: bpanthi977]
pjb has quit [Remote host closed the connection]
pjb has joined #commonlisp
mjanssen has left #commonlisp [WeeChat 3.2]
attila_lendvai has joined #commonlisp
dlowe has quit [Remote host closed the connection]
<aeth>
dieggsy: there should be a way to do it because swank/slime displays the arguments in the minibuffer in emacs
<aeth>
I guess it's part of swank?
<Bike>
swank uses the introspection interfaces of some implementations
<aeth>
and worst case scenario, it's unparsed, but (alexandria:parse-ordinary-lambda-list '(x y &key z))
<Bike>
which, besides behing extensions, are intended for human use rather than anything programmatic so they can have inaccuracies
<Bike>
and on high optimization that information can be removed even on implementations that do sometimes save it
<aeth>
to be fair
<aeth>
it's a check
<aeth>
having high optimization disable some safety is almost a feature in and of itself
<aeth>
you can check to see if it exists before entering this part of the code
<Bike>
you can try it on sbcl for example by declaring (debug 0)
pillton has joined #commonlisp
<Bike>
or debug 1, even
<Bike>
might vary in some complicated way based on other qualities
kpoeck has quit [Quit: Client closed]
akoana has joined #commonlisp
yitzi has joined #commonlisp
kpoeck has joined #commonlisp
tyson2 has joined #commonlisp
<Bike>
doesn't look like sbcl's introspection distinguishes between a lambda list of () and not having the lambda list
cage has quit [Quit: rcirc on GNU Emacs 27.1]
<scymtym>
Bike: if i remember correctly, SB-INTROSPECT:FUNCTION-LAMBDA-LIST was changed about two months ago to return a second value which indicates exactly that
<Bike>
ah. my version is older than that probably
Mandus_ is now known as Mandus
terrorjack has quit [Read error: Connection reset by peer]
terrorjack has joined #commonlisp
kpoeck has quit [Ping timeout: 246 seconds]
Jach has quit [Quit: Leaving.]
silasfox has quit [Ping timeout: 258 seconds]
zacts has joined #commonlisp
attila_lendvai has quit [Ping timeout: 240 seconds]
shka has quit [Ping timeout: 255 seconds]
ees has joined #commonlisp
citizenajb has joined #commonlisp
zacts has quit [Ping timeout: 246 seconds]
tyson2 has quit [Ping timeout: 256 seconds]
amb007 has quit [Ping timeout: 265 seconds]
pve has quit [Quit: leaving]
amb007 has joined #commonlisp
recordgroovy has quit [Ping timeout: 258 seconds]
amb007 has quit [Ping timeout: 268 seconds]
amb007 has joined #commonlisp
gaqwas has quit [Ping timeout: 256 seconds]
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
OlCe has quit [Remote host closed the connection]
gaqwas has joined #commonlisp
yitzi has quit [Quit: Leaving]
citizenajb has quit [Quit: Client closed]
gaqwas has quit [Remote host closed the connection]
recordgroovy has joined #commonlisp
OlCe has joined #commonlisp
zacts has joined #commonlisp
Mandus has quit [Ping timeout: 258 seconds]
ees has quit [Ping timeout: 265 seconds]
Mandus has joined #commonlisp
random-nick has quit [Ping timeout: 265 seconds]
recordgroovy has quit [Ping timeout: 265 seconds]
selwyn has quit [Read error: Connection reset by peer]
terrorjack has quit [Read error: Connection reset by peer]
terrorjack has joined #commonlisp
zacts has quit [Ping timeout: 246 seconds]
Mandus has quit [Ping timeout: 252 seconds]
Mandus has joined #commonlisp
OlCe has quit [Ping timeout: 250 seconds]
selwyn has joined #commonlisp
pjb has quit [Remote host closed the connection]
selwyn has quit [Read error: Connection reset by peer]