<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>
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>
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>
"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)))
<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>
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
<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
<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]
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?
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]
<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
<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>
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