tyson2 has quit [Remote host closed the connection]
taiju has joined #commonlisp
jealousmonk has joined #commonlisp
yauhsien has joined #commonlisp
ebrasca has quit [Remote host closed the connection]
waleee has quit [Ping timeout: 260 seconds]
yauhsien has quit [Ping timeout: 240 seconds]
gxt_ has quit [Remote host closed the connection]
gxt_ has joined #commonlisp
bitmapper has quit [Quit: Connection closed for inactivity]
yauhsien has joined #commonlisp
yauhsien has quit [Ping timeout: 252 seconds]
gxt__ has joined #commonlisp
sjl has joined #commonlisp
gxt_ has quit [Ping timeout: 268 seconds]
nij- has joined #commonlisp
bilegeek has joined #commonlisp
jealousmonk has quit [Remote host closed the connection]
mrcom has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
istewart has joined #commonlisp
frgo has joined #commonlisp
frgo has quit [Read error: Connection reset by peer]
asarch has joined #commonlisp
wbsl has quit [Quit: Leaving]
<asarch>
One very stupid question: are there monads in Common Lisp?
<hexology>
asarch: no, but i remember recently seeing some monad (or at least monadic i/o) library for lisp
<asarch>
Thank you
<hexology>
keep in mind that common lisp is dynamically typed and very much not functionally pure
<asarch>
Thanks
<asarch>
I was learning Rust because it is the new hype from WebAssembly and all that stuff and then I went to LLVM and somehow I ended with Haskell
lips123mob has joined #commonlisp
<asarch>
And you know, monads and functors
<lips123mob>
A precursory reading of monads online makes me think generic functions are a better approach
lips123mob has quit [Remote host closed the connection]
anticomputer has quit [Remote host closed the connection]
lips123mob has joined #commonlisp
gateway2000 has quit [Remote host closed the connection]
gateway2000 has joined #commonlisp
anticomputer has joined #commonlisp
<lips123mob>
haskell’s type system looks quite interesting however
<hexology>
monads don't have much to do with generic functions, except that in haskell Monad is a typeclass (which is not unlike an abstract interface)
lips123mob has quit [Remote host closed the connection]
<hexology>
monads are neat but the problem is that they don't compose well, so you end up with "monad transformers" and it's not that elegant
lips123mob has joined #commonlisp
<hexology>
i am pretty excited for "algebraic effects" making its way out of programming language research. as far as i can tell, it's the lisp condition system but with full delimited continuations instead of lisp restarts, and the compiler will yell at you if you leave effects un-handled
lips123mob has quit [Remote host closed the connection]
akoana has quit [Quit: leaving]
recordgroovy has quit [Remote host closed the connection]
istewart has quit [Quit: Konversation terminated!]
frgo has joined #commonlisp
frgo has quit [Read error: Connection reset by peer]
anticomputer has quit [Read error: Connection reset by peer]
gxt__ has quit [Read error: Connection reset by peer]
azimut_ has quit [Read error: Connection reset by peer]
<Shinmera>
Wish I could decide something to work on
bilegeek has quit [Remote host closed the connection]
bilegeek has joined #commonlisp
yauhsien has quit [Read error: Connection reset by peer]
yauhsien has joined #commonlisp
mon_aaraj has quit [Ping timeout: 245 seconds]
mon_aaraj has joined #commonlisp
<edgar-rft>
no problem, you can do my work instead
anticomputer has quit [Remote host closed the connection]
gxt__ has quit [Remote host closed the connection]
azimut has quit [Remote host closed the connection]
azimut has joined #commonlisp
anticomputer has joined #commonlisp
gxt__ has joined #commonlisp
<Shinmera>
why would I want to decide to do that? :)
<splittist>
See - already the options are narrowing!
<edgar-rft>
Shinmera: because I say so
<Shinmera>
edgar-rft: not very convincing.
<edgar-rft>
you don't need to be convinced, just do it
<Shinmera>
I think you'll find otherwise
<edgar-rft>
bah, people like you are the reason why my work never gets done
yauhsien has quit [Remote host closed the connection]
rogersm has joined #commonlisp
yauhsien has joined #commonlisp
Josh_2 has quit [Remote host closed the connection]
Josh_2 has joined #commonlisp
mrcom has joined #commonlisp
MajorBiscuit has quit [Quit: WeeChat 3.5]
yauhsien has quit [Remote host closed the connection]
yauhsien has joined #commonlisp
MajorBiscuit has joined #commonlisp
molson_ has joined #commonlisp
molson has quit [Ping timeout: 244 seconds]
White_Flame has quit [Quit: No Ping reply in 180 seconds.]
White_Flame has joined #commonlisp
notzmv has quit [Ping timeout: 272 seconds]
notzmv has joined #commonlisp
jeosol has joined #commonlisp
jmdaemon has quit [Ping timeout: 240 seconds]
santiagopim has quit [Remote host closed the connection]
gxt__ has quit [Remote host closed the connection]
gxt__ has joined #commonlisp
mon_aaraj has quit [Ping timeout: 245 seconds]
attila_lendvai has joined #commonlisp
mon_aaraj has joined #commonlisp
taiju has quit [Ping timeout: 272 seconds]
pranavats has joined #commonlisp
thuna` has joined #commonlisp
bilegeek has quit [Quit: Leaving]
lisp123 has joined #commonlisp
yauhsien has quit [Remote host closed the connection]
gateway2000 has quit [Quit: Leaving]
gateway2000 has joined #commonlisp
lisp123 has quit [Remote host closed the connection]
<Shinmera>
Sigh
<Shinmera>
For some reason I started working on Portacle again.
<Shinmera>
Now that's a project I really wish anybody else did literally any work on.
<contrapunctus>
Good to hear it's being worked on again - Portacle is awesome 🙂️
gxt__ has quit [Remote host closed the connection]
gxt__ has joined #commonlisp
<jackdaniel>
packaging emacs with other contemporary tooling for lisp is probably a bother; and it is not clear whether windows or osx is more bothersome to make something working
<Shinmera>
windows is fine.
<Shinmera>
I'm not even gonna try with mac.
yauhsien has joined #commonlisp
mon_aaraj has quit [Ping timeout: 244 seconds]
mon_aaraj has joined #commonlisp
causal has quit [Quit: WeeChat 3.5]
pillton has quit [Quit: ERC 5.4 (IRC client for GNU Emacs 28.1)]
yauhsien has quit [Ping timeout: 268 seconds]
yauhsien has joined #commonlisp
attila_lendvai has quit [Ping timeout: 252 seconds]
yauhsien has quit [Ping timeout: 244 seconds]
nij- has quit [Quit: Using Circe, the loveliest of all IRC clients]
lisp123 has joined #commonlisp
lisp123 has quit [Quit: Leaving...]
lisp123 has joined #commonlisp
leo_song_ has joined #commonlisp
leo_song has quit [Ping timeout: 240 seconds]
lisp123 has quit [Quit: Leaving...]
<dbotton>
Shinmera jackdaniel I plan, once done with a project front end for it in a month or so, to deliver CLOG Builder as a standalone point and click CL environment for Windows and Mac for beginners (I see no point on Linux). It already has a REPL, decent editor with autocomplete, etc.
<dbotton>
Once someone gains a little interest it is very simple to setup a windows or mac environment today.
<dbotton>
Linux and Mac both have easy package managers, and for Windows well... at least it is just a few packaged to run.
<Shinmera>
I appreciate the sentiment, but I'm afraid such an environment doesn't hold up to Emacs.
livoreno has quit [Ping timeout: 272 seconds]
<jackdaniel>
many people abhor emacs while they could use with a bit of nudge common lisp, so it is all good :) that said, common lisp works with other editors too so it is not that this problem has not been addressed - just most learning material recommends emacs (because it has the best integration for good or bad)
mon_aaraj has quit [Ping timeout: 268 seconds]
<jackdaniel>
(learning material and irc recommendations)*
cage has joined #commonlisp
mon_aaraj has joined #commonlisp
tyson2 has joined #commonlisp
jmes has quit [Remote host closed the connection]
<contrapunctus>
dbotton: even if it's not part of Portacle, perhaps you could try making a similar portable package for your editor. There's room in the world for more than one 😀
<dbotton>
It runs even now from portacle
<dbotton>
Idea is just something to start with
<dbotton>
Most see emacs and run
livoreno has joined #commonlisp
bitmapper has joined #commonlisp
ebrasca has joined #commonlisp
varjag has joined #commonlisp
<dbotton>
Sorry reread you contrapunctus the idea is a separate package for builder for beginners, meaning people that likely don’t have even a CL book or taking a class
<dbotton>
Something to gain interest in cl. Maybe package some learning materials also
avocadoist has joined #commonlisp
<dbotton>
Someone in a classroom or more serious a proper environment more worth it.
<dbotton>
I don’t think packaging it with portacle good idea as better to quickload always
<dbotton>
I mentioned my doing it because I know Shinmera loath to work on portacle
Noisytoot has quit [Excess Flood]
Noisytoot has joined #commonlisp
<dbotton>
Since it is fairly easy to setup Windows (once you have the right packages) and Linux and Mac a simple install
<dbotton>
there is a future alternative to doing portacle if desired for one click users
dBc has joined #commonlisp
<dbotton>
and then can offer simple instructions, I think portacle important to exist, but also Shinmera should work on what he enjoy :)
WesOfWaco has joined #commonlisp
<WesOfWaco>
on Windows, sbcl is using 30% cpu from a repl I started yesterday. Is there a way to see what it is doing?
<dbotton>
(swank:list-threads) maybe helpful
anticomputer has quit [Ping timeout: 268 seconds]
azimut has quit [Ping timeout: 268 seconds]
anticomputer has joined #commonlisp
<Shinmera>
Well, I think I got it working on Linux and MacOS. Windows seems to have drifted away, with some weird gpg problem. Don't even know where to start.
<WesOfWaco>
I found sly-list-threads, but it just lists the thread names and their status. Is there a more general way of finding help at the repl? I'm just getting started with Practical Common Lisp.
<hexology>
Shinmera: we have #clschool if you want a dedicated channel for beginner questions
<hexology>
oh
<Shinmera>
...
<hexology>
i htought you said "need"
<hexology>
lol
<hexology>
i missed the "don't" - my apologies. i thought i recognized your name from here anyway
<Shinmera>
guess my name isn't infamous enough yet.
<hexology>
it is, but i can never remember which channel is associated with which infamy
notzmv has joined #commonlisp
WaxCPU is now known as Andrew
causal has joined #commonlisp
Lord_of_Life_ has joined #commonlisp
Lord_of_Life has quit [Ping timeout: 245 seconds]
Lord_of_Life_ is now known as Lord_of_Life
attila_lendvai has joined #commonlisp
Guest42 has quit [Ping timeout: 252 seconds]
varjag has quit [Ping timeout: 252 seconds]
<hexology>
sbcl doesn't seem to emit fatal errors when it's also busy emitting a lot of compiler notes/warnings... is that normal? it's making debugging quite a headache
attila_lendvai has quit [Quit: Leaving]
<hexology>
it says that compilation aborted with a fatal error, but doesn't tell me what the fatal error was!
Andrew is now known as WaxCPU
<hexology>
for example, this huge wall of notes when attempting to use the Qi package manager http://ix.io/45QM
<Bike>
what's the output look like?
<Bike>
ah
attila_lendvai has joined #commonlisp
<Bike>
huh.
<hexology>
this is with v2.2.5 and 2.2.6 via roswell
<Bike>
oh, right. it's a "fatal" error, meaning the compiler itself hit some problem and died
gateway2000 has quit [Remote host closed the connection]
<hexology>
so there's no detailed error message attached to that sort of thing?
<Bike>
i guess not. if i'm interpreting this correctly it's an unexpected kind of thing that sbcl can't deal with gracefully. let me look around a bit
<Bike>
hmmmmm. some kinds of fatal errors it displays. like if you try to compile a file with just ) in it
<Bike>
yeah i don't know why it's not displaying the error. it looks like it ought to
bitmapper has quit [Quit: Connection closed for inactivity]
<hexology>
i think it might be a situation where it won't display the fatal error if it has a lot of notes also? i had this with my program today, where the error was invisible when i ran the whole program, but popped up when i ran something smaller in the repl
<Bike>
i guess you'd get something like this if you unwind out of a compilation unit through some means other than a condition
<Bike>
having 1400 notes probably doesn't help, no
<hexology>
that makes sense. it's hard to reproduce in a controlled way
<Bike>
(block nil (with-compilation-unit () (return))) also complains about a "fatal ERROR condition". so that might be it. kind of misleading on sbcl's part. there might not actually be a condition.
<Bike>
that said, anything that unwinds out of the compiler like that is probably fairly exotic. something like a macro function throwing could do it
gateway2000 has joined #commonlisp
<hexology>
i seemed to triggering it somewhat reliably today
<hexology>
i was getting notes that big sections of my code were unreachable and being removed, and it once referred to something as "a hairy form"
<hexology>
but the errors would all turn out to be something like a form in a macro call being wrapped in an extra ()
<Bike>
that can trip up the compiler pretty bad
<Bike>
is this just from Qi, or from your own code
gateway2000 has quit [Remote host closed the connection]
gateway2000 has joined #commonlisp
gateway2000 has quit [Remote host closed the connection]
gateway2000 has joined #commonlisp
gateway2000 has quit [Remote host closed the connection]
gateway2000 has joined #commonlisp
<jcowan>
Bike: It means that you can have either ambient restarters (ones that are dynamically bound) or restarters stored in data structures such as condition objects
yauhsien has joined #commonlisp
dim has quit [Ping timeout: 276 seconds]
yauhsien has quit [Ping timeout: 268 seconds]
<Bike>
i see
Guest42 has joined #commonlisp
Guest42 has quit [Client Quit]
varjag has joined #commonlisp
mon_aaraj has quit [Ping timeout: 268 seconds]
mon_aaraj has joined #commonlisp
<dbotton>
Shinmera is there a way to retrieve all the available package with you :definitions system?
parjanya has quit [Ping timeout: 240 seconds]
<Bike>
does that make conceptual sense? the definitions system doesn't keep a list of all documented packages, does it? it consults cl:documentation for example
karlosz has quit [Ping timeout: 252 seconds]
ahlk has quit [Remote host closed the connection]
<dbotton>
I realized after cl has list-all-packages, if did not, yes would include in api designed for discovery.
ahlk has joined #commonlisp
morganw has quit [Remote host closed the connection]
<Shinmera>
I really hate that COMPILE/COMPILE-FILE don't have a switch to make the compiler actually signal the appropriate errors during compilation.
<Bike>
mm, i've gone back and forth on that... having it signal errors is certainly useful to me, since i have to debug the compiler, but seems less useful (but still sometimes useful) to the user
<Bike>
some errors it makes sense to suppress, like if a compiler macro function signals an error that can just be suppressed
<Bike>
does break-on-signals help? i use that a lot when i have some problem with a macro
<Shinmera>
not really.
<hexology>
Bike: my own code was the one with the "hairy form" messages
<Shinmera>
It's really annoying to me because it means ASDF just gives me a "oh duh your build failed" and then I have to manually crawl god darn logs to find out what went wrong
<Shinmera>
instead of getting the actual error in my debugger.
<Bike>
oh yeah, asdf's suppression is really annoying
<Shinmera>
and it kills me that there's no better way to do this
<Bike>
it kinds of replaces them with its own, very unhelpful error
<Shinmera>
especially that #+sbcl line is just aaaaaaAAAA
<Bike>
for clasp the policy i've decided on so far is that the compiler generally suppresses errors, but it will signal them first, so you can handler-bind invoke-debugger
<Bike>
but ofc not every implementation does the same thing, so
<Shinmera>
Right. It's a pain.
<Shinmera>
I understand that it's useful to have the summary behaviour of compile/compile-file's return value
<Shinmera>
but I really wish there was a switch so I can decide. Cause usually I'd like it to enter the debugger.
attila_lendvai_ has joined #commonlisp
<Shinmera>
trivial-catch-compilation-errors when?
attila_lendvai has quit [Ping timeout: 252 seconds]
Josh_2 has quit [Ping timeout: 252 seconds]
<Bike>
ah, the #+sbcl is because you'll get an encapsulated condition right. yeah that's kinda nasty.
<Bike>
i have thought about (not to the point of writing anything down) an extension for compiler diagnostics stuff. more generally, it could have a lot of what mostly exists now in somewhat messy swank code, like getting the source location for a condition, or this kind of interception/wrapping
<Shinmera>
I think Swank in general is something that could be torn apart into more general libraries.
<Shinmera>
I have done some work for that like dissect, trivial-arguments, definitions. But there's still a lot more stuck in there.
<Bike>
that's been my general impression from working on a backend, yeah
<Bike>
i mean it's got thread mailbox stuff for chrissake
elderK has joined #commonlisp
<Shinmera>
heh
<Shinmera>
If someone were to do an investigation of what was already torn out and what wasn't, I'd be open to doing some of the legwork to separate another part out into a library (with all that entails like docs, etc.)
<Bike>
i'll see if i can do that
<Shinmera>
Sweet
<Shinmera>
I think luis was also open to the idea of somehow rejiggering swank to use such libraries instead of being this ball of portability.
<Shinmera>
I can't say I know how that would work, but it would be neat to reduce duplication for once.
<Shinmera>
One idea would be to do a sorta monolithic-source-op kinda deal where we bundle the libraries with swank. But that's... annoying with ASDF and global package namespaces.
dim has joined #commonlisp
<Bike>
Shinmera: so with the compilation errors, did you find that you have to use break-on-signals? i thought sbcl's compiler also signals errors before continuing - is this for other implementations or am i misunderstanding something
<Bike>
i mean plus there's obviously this simple-condition-format-arguments thing
<Shinmera>
sbcl does not signal.
<Shinmera>
so yeah. I had to.
<Bike>
huh, ok
<Shinmera>
again, swank does something to make C-c C-c work, but it does not if you just COMPILE/COMPILE-FILE.
<Bike>
wow, it totally doesn't. okay, yeah, that's annoying
<Bike>
call-with-compilation-hooks doesn't seem to have anything special, is why i'm wondering. lemme just dig into this a little more
Guest7333 has quit [Quit: WeeChat 3.5]
Devon has joined #commonlisp
frgo has quit [Remote host closed the connection]
triffid has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 27.1]
<cosimone>
hi, i've heard conflicting opinions about a particular behavior of loop. the following returns 32 at least on CCL, SBCL and Clisp: (loop for x from 1 to 31 finally (return x))
attila_lendvai_ has quit [Read error: Connection reset by peer]
alendvai__ has joined #commonlisp
<Shinmera>
to is inclusive. that's specified.
<cosimone>
i've heard people claim that, according to the standard, it should evaluate to 31 instead. i can't find where the standard would say that, though...
<Shinmera>
below is exclusive.
<pjb>
cosimone: it's better not to do that.
<cosimone>
it's true that "to" is inclusive, but the "finally" clause takes place after the loop proper has ended
<cosimone>
pjb: what?
<pjb>
(loop with top = 31 for x from 1 to top finally (return (1+ top)))
<pjb>
or (loop with top = 31 for x from 1 to top finally (return top)) ; depending on what you want.
<cosimone>
thank you, but i'm not trying to solve any problem in particular right now. i'm specifically asking about how loop should behave in this particular instance
<cosimone>
i'd probably just use dotimes for something so simple
<pjb>
cosimone: (loop for i of-type (unsigned-byte 8) from 230 to 255 finally (return i)) #| ERROR: The value 256 is not of the expected type (unsigned-byte 8). |#
<cosimone>
ok, but what i'm asking is: is this behavior actually correct according to the standard?
frgo has quit [Read error: Connection reset by peer]
<Shinmera>
"In an iteration control clause, the for or as construct causes termination when the supplied limit is reached" seems to imply it should not step beyond, but iirc it's a bit iffy.
<cosimone>
Shinmera: that's what i thought too
<cosimone>
"to" is inclusive, but that doesn't mean that the variable should actually be assigned a value above that inclusive limit
<Bike>
huh, even swank-compile-file isn't enough to get sbcl to signal conditions. what the hell?
<Brucio-61>
Shinmera: Bike: SBCL's compiler technically does signal errors during compilation but the signaled condition, SC-C::COMPILER-ERROR, is neither an error nor a warning
<Shinmera>
Aha.
<scymtym>
sorry, typed into the wrong window. Brucio-61 is the CLIM chat client
<cosimone>
from what i could gather, this particular behavior seems unspecified, but i might be wrong
<Bike>
huh, i see
<Bike>
and then swank does handle that condition, so there you go
<Shinmera>
cosimone: I'd wait for beach to chime in when he wakes up. He's investigated Loop thoroughly for SICL.
<Bike>
and there's a long comment explaining why compiler-error is not an error in compiler-error.lisp
<Bike>
i see. this is a problem i handled in cleavir in a different way, i think
<Shinmera>
scymtym: In that case, though, why does (*break-on-signals* 'error) actually trip? Is the error caught and converted to another signal somewhere else?
<Shinmera>
or... what am I missing here?
<Bike>
the original signaled error is still an error, maybe?
<Bike>
it would be for the test case i've been staring at, (defmacro foo () (error "test")) (defun bar () (foo))
<Shinmera>
Ohh, right, I see.
<Shinmera>
So that might actually not catch other types of compiler errors then
* Shinmera
groans
<Bike>
i think it will. it's good enough for swank, at least
<scymtym>
the original error is signaled via SIGNAL, yeah what Bike said
<Bike>
or well it will be with sb-c:compiler-error too
<Bike>
bleh. i'm going to go read this page long comment now
<Shinmera>
I'm gonna check out since it's late.
<scymtym>
note that conditions "go through", though. and even more subtle, muffling conditions may change the values returned by COMPILE (in SBCL)
<scymtym>
s/conditions/warnings/
<cosimone>
Shinmera: alright
<pjb>
cosimone: Also, in 6.1.2.1 Iteration Control, it's also repeated that: "For these clauses, iteration terminates when a local variable reaches some supplied value …"
<Bike>
i am struggling to understand sbcl's example here. they say (ignore-errors (defgeneric if (x))) "will catch and claim to handle the COMPILER-ERROR" that arises from the eval-when :compile-toplevel etc in defgeneric's macroexpansion. but surely that ignore-errors won't apply while compiling this form? am i missing something here?
<Bike>
i'm also kind of dubious about what it says earlier about continuing to compile after an eval-when :compile-toplevel signals an error
<cosimone>
pjb: iteration certainly does terminate, but is the assignment to a value outside of the specified range permitted, as it happens in the example i posted?
<cosimone>
the "finally" clause is technically evaluated after the iteration proper has ended
<Bike>
*will catch and claim bla bla, if compiler-error was a subtype of error, which it isn't
<cosimone>
i realize that these are nitpicks, but i want to be absolutely sure how it's supposed to work
<Shinmera>
fwiw this same question has come up before here, so you're not alone :)
<Shinmera>
I just don't remember the conclusion of the ensuing discussions.
varjag has quit [Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50)]
<cosimone>
even if the answer ends up being "whatever happens to the iteration variables after the loop has ended is implementation defined" it's fine, but it's something that has to be known
gateway2000 has quit [Remote host closed the connection]
alendvai__ has quit [Quit: Leaving]
anticomputer has quit [Ping timeout: 268 seconds]
anticomputer_ has joined #commonlisp
Posterdati has quit [Read error: Connection reset by peer]
shka has quit [Ping timeout: 268 seconds]
triffid has quit [Remote host closed the connection]
triffid has joined #commonlisp
Posterdati has joined #commonlisp
<Kingsy>
Hi, so I am working my way through gigamonkeys practical lisp. My day job is a web developer so i was hoping to combine my persuit to learn CL with web development. Are there some frameworks that are accepted as a good choice for lisp in this area? for example PHP -> Symfony, Java -> Dropwizard or spring etc etc. what are some good options in common lisp?
<morganw>
I know of this one: https://8arrow.org/caveman/ Maybe someone else can confirm it is a good option.
<Kingsy>
I think I have seen that. but it isnt opinionated at all. am I right?
<Shinmera>
What does that mean
<Shinmera>
I don't know how one can write a library of any kind without having opinions on how things ought to be done.
parjanya has joined #commonlisp
<Kingsy>
Shinmera: well, a major thing I get from a framework is a set structure of files, where to put them, organising. you basically get a boiler plate right? am I right in thinking that radiance you just do a quicklisp to install it then you need to think about all of that stuff?
bollu has joined #commonlisp
<Shinmera>
Colleen: tell Kingsy look up radiance create-module