Xach changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook>
taiju has joined #commonlisp
taiju has quit [Ping timeout: 245 seconds]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
thomaslewis has joined #commonlisp
amb007 has quit [Ping timeout: 240 seconds]
thomaslewis has left #commonlisp [#commonlisp]
prxq_ has quit [Ping timeout: 250 seconds]
prxq has joined #commonlisp
splittist has quit [Ping timeout: 240 seconds]
conjunctive has quit [Ping timeout: 240 seconds]
hubvu has quit [Ping timeout: 240 seconds]
jmercouris has quit [Read error: Connection reset by peer]
hubvu has joined #commonlisp
jmercouris has joined #commonlisp
splittist has joined #commonlisp
conjunctive has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
iisi has quit [Ping timeout: 245 seconds]
ullbeking_ has quit [Ping timeout: 245 seconds]
iisi has joined #commonlisp
ullbeking_ has joined #commonlisp
peterhil has joined #commonlisp
Inline has joined #commonlisp
akoana has quit [Quit: leaving]
s-liao has joined #commonlisp
igemnace has quit [Quit: WeeChat 3.3]
random-nick has quit [Ping timeout: 250 seconds]
rotateq has quit [Ping timeout: 260 seconds]
s-liao has quit [Ping timeout: 256 seconds]
thomaslewis has joined #commonlisp
notzmv has quit [Ping timeout: 268 seconds]
thomaslewis has left #commonlisp [#commonlisp]
notzmv has joined #commonlisp
Oladon has joined #commonlisp
thomaslewis has joined #commonlisp
karlosz has quit [Quit: karlosz]
s-liao has joined #commonlisp
gpiero_ has joined #commonlisp
gpiero has quit [Ping timeout: 250 seconds]
waleee has quit [Quit: WeeChat 3.3]
s-liao has quit [Ping timeout: 256 seconds]
s-liao has joined #commonlisp
prxq_ has joined #commonlisp
prxq has quit [Ping timeout: 268 seconds]
Devon has quit [Ping timeout: 245 seconds]
pdietz has quit [Ping timeout: 256 seconds]
Oladon has quit [Quit: Leaving.]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 260 seconds]
karlosz has joined #commonlisp
poselyqualityles has joined #commonlisp
CrashTestDummy2 has joined #commonlisp
CrashTestDummy has quit [Ping timeout: 245 seconds]
<beach> Good morning everyone!
<phantomics> Morning beach
lisp123 has joined #commonlisp
<Guest74> well that's interesting, my inferior-lisp says fatal error encountered in SBCL pid 2117 tid 6661: and yet my window manager is still running.
karlosz has quit [Quit: karlosz]
semz has quit [Ping timeout: 250 seconds]
lisp123 has quit [Quit: Leaving...]
s-liao has quit [Ping timeout: 256 seconds]
tyson2 has quit [Remote host closed the connection]
gko has quit [Remote host closed the connection]
semz has joined #commonlisp
s-liao has joined #commonlisp
Guest74 has quit [Ping timeout: 240 seconds]
Jing has joined #commonlisp
kuao has quit [Quit: Connection closed for inactivity]
s-liao has quit [Ping timeout: 256 seconds]
poselyqualityles has quit [Ping timeout: 245 seconds]
s-liao has joined #commonlisp
lisp123 has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
Oladon has joined #commonlisp
gko has joined #commonlisp
<susam> Good morning, beach!
rain3 has joined #commonlisp
s-liao has joined #commonlisp
s-liao has quit [Client Quit]
s-liao has joined #commonlisp
NeoCron has joined #commonlisp
Doraemon has quit [Ping timeout: 268 seconds]
elderK has quit [Quit: Connection closed for inactivity]
aartaka has joined #commonlisp
s-liao has quit [Quit: Client closed]
notzmv has quit [Ping timeout: 240 seconds]
lisp123 has quit [Quit: Leaving...]
poselyqualityles has joined #commonlisp
slyrus has quit [Quit: Leaving]
pve has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
poselyqualityles has quit [Ping timeout: 245 seconds]
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 268 seconds]
X-Scale` is now known as X-Scale
slyrus has joined #commonlisp
nature has joined #commonlisp
gaqwas has joined #commonlisp
lisp123 has joined #commonlisp
varjagg has joined #commonlisp
varjagg has quit [Remote host closed the connection]
Oladon has quit [Quit: Leaving.]
Alfr has quit [Ping timeout: 256 seconds]
edgar-rft has quit [Quit: Leaving]
Lycurgus has joined #commonlisp
notzmv has joined #commonlisp
s-liao has joined #commonlisp
ns12 has joined #commonlisp
<ns12> Can defstruct be implemented using CLOS?
<lisp123> ns12: Of course, its very easy to do so
<lisp123> (there might be some minor points I am missing)
<lisp123> something like this https://plaster.tymoon.eu/view/2729#2729
<ns12> Can CLOS be implemented using structs?
<lisp123> With Macros yes
<ecraven> I've implemented something like tinyclos in a normal Scheme, and the main task was generic functions, once those work, it's just more implementing
<beach> ns12: Adding CLOS to a pre-ANSI Common Lisp system mainly requires the addition of funcallable-standard-object.
<beach> ns12: What is the reason for your question?
<ns12> Are there libraries that provide standard compliant structures, but with extra features?
<ns12> beach: I want to write a standards compliant defstruct implementation as a challenge.
<beach> ns12: The macro only? Assuming the implementation already has a STRUCTURE-OBJECT and a STRUCTURE-CLASS? That's just a matter of macrology.
<beach> I said "just", but it's pretty messy actually.
<ns12> I still have much to learn about Common Lisp, so this might be some kind of long-term project.
<beach> I see.
<ns12> I have read many Common Lisp programs, written some programs in Common Lisp, read PAIP, ANSI Common Lisp, Practical Common Lisp, and parts of the HyperSpec. But I still feel a overwhelmed by the flexibility of this wonderful language.
voltron has joined #commonlisp
srji_ has quit [Quit: leaving]
srji has joined #commonlisp
<ns12> I will probably try to read CLtL, but I am concerned that it is not 100% ANSI Common Lisp. Is there some kind of document that summarizes the differences between CLtL and ANSI Common Lisp?
<beach> ns12: The only remedy I can think of for being overwhelmed is to practice more and read even more.
ebrasca has joined #commonlisp
<beach> ns12: One of the documents you may be interested in at some point is the AMOP. It explains how CLOS works, and also how it can be implemented.
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 250 seconds]
Lord_of_Life_ is now known as Lord_of_Life
rotateq has joined #commonlisp
yournick has joined #commonlisp
shka has joined #commonlisp
yournick has quit [Ping timeout: 265 seconds]
voltron has quit [Remote host closed the connection]
x88x88x has joined #commonlisp
x88x88x has quit [Client Quit]
eomyulkes has joined #commonlisp
eomyulkes has quit [Client Quit]
x88x88x has joined #commonlisp
<ns12> beach: Thanks for the advice.
attila_lendvai has joined #commonlisp
cage has joined #commonlisp
aartaka has quit [Ping timeout: 240 seconds]
aartaka has joined #commonlisp
x88x88x has quit [Ping timeout: 240 seconds]
Devon has joined #commonlisp
pranavats has left #commonlisp [Error from remote client]
attila_lendvai has quit [Ping timeout: 245 seconds]
voltron has joined #commonlisp
varjagg has joined #commonlisp
voltron has quit [Read error: Connection reset by peer]
taiju has joined #commonlisp
voltron has joined #commonlisp
taiju has quit [Ping timeout: 256 seconds]
random-nick has joined #commonlisp
voltron has quit [Remote host closed the connection]
aeth has quit [Ping timeout: 256 seconds]
aeth has joined #commonlisp
s-liao has quit [Ping timeout: 256 seconds]
voltron has joined #commonlisp
<pve> Hi, is there a big difference between doing (eval `(defmethod foo ...)) and creating the method "manually" followed by (add-method #'foo my-new-method)?
X-Scale` has joined #commonlisp
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` is now known as X-Scale
<lisp123> pve: that is a good equestion, that I'm also keen on
<lisp123> if you are speaking in terms of writing these forms in a file, then obviously, the latter is faster
<lisp123> but working in a live, running image, given that defmethod is already a top-level form, my suspicion is that they might be the same
<lisp123> and the former is easier to read
<lisp123> keen to get a "correct" answer
<pve> lisp123: when you say "faster", what do you mean?
<pve> do you mean faster to make and install the method?
<lisp123> defmethod is a macro, so some of its work will be done in compile time vs. load time
<lisp123> whereas eval is a function so everything happens during run time
<lisp123> Sorry, I guess you were referring to doing the parts of defmethod manaully in your latter part --> so what I just said may not apply directly, but to the extent there are any macros within those parts, it will be faster
tyson2 has joined #commonlisp
<pve> lisp123: yes, I mean (make-instance some-method-class ... ) and the whole make-method-lambda deal
<lisp123> I see. Will wait for someone else to respond, but in the meantime (I have to jet), here's the source of defmethod (https://plaster.tymoon.eu/view/2730#2730)
shka has quit [Quit: Konversation terminated!]
shka has joined #commonlisp
igemnace has joined #commonlisp
taiju has joined #commonlisp
pdietz has joined #commonlisp
voltron has quit [Remote host closed the connection]
igemnace has quit [Remote host closed the connection]
dra has joined #commonlisp
pranavats has joined #commonlisp
etiago- has quit [Ping timeout: 250 seconds]
taiju has quit [Read error: Connection reset by peer]
etiago has joined #commonlisp
taiju has joined #commonlisp
McParen has joined #commonlisp
mingus has joined #commonlisp
<beach> pve: Using EVAL, you can't have the method function be a closure.
<beach> clhs defmethod
<pve> beach: right, thanks
<pve> beach: but is defmethod the only way to create a new method using CL only (i.e. no MOP)?
<beach> No, you can use MAKE-INSTANCE on STANDARD-METHOD.
<beach> clhs standard-method
<pve> ah, yes, I think I meant make-method-lambda
<beach> Right. That's more complicated.
cosimone has joined #commonlisp
lagash has quit [Ping timeout: 268 seconds]
waleee has joined #commonlisp
green_ has joined #commonlisp
s-liao has joined #commonlisp
green__ has quit [Ping timeout: 240 seconds]
nature has quit [Remote host closed the connection]
azimut has joined #commonlisp
paule32 has quit [Quit: Leaving]
azimut_ has quit [Ping timeout: 276 seconds]
nature has joined #commonlisp
Inline has quit [Quit: Leaving]
nature has quit [Client Quit]
Inline has joined #commonlisp
Inline has quit [Remote host closed the connection]
lagash has joined #commonlisp
anddam has quit [Quit: WeeChat 3.3]
<pjb> ns12: com.informatimago.common-lisp.cesarum.utility:define-structure-class implements the defstruct API using CLOS, so I would say it qualify as a library providing standard compliant structures, but with extra features.
<pjb> ns12: you could rename it ns12-cl:defstruct if you want.
Inline has joined #commonlisp
green__ has joined #commonlisp
<pjb> pve: and perhaps other implementation specific details your implementation defmethod does…
green_ has quit [Ping timeout: 268 seconds]
aartaka has quit [Ping timeout: 245 seconds]
peterhil has quit [Ping timeout: 265 seconds]
aartaka has joined #commonlisp
s-liao has quit [Quit: Client closed]
jealousmonk has joined #commonlisp
peterhil has joined #commonlisp
Guest74 has joined #commonlisp
anddam has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
green_ has joined #commonlisp
green__ has quit [Ping timeout: 250 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<Guest74> so I'm revisiting and cleaning up my ioctl stuff and see that i've kept c style names for structs and constants. I'm wondering if I should keep them exactly like this since that's what all the manuals/tutorials on the internet say, or lispify them?
<pjb> Guest74: depends. I split by ffi stuff in two layers. a lower layer where I stick to C, and a higher layer, where I lispify.
<Guest74> I've thought of that, but since they're just ioctls and not actual ffi to a library I'm wondering if that's even worth it.
<Guest74> I'm also wondering if it's a terrible idea to replace all foreign structs with just static-vectors and then have lisp side functions to access the array as the struct slots. I'm not sure if that is more work, or faster for setting/getting.
x88x88x has joined #commonlisp
ebrasca has quit [Read error: Connection reset by peer]
Lycurgus has quit [Quit: Exeunt]
Devon has quit [Ping timeout: 250 seconds]
<Guest74> anybody know how to translate this to lisp from c? 1000000000UL/a I have no idea what's going on in the c.
<pjb> It's just (/ 1000000000 a)
<pjb> if a is an int type, (truncate 1000000000 a)
shka has quit [Quit: Konversation terminated!]
<pjb> Guest74: type: /nick somehonestnick
<Guest74> if it's not?
<pjb> then just (/ 1000000000 a)
<Guest74> how does a real fit into an unsignedlong?
<Guest74> maybe doesn't matter, doesn't seem to be used anywhere anyways.
Alfr has joined #commonlisp
shka has joined #commonlisp
<semz> Guest74: If a is a float or double, 1000000000 would be converted to that first. / does the same thing in CL if a is a floating-point number.
<semz> If you translate C names to Lisp names, I'd recommend being extra careful that your scheme is consistent and intuitive though; speaking from experience, it's infuriating when you have to look up how each name was translated in the manual when you're familiar with the underlying foreign API.
aartaka has quit [Ping timeout: 265 seconds]
<beach> On the rare occasions that I had to use a Lisp interface to a C library, I found it infuriating to have to consult the manual for the C library at all. I expected a consistent, well documented Lisp interface that did not refer to the underlying C library or its concepts.
<Guest74> semz: that's what I was thinking.
<Guest74> beach: it's not a foreign library, it's just ioctls. How do you handle interfacing with the linux kernel?
<beach> I haven't given any thought to that. But some day I guess I will have to, given that I want a Lisp-y POSIX library at some point.
<beach> Like the one I started here: http://metamodular.com/POSIX-API/
<Guest74> I figure the lispy interface should be built on ioctls, since, as far as i understand, that's how you interact with the kernel. the ioctl level being not so lispy.
<Guest74> I figure the person writing the lispy interface wouldn't mind the c-ness of the ioctl interface since all documentation for the kernel is written that way.
dra has quit [Quit: Leaving]
<Guest74> though at the same time, I'd also like to change things like DRM_IOCTL_MODE_GETRESOURCES to drm-ioctl:mode-getresources , which kinda makes sens to me. But then how for do I go? drm-ioctl:mode-get-resources?
<Guest74> and since they're constants, do i go even further? drm-ioctl:+mode-get-resources+
<beach> The "get" suggests a function, not a constant.
<beach> But I guess in the IOCTL it kind of is a function designator.
<beach> I might create one Lisp function for each type of IOCTL, rather than maintaining the interface. But I think you are saying that that's someone else's job.
<Guest74> yes, I figure in the higher level library, the equivalent of libdrm in c, it would just be a function, and no trace of ioctls would be seen.
<Guest74> lol, preferably. I suspect that would be more work and I'd rather just start using the parts I need. However, I would like to at least standardize the lisp representation of ioctls.
nature has joined #commonlisp
peterhil has quit [Remote host closed the connection]
peterhil has joined #commonlisp
green__ has joined #commonlisp
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
x88x88x has quit [Ping timeout: 268 seconds]
green_ has quit [Ping timeout: 256 seconds]
Guest74 has quit [Quit: Connection closed]
amb007 has quit [Ping timeout: 260 seconds]
amb007 has joined #commonlisp
tyson2 has joined #commonlisp
edgar-rft has joined #commonlisp
etiago has quit [Read error: Connection reset by peer]
tyson2 has quit [Remote host closed the connection]
etiago has joined #commonlisp
tyson2 has joined #commonlisp
<semz> Is there a recommended way to document/enforce crucial assumptions for a piece of code? I use (eval-when (:compile-toplevel :load-toplevel :execute) (unless (precondition-holds-p) (error "FOO isn't supported because BAR."))), but maybe there's a better way.
theBlackDragon has quit [Ping timeout: 256 seconds]
<jcowan> Sometimes reading *less* is wiser. Learning CL by reading the whole spec is only for crazies like me.
<semz> This is under the assumption that there isn't a portable fallback implementation, of course.
<semz> And that lacking the feature under consideration would be lethal.
theBlackDragon has joined #commonlisp
x88x88x has joined #commonlisp
Catie has joined #commonlisp
Inline has quit [Quit: Leaving]
taiju has quit [Ping timeout: 250 seconds]
varjagg has quit [Ping timeout: 260 seconds]
<Alfr> semz, if it's a system you're testing for and you're using asdf, there's :depends-on. Further, is it fatal at compile/load time or is it permissible for what's missing to be loaded later?
thomaslewis has joined #commonlisp
<Alfr> semz, CL also an assert macro, if all you want to do is signal an error.
taiju has joined #commonlisp
McParen has left #commonlisp [#commonlisp]
<Alfr> (You'll have to keep the eval-when, if it's needed.)
thomaslewis has left #commonlisp [#commonlisp]
<semz> Alfr: In this case, it would make the code incorrect, but it would probably load.
<semz> Oh right, assert can specify the error message.
<semz> Or hm, that seems to be tied to places, which doesn't always apply here.
karlosz has joined #commonlisp
x88x88x has quit [Quit: Using Circe, the loveliest of all IRC clients]
x88x88x has joined #commonlisp
rain3 has quit [Ping timeout: 268 seconds]
aartaka has joined #commonlisp
<jcowan> People underestimate how BIG Posix actually is when they set out to provide a non-thin library. By actual count: 81 headers, 1191 interfaces, and 51 data types.
<jcowan> "interfaces" are functions/macros
taiju has quit [Ping timeout: 260 seconds]
karlosz has quit [Quit: karlosz]
taiju has joined #commonlisp
Alfr has quit [Killed (erbium.libera.chat (Nickname regained by services))]
Alfr has joined #commonlisp
karlosz has joined #commonlisp
x88x88x has quit [Quit: Using Circe, the loveliest of all IRC clients]
karlosz has quit [Client Quit]
<shka> well, it is OS interface, larger size should not be a surprise
X-Scale has quit [Ping timeout: 250 seconds]
<jackdaniel> people overestimate how big the os interface must be ,)
<shka> mmm, i guess
tyson2 has quit [Remote host closed the connection]
poselyqualityles has joined #commonlisp
Inline has joined #commonlisp
tyson2 has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
varjagg has joined #commonlisp
x88x88x has joined #commonlisp
hobo has quit [Ping timeout: 268 seconds]
Everything has joined #commonlisp
tyson2 has joined #commonlisp
green_ has joined #commonlisp
thomaslewis has joined #commonlisp
green__ has quit [Ping timeout: 256 seconds]
atgreen has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
green_ has quit [Ping timeout: 250 seconds]
x88x88x has quit [Quit: Using Circe, the loveliest of all IRC clients]
amb007 has quit [Ping timeout: 245 seconds]
green_ has joined #commonlisp
atgreen has quit [Ping timeout: 268 seconds]
green__ has joined #commonlisp
amb007 has joined #commonlisp
green_ has quit [Ping timeout: 260 seconds]
raeda has joined #commonlisp
green_ has joined #commonlisp
green__ has quit [Ping timeout: 240 seconds]
<Alfr> semz, the list of places can be empty, they're only needed if you want the continue restart to ask for new values.
<semz> I see.
<semz> Amusingly/annoyingly enough, SBCL complains about dead code if the assertion is true at compile time.
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Everything has quit [Ping timeout: 268 seconds]
green__ has joined #commonlisp
theothornhill has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
Guest74 has joined #commonlisp
green_ has quit [Ping timeout: 260 seconds]
<jackdaniel> I find it the most annoying that it complains about &optional and &key parameters in the same lambda list
<Guest74> jcowan: thankfully I'm not doing any of that. Only graphics related stuff, but anybody can use the ioctl macros to make kernel interface headers easy to convert.
<jackdaniel> like - duh, I know
<Guest74> I don't know why but i had a lot of optional then key stuff, but now i just find it annoying.
green_ has joined #commonlisp
<jackdaniel> you don't always have control over the specification
<Xach> i do like that you can patch things like that out fairly easily
<Guest74> jd: that's when you write a new specification :)
<jackdaniel> that's not how stable api works
<Guest74> I don't know what that means :)
<jackdaniel> I know
cage has quit [Quit: rcirc on GNU Emacs 27.1]
<Guest74> I wish there was an easy way to change all calls across a bunch of systems.
green__ has quit [Ping timeout: 250 seconds]
<Guest74> cause i do keep changing my api.
<Guest74> s
x88x88x has joined #commonlisp
x88x88x has quit [Remote host closed the connection]
Devon has joined #commonlisp
x88x88x has joined #commonlisp
aartaka has quit [Ping timeout: 245 seconds]
x88x88x has quit [Remote host closed the connection]
x88x88x has joined #commonlisp
x88x88x has quit [Remote host closed the connection]
nature has quit [Ping timeout: 245 seconds]
x88x88x has joined #commonlisp
aartaka has joined #commonlisp
varjagg has quit [Quit: @]
<Guest74> I've just noticed that when a package has a . in it slime onlydisplays what's after the period when in the package. Is this supposed to be like this?
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
shka has quit [Ping timeout: 268 seconds]
poselyqualityles has quit [Ping timeout: 245 seconds]
thomaslewis has joined #commonlisp
<pjb> Guest74: type: /nick somehonestnick
<pjb> somehonestnick: yes.
<rotateq> pjb: hehe
thomaslewis has left #commonlisp [#commonlisp]
poselyqualityles has joined #commonlisp
<Guest74> pjb: have you seen the nicks on here???
<pjb> choose a better one.
<rotateq> what about them?
<Guest74> mines as 'honest' as any of them.
<rotateq> ahh sure. and mnemonic :)
<Guest74> probably the most literally accurate as well.
aartaka has quit [Ping timeout: 250 seconds]
<etimmons> How? I doubt anyone here would really consider you a guest any more
<theothornhill> I'm working on a compiler where I have an AST, and a hash-table with keys as type names pointing to ast nodes. I want to access both of these regularly from other functions. What is best practice here? I was thinking of creating a macro such as `with-ensured-ast` that either returns a memoized ast and hash-table or initializes one. Or I could suck it up and ensure that all functions that need them get them as parameters.
<theothornhill> Is dynamically binding it the way to go?
<theothornhill> Now i just remember to (let ((*schema* (build-schema "..."))) ...) everytime I do things
<semz> I'd probably go for a dynamic variable, especially if that table is essentially global during the compilation.
<theothornhill> Yeah, it is. So you just decide the entry point, bind it and hope for the best?
<White_Flame> +1 for defvar. It's side-band contextual information for your accessing calls
jpl01 has joined #commonlisp
<theothornhill> Ok thanks, I'll get back to it then :)
<semz> Yes. If you want a little less hoping during development, it might help to set the variable's default value to something that cannot possibly do anything but blow up instantly.
<White_Flame> btw, I'd also make a with-ensured-ast which creates the dynamic bindings for you
<semz> e.g. NIL if it's a hashtable, or :invalid if it's a list. Not always possible though, depending on the intended type.
<White_Flame> DEFVAR can actually leave the value unbound, too
<theothornhill> Yeah, I was just putting that off until I made a decision
<White_Flame> well, bound with no value, or whatever it's properly worded as
<theothornhill> Well the ast is just an instance of an object and the table a table, so nil will break things nicely
<semz> Neat, that avoids the edge case where there is no good value.
thomaslewis has joined #commonlisp
thomaslewis has left #commonlisp [#commonlisp]
<Guest74> etimmons: it's like a low slashdot id before they sold out. I'm the 74th guest! this will be mint in a few years.
ec has joined #commonlisp
Bike has joined #commonlisp
tyson2 has joined #commonlisp
cosimone has quit [Quit: ERC (IRC client for Emacs 27.1)]
x88x88x has quit [Ping timeout: 240 seconds]
shka has joined #commonlisp
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
akoana has joined #commonlisp
Bike has quit [Quit: Connection closed]
random-nick has quit [Ping timeout: 256 seconds]
taiju has quit [Ping timeout: 260 seconds]
dra has joined #commonlisp
<phantomics> quick question: is there a standard way in CL to make a rational number other than (/ x y)? In SBCL, there's a sb-kernel function called (build-rational) that does this, but I can't find anything that's implementation-independent
<Guest74> rational
<Guest74> rationalize
<phantomics> Those take a single argument converting a number to rational, I was talking about a function that takes the numerator and denominator as its args
<semz> if you're building them from integers, / seems like the obvious way
<rotateq> phantomics: and when you use something like (/ (the integer x) (the integer y)) ?
ec has quit [Ping timeout: 276 seconds]
<phantomics> Using (/ x y) gets you the rational, wasn't sure if there were problems with that method since utilities within SBCL use (build-rational x y)
form_feed has joined #commonlisp
<semz> it's probably that / is generic and needs to be built from something implementation-dependent
<phantomics> Then I suppose using / outside of the internal functions of an implementation is fine
pve has quit [Quit: leaving]
<Guest74> jackdaniel: seeing as how you're a fan of stable things maybe you can help me out. For linux keysyms I can't decide how to handle keysyms that have an upper and lower case. e.g. |Greek-IOTA| |Greek-iota| . I'm not a fan of having everything having pipes, but not too comfortable with only some having pipes. wondering if should make those go to
<Guest74> something like GREEK-SMALL-LETTER-IOTA
gaqwas has quit [Ping timeout: 245 seconds]
theothornhill has quit [Ping timeout: 268 seconds]
Catie has quit [Quit: rcirc on GNU Emacs 29.0.50]
hobo has joined #commonlisp
<pjb> ι
Jing has quit [Remote host closed the connection]
Jing has joined #commonlisp