<hayley>
ldb: The conclusion is that the symbol would not be found.
<lotuseater>
hayley: wtf? :D
<kakuhen>
Qwnavery: sbcl 2.1.7 released recently iirc, so i'd recommend updating (not that you have to)
<kakuhen>
but based on my own anecdotal evidence, newer releases of sbcl tend to make it even better
<beach>
jeosol: Working on it. Go ahead.
<jeosol>
oh ok, I recall you make comments about your coffee and your brain firing, haha
<beach>
True.
<jeosol>
question is mostly on design with clos classes and mutability vs. immutability - point being design close to only have mutable classes, what's your take
<beach>
Only mutable?
<jeosol>
In my application, I have classes that contain other classes and their state can change depending on other operations - some times I am access shared resource and recently went through a nasty debugging period to identify the bug then
<beach>
And do you mean that the classes are mutable or their instances?
<jeosol>
I am referring to instances
<jeosol>
My question is mostly in the context of designing code and algorithms
<jeosol>
I have things a bit all over the place as I quench fires to meet a deadline
<Qwnavery>
kakuhen: will do when I'm off mobile data.
<jeosol>
The video I recently watch, author was using Java so I guess they have some constructs to enforce it for some for slot parameters, but that's not my issue to compare, it's more of a design philosophy
<beach>
jeosol: I don't see why mutable instances would be controversial. That's the norm.
<Qwnavery>
ldb: system-area-ub8-fill not found in the sb-kernel package
<jeosol>
beach: that's what I was think. The guy seem to propose immutable as much as possible but then one is copying objects, etc. One of their main arguments seems to be easier debugging and concurency application
<jeosol>
beach: but it's good you don't see an issue with it, as I update my objects in place to update state and then copy if needed for parallel calls
<beach>
jeosol: That argument probably has some truth to it, but there are huge disadvantages with immutable stuff as well. Performance is one. And the very reason for using object-oriented programming seems to be to manipulate state.
<hayley>
Which guy?
<jeosol>
hayley: was that question for me?
<hayley>
Yes.
<Qwnavery>
is the lisp community still growing?
<hayley>
As with all things, performance with immutable stuff All Depends. Some sorts of persistent structures are good for hash consing, and for lock-free algorithms.
<jeosol>
It's Joshua Block (some Java architect) guy I think he wrote Effective Java. I am not a Java programmer, just the the author on the algorithms course Sedgewick (Princeton professor) mentioned it since he uses Java for his course
<beach>
Qwnavery: I don't think anybody is keeping count.
<Qwnavery>
beach: fair.
<kakuhen>
Qwnavery: I think it'd be very difficult to measure how many people use some lisp dialect somewhere
<kakuhen>
any reasonable definition of "size" and "lisp community" quickly leaves me at a loss of how one could obtain any information on it
<lotuseater>
jeosol: the newer version of "Algorithms" is in Java from what I saw recently. I have an older version in German ^^
<Qwnavery>
bad question. sorry.
<hayley>
If I lied and said yes, would you be more inclined to (continue to) use Lisp?
<kakuhen>
Qwnavery: it's not a bad question -- it's just hard to answer.
<jeosol>
But I don't really subscribe to that much, hence my question to beach. I had something similar when I started but I had performance issues so I updated my design and made some slot variables to be use allocation :class
<Qwnavery>
I might lurk a bit more.
<lotuseater>
Qwnavery: but look at how many things coming from lisp now are taken granted in mainstream languages. or are weird adapted
<Qwnavery>
lol python lambda functions.
<jeosol>
lotuseater: yes, that is correct, I am going through his Algorithms course as a refresher, I did code C/C++ in the past, and Java being similar, I didn't mind much. But I am not following the course for Java, I have not interest, just basic concepts rea;;u
<moon-child>
python is a cheap strawman
<Qwnavery>
I only know python. :(
<hayley>
I don't really care, because they are still not Lisp. And then most Lisps are not Common Lisp, which I admit I struggle to care about.
<jeosol>
I am also looking at vseloved's(?) book on Common Lisp algorithms
<Josh_2>
Qwnavery: poor you :(
<jeosol>
to check some of his implementations e.g., quicksort and what he called "production sort"
<lotuseater>
jeosol: oh I wish I could do that too. but learning from the book is also nice and the Pascal is for me better to understand than the C/C++ or the Java port
<moon-child>
'production' referring to the idea that this is something you would be willing to use 'in production'? Something akin to timsort in which respect?
<Qwnavery>
Josh_2: should have no pity for those who do not learn.
<lotuseater>
Qwnavery: I wonder why such functional things came to Python as Guido van Rossum doesn't like it.
<Qwnavery>
lotuseater: I don't know, I've been reading onlisp and lisp just makes sense.
<lotuseater>
exactly what I meant
<Josh_2>
Qwnavery: I dont take pity on those without the capacity
<jeosol>
lotuseater: My goal is to pay closer attention to aspects of the code I can improve, e.g., where I could take advantage of better search, use better data structures or better algorithms - with time and space complexity in mind
<Qwnavery>
Josh_2: that's a knife wound to the chest. jeez.
<Josh_2>
What
<kakuhen>
Qwnavery: this is off-topic, but a few days ago I found someone implement a minimal lisp in python and I found it pretty cool; https://github.com/6502/pylisp
<Josh_2>
Well it wasn't meant that way, sorry :P
<Qwnavery>
:P
<jeosol>
of course, I will like to tie that to some styles of CL coding - what are bad styles or less efficient ways of doing operations, e.g., looping constructs etc
<Qwnavery>
kakuhen: that's cursed.
<Qwnavery>
I've seen there is a version of python that has lisp syntax
<lotuseater>
okay
<hayley>
The world's slowest CL implementation?
<lotuseater>
ah this Hy dialect
<kakuhen>
Qwnavery: let's take this discussion to #lispcafe maybe
<Bike>
i wish when people did "minimal" lisp implementations they'd come up with an interesting spec rather than mash whatever crap together
<hayley>
The world's slowest Lisp which struggles with a LET form?
<jeosol>
My application is very large so I am trying to focus more on performance and speed as I try to move to one of these cloud vendors - not sure which for now
<kakuhen>
i noticed someone above was asking questions and I sort of talked over them
<jeosol>
Btw, any one running Lisp application on either GCP, Azure, AWS, or heroku -- i have seen some posts about heroku and may be it's the easiest to go to now sure, of course my initial focus is to have less dependence on vendor offerings for now
<lotuseater>
jeosol: so investing effort in the right algorithms and data structures is the right way. or in some situations using techniques like dynamic programming
<hayley>
I used to run on Heroku for..about a week. It was fine, but writing up a shell script to start Lisp and then never touch it again did not fit with how I liked to run programs.
loke has joined #commonlisp
<jeosol>
lotuseater: good point, I think it depends on the application - search, sort, divide-and-conquer etc. I have different such operations all over the place and never profiled the code. But since I started taking that course, I began looking at quadratic time operations and what I can do to eliminate them
nij- has quit [Quit: Using Circe, the loveliest of all IRC clients]
<Josh_2>
I have a few applications running on a VPS, most of which I haven't touched for ages
<Josh_2>
just make the systemd service file and off you go
<jeosol>
of course my main bottle neck is not the CL code, it's calling an .exe for some computation but I'll still like to make the CL part as fast as possible
<Josh_2>
maybe you could use a FFI instead of the .exe
<Josh_2>
(assuming you can)
<jeosol>
hayley: thanks for that input. you mean you don't like to write a shell scrip to start Lisp
<hayley>
jeosol: That, and I'd like to be able to poke it from a REPL when things go wrong.
<Josh_2>
You can do that on any VPS
<jeosol>
Josh_2: I don't think I can - not sure. It's a windows Fortran exe application by a vendor, and I develop on linux primary so I use wine to call it
<lotuseater>
of course :)
<Josh_2>
jeosol: oh thats unfortunate
<jeosol>
hayley: I see your point, makes sense
<jeosol>
Josh_2: yes, really unfortunately, It's a serious limitation for application - some tests take days instead of say a day if I have a GPU and the source code of the application. For now, I use use it as black box, so it's not too bad
<hayley>
Josh_2: Well, Heroku doesn't give you a VPS, it's one of those "serverless" things. I don't know if patching on the run conceptually fits in.
<Josh_2>
oh I see
<lotuseater>
these days if you can save operation complexity by using more memory, you can do. but I don't mean of course this mess with eg Electron. but for memoization or such
wheelsucker has quit [Remote host closed the connection]
Qwnavery has quit [Ping timeout: 268 seconds]
wheelsucker has joined #commonlisp
<jeosol>
hayley: your application on heroku has a web interface to the Cl application?
<Josh_2>
If you want to host on the internet you should get a VPS, not a half way VPS like hayley has described
<Josh_2>
They are cheap as chips
<jeosol>
hayley: while I could use CL, I tried django + react in the past and have it talk to the CL application. It's a pain to main three languages for one application ...
<jeosol>
Josh_2: which vendors have you used for the full VPS
<Josh_2>
I use Iniz, but I would use someone else if I didn't have such a good deal
<hayley>
jeosol: Well, that's even worse as now you couldn't even debug the Python program on the fly if you wanted to.
Qwnavery has joined #commonlisp
Qwnavery has joined #commonlisp
Qwnavery has quit [Changing host]
<jeosol>
hayley: tell me about it, it was a pain working with django - started out okay but things grew out of. I can live with react and CL I think
<hayley>
A friend got us a server from https://capsul.org/. The pricing isn't great on paper, but someone was willing to help me when I couldn't tell if my email server was working.
Qwnavery has left #commonlisp [#commonlisp]
Qwnavery has joined #commonlisp
z3t02 has joined #commonlisp
<Josh_2>
I'd probably choose Vultr if I wasn't already well established
Lord_of_Life has quit [Ping timeout: 248 seconds]
z3t0 has quit [Ping timeout: 276 seconds]
z3t02 is now known as z3t0
Lord_of_Life has joined #commonlisp
Bike has quit [Quit: Lost terminal]
<hayley>
I don't think I even have SBCL installed on the server still. Oh well.
<hayley>
There'll be something noteworthy Very Soon™️.
robin has quit [Ping timeout: 258 seconds]
robin has joined #commonlisp
lad has joined #commonlisp
lisp123 has joined #commonlisp
Inline has quit [Remote host closed the connection]
Qwnavery has quit [Quit: WeeChat 3.2]
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
lisp123 has quit [Ping timeout: 268 seconds]
lisp123 has joined #commonlisp
lisp123 has quit [Read error: Connection reset by peer]
ldb has left #commonlisp [ERC (IRC client for Emacs 27.2)]
shka has joined #commonlisp
lisp123 has joined #commonlisp
copec has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lisp123 has quit [Ping timeout: 258 seconds]
nirnam has joined #commonlisp
lisp123 has joined #commonlisp
Qwnavery has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 258 seconds]
Lord_of_Life_ is now known as Lord_of_Life
<mfiano>
Morning all. I'm trying to find an elegant solution to transform a list in a particular way.
<mfiano>
I have a list of numbers, and I want to reduce it to a shorter list of numbers in the following way. If I have a 9 element list, I might want to divide it into 3 groups, and take the max of each group: (21 3 82 8 20 6 9 11 4) ; => (21 20 11). The caller of the function supplies the flat list and the divisor.
<moon-child>
is the length of the list guaranteed to be divisible by the divisor?
<mfiano>
Yes
<mfiano>
oops
<mfiano>
example is wrong. result should be (82 20 11)
pve has joined #commonlisp
<moon-child>
maybe (loop for x on list by (lambda (x) (nthcdr x divisor)) collect (apply #'max x))
gaqwas has joined #commonlisp
<moon-child>
err, wait, that's wrong
<mfiano>
Can I change the specification slightly? :)
hafat has quit [Remote host closed the connection]
<moon-child>
sure
<beach>
mfiano: (loop for rest on list by (lambda (x) (nthcdr divisor x)) collect (loop for i in rest repeat divisor maximize i))
<mfiano>
The input is technically a 1d array of numbers. I don't mind coercing it to a list though.
khrbt has joined #commonlisp
<mfiano>
Let me see
<mfiano>
Yes, that is elegant enough. Thank you for the help.
froggey has quit [Read error: Connection reset by peer]
froggey-2 has joined #commonlisp
hendursa1 has joined #commonlisp
hendursaga has quit [Ping timeout: 244 seconds]
<lsip123_win10>
Trivia question for today, why is it called maplist and not mapcdr?
<beach>
Probably for hysterical raisins.
attila_lendvai has joined #commonlisp
<phoe>
should actually be called mapcons
<mfiano>
Is there a way to access the identity identifier in #'print-unreadable-object, for purposes of placing it in a different part of the stream instead of the end?
<phoe>
no portable way of doing that
<phoe>
the best you can do is call print-unreadable-object inside with-output-to-string and then try to parse that
<mfiano>
Ok
<lsip123_win10>
beach: lol (but I also suspent that is true)
<mfiano>
TIL it's not a function.
selwyn_ has joined #commonlisp
attila_lendvai has quit [Client Quit]
<mfiano>
Makes sense though, given the signature. I'm not sure why I was thinking it was a function.
<beach>
lsip123_win10: You may want to check what it was named in Maclisp for instance.
attila_lendvai has joined #commonlisp
selwyn has quit [Ping timeout: 272 seconds]
<lsip123_win10>
beach: I will, thakns
ane has joined #commonlisp
attila_lendvai has quit [Ping timeout: 248 seconds]
<lsip123_win10>
CLTL23: Compatibility note: In MacLisp, Lisp Machine Lisp, Interlisp, and indeed even Lisp 1.5, the function map has always meant a non-value-returning version. However, standard computer science literature, including in particular the recent wave of papers on ``functional programming,'' have come to use map to mean what in the past Lisp implementations have called mapcar. To simplify things henceforth, Common Lisp follows current
<lsip123_win10>
usage, and what was formerly called map is named mapl in Common Lisp.
char has quit [Ping timeout: 268 seconds]
<lsip123_win10>
Does GLS mean that functions should generally return a value and hence the change?
<mfiano>
Functions in functional programming should, as "functional" usually means having referential transparency.
<mfiano>
A function in the mathematical sense maps from one value to another.
attila_lendvai has joined #commonlisp
<mfiano>
But Lisp is not a functional programming language, so...
<lotuseater>
indeed. had to tell other people that though
<mfiano>
I guess it depends on your definition of "functional". Some people take it to mean languages which have map/filter/reduce.
khrbt has quit [Changing host]
khrbt has joined #commonlisp
<mfiano>
No language can be completely functional in the mathematical sense though, so it's unsurprising this is blurry.
<lsip123_win10>
mfiano: thanks for that, helpful to know that some expect map/filter/reduce
<Qwnavery>
mfiano: not even lambda calculus?
<hayley>
Once I told someone that Lisp was considered "functional" once upon a time, and they blew up at me accusing me of never having used a "real" functional language (I've written some Haskell, OCaml, Standard ML, so yeah nah) and called me a few names.
<hayley>
Qwnavery: I'm not sure if the lambda calculus is a useful programming language. Most people would say that you need side effects to observe the output of a program, and to provide input to make it useful for more than one use.
<mfiano>
^
<hayley>
sigh So the winning moves are to either not discuss programming languages ever, or (as I do) come up with reasons why some language simultaneously uses and does not use some paradigm to confuse people.
<mfiano>
Just because "real" languages hide state with monads, doesn't make them any more functional imo.
<Qwnavery>
I was just suggesting from the statement that no language can be completely functional in the mathematical sense.
<Qwnavery>
From an actually useable language pure lambda calculus is not useful without side effects.
<lotuseater>
type theory can also be seen as a programminglanguage
<hayley>
mfiano: The catch is supposed to be that you can still perform equational reasoning with IO monads. Not sure what equations apply though.
cosimone has joined #commonlisp
<hayley>
The latter goes something like this: "Object oriented languages suck, use pure FP or you are a baby eater!" "Well, it says in 'How to make ad-hoc polymorphism less ad hoc' that the authors wanted to reuse OO concepts, and we agree type classes are used in functional languages?" "AAAAAAAA"
<lotuseater>
i understand functional as having functions as first class objects. that doesn't if a language has this it's automatically just functional
<mfiano>
That is another valid definition
<mfiano>
The term is too blurry to have a meaningful conversation without more context.
<lotuseater>
things are often one and the same, but from other points of view
<hayley>
Also, as per something Alan Kay said once upon a time, for "functional" languages, Lisp and what we call functional today have a lot of not-function special forms. So, as any eager functional language does not define an IF form using functions, but Smalltalk does...
<mfiano>
Welcome to programming, where even the terminology is over-overloaded
<lotuseater>
hehe
<phoe>
welcome to erlang, the only object-oriented language which is object-oriented because it's functional and actor-based
* phoe
gently opens the #lispcafe door
dim has joined #commonlisp
montxero has joined #commonlisp
<pl>
phoe: there's no more #lispcafe though or is there?
<phoe>
pl: what?
<phoe>
of course it is
<pl>
oh, there is
<phoe>
of course there is
silasfox has joined #commonlisp
amb007 has quit [Ping timeout: 258 seconds]
amb007 has joined #commonlisp
makomo has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
MichaelRaskin has quit [Ping timeout: 268 seconds]
silasfox has joined #commonlisp
montxero has quit [Read error: No route to host]
froggey-2 has quit [Ping timeout: 272 seconds]
froggey has joined #commonlisp
Lycurgus has joined #commonlisp
Andi23 has joined #commonlisp
<Andi23>
Hi @luis, phoe from discord pointed me to you. I'm trying to load the CoreFoundation macos system lib through cffi. It seems that macos libs are not available on the file system anymore and my code is not working
amb007 has quit [Read error: Connection reset by peer]
<Andi23>
but i'm stuck at making the library load CoreFoundation
<Andi23>
if you know any file watcher in pure CL that would also be good for now, though i would like to know how to solve the cffi problem since i'll run into it at some point anyway
<Shinmera>
there's no way to do it in "pure CL"
<Shinmera>
using Apple's core libraries is as pure as you're gonna get.
<Andi23>
yeah that's waht i figured cause you need to interact with the os at some level
<Shinmera>
iirc there was a problem with loading libs on cffi/sbcl on macos, so make sure both are up to date.
<kakuhen>
i havent tried messing with corefoundation libs yet, but CFFI has generally been fine for me
<kakuhen>
i've only had issues with cl-sdl2 while on ccl; you can't properly quit the sdl event loop since you get stuck on a syscall
<Andi23>
ok will try to update sbcl first and then see
<pjb>
Andi23: but this has bitrotten a little with BigSur…
<Shinmera>
MacOS in general is a lost platform. Apple will just keep making the environment more hostile every year.
<pjb>
Indeed. With more resources, I'd have moved to Linux already.
<kakuhen>
i got a mac just as things seemed to have gone very very bad heh
<Andi23>
yeah it's kinda sad, i still need to use it because of some art / music software i have
<kakuhen>
that reminds me i should eventually finish rewriting the cocoa ide installer -- since it's super annoying to deal with if you install ccl from macports (or homebrew) unless you do something really dumb from a security standpoint
<mfiano>
Damnit, my patchwork library is no longer uniquely named
<Andi23>
thanks pjb will try it
<pjb>
mfiano: my patchwork is IRCAM Patchwork from the late 80s, early 90s…
<mfiano>
Doesn't mean the bindings need to be :)
<mfiano>
Mine is pure Lisp
<mfiano>
But I'm just joking
montxero has joined #commonlisp
<pl>
Andi23: UFFI/CFFI and everything has assumptions that got broken by further iOSization where they put all system libs into one file
<Andi23>
pl: so does that mean cffi is just broken on macos rn for system libs?
<pl>
Andi23: possibly, might depend on exact implementation and parameter combination
<kakuhen>
it definitely works with at least libc -- i'm trying it out right now, but idk about the other stuff.
<Andi23>
maybe i'll find a C library for file watching and write a cffi wrapper around it instead
amb007 has quit [Read error: Connection reset by peer]
<Andi23>
let C handle loading and calling system libs
<pjb>
Andi23: not exactly. ccl used cdb files built with ffigen4 (totally bitrotten) to get a definition of the API that it can use with its reader macros #_ #/ #$. So this is mostly dead (apart for the few surviving cdb).
<pjb>
Andi23: but otherwise a C library is a C library even when called framework, and if you define the API with cffi:defcfun etc, by hand, you can still call core functions.
amb007 has joined #commonlisp
<kakuhen>
oh yeah i was trying out the objecitve-c bridge in ccl the other day and uh
<kakuhen>
I was getting some non-sensical results by just initializing an NSNumber
<pjb>
I say by hand, because tools like swig won't take into account some details like #pragma pack, so they'll generate wrong definitions.
<kakuhen>
not sure if they added optimizations to it recently or if ccl's objc bridge is broken or both
<kakuhen>
i vaguely recall NSNumber and friends becoming tagged pointers in some case, but I just get null macptrs everywhere unless I initialize them in a very specific way.
<pjb>
kakuhen: careful, Apple play trick with NSNumber; they're not all pointers! Like in CL, they have typetags and immediate values.
<Andi23>
pjb: a bit out of my element with interacting with c libraries, if i use the cffi:defcfun and only define the functions I care about, don't I need to do some type of linking with the system? or how does it know exactly where to call that function
pillton has quit [Ping timeout: 260 seconds]
<pjb>
Andi23: this is done by load-library, loading and linking the dynamically loaded library.
<pl>
You need to declare the library iirc
amb007 has quit [Ping timeout: 258 seconds]
<pl>
Normally it would do dlopen() like dance for you then
<pjb>
well, cffi:load-foreign-library
amb007 has joined #commonlisp
nirnam has quit [Read error: Connection reset by peer]
nirnam has joined #commonlisp
nirnam has quit [Client Quit]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
nirnam has joined #commonlisp
kakuhen has quit [Quit: Leaving...]
karlosz has joined #commonlisp
Qwnavery has quit [Quit: WeeChat 3.2]
trriplex has joined #commonlisp
trriplex has quit [Remote host closed the connection]
frgo has quit [Remote host closed the connection]
frgo has joined #commonlisp
MichaelRaskin has joined #commonlisp
amb007 has quit [Ping timeout: 258 seconds]
amb007 has joined #commonlisp
random-nick has joined #commonlisp
lisp123 has joined #commonlisp
karlosz has quit [Quit: karlosz]
lisp123 has quit [Ping timeout: 258 seconds]
dsk has quit [Ping timeout: 258 seconds]
trriplex has joined #commonlisp
tyson2 has joined #commonlisp
cosimone has quit [Ping timeout: 258 seconds]
Oddity has quit [Ping timeout: 258 seconds]
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<luis>
Andi23: what version of CFFI are you using? 0.24.0 fixed an issue related to OSX framework loading
<jackdaniel>
mfiano: ecl could easily support that but nobody bothered to implement and document such extension
<mfiano>
I see
Lycurgus has quit [Ping timeout: 258 seconds]
dlowe has quit [Remote host closed the connection]
fizbin has joined #commonlisp
yitzi has joined #commonlisp
lisp123 has joined #commonlisp
fizbin has quit [Ping timeout: 258 seconds]
lisp123 has quit [Ping timeout: 248 seconds]
rgherdt has quit [Ping timeout: 268 seconds]
Guest51 has joined #commonlisp
selwyn_ has quit [Quit: Leaving]
Guest51 has quit [Quit: Client closed]
<Andi23>
luis: I have 0.24.1 but it's still a problem
akoana has joined #commonlisp
trriplex has joined #commonlisp
waleee has quit [Ping timeout: 272 seconds]
selwyn has joined #commonlisp
<luis>
Andi23: maybe you can remove the probe-file call from cffi::find-darwin-framework
Colleen has quit [Read error: Connection reset by peer]
Colleen has joined #commonlisp
trriplex has quit [Remote host closed the connection]
<Andi23>
luis: thanks for the help but I think I'll give up on file watching for now and focus on the main work of my thing
amb007 has quit [Ping timeout: 258 seconds]
amb007 has joined #commonlisp
cladur has quit [Ping timeout: 248 seconds]
hendursa1 has quit [Quit: hendursa1]
Bike has joined #commonlisp
hendursaga has joined #commonlisp
euclid9 has joined #commonlisp
<luis>
Andi23: sure. anyway, if I understand that Reddit discussion correctly, you can probably do (cffi:load-foreign-library "/System/Library/Frameworks/CoreFoundation.framework/Versions/Current/CoreFoundation") and that should work
Andi23 has quit [Quit: Client closed]
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
akoana has left #commonlisp [#commonlisp]
Guest85 has joined #commonlisp
Guest85 is now known as Andi23
<Andi23>
luis: true, it works to load it like that
lisp123 has joined #commonlisp
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
<Andi23>
luis: nice, thanks so much, finally working 😅
nij- has joined #commonlisp
nij- has quit [Remote host closed the connection]
nij- has joined #commonlisp
nij- has quit [Remote host closed the connection]
nij- has joined #commonlisp
selwyn has quit [Read error: Connection reset by peer]
tyson2 has joined #commonlisp
silasfox has quit [Quit: Connection closed]
Andi23 has quit [Quit: Client closed]
waleee has joined #commonlisp
ec has joined #commonlisp
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
nij- has quit [Remote host closed the connection]
nij- has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
amb007 has quit [Read error: Connection reset by peer]
lisp123 has quit [Quit: Leaving...]
amb007 has joined #commonlisp
tyson2 has joined #commonlisp
Skyfire has quit [Quit: WeeChat 3.2]
ec has joined #commonlisp
Lycurgus has joined #commonlisp
<akater[m]>
Suppose I define a `(setf s)` method that does not actually set the value of the slot s. It does set some other place (“in” the corresponding object, even) and returns that value. This looks like a good interface in my case because slots actually represent those other entities. But is this an acceptable practice?
<Bike>
Sure.
djuber has joined #commonlisp
<Bike>
I don't see any problem with that. Accessors to the object generally shouldn't care how the storage is actually implemented (as slots, external tables, whatever)
<Bike>
The exception would be if you're using slot-value and stuff that actually do care, but I assume you aren't
<Bike>
there are a few things that use slots directly, like shared-initialize and make-load-form-saving-slots's result
<akater[m]>
Thanks. Oh, even that broad: accessor could query some external entity merely to read the value. Good.
<akater[m]>
BTW, I did not realize that (setf ..) generic functions can be assigned custom method-combinations. Almost did that --- but I needed to prevent the evaluation of default value so it wasn't acceptable in the end.
Skyfire has joined #commonlisp
<Bike>
the thing to understand is that the rest of the language doesn't use accessor functions you define, so their behavior can be whatever as long as it makes sense with your pgoram, and if it comports with the few things that do deal with underlying slots
NotThatRPG has joined #commonlisp
tfb has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
ec has joined #commonlisp
copec has joined #commonlisp
cosimone has joined #commonlisp
yitzi has quit [Quit: Leaving]
CrashTestDummy2 has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
retropikel_ has joined #commonlisp
CrashTestDummy3 has quit [Ping timeout: 258 seconds]
retropikel has quit [Ping timeout: 272 seconds]
retropikel_ has quit [Quit: Leaving]
ec has joined #commonlisp
Lycurgus has quit [Ping timeout: 248 seconds]
jon89 has joined #commonlisp
tyson2 has joined #commonlisp
yitzi has joined #commonlisp
lad has joined #commonlisp
<hendursaga>
There a REST client for CL anyone can recommend?
<nij->
I want to get started with networking. To learn, I might start with a binder in CL.
<nij->
Is there any CL library that allows me to inspect one IP package one at a time, and to view a stats for the flow of IP packages?
<rain3>
hendursaga: I've been using it for all kinds of fancy requests, so I'm recommending it from experience. I struggled a bit in the beginning but eventually I understood how to pass the parameters the right way (for my limited usecases)
ec has quit [Ping timeout: 244 seconds]
<jon89>
just curious: what are you all using Common Lisp for? Fun personal projects? Work?
<jon89>
I've always had fun with Lisp but don't see it used a lot nowadays — maybe I'm just looking in the wrong places
dlowe has joined #commonlisp
rain3 has quit [Quit: Leaving]
rain3 has joined #commonlisp
ircseeker3 has joined #commonlisp
kuler has joined #commonlisp
ec has joined #commonlisp
<pl>
Consider that Lisp Works has enough clients to continue selling 4.2k EUR a seat licences
<jcowan>
But how many of them?
<mfiano>
roughly 50 in the last year it seems
trriplex has joined #commonlisp
trriplex has quit [Client Quit]
lisp123 has joined #commonlisp
<gabc>
I almost bought a license just to make guis and .exe on windows :|
<nij->
Do you need lispworks to develop on windows?
<mfiano>
No
<gabc>
Nah but GUIs are nice sometimes, and lisp isn't in general the best for that
amb007 has quit [Ping timeout: 268 seconds]
ec has quit [Ping timeout: 244 seconds]
<mfiano>
best is a subjective term. CLIM is considered better than traditional toolkits by many around these parts :)
amb007 has joined #commonlisp
<gabc>
mfiano: as far as I know it doesn't work on windows does it?
<mfiano>
X runs on Windows, so it does
<gabc>
yeah but erf, it /technically/ does but erf
<nij->
WHAT? X runs on Windows?
<mfiano>
and there are SDL, broadway, etc backends
cosimone has quit [Ping timeout: 256 seconds]
<nij->
... seems to be.... does that mean I can run stumpwm on windows?!?!
<gabc>
I don't think you can run a wm, except maybe in WSL but then that's a bit different
<gabc>
mfiano: hm I never checked out the other backends other than X
<hendursaga>
jon89: right now, mostly for Nyxt
<hendursaga>
Anyone have troubles mixing QuickLisp with Repo?
ec has joined #commonlisp
<moon-child>
I expect you can trivially run a wm, but it will only be able to manage x windows, not win32 windows
<nij->
moon-child: Haven't used windows in a decade.
<nij->
Does that mean many applications in windows will break?
<moon-child>
I have no idea, that was just my assumption
amb007 has quit [Ping timeout: 256 seconds]
<moon-child>
I would guess that non-x applications will just continue to be managed by windows as they otherwise would be
<gabc>
nij-: nah it means that your X applications will not integrate nicely with the windows ones
<gabc>
Like WSL is nice and all but doesn't understand windows path and windows line termination so it's a bit of a hassle
amb007 has joined #commonlisp
<lisp123>
Is there an alternative to (- 0 x) to take negative of a number?
<moon-child>
(- x)
<lisp123>
moon-child: thanks
<hendursaga>
Never mind I don't think I'm going with repo.
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<nij->
:(
wheelsucker has quit [Remote host closed the connection]
<gabc>
What's repo?
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
<lisp123>
Should I avoid use-package in general?
<lisp123>
Seems a bit sloppy vs :use
robin has quit [Remote host closed the connection]
robin has joined #commonlisp
jon89 has quit [Quit: Client closed]
Inline has joined #commonlisp
<akater[m]>
jon89: As Elisp gets closer to Common Lisp, I apply CL skills and code in everyday Emacs usage. So, I use Lisp for everything, routinely. I'd love to do a startup with CL, too but gotta close some gestalts first.
amb007 has quit [Ping timeout: 268 seconds]
<lotuseater>
I think that's a good idea lisp123
<lotuseater>
Someone also gave me advice it's good giving short nicknames for other packages your package uses like #:a for alexandria, then you definitely can track directly where this symbol comes from.
amb007 has joined #commonlisp
<lisp123>
lotuseater: thanks, and thats a good idea too
<lotuseater>
Was just repeating what I learned from someone in this channel. ^^
<lisp123>
:)
<lotuseater>
Found that feature of DrRacket useful from the first time on, it shows you by a line from which package a symbol is.
<lotuseater>
and sure when experimenting in REPL you can also use use-package, even if symbol names clash each other
<lisp123>
Nice
<lotuseater>
it'll ask you if you want to store the new meaning or keeping the old
<lisp123>
That's true, thats a good use for use-package
ec has quit [Ping timeout: 244 seconds]
rain3 has quit [Ping timeout: 256 seconds]
ec has joined #commonlisp
tfb has quit [Remote host closed the connection]
tfb has joined #commonlisp
tfb has quit [Remote host closed the connection]
tfb has joined #commonlisp
kevingal has joined #commonlisp
tfb has quit [Remote host closed the connection]
tfb has joined #commonlisp
tfb has quit [Remote host closed the connection]
tfb has joined #commonlisp
tfb has quit [Remote host closed the connection]
tfb has joined #commonlisp
tfb has quit [Remote host closed the connection]
tfb has joined #commonlisp
tfb has quit [Remote host closed the connection]
euclid9 has quit [Quit: WeeChat 2.8]
jrpilotte has joined #commonlisp
tfb has joined #commonlisp
<jcowan>
I've often run X on Windows, but I use rootless mode, in which each top-level Window is a Windows window and you use Windows decorations to deal with it.
jrpilotte has quit [Client Quit]
tfb has quit [Ping timeout: 256 seconds]
tyson2 has quit [Quit: ERC (IRC client for Emacs 27.2)]
<nij->
jcowan can you embed window's windows into x, and therefore handled by Stumpwm/
<nij->
?
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
<edgar-rft>
Let's try running Windows from WSL through wine :-)
gethuen has joined #commonlisp
karlosz has joined #commonlisp
attila_lendvai has quit [Quit: Leaving]
attila_lendvai has joined #commonlisp
<jcowan>
I don't think so. You can use RDP or VNC to capture the WIndows desktop, but then you have the whole Windows desktop inside a single X window, the converse situation.
ec has quit [Ping timeout: 244 seconds]
ec has joined #commonlisp
montxero has quit [Read error: Connection reset by peer]
montxero has joined #commonlisp
yitzi has quit [Quit: Leaving]
Lycurgus has joined #commonlisp
ec has quit [Ping timeout: 244 seconds]
dlowe has quit [Remote host closed the connection]
dlowe has joined #commonlisp
dlowe has quit [Remote host closed the connection]
Lycurgus has quit [Quit: Exeunt]
ec has joined #commonlisp
karlosz has quit [Ping timeout: 245 seconds]
kevingal has quit [Remote host closed the connection]
<Josh_2>
Currently I am storing bits and bobs of information into their own files on the file system, which are periodically saved and loaded on application startup, I am just wondering if there is a library to make this a bit more seamless?
<Josh_2>
Right now everything I save except one thing is just a lisp form
<jmercouris>
Josh_2: cl prevalence
<Josh_2>
I think that is more than I need
ircseeker3 has quit [Ping timeout: 256 seconds]
<jmercouris>
Josh_2: then I don't understand your question
<jmercouris>
you can also use the data storage library from Nyxt
<Josh_2>
I think Shinmera has a library that does what I am thinking of, but I can't find it on his github
gaqwas has joined #commonlisp
gaqwas has quit [Remote host closed the connection]
<jmercouris>
I mean CL prevalence is perfect for storing SEXP
<jmercouris>
easy to serialize
gaqwas has joined #commonlisp
<jcowan>
SQLite is generally good at this kind of thing, and is written to be extremely robust against file corrption.
<Shinmera>
Colleen: tell Josh_2 look up ubiquitous
<moon-child>
as postgres, sqlite has an excellent persistence layer, but its data model is not commensurate with lisp's object graphs, so if you want to store arbitrary objects you will have a hard time
<moon-child>
(though of course you can use it for blob storage)
<Josh_2>
Thats the one, thanks Shinmera
<jmercouris>
man the amount of libraries Shinmera has written is just absurd
<Shinmera>
It is :(
<moon-child>
(aside: sqlite is surprisingly large. It's maybe 15-20% the size of postgres, which I found surprising)
<lotuseater>
Shinmera: I'm impressed by that too :)
<Josh_2>
I think ubiquitous will be perfect for storing various access keys
<Josh_2>
better than having them in source like I do now :joy:
Skyfire has quit [Ping timeout: 245 seconds]
ec has quit [Ping timeout: 244 seconds]
Skyfire has joined #commonlisp
tfeb has joined #commonlisp
nij- has quit [Quit: Using Circe, the loveliest of all IRC clients]
tfeb has quit [Client Quit]
sjl has joined #commonlisp
ec has joined #commonlisp
dsk has joined #commonlisp
Qwnavery has joined #commonlisp
<nirnam>
what are the recomended choice for parallel computing that work across implementation?
<phoe>
lparallel
<phoe>
swank-crew
<shka>
nirnam: BT for the pthreads style of API, lparallel for higher level stuff
<shka>
and i can't stress enough how useful lparallel has been for me
ec has quit [Ping timeout: 244 seconds]
<phoe>
lfarm
<lotuseater>
nirnam: or for concurrency things with software transactional memory there is STMX
<nirnam>
seemed like lparallel get alot of love, I'll try these based on support I can get when thing goes south
<lotuseater>
phoe: what does swank-crew offer?
<shka>
use swank with your crew?
<Bike>
based on the readme, it's to let you cajole remote machines into doing work.
<Bike>
the "swank" part is that it uses the swank protocol for it
<lotuseater>
oh it's for distributed computing :)
<shka>
should be called swank-leash
<shka>
:-)
<nirnam>
clustering? sounds fun I wish I had more than one machine
ec has joined #commonlisp
<lotuseater>
nirnam: or a bunch a raspis
<lotuseater>
when talking to non lisp things for such things zeromq is also great
<nirnam>
would lisp doing well on it tho? I knows that sbcl can compile to arm but I've nothing to try it on
<lotuseater>
yes it runs on arm too like ccl for example
ec has quit [Ping timeout: 244 seconds]
tyson2 has joined #commonlisp
ec has joined #commonlisp
shka has quit [Ping timeout: 248 seconds]
ahc has joined #commonlisp
zagura has quit [Quit: Meh...]
zagura has joined #commonlisp
kakuhen has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
lisp123 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
pve has quit [Quit: leaving]
amb007 has joined #commonlisp
<mason>
phoe: I just ordered your book from my local book shop. If I like it I might ask you to send me a pair of autographed parentheses.
ec has quit [Ping timeout: 244 seconds]
<phoe>
mason: hope it serves you well!
<mason>
Gives me a chance to support my local book shop, so it's already a win.
lisp123 has quit [Remote host closed the connection]
ec has joined #commonlisp
taiju has quit [Ping timeout: 268 seconds]
amb007 has quit [Read error: Connection reset by peer]
djuber has quit [Remote host closed the connection]