jackdaniel changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.5.4, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
sivese has quit [Remote host closed the connection]
quazimodo has joined #lisp
<Xach> asdf_asdf_asdf: Your attempts are more harmful than silence.
<asdf_asdf_asdf> This is your opinion, not mine.
Ricchi has quit [Read error: Connection reset by peer]
analogue has joined #lisp
<Xach> You must adapt your opinion or you will not be welcome to discuss things here any more.
<asdf_asdf_asdf> No. have the right to own things and ideas.
<asdf_asdf_asdf> I have*
lawfullazy has quit [Ping timeout: 265 seconds]
<Xach> You do not have the right to give harmful answers in this channel.
<no-defun-allowed> https://xkcd.com/1357/
<asdf_asdf_asdf> But this is only your subjective opinion. "You enter" confuse without answering.
<no-defun-allowed> My subjective opinion is that the links you posted are barely relevant to the question(s) asked (something about appimages and dumping SBCL executables) and just confused people more.
<Xach> asdf_asdf_asdf: If I do not know, I do not answer, and do not confuse. You must do the same.
<Xach> Your contributions make this channel worse and must change or you will not be allowed to make them any more.
<asdf_asdf_asdf> No. You worse a channel, because nothing do answer. I tried, but wrong, but tried.
<Xach> asdf_asdf_asdf: That is bad behavior, don't do it any more.
khisanth_ has quit [Ping timeout: 276 seconds]
<aeth> remexre: Considering AppImage is the #3 choice for such tools behind Snappy and Flatpak afaik, I'm not sure you'll find an answer because you're intersecting a niche with a niche.
<aeth> (#3 choice for such tools, which are already niche)
<asdf_asdf_asdf> Half a loaf is better than nothing.
<aeth> Your answers weren't half a loaf, they were half of a cupcake.
<Xach> Incorrect and irrelevant info is worse than no info.
<aeth> remexre: I would personally just make a standalone all-in-one SBCL binary, although technically afaik you can include SBCL as a dependency with such tools so you don't need to do this.
<asdf_asdf_asdf> Through conversation you can get something. I agree with (X/xach), but sometimes I tried help, then I answered.
<Xach> asdf_asdf_asdf: you will need much more practice and experience before you can offer valuable help, please be patient
<aeth> remexre: The alternative would be to package SBCL as a dependency (which would require rebuilding SBCL from source? also assuming you can have a dependency that's not a .SO) and have a shell script as your entry point (assuming you can do this) that calls SBCL from the command line.
EvW has quit [Ping timeout: 264 seconds]
<asdf_asdf_asdf> Why do you want to gag me? When I will be can do answer...
<Xach> asdf_asdf_asdf: Because your answers are bad.
<aeth> (my answer was kinda bad but I felt like someone had to provide something in vaguely the correct direction... at least the correct category)
lawfullazy has joined #lisp
<LdBeth> It's kinda sucks that many package managers assumes they're using GNU autotools all the time
<asdf_asdf_asdf> OK. Why You not write about technical issue, only about a fatuous remarks to users always/usually/often? Better would be that help users not spam as for You.
<Xach> asdf_asdf_asdf: I do not like to discuss non-Lisp things, but sometimes it must be done. Your behavior makes this channel worse and it cannot continue.
karlosz has quit [Quit: karlosz]
<asdf_asdf_asdf> OK. Until tommorow. I think.
asdf_asdf_asdf has quit [Quit: asdf_asdf_asdf]
karlosz has joined #lisp
karlosz has quit [Remote host closed the connection]
gigetoo has quit [Ping timeout: 240 seconds]
khisanth_ has joined #lisp
lawfullazy has quit [Ping timeout: 240 seconds]
SumoSud0 has quit [Quit: 8y3 8y3]
gigetoo has joined #lisp
zaquest has quit [Remote host closed the connection]
SumoSud0 has joined #lisp
orivej has quit [Ping timeout: 276 seconds]
* LdBeth thinks WTF
* LdBeth why tring to act like a turing test unqualified robot
t58 has quit [Quit: Leaving]
zaquest has joined #lisp
bitmapper has quit [Ping timeout: 265 seconds]
milanj has quit [Quit: This computer has gone to sleep]
semz has quit [Ping timeout: 245 seconds]
sjl has quit [Ping timeout: 245 seconds]
karlosz has joined #lisp
semz has joined #lisp
<remexre> ^^
<remexre> aeth: Oh, wasn't aware of snappy nor flatpak; just got back to the PC now, I'll look into them
<remexre> this is all b/c I'm trying to ship a binary to a box w/ ancient glibc and no lisp install... :(
Nomenclatura has joined #lisp
lawfullazy has joined #lisp
isBEKaml has joined #lisp
karlosz has quit [Quit: karlosz]
lawfullazy has quit [Ping timeout: 265 seconds]
ahungry has joined #lisp
torbo has quit [Remote host closed the connection]
kajo has quit [Ping timeout: 245 seconds]
torbo has joined #lisp
semz has quit [Ping timeout: 264 seconds]
torbo has quit [Remote host closed the connection]
akoana has left #lisp ["Leaving"]
Frobozz has quit [Quit: quit]
semz has joined #lisp
semz has joined #lisp
semz has quit [Changing host]
<aeth> remexre: Snappy is kind of tied to Ubuntu, and Flatpak is kind of tied to Gnome, which is how both of them became more popular
<aeth> hmm, well, actually there's a plasma-discover-flatpak
megalography has joined #lisp
<aeth> (so it has some KDE integration)
Nomenclatura has quit [Quit: q]
lawfullazy has joined #lisp
Josh_2 has joined #lisp
Josh_2 has quit [Read error: Connection reset by peer]
Josh_2 has joined #lisp
<Josh_2> Did I just type that to myself
<Josh_2> hmm
<aeth> type what? I didn't see anything
<Josh_2> That means I did hnnng
<Josh_2> Okay so I will type again, no problems
<aeth> Well, the authoritative source is https://irclog.tymoon.eu/freenode/%23lisp
<aeth> If it's not there, then it never happened.
<Josh_2> I have defined some classes but one of the slots when I go to create an instance is saying ((cl-configurator::parents ..)) instead of just :parents..
<Josh_2> I don't know why it is doing this
<Josh_2> O
<Josh_2> I do know why
<Josh_2> Missing a :
<aeth> parents is a symbol in the package that is not exported.
<aeth> ":parents" is a symbol in the keyword package
<aeth> Yes, you're missing a :, thus making it be in that package
<Josh_2> Man I like when I ask for some help and figure it out when I get done asking...
<aeth> That often happens.
<Josh_2> xD
jeosol has joined #lisp
<aeth> I should make a version of that that's a /dev/null chat client where someone can describe their problemss to /dev/null.
<Josh_2> xD
<aeth> Prototype: (with-open-file (output #P"/dev/null" :direction :output :if-exists :append) (write-line "Hello!" output) nil) ; the trailing nil is important so I don't accidentally return "Hello!" because it's critical that the message only goes to the intended recipient
<remexre> aeth: Oh, hm, so if I'm deploying to an ancient Debian server, I probably /do/ want AppImage then?
<remexre> my only familiarity with it comes from Neovim using it
<aeth> remexre: depends on how ancient
<aeth> remexre: it doesn't hurt to try it, though
<aeth> "Note that the binaries must not be compiled on newer distributions than the ones you are targeting."
<remexre> Oh, so it would depend on glibc then... maybe if I built from alpine I could coerce it to be statically linked...
<remexre> or really, maybe I should build sbcl on alpine and see if that makes statically linked programs
<aeth> You could make a VM that matches the version of your target server
<remexre> eh, I guess; VMs are a pain though
<saturn2> you could just put the needed libraries somewhere and run /somewhere/libs/ld-linux.so.2 --library-path /somewhere/libs/ /somewhere/sbcl
milanj has joined #lisp
isBEKaml has quit [Quit: leaving]
zaquest has quit [Ping timeout: 240 seconds]
<buffergn0me> Is my understanding that SLOT-BOUNDP is not portable when called on condition slots correct?
<no-defun-allowed> Yes, you cannot portably use methods for standard-classes on condition classes.
<buffergn0me> Ok. That leads to the next question: what do you think is the best way to tell whether a condition slot has been bound?
analogue has quit [Quit: later]
caltelt has quit [Ping timeout: 268 seconds]
<buffergn0me> The only thing I can think of right now is to have a sentinel value as an initarg
<stylewarning> I would avoid having slots that can’t be bound
<stylewarning> that can be unbound*
<stylewarning> Not only is it bad for the receiver of the condition object, it’s just error prone and an indicator of poor design
<Bike> i suppose there's technically no way to check boundedness of a condition slot
<Bike> i mean in practice, slot-boundp is going to work
<buffergn0me> It certainly works on SBCL
<aeth> Well, SBCL is usually the odd one out here
<aeth> So if it works there...
<aeth> s/here/with conditions/
vaporatorius has quit [Read error: Connection reset by peer]
<Bike> i don't knkow if any implementation has conditions has anything other than basicallys tandard objects
vaporatorius has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
<buffergn0me> That should be a CDR document
<Bike> does CDR allow documents that are single sentences?
<stylewarning> Why should there be a CDR document on the representation of a condition? Just use a condition as a proxy for another object if you so please
moldybits has quit [Quit: WeeChat 2.4]
<Bike> it's not really representation so much as "all this stuff that works on standard objects should work on conditions too"
<buffergn0me> stylewarning: It would be nice if that stuff about conforming code not being able to use regular CLOS methods could be amended in some kind of standards document
<Bike> both the reasons given are irrelevant now
zaquest has joined #lisp
<Bike> huh, you used to be able to use defclass and stuff? neat
ahungry has quit [Remote host closed the connection]
vlatkoB has joined #lisp
Bike has quit [Quit: Lost terminal]
jl2 has joined #lisp
lipskrim has joined #lisp
ahungry has joined #lisp
eSVGDelux has joined #lisp
Necktwi has joined #lisp
gigetoo has quit [Ping timeout: 240 seconds]
<lipskrim> re.
permagreen has quit [Remote host closed the connection]
<fengshaun> is it possible to completely disable sbcl's optimizations? I have a function that takes 3 arguments and doesn't use one directly (it uses it in a let* binding), but it doesn't appear in local variables in slime and all other let* bindings that use it show up as unbound
<fengshaun> no idea why this is happening
<fengshaun> I'm using (declaim (optimize (debug 3)))
prite has joined #lisp
gigetoo has joined #lisp
vlatkoB has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
lipskrim has quit [Quit: lipskrim]
ggole has joined #lisp
raghavgururajan has joined #lisp
<fengshaun> can't seem to replicate it with a smaller example
gravicappa has joined #lisp
megalography has left #lisp [#lisp]
zaquest has quit [Ping timeout: 240 seconds]
ahungry has quit [Remote host closed the connection]
abhixec has quit [Quit: leaving]
<beach> Good morning everyone!
<Josh_2> Mornin' beach
<buffergn0me> fengshaun: That has nothing to do with declarations. You are using NTH-VALUE wrong
<fengshaun> oh ._.
<buffergn0me> fengshaun: Try (let ((val (gethash (get-key day) my-hash))) val)
<fengshaun> gethash returns (values value present-p)
<buffergn0me> fengshaun: That only gets the first value of gethash, the other one is discarded
<fengshaun> oh
georgie has joined #lisp
adip has quit [Ping timeout: 240 seconds]
<buffergn0me> fengshaun: What you want is something like (let ((val (nth-value 1 (get-hash …)))) …)
retropikzel has joined #lisp
<aeth> fengshaun: you need multiple-value-bind to bind multiple values
<fengshaun> oh ok
<fengshaun> when does the second+ values get discarded then?
<aeth> all but one value will be discarded (usually all but the first, unless you use nth-value) unless you do multiple-value-something
<aeth> like multiple-value-bind, multiple-value-call, multiple-value-list..
<fengshaun> so I would have to immediately use multiple-value-* or nth-value, or all but first value is lost
<fengshaun> no assignment, etc
<aeth> actually
<aeth> (setf (values x y z) (values 1 2 3)) ; this should work, as should calling a function that returns three values instead of directly saying (values 1 2 3)
<aeth> Now why you can (values x y z) in SETF but not LET/LET*, that's a question for the CL standards committee.
<fengshaun> CL has some weirdness to it
<fengshaun> but it's fun regardless
<fengshaun> thanks
<fengshaun> looks like I can't modify a multiple-value-bind taken from gethash with setf/incf either
<no-defun-allowed> No, those don't refer to the position in the hash table where the value was taken from.
<no-defun-allowed> (incf (gethash key table) <optional default>) would work though.
adip has joined #lisp
<fengshaun> yea, directly using gethash works
<fengshaun> seems to work now,
jl2 has quit [Ping timeout: 240 seconds]
<fengshaun> thanks
Lord_of_Life has quit [Ping timeout: 245 seconds]
<fengshaun> sometimes it feels like it's hard to reason about what's mutating and what's not
<fengshaun> probably needs more time spent with CL
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<no-defun-allowed> What languages are you familiar with? I could try an analogy.
<fengshaun> C and python mostly, some haskell
<no-defun-allowed> Well, in Python, it would be like `value, win = table[key]`.
<no-defun-allowed> Changing value won't update the value in the table,
Lord_of_Life has joined #lisp
<fengshaun> makes sense, but reading documentation seems to be quite important. e.g. I expected maphash to return a new hash and not modify the existing one (like mapcar) or sort to also return a new list
<fengshaun> but those are just famililar ideas which don't apply here
<fengshaun> I've just been surprised quite a few times like that
FreeBirdLjj has joined #lisp
mpcjanssen has quit [Ping timeout: 240 seconds]
<aeth> well, maphash is like map nil
<aeth> it doesn't modify the existing hash table, either, but according to the standard, you are permitted to setf or remhash the current value while iterating
dale has quit [Quit: My computer has gone to sleep]
<aeth> This actually gives two strategies for the function you want. Just make a new hash table: (defun maphash* (function hash-table) (let ((h (make-hash-table))) (maphash (lambda (k v) (setf (gethash k h) (funcall function k v))) hash-table)))
<aeth> Or actually modify a copy: (defun maphash* (function hash-table) (let ((h (copy-hash-table hash-table))) (maphash (lambda (k v) (setf (gethash k h) (funcall function k v))) h)))
quazimodo has quit [Ping timeout: 245 seconds]
<aeth> oh, both are incorrect, you want to return h at the end!
<aeth> fengshaun: but for the most part, setting is done through SETF (or SETQ) and most other things don't modify things, with most of the rest fairly obvious, like map-into or fill, although not as obvious as in Scheme, where such things end in !
<aeth> It doesn't hurt to check the spec first
<aeth> (in case you don't know if it modifies or not)
<fengshaun> makes sense
<fengshaun> I still need to settle in and get familiar
karlosz has joined #lisp
jeosol has quit [Remote host closed the connection]
<aeth> fengshaun: In CL, almost everything is a reference to something on the garbage collected heap (with rare exceptions, like (declare (dynamic-extent foo))), or if it fits within a machine word and is immutable (like 42 or 42.0f0 or #\c) it might be optimized away into just directly being stored/copied
<aeth> Your experience with C probably makes you think that more is going on than there is.
<fengshaun> probably
<fengshaun> I'm more used to explicit references vs values etc
<aeth> essentially, everything is a reference
<fengshaun> stack vs heap is also a thing in my brain which wouldn't apply here
<saturn2> the reason you can't assign multiple values to a variable is so they can be kept on the stack
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
<aeth> If you're doing (aref foo 42) you're going to get one of two things, you're going to get a reference to something else, like e.g. (list 1 2 3), or you're going to get some constant like "42" that is probably small enough to be optimized away into a value instead of a reference (but it's not just its size, it's also that it's immutable, you can't modify 42)
<aeth> But you're not getting a reference to the position in the container, the spot of the 43nd element in the array foo, you're getting the reference to where (list 1 2 3) is located on the heap
<aeth> So now there are two references to (list 1 2 3), in your local variable (or wherever else you did that access) and in the array foo
<aeth> (let ((l (aref foo 42))) (setf l "Hello") l) ; this is going to return "Hello" but it's not going to impact the array foo, which is still going to hold (list 1 2 3)
FreeBirdLjj has quit [Ping timeout: 245 seconds]
<fengshaun> but then (setf (aref foo 42) "hello") does change the foo array, right?
<aeth> correct, and if that was the only reference to (list 1 2 3) then that will be garbage collected at some future point
karlosz has quit [Quit: karlosz]
<aeth> and, this suggests that arrays (or lists/conses) are a good way to get what you probably wanted
Necktwi has quit [Ping timeout: 245 seconds]
<beach> fengshaun: Yes, but that is because the macro SETF changes it to some internal stuff like (aset foo 42 "hello").
<aeth> (let ((l (aref foo 42))) (setf (aref l 0) "Hello") (aref l 0)) ; this returns "Hello, but now (aref foo 42) is the array (possibly of length 1) that holds "Hello"
<aeth> s/"Hello,/"Hello",/
<fengshaun> ohh setf has magic
<beach> Yes.
<fengshaun> now it makes sense
Necktwi has joined #lisp
<fengshaun> (let ((l (aref foo 42))) (setf l "hello")) != (setf (aref foo 42) "hello")
<aeth> My point with my second example, in case I was unclear, is that if you do want to have a "reference" of sorts stored in an a variable, then you add a layer of indirection with an array/vector (in CL, a vector is just a 1D array) or cons.
<aeth> and yes
<beach> fengshaun: Correct.
<fengshaun> so if foo was a 2D array, then (setf l "hello") would replace the inner array with "hello"?
<fengshaun> since I'd be getting a reference to the inner array
<aeth> fengshaun: no, 2D arrays are set with (setf (aref foo x y) "Hello")
<aeth> well, real 2D arrays
<aeth> you'd just be wanting a 1D array in a 1D array
<aeth> You can even make a 0-dimensional array like this: (make-array '() :inital-element 42) ; and now you have a convenient little container to play around with
georgie has joined #lisp
<aeth> (let ((l (aref foo 42))) (setf (aref l) "Hello"))
<aeth> Assuming that the 42nd element contains a 0D array
<aeth> basically just a box
<aeth> It's pretty uncommon, but if that's what you want...
<fengshaun> just trying to understand
varjag has joined #lisp
<fengshaun> so, with aref or gethash etc
<fengshaun> how would one store a reference to a cell so it can be modified later?
<beach> You can't.
<beach> Places are not first-class objects in Common Lisp.
quazimodo has joined #lisp
<aeth> fengshaun: the closest thing to a reference to a cell that can be modified later is a 0D array. Well, there are other close things, but a 0D array is the purest thing. But you still have to set it with (aref foo) instead of just foo
<aeth> By "purest" I mean in that it can only ever by its nature hold one thing, not that it's purely functional (the whole point here is mutation)
<fengshaun> alright
* beach makes a mental not to use "place" as a counterexample to "everything is an object".
<beach> s/not/note/
<stylewarning> beach: are you including locatives as an Easter egg in Cleavir
<fengshaun> aeth, beach: thanks
<aeth> you're welcome
<beach> stylewarning: Probably not.
<saturn2> you can also make a reference to a place so it can be modified with (lambda (x) (setf place x))
<fengshaun> how?
<stylewarning> beach: It can be the secret level after you beat the final boss (NIL-element type arrays)
<White_Flame> fengshaun: the most flexible way is to make a getter/setter pair of function objects, and store then in a struct or object
<White_Flame> consider that a "cell" might not just be a single machine word somewhere
<White_Flame> for instance, packed array elements, hash table entries (which have effects on its indexes & buckets), custom class storage, etc
<beach> stylewarning: Hmm.
<fengshaun> alright, I'll have to play around a bit more, but I do understand where the original issue was
<fengshaun> thanks a lot!
<fengshaun> time to pass out
<White_Flame> but in the simple cases that I've used, I just created a cons cell to hold the value, and pass around reference to that cons cell. (car x) reads that place, (setf (car x)) writes it, and it's the least overhead (at least in sbcl). The reader/writer that just wraps car can be inlined
<aeth> hmm... if you want to hold one thing there's a 0-dimensional array, and if you want to hold two things there's CONS. I wonder if there's something for three... not counting a 1D array that holds a length in its type like (simple-vector 3)
<White_Flame> aeth: a cons took less memory footprint than a 0-dim array, which is why I took that route
<fengshaun> what's a 0d array exactly
<fengshaun> ?
vaporatorius has joined #lisp
<fengshaun> the unit type? '()
<aeth> fengshaun: CL supports 0, 1, 2, 3, ... dimensional arrays. They're specified by dimensions like () (3) (1 2) (3 4 5) ...
<aeth> So a 0 dimensional array is the array of size () which by its nature holds 1 element (probably because holding 0 is the only alternative that would make sense, and that would be useless)
<fengshaun> and you make it with '()?
<aeth> you make it with (make-array '())
<fengshaun> oh
sauvin has joined #lisp
<fengshaun> thanks
<stylewarning> aeth: my explanation for why a 0 dim array holds 1 elt is that the size of the array is the product of the dimensions. And the empty product (*) = 1
<aeth> stylewarning: that's actually really cool
<beach> stylewarning: That is very likely the good explanation.
<White_Flame> zero dimensionality = a single place
<White_Flame> not non-existence
yoeljacobsen has joined #lisp
<White_Flame> there's no axis on which to move
<aeth> 0D arrays are basically a box to store values, 1D arrays are vectors, 2D arrays are essentially matrices except without a built-in matrix*...
<aeth> I wonder what the 3D version of a matrix is in mathematics
<White_Flame> still called a matrix, afaik
<aeth> Oh, and there are lots of good reasons not to have a matrix* built-in even though 2D arrays are basically matrices. One, it's hard to implement an optimal one (burden on implementations). Two, it would probably encourage people to want to extend the numeric tower and *. Three, it would have to make CL "pick a side" as to whether its vectors are row vectors or column vectors!
<ggole> You also want sparse, triangular, etc matrices
<ggole> Should be a library thing
<aeth> You do get some vector things for free, though... via the complex numbers. Just for vec2's of course. e.g. (abs #C(1 3))
<stylewarning> aeth: tensors
<aeth> It's kind of weird how arbitrary they stopped with the numeric tower, stopping at complex instead of having their natural extension, quaternions...
abhixec has joined #lisp
<stylewarning> aeth: But then no commutativity
<stylewarning> and they probably want (= (* x y) (* y x))
<aeth> a small price to pay for rotations...
<stylewarning> (:
orivej has joined #lisp
<stylewarning> aeth: but we get rotations! (with complex numbers)
<stylewarning> don’t mind me, I’m just taking pot shots
<aeth> clearly the best representation for quaternions would be a cons pair of complex numbers...
varjag has quit [Ping timeout: 240 seconds]
abhixec has quit [Quit: leaving]
abhixec has joined #lisp
nostoi has joined #lisp
JohnMS_WORK has joined #lisp
scymtym has quit [Ping timeout: 268 seconds]
pjb has quit [Remote host closed the connection]
pjb has joined #lisp
gravicappa has quit [Ping timeout: 240 seconds]
gravicappa has joined #lisp
Josh_2 has quit [Read error: Connection reset by peer]
varjag has joined #lisp
yoeljacobsen has quit [Ping timeout: 240 seconds]
dddddd has quit [Ping timeout: 268 seconds]
dddddd has joined #lisp
nostoi has quit [Quit: Verlassend]
<mfiano> why stop at quaternions, when you can go to dual quaternions and also get translation and uniform scale in addition to rotation, and in half the storage as a matrix :)
<aeth> mfiano: because the flamewar between the dual quaternion crowd and the octonion crowd is one of the most vicious on the Internet and will never be resolved!
<mfiano> They are completely different. I don't even see a relation
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<aeth> which one do you support?
<aeth> in your language?
dddddd has quit [Remote host closed the connection]
<aeth> anyway, I was joking
<mfiano> Depends what kind of math I need. Again, they aren't even in the same ballpark. There was an early octonion based off of quaternions that isn't the same as the terminology of today if that's what you mean
<mfiano> Ah
quazimodo has quit [Read error: Connection reset by peer]
<mfiano> Also I was half joking when I said they can be used to represent all 3 transforms. While they certainly can, ultimately you'd want a matrix in most applications, especially when working with a GPU, and that requires some intensive operations involving converting to Plucker coordinates and Screw coordinates first.
<Krystof> the Clifford algebra team mocks your restricted thinking
<Krystof> (my very first student job was in a Physics lab where half the faculty were Clifford true believers)
quazimodo has joined #lisp
shka_ has joined #lisp
abhixec has quit [Quit: leaving]
scymtym has joined #lisp
<Shinmera> Xach: thanks for speaking up.
yoeljacobsen has joined #lisp
hiroaki has joined #lisp
makomo_ has joined #lisp
yoeljacobsen has quit [Ping timeout: 276 seconds]
retropikzel has quit [Remote host closed the connection]
_whitelogger has joined #lisp
quazimodo has quit [Ping timeout: 265 seconds]
hhdave has joined #lisp
jonatack has quit [Ping timeout: 264 seconds]
nanoz has joined #lisp
buffergn0me has quit [Ping timeout: 245 seconds]
frgo_ has joined #lisp
makomo_ is now known as makomo
frgo has quit [Ping timeout: 268 seconds]
frgo_ has quit [Ping timeout: 240 seconds]
kajo has joined #lisp
milanj has quit [Quit: This computer has gone to sleep]
milanj has joined #lisp
jonatack has joined #lisp
krwq has quit [Remote host closed the connection]
frgo has joined #lisp
kajo has quit [Ping timeout: 250 seconds]
gxt has quit [Remote host closed the connection]
gxt has joined #lisp
refpga has joined #lisp
Ricchi has joined #lisp
GoldRin has quit [Ping timeout: 268 seconds]
charh has joined #lisp
shangul has joined #lisp
cosimone has joined #lisp
GoldRin has joined #lisp
vaporatorius has quit [Read error: Connection reset by peer]
georgie_ has joined #lisp
<pjb> Interesting paper: If What We Made Were Real (2017) [pdf] <http://ppig.org/sites/ppig.org/files/2017-PPIG-28th-basman.pdf>
milanj has quit [Quit: This computer has gone to sleep]
gjvc has quit [Remote host closed the connection]
milanj has joined #lisp
kajo has joined #lisp
Ricchi has quit [Remote host closed the connection]
adip has quit [Ping timeout: 240 seconds]
<thijso> Has anyone ever done anything with GPG using GPGME in Lisp? I've got it loading in my REPL, and I can call some functions (like (gpgme:check-version) which gives "1.13.1"), but I'm lost on how to actually *do* anything with it. The manual is full of stuff, but doesn't really give any examples (let alone in Lisp). I'm an examples-learner. I need to see some examples! If anyone has any pointers, links, please
<thijso> share. I'll be down the google-rabbit-hole for a while I guess...
gareppa has joined #lisp
kajo has quit [Ping timeout: 252 seconds]
frgo_ has joined #lisp
<pjb> thijso: and what makes you think you know less than us about gpgme in lisp?
<pjb> (ql:quickload :gpgme) -> ; Evaluation aborted on #<quicklisp-client:system-not-found #x302002A7BB3D>.
gareppa has quit [Quit: Leaving]
frgo has quit [Ping timeout: 240 seconds]
<thijso> nothing, but sometimes someone else has already walked down a path, so that's why I ask
<thijso> I've found a github repo with examples in c
frgo_ has quit [Ping timeout: 276 seconds]
<thijso> But something in lisp would be better, of course
cosimone has quit [Quit: Quit.]
<pjb> thijso: so basically you have a CFFI problem?
<_death> thijso: the README has some examples
<thijso> No, I've got it working. I'm just looking for examples *how* to use it. GPGME is a little 'different', I guess. I've got it generating a key for me. So it's working. I just need to figure out exactly how to use it.
<thijso> Yeah, _death, those don't actually seem to work for me. It looks like they assume a lot of pre-work has been done, like creating contexts, and generating keys and such.
<pjb> thijso: now, if you had given this url https://github.com/gpg/gpgme/tree/master/lang/cl give minutes ago, I wouldn't have spend that time finding it. I don't have any time remaining to help you on this, sorry.
georgie_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<thijso> Okay, so a very specific question: if I get back a #<foreign :POINTER-VOID 0x7f44d802e6c0> and I know that that points to a C structure, how do I get to the data inside?
georgie has joined #lisp
<thijso> Thanks, _death
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
georgie has joined #lisp
jonatack has quit [Quit: jonatack]
zeropage has joined #lisp
jmercouris has joined #lisp
lawfullazy has quit [Ping timeout: 240 seconds]
gxt has quit [Ping timeout: 260 seconds]
cosimone has joined #lisp
zeropage has quit [Remote host closed the connection]
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
georgie has joined #lisp
nanoz has quit [Read error: Connection reset by peer]
nanoz has joined #lisp
frgo has joined #lisp
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
kajo has joined #lisp
techquila has joined #lisp
techquila has quit [Client Quit]
EvW1 has joined #lisp
nanoz has quit [Ping timeout: 268 seconds]
nanoz has joined #lisp
<jmercouris> what is that channel for new users in Lisp called again?
<no-defun-allowed> #clschool?
<jmercouris> ah there we go
<jmercouris> it went from noobs to school, thank you
EvW1 has quit [Remote host closed the connection]
jonatack has joined #lisp
ljavorsk has joined #lisp
bitmapper has joined #lisp
gxt has joined #lisp
jonatack has quit [Ping timeout: 245 seconds]
<selwyn> Hello everyone
frgo_ has joined #lisp
<selwyn> I am interested in using the System V shared memory API from lisp to communicate with another (non lisp) process
<selwyn> has anyone had experience with this or made their own library to do this?
<selwyn> i am wondering whether i need to roll out my own cffi-based solution to achieve this
vaporatorius has joined #lisp
frgo has quit [Ping timeout: 240 seconds]
mingus has quit [Remote host closed the connection]
frgo_ has quit [Ping timeout: 268 seconds]
dmiles has quit [Read error: Connection reset by peer]
paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
hhdave has quit [Read error: Connection reset by peer]
Harag has quit [Remote host closed the connection]
Harag has joined #lisp
hhdave has joined #lisp
dmiles has joined #lisp
orivej has quit [Quit: No Ping reply in 180 seconds.]
ym has quit [Ping timeout: 245 seconds]
orivej has joined #lisp
ym has joined #lisp
<Shinmera> selwyn: using mmap would probably be more portable.
<selwyn> i believe i need to expose some system calls like https://linux.die.net/man/3/shm_open and then use mmap with the file descriptor
<Shinmera> If you have a common file you can just mmap the same file in both processes with sharing enabled.
<Shinmera> The mmap library should offer portable access to all of those features.
<selwyn> oops that is the posix api. something like https://linux.die.net/man/2/shmget
<Shinmera> (on windows, too)
<selwyn> shinmera: thanks will look into it
<Shinmera> Patches to make it run without osicat are welcome
<selwyn> so i can share memory between processes solely using mmap?
bjorkintosh has quit [Remote host closed the connection]
dddddd has joined #lisp
<Shinmera> Yes
<Shinmera> if you're on Linux only and your other processes are forks you could even use anonymous maps.
<selwyn> yes i see. why is osicat not desirable?
<Shinmera> Because it needs to grovel, so you need a C compiler properly configured on your system.
orivej has quit [Ping timeout: 240 seconds]
<Shinmera> The alternative is tedious; grovelling manually on every platform combination you want to support and baking the constants into the source.
<Shinmera> So I haven't done it yet.
lucasb has joined #lisp
<selwyn> it appears that the process in question can only use the system v shared memory api anyway
LiamH has joined #lisp
bitmapper has quit [Read error: Connection reset by peer]
bitmapper has joined #lisp
<dlowe> jmercouris: if you join #clnoobs you'll get a private message telling you to go to #clschool
<dlowe> maybe it should just be a message to the whole channel so it gets seen
<pjb> yes, that would be better.
georgie has joined #lisp
vaporatorius has quit [Ping timeout: 268 seconds]
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
ebrasca has joined #lisp
Bike has joined #lisp
jmercouris has quit [Ping timeout: 265 seconds]
jazzslag has joined #lisp
random-nick has joined #lisp
yoeljacobsen has joined #lisp
adip has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
rippa has joined #lisp
manualcrank has joined #lisp
retropikzel has joined #lisp
hiroaki has quit [Ping timeout: 240 seconds]
bitmapper has quit [Read error: Connection reset by peer]
cosimone has quit [Quit: Terminated!]
nika_ has joined #lisp
FreeBirdLjj has joined #lisp
mindCrime_ has joined #lisp
igemnace has quit [Quit: WeeChat 2.6]
scymtym has quit [Ping timeout: 245 seconds]
xkapastel has joined #lisp
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
cosimone has joined #lisp
paul0 has quit [Ping timeout: 240 seconds]
superkumasan has joined #lisp
whartung has quit [Quit: whartung]
jonatack has joined #lisp
smazga has joined #lisp
count3rmeasure has joined #lisp
jonatack has quit [Ping timeout: 265 seconds]
jonatack has joined #lisp
paul0 has joined #lisp
georgie has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
lxbarbosa has joined #lisp
jgcarvalho has quit [Quit: WeeChat 2.6]
charh has quit [Quit: leaving]
refpga has quit [Read error: Connection reset by peer]
refpga has joined #lisp
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sjl has joined #lisp
sjl has quit [Client Quit]
georgie has joined #lisp
monokrom has joined #lisp
retropikzel has quit [Remote host closed the connection]
<lxbarbosa> ansi common lisp is just superb. non verbose nor too concise and lots of eg
lxbarbosa has quit [Remote host closed the connection]
GoldRin has quit [Ping timeout: 276 seconds]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
shangul has quit [Ping timeout: 268 seconds]
Oladon_work has joined #lisp
yoeljacobsen has quit [Ping timeout: 240 seconds]
Josh_2 has joined #lisp
frgo has joined #lisp
lawfullazy has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
hiroaki has joined #lisp
EvW has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
prite has quit [Ping timeout: 240 seconds]
orivej has joined #lisp
raghavgururajan has quit [Read error: Connection reset by peer]
jonatack has quit [Ping timeout: 245 seconds]
jonatack has joined #lisp
EvW has quit [Ping timeout: 245 seconds]
akoana has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
nika_ has quit [Ping timeout: 240 seconds]
prite has joined #lisp
skidd0 has joined #lisp
<Xach> thijso: what do you hope to do with gpg in lisp?
<skidd0> is there a way to purge a package from my local quicklisp besides deleting the packages directory inside quicklisp/software/ ?
<Xach> skidd0: yes
<Xach> skidd0: (ql-dist:uninstall (ql-dist:release "name-of-thing")) is one way
<Xach> skidd0: what prompts the desire to do so?
<skidd0> I'm getting an error: "ALEXANDRIA" is already a nickname for "ALEXANDRIA.0.DEV"
<Xach> Weird.
varjag has joined #lisp
<skidd0> i did a grep for that 0.dev in my quicklisp dir to see if some other package had it included in irs src (a previous issue you all have helped me through)
srji has quit [Ping timeout: 246 seconds]
<skidd0> only in the alexandria dir
srji has joined #lisp
jonatack has quit [Ping timeout: 268 seconds]
gareppa has joined #lisp
g0d_shatt3r has joined #lisp
<Bike> yeah that's the name alexandria uses for its package internally
<Xach> Not any more.
<skidd0> well, removing it seemed to fix it
<Xach> Now the package is named "ALEXANDRIA.1.0.0"
<skidd0> thanks guys
<Xach> skidd0: do you have the quicklisp directory as a :tree for asdf or something?
<skidd0> how can i determine this
<skidd0> i have not done anthing special to quicklisp dist
count3rmeasure has quit [Ping timeout: 240 seconds]
<Xach> skidd0: Well, what sort of stuff did you do when you got the error about the nickname?
<skidd0> i tried the uninstall you mentioned
<skidd0> then reloaded swanks image
<skidd0> that didn't seem to work so then i removed the dir
<skidd0> turns out there were two dirs
<Xach> That is not normally a problem
<skidd0> a 2018 and a 2019 for alexandria
<Xach> So I'm curious about any possible local configuration
hhdave has quit [Quit: hhdave]
<skidd0> then reloaded swank, then ql:quickload alexandria
<skidd0> and then it worked
<skidd0> but now i'm back into a compile-file-error with a package i'm trying to start
<skidd0> but i think i can figure that out on my own
georgie has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<Xach> I'm glad it's on to new and better propblems but I'm still a bit curious about the original problem. Oh well.
<Xach> Problems, rather.
<skidd0> well i don't think i've done anything special with my local config
<Josh_2> I'm still having problems with my quicklisp xD
<Josh_2> not finding my libraries :(
<Josh_2> to fix another time as I'm off to play r6 with some friends
dale has quit [Quit: dale]
<Xach> R6RS?? How could you?
<Xach> Josh_2: I hope someday our schedules meet, I would still like to help.
Lord_of_Life_ has joined #lisp
gxt has quit [Ping timeout: 260 seconds]
augfab has joined #lisp
Lord_of_Life has quit [Ping timeout: 276 seconds]
augfab has quit [Quit: leaving]
Lord_of_Life_ is now known as Lord_of_Life
Oladon_work has quit [Remote host closed the connection]
g0d_shatt3r has quit [Quit: Leaving]
asdf_asdf_asdf has joined #lisp
dale has joined #lisp
Oladon_work has joined #lisp
<jackdaniel> quick mop-powered way to check if all objects implement their protocol: http://hellsgate.pl/files/734cf57e-show-defined.png
augfab has joined #lisp
superkumasan has quit [Ping timeout: 268 seconds]
hiroaki has quit [Ping timeout: 265 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
nowhere_man has quit [Ping timeout: 276 seconds]
nika has joined #lisp
<Oladon_work> Sigh, recruiters.
ym has quit [Read error: Connection reset by peer]
frgo has quit [Read error: Connection reset by peer]
frgo has joined #lisp
salinasce has joined #lisp
poptatoo has joined #lisp
salinasce has quit [Remote host closed the connection]
jonatack has joined #lisp
salinasce has joined #lisp
housel has quit [Ping timeout: 276 seconds]
housel has joined #lisp
slightlycyborg has joined #lisp
buffergn0me has joined #lisp
<poptatoo> \part
ebrasca has quit [Remote host closed the connection]
Bike has quit [Remote host closed the connection]
poptatoo has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
gigetoo has quit [Ping timeout: 245 seconds]
Bike has joined #lisp
rer444 has joined #lisp
slightlycyborg has quit [Ping timeout: 240 seconds]
liberiga has joined #lisp
rer444 is now known as poptatoo
poptatoo has left #lisp [#lisp]
poptatoo has joined #lisp
lawfullazy has quit [Remote host closed the connection]
lawfullazy has joined #lisp
poptatoo has quit [Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )]
FreeBirdLjj has joined #lisp
gareppa has quit [Quit: Leaving]
jmercouris has joined #lisp
jmercouris has quit [Remote host closed the connection]
cosimone has quit [Quit: Quit.]
gigetoo has joined #lisp
bitmapper has joined #lisp
makomo_ has joined #lisp
makomo has quit [Ping timeout: 265 seconds]
makomo_ is now known as makomo
random-nick has quit [Ping timeout: 265 seconds]
kajo has quit [Ping timeout: 246 seconds]
ulrivo has joined #lisp
dorketch has joined #lisp
dorketch has quit [Client Quit]
mbrock has joined #lisp
ym has joined #lisp
salinasce has quit [Ping timeout: 240 seconds]
EvW1 has joined #lisp
<thijso> Xach: I want to do asymmetric encryption
<thijso> ironclad would be my first choice, but I'm unable to get it to compile cleanly on my target environment (android based on EQL5-android)
<thijso> Well, unable to finish compiling at all. It just hangs indefinitely on src/ciphers/cast5
nika has quit []
reggie_ has quit [Remote host closed the connection]
<thijso> I've given up on gpg, btw, looking into ironclad again. Not with a lot of success, though, for now...
FreeBirdLjj has quit [Remote host closed the connection]
analogue has joined #lisp
random-nick has joined #lisp
buffergn0me has quit [Ping timeout: 245 seconds]
reggie_ has joined #lisp
Bike has quit [Remote host closed the connection]
Inline has joined #lisp
gareppa has joined #lisp
ljavorsk has quit [Ping timeout: 240 seconds]
Bike has joined #lisp
<Josh_2> Xach well I'm about now if you are free?
sauvin has quit [Ping timeout: 240 seconds]
aeth has quit [Ping timeout: 265 seconds]
aeth_ has joined #lisp
aeth_ is now known as aeth
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
lawfullazy has quit [Ping timeout: 276 seconds]
kajo has joined #lisp
rippa has quit [Read error: Connection reset by peer]
bitmapper has quit [Ping timeout: 240 seconds]
sauvin has joined #lisp
<Xach> thijso: ah, ok. i have some code that verifies signatures but does not encrypt.
<Xach> Josh_2: sure! hi! what are the symptoms?
<Josh_2> Well I have an asd in ~/quicklisp/local-projects/ but if I try to quickload the asd name, quicklisp does not find the system
<Josh_2> I have to manually load the asd for it to work
<Xach> Josh_2: Ok! That is not what should usually happen. Does this happen even after (ql:register-local-projects)?
<thijso> Xach: good to know, but right now I need something else indeed... if you know how to debug code emitting by ECL let me know... ;)
<Josh_2> Xach
<Xach> thijso: sorry, i am almost exclusively sbcl
<thijso> yeah, my foray into ECL land is because of android...
<jackdaniel> thijso: if you build eql5-android by hand, you could precompile ironclad during cross-compilation
<Josh_2> Xach, yes it still does that, also if I run (ql:list-local-projects) my asd is is listed
<thijso> now if SBCL could build android apps, my troubles would be over... or maybe not ;)
<jackdaniel> it might be that ironclad hangs on bytecodes compiler
<thijso> jackdaniel: hmmm, interesting. Do you have more pointers on how to do that?
<Xach> Josh_2: What is the name of your .asd file?
asdf_asdf_asdf has quit [Quit: asdf_asdf_asdf]
<Josh_2> configurator-asdf.asd
<Xach> Josh_2: what is the name of the system in the (defsystem ...) form in the file?
<Josh_2> "cl-configurator"
<Xach> Josh_2: ok, that cannot work without work. the names must match.
<Josh_2> o
<Josh_2> so the asd and the defsystem have to have the same name, I didn't know that
<Xach> Josh_2: yes, if you want the system to be found semiautomatically
<Josh_2> O
<jackdaniel> thijso: I'd write on ecl mailing list and ask
<Josh_2> well I will change it
<Xach> Josh_2: good luck!
<jackdaniel> or I'd see how modules in contrib/ are built
<Josh_2> So I shouldn't need to keep it in local-projects as I have a soft link to where I keep all my cl projects?
hhdave has joined #lisp
<Xach> Josh_2: i don't think so but one fix at a time!
<thijso> thanks, jackdaniel, I'll check it out
<Josh_2> Okay, so It's loading it automagically now :)
<Josh_2> And It's loading it from #P"/home/josh/documents/lisp/programs/cl-configurator/" instead of from local-projects which is what I want
<Xach> Yay!
<Xach> i'm glad this dark episode is behind us.
<Josh_2> Yes, It's nice when It's an easy solutions :)
<ck_> how are you able to curb your enthusiasm so well?
permagreen has joined #lisp
<Josh_2> I didn't realize you have to have exact same system name to asd name :) but now I know!!
<Josh_2> Ive been doing it wrong this whole time ahhaha
<ck_> Xach: parallelization check?
<Josh_2> Also, how do I get my library onto quicklisp when It's done?
<Xach> Josh_2: a github issue is easiest for me. there's a blog post about it also
<Josh_2> okay thanks :)
davr0s_ has joined #lisp
davr0s has joined #lisp
lawfullazy has joined #lisp
josemanuel has joined #lisp
gareppa has quit [Quit: Leaving]
Oladon_work has quit [Remote host closed the connection]
ulrivo has quit [Remote host closed the connection]
lawfullazy has quit [Ping timeout: 245 seconds]
Oladon_work has joined #lisp
shangul has joined #lisp
hhdave has quit [Quit: hhdave]
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
techquila has joined #lisp
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
gravicappa has quit [Ping timeout: 245 seconds]
hhdave has joined #lisp
hhdave has quit [Client Quit]
Jesin has quit [Quit: Leaving]
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
hhdave has joined #lisp
hhdave has quit [Client Quit]
lawfullazy has joined #lisp
Jesin has joined #lisp
<skidd0> alright i've got another issue i think might have a newbie level answer.
<skidd0> theres a system cl-snooze i'm using as a URL router
<skidd0> and a 3rd party API i'm trying to integrate with
<skidd0> the 3rd party sends a special http request (not get, or post, or options)
<skidd0> in the past, when i needed to have an :options verb/type of http request, i had to edit the code for cl-snooze and add it
<skidd0> this time, i'm trying to add that verb to my own code without needing to modify the dependancy
<skidd0> how can I add the options verb in my own code?
ggole has quit [Quit: Leaving]
shka_ has quit [Quit: Konversation terminated!]
<skidd0> i tried (defclass snooze-verbs:options (snooze-verbs:sending-verb) ())
<skidd0> as in that github issue
<skidd0> but Symbol "OPTIONS" not found in the SNOOZE-VERBS package.
<skidd0> i'm thinking i could (in-package :snooze-verbs) (cefclass ..)
<skidd0> but i have a gut feeling that's wrong
<skidd0> or poor practice
xkapastel has joined #lisp
emacsomancer has joined #lisp
shangul has quit [Ping timeout: 268 seconds]
bitmapper has joined #lisp
Oladon_work has quit [Remote host closed the connection]
shangul has joined #lisp
<makomo> skidd0: how did it work before though? did you add the symbol to the package's export list before?
asdf_asdf_asdf has joined #lisp
dyelar has quit [Quit: Leaving.]
<skidd0> hmm, i can't find the editted version of snooze that i have in that GH issue
<skidd0> so i'm not sure
<skidd0> but non of the verbs are exported in snooze's package.lisp file
<skidd0> oh hmm there's a defpackage inside snooze's common.lisp that exports the verbs
<skidd0> it's possible i edited that and forgot to include it in my issue posting
<skidd0> but again, i can't seem to find the edited code
<skidd0> ah, found it in a backup. must've been on my old laptop. Yes, i did add the #:options symbol to the export list in the :snooze-verbs defpackage
<skidd0> so is that a proper way to adjust the code of a dependancy? to make a copy of that system/library, edit it, then carry around the edited library with my library?
<skidd0> or is there a way within my own code to 'import' a dependancy then add symbols to it (still within my own code files)
<makomo> skidd0: right. yeah, you could do the latter, which is basically "monkey-patching" the library
<skidd0> how do I do that?
<makomo> use package functions such as EXPORT, etc. in order to add that symbol to the target package and export it
<skidd0> while using an in-package to create that symbol and export it within the target package
<skidd0> ?
<makomo> then your defclass form should work from within any package, not just snooze-verbs (because of the explicit prefix)
<makomo> you don't have to use in-package in this case
<makomo> check whether the EXPORT function creates the symbol if it doesn't exist
<makomo> if it doesn't, there's INTERN for that
<makomo> clhs export
<makomo> clhs intern
cosimone has joined #lisp
<makomo> (EXPORT has an argument which tells it the package to export from, so you don't have to use IN-PACKAGE)
<makomo> it might be a good idea to skim through 11.1.1
<makomo> clhs 11.1.1
<skidd0> ah, thank you so much makomo
<skidd0> i would like to read these, and i probably will, but theres some nagging anxiety that i should be focussed on 'work' while i'm on the clock
<asdf_asdf_asdf> Intead export You can use (package1::func ...) - two colons.
shangul has quit [Ping timeout: 240 seconds]
<skidd0> true, but i thought explicit usage like that was discouraged
<makomo> skidd0: i understand, which is why i used the word "skim" ;)
<skidd0> how do contractors afford to improve their coding skills?
<asdf_asdf_asdf> Why discouraged?
<skidd0> maybe i'd best take that question to #programming
<skidd0> asdf_asdf_asdf: not sure, something i remember reading elsewhere
<makomo> snooze-verbs::options would be an option as well, but as you said, it might be less "clean"
<makomo> or perhaps the internals of the library expect the symbols naming the various verbs to be external, but that's unlikely i think
<makomo> always worth a quick test though
<skidd0> it does expect them to be external, from my understanding
<skidd0> line 10 starts the defpackage i was talking about
<skidd0> where there's an :export of the various verbs
analogue has quit [Remote host closed the connection]
<makomo> the :export is there for the purposes of the snooze-verbs interface probably
<makomo> i.e. for the user-facing api, to make it clear what is supposed to be used by the clients, etc.
<makomo> whether they're actually expected to be exported by the internals is another matter. you'll have to look at the definition of DEFROUTE & co.
<aeth> I find that people rarely export their types or classes, so while foo::bar is highly discouraged (and should never be done with a well-designed package API), it's often necessary
<makomo> yeah, the symbols don't have to be exported https://github.com/joaotavora/snooze/blob/master/common.lisp#L185
<makomo> skidd0: ↑
<makomo> the library interns the symbol in the snooze-verbs package and then calls find-class to see whether it's a valid verb
<skidd0> i don't see find-class
<makomo> ctrl+f :). it's not directly within that function
<skidd0> oh duh
<skidd0> i hve so much to learn
<makomo> so you might as well do (defclass snooze-verbs::options ...) i guess
<skidd0> and then not even need to export it
<makomo> the export won't really help anyone, because (1) no other user will actually use it, since it's your own monkey-patch to the library and (2) after you return to this code god knows when, "snooze-verbs:options" might make you think that it's actually part of the official library interface, rather than your custom addition
dilated_dinosaur has quit [Ping timeout: 244 seconds]
<makomo> so i don't really see a very good reason to export it from snooze-verbs
<skidd0> right, similar reasoning to why one might not want to :use many dependancies
<skidd0> and instead explicitly dependancy:symbol in source code
dilated_dinosaur has joined #lisp
<makomo> yup
<skidd0> i see. thanks again makomo
<makomo> you're welcome :-)
oldtopman has quit [Ping timeout: 240 seconds]
nanoz has quit [Ping timeout: 240 seconds]
<makomo> skidd0: if you find the time, it might be a good idea to submit a PR since the patch to add support for OPTIONS is trivial (and perhaps also update the issue with your findings for a non-library-source-modifying workaround until it is accepted) :)
<skidd0> i am interested, but imposter syndrome has me doubting what PR i'd suggest
ym has quit [Ping timeout: 240 seconds]
<makomo> skidd0: i've never used the library, but from what you said and from the little code i've read, it seems that just defining a new class (and exporting the symbol that names it) is enough?
<skidd0> yes
<skidd0> i was just wanting to see what other methods of 'monkey patching' existed, which you've elucidated for me
<makomo> heh, there's actually one PR already, and one of the things it does is add a new method, just in the way we just discussed :) https://github.com/joaotavora/snooze/pull/3/files
<makomo> it added "patch" but also refactored the verbs into their own file
jmercouris has joined #lisp
hh47 has joined #lisp
<skidd0> i saw that, but didn't understand the significance. now, i have a better grasp of that significance
Bike has quit [Quit: Bike]
ym has joined #lisp
frgo has quit [Remote host closed the connection]
jmercouris has quit [Remote host closed the connection]
oldtopman has joined #lisp
oldtopman has joined #lisp
oldtopman has quit [Changing host]
LiamH has quit [Quit: Leaving.]
hh47 has quit [Remote host closed the connection]
vap1 has joined #lisp
vaporatorius has quit [Ping timeout: 268 seconds]
GoldRin has joined #lisp
Bike has joined #lisp
josemanuel has quit [Quit: leaving]
mindCrime_ has quit [Ping timeout: 245 seconds]
jonatack has quit [Ping timeout: 245 seconds]
skidd0 has left #lisp ["WeeChat 2.6"]
frgo has joined #lisp
oldtopman has quit [Ping timeout: 240 seconds]
asdf_asdf_asdf has quit [Quit: asdf_asdf_asdf]
oldtopman has joined #lisp
frgo has quit [Ping timeout: 240 seconds]
varjag has quit [Ping timeout: 268 seconds]
cosimone has quit [Quit: Terminated!]
zcid has quit [Ping timeout: 268 seconds]
zcid has joined #lisp
random-nick has quit [Ping timeout: 268 seconds]
jlarocco has quit [Ping timeout: 240 seconds]
cosimone has joined #lisp
eSVGDelux has quit [Ping timeout: 246 seconds]
hh47 has joined #lisp
lawfullazy has quit [Ping timeout: 265 seconds]
caltelt has joined #lisp
frgo has joined #lisp
lucasb has quit [Quit: Connection closed for inactivity]
Ricchi has joined #lisp
hh47 has quit [Remote host closed the connection]
lxbarbosa has joined #lisp
<lxbarbosa> compose function is actually rather clean and handy.. :D
liberiga has quit [Remote host closed the connection]
lawfullazy has joined #lisp
lawfullazy has quit [Ping timeout: 240 seconds]
cosimone has quit [Quit: Quit.]
prite has quit [Ping timeout: 240 seconds]
frgo has quit [Ping timeout: 265 seconds]
smazga has quit [Quit: leaving]
rpg has joined #lisp
gxt has joined #lisp
lawfullazy has joined #lisp
synaps3 has joined #lisp
_jrjsmrtn has joined #lisp
lawful_lazy has joined #lisp
salinasc has quit [Remote host closed the connection]
__jrjsmrtn__ has quit [Ping timeout: 240 seconds]
lawfullazy has quit [Ping timeout: 240 seconds]
frgo has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
Josh_2 has quit [Ping timeout: 245 seconds]
Josh_2 has joined #lisp
frgo has quit [Ping timeout: 268 seconds]
bjorkintosh has joined #lisp
EvW1 has quit [Ping timeout: 264 seconds]
adip has quit [Ping timeout: 268 seconds]