jackdaniel changed the topic of #commonlisp to: Common Lisp, the #1=(programmable . #1#) programming language | Wiki: <https://www.cliki.net> | IRC Logs: <https://irclog.tymoon.eu/libera/%23commonlisp> | Cookbook: <https://lispcookbook.github.io/cl-cookbook> | Pastebin: <https://plaster.tymoon.eu/>
pfdietz has joined #commonlisp
<adlai> what if I now: ,(document-function document-function (concatenate 'string "multiple" (string #\Newline) "lines"))
<ixelp> (document-function document-function (concatenate 'string "multiple" (string #\Newline) "lines")) ERROR: Unbound variable: DOCUMENT-FUNCTION
<aeth> the bot has no memory
<aeth> also, yes, you could do multiple lines with it if you replace "docstring" with "&body docstrings"
<adlai> not even across one prompt? ,(defmacro document-function (name docstring) `(setf (documentation ',name 'function) (format nil ,docstring))) ,(document-function document-function (concatenate 'string "multiple" (string#\Newline) "lines")) ,(documentation 'document-function 'function)
<ixelp> (defmacro document-function (name docstring) `(setf (documentation ',name 'function) (format nil ,docstring))) => DOCUMENT-FUNCTION and (document-function document-function (concatenate 'string "multiple" (string#\Newline) "lines")) ERROR: Undefined function STRING\#NEWLINE called with arguments () . finally (documentation 'document-function 'function) => NIL
<aeth> its memory is one IRC line
<adlai> not even across one prompt? ,(defmacro document-function (name docstring) `(setf (documentation ',name 'function) (format nil ,docstring))) ,(document-function document-function (concatenate 'string "multiple" (string #\Newline) "lines")) ,(documentation 'document-function 'function)
<ixelp> (defmacro document-function (name docstring) `(setf (documentation ',name 'function) (format nil ,docstring))) => DOCUMENT-FUNCTION and (document-function document-function (concatenate 'string "multiple" (string #\Newline) "lines")) => "multiple ↩ lines" finally (documentation 'document-function 'function) => "multiple ↩ lines"
* adlai happy finally
<aeth> technically if it didn't remember even within one line you could use PROGN but then you'd waste a few precious characters and probably forget the ) a lot of the time
<aeth> sometimes it doesn't recognize a form past the start of a line to avoid false positives
<aeth> ,42
<ixelp> 42 => 42
<aeth> but not ,42
<aeth> that then requires ,(progn 42)
<ixelp> (progn 42) => 42
<aeth> afaik it only recognizes , followed by a ( if it's not at the start of a line so there's a lot of syntax it won't recognize outside of a PROGN if it's not at the start of a line
<adlai> it's nice that the same functionality usable for toy examples in #clschool is not only a toy.
<aeth> unfortunately, and for very obvious sandboxing reasons, it doesn't recognize quicklisp, so a lot of non-toy examples are too long without libraries to fit on one IRC line
<aeth> it would be great if it had a few libraries like alexandria so you could do e.g. ,(alexandria:compose #'- #'1+)
<ixelp> (alexandria:compose #'- #'1+) ERROR: There is no package named "ALEXANDRIA" .
<adlai> I wouldn't expect anything of the sort.
<adlai> living libraries are moving targets by definition, and ANSI CL is fuzzy enough as it already lies.
<aeth> no, LLMs are fuzzy enough that they already lie
<adlai> ixelp: you really do xelp! thank you.
amb007 has joined #commonlisp
* adlai aims at multiple birds with one stone: ,(format () "~&~{~A~^ ~}~%" (mapcar 'funcall (append (apropos-list "machine") (apropos-list "implementation"))))
<ixelp> (format () "~&~{~A~^ ~}~%" (mapcar 'funcall (append (apropos-list "machine") (apropos-list "implementation")))) ERROR: Undefined function CCL::*MACHINE-VERSION* called with arguments () .
<adlai> good enough for freehand :)
zaymington has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
jmdaemon has joined #commonlisp
amb007 has joined #commonlisp
NotThatRPG has joined #commonlisp
amb007 has quit [Ping timeout: 255 seconds]
dnhester` has quit [Ping timeout: 264 seconds]
FragmentedCurve has quit [Remote host closed the connection]
jonatack has joined #commonlisp
varjag has quit [Ping timeout: 264 seconds]
jonatack has quit [Ping timeout: 255 seconds]
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 268 seconds]
jonatack has joined #commonlisp
eddof13 has quit [Quit: eddof13]
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 264 seconds]
random-nick has quit [Ping timeout: 255 seconds]
FragmentedCurve has joined #commonlisp
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 256 seconds]
<paulapatience> I don't really understand why people mind subsequent docstring lines are aligned at the left. It doesn't bother me at all, and I'm usually really picky.
zaymington has quit [Remote host closed the connection]
zaymington has joined #commonlisp
<adlai> SBCL's barf from (mapc 'describe (apropos-list "apropos" :cl)) is quite tolerable, although I'd find it bothersome of the docstrings were multiple paragraphs formatted that way... then it would collide with my heuristic for some block of alphachars being code rather than English text.
ymir has joined #commonlisp
<adlai> for the opposite extreme, try (mapc 'describe (apropos-list "DEF" :cl)) on reasonably current SBCL and see if your pickiness survives defstruct, define-condition, and company.
dnhester` has joined #commonlisp
ymir has quit [Client Quit]
<paulapatience> Yeah, that's exactly what I don't like. Just leave the raw docstrings aligned at the left so when you consult the documentation it aligns nicely.
<adlai> ... it could be so much worse: ,(sort (mapcar (lambda (string) (count #\Newline string)) (apropos-list "DEF" :CL)) #'< :key #'length)
<ixelp> (sort (mapcar (lambda (string) (count #\Newline string)) (apropos-list "DEF" :CL)) #'< :key #'length) ERROR: The value *DEFAULT-PATHNAME-DEFAULTS* is not of the expected type SEQUENCE.
<paulapatience> It's just the first line that ends up indented in the source code. And you can consider docstrings to be special.
<adlai> ... nice little verbosity fingerprint: ,(sort (mapcar (lambda (symbol) (count #\Newline (documentation symbol 'function))) (apropos-list "DEF" :CL)) #'< :key #'length)
<ixelp> (sort (mapcar (lambda (symbol) (count #\Newline (documentation symbol 'function))) (apropos-list "DEF" :CL)) #'< :key #'length) ERROR: The value 0 is not of the expected type SEQUENCE.
istewart has joined #commonlisp
ymir has joined #commonlisp
dnhester` has quit [Ping timeout: 264 seconds]
Lord_of_Life has quit [Ping timeout: 264 seconds]
<adlai> whatever... CCL doesn't have as many docstrings as SBCL, iirc; anyway, if you try (mapc 'describe (apropos-list "DEF" :CL)) on reasonably-current SBCL, you get a few where the niceness of increasing indentation for the bulk of the docstring is counteracted by the fact that the docstring is multiple paragraphs with a blank in between.
Lord_of_Life has joined #commonlisp
<aeth> seems fine?
* adlai is satisfied, minimally, that he managed to balance parentheses
<aeth> I like writing docstrings that are multiple paragraphs with a blank line in between
zaymington has quit [Ping timeout: 255 seconds]
<aeth> Ideally, the Lisp system should be entirely self-contained, but the docstrings on built-ins aren't as good as a hyperspec
<adlai> dunno; is it Stockholm Syndrome to declare that the Emacs highlighting of whitespace in those lines markes the docstring so it stands out against the chaff of the rest of the CL:DESCRIBE output?
<aeth> And the presentation of a printed output in a SLIME REPL isn't as good as the presentation of a web browser
<aeth> Also, the lack of a convention for hyperlinks.
<adlai> the perfusion of anchors and their infuriating variety in a web browser isn't as simple and reliable as a REPL, even without SLIME
<adlai> SBCL's (mapc 'describe (apropos "PPRINT" :CL)) actually looks really good.
oneeyedalien has quit [Quit: Leaving]
eddof13 has joined #commonlisp
thuna` has quit [Remote host closed the connection]
eddof13 has quit [Client Quit]
<aeth> yes, we should replace the web with Common Lisp, for consistency
<ymir> based
<adlai> the web is a good open-world dustbin for prototyping how to display data... eventually what actually works can get properly implemented in lisp without the web's headaches.
tyson2 has joined #commonlisp
<chsasank> I am so happy for choosing CL as my language. The homoiconocity property is amazing.
<chsasank> A program rewrite rule is literally 5 lines now :)
<chsasank> Now I just need to copy the rules from FL papers one by one.
<adlai> how do you summarise this FL thing within the logs?
* adlai could not skim out anything beyond "yet another DSL whose ultimate purpose is teaching the author lisp" from your earlier conversation about FL a few days ago
Eoco has quit [Ping timeout: 272 seconds]
<chsasank> haha, sure.
<chsasank> ok FL is pointer-less programming. There are no names for variables
<adlai> well some DSLs have a fundamental purpose like "add call/cc to common lisp" or whatever
craigbro has joined #commonlisp
<adlai> is it the same high-level idea as concatenative aka stack-based programming, even if syntactic details vary ?
<chsasank> This means FL can be optimized by using simple algebraic rules. Kinda like simplifiying (x+y)^3
<chsasank> Oh yeah the same idea
<chsasank> But why is stack important here?
<chsasank> I don't plan to use stacks
istewart has quit [Quit: Konversation terminated!]
<adlai> ok. I've never built anything beyond toy examples in that style, so it was entirely possible that I had totally missed something in equivalating these.
<chsasank> no the wiki page also says stack is easy for VM implementation
<adlai> "stack-based" is how I think about that paradigm due to Forth being the famous progenitor.
Eoco has joined #commonlisp
istewart has joined #commonlisp
amb007 has joined #commonlisp
* adlai admits that the name places emphasis on the wrong concept for liberating your thinking through that style
<chsasank> anyway my aim is to target GPU programming. I am targeting CPU first though. https://twitter.com/sasank51/status/1763513346937249961
<chsasank> if you write three for loops in C, you get 1% of peak perf achievable by hand tuned one.
<chsasank> your option becomes using vendor libraries
synchromesh has quit [Read error: Connection reset by peer]
<chsasank> I am hoping to break that logjam
synchromesh has joined #commonlisp
amb007 has quit [Ping timeout: 264 seconds]
yottabyte has quit [Quit: Connection closed for inactivity]
<ixelp> GitHub - cbaggers/cepl: Code Evaluate Play Loop
<ixelp> GitHub - takagi/cl-cuda: Cl-cuda is a library to use NVIDIA CUDA in Common Lisp programs.
mulk has quit [Ping timeout: 252 seconds]
<chsasank> cl-cuda generates cuda code isn't it?
<Bubblegumdrop> looks out of date^
<Bubblegumdrop> src/lang/compiler
<chsasank> generating C is not a bad idea
<chsasank> But best would be generating the IR that GPU takes in directly
<chsasank> like PTX or SPIR-V
<chsasank> so I realized recently parallelism might not play as much as of a role as memory hierarchy in GPU perf.
ymir has quit [Ping timeout: 240 seconds]
mulk has joined #commonlisp
tyson2 has quit [Remote host closed the connection]
pyooque has joined #commonlisp
puke is now known as Guest695
Guest695 has quit [Killed (silver.libera.chat (Nickname regained by services))]
pyooque is now known as puke
semz has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
jmdaemon has quit [Ping timeout: 264 seconds]
bilegeek has joined #commonlisp
ymir has joined #commonlisp
Pixel_Outlaw has quit [Quit: Leaving]
semz has joined #commonlisp
b00p has joined #commonlisp
b00p has left #commonlisp [#commonlisp]
waaron has quit [Ping timeout: 268 seconds]
waaron has joined #commonlisp
josrr has quit [Remote host closed the connection]
occ has joined #commonlisp
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
mzan has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
terrorjack has joined #commonlisp
dnhester` has joined #commonlisp
calx has joined #commonlisp
dnhester` has quit [Ping timeout: 264 seconds]
ymir has quit [Ping timeout: 256 seconds]
ymir has joined #commonlisp
istewart has quit [Quit: Konversation terminated!]
ymir has quit [Ping timeout: 246 seconds]
kevingal has quit [Ping timeout: 255 seconds]
ymir has joined #commonlisp
calx has quit [Ping timeout: 260 seconds]
kagevf has left #commonlisp [#commonlisp]
wacki has joined #commonlisp
zaymington has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
Eoco has quit [Ping timeout: 252 seconds]
calx has joined #commonlisp
Eoco has joined #commonlisp
dnhester` has joined #commonlisp
kagevf has joined #commonlisp
rtypo has quit [Ping timeout: 256 seconds]
dnhester` has quit [Ping timeout: 256 seconds]
Eoco has quit [Remote host closed the connection]
Eoco has joined #commonlisp
chsasank2 has joined #commonlisp
chsasank has quit [Ping timeout: 272 seconds]
chsasank2 is now known as chsasank
ronald_ has quit [Ping timeout: 272 seconds]
ronald has joined #commonlisp
Eoco has quit [Remote host closed the connection]
triffid has quit [Remote host closed the connection]
Eoco has joined #commonlisp
ymir has quit [Quit: Leaving.]
ymir has joined #commonlisp
Eoco has quit [Ping timeout: 260 seconds]
Eoco has joined #commonlisp
msavoritias has joined #commonlisp
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
chomwitt has joined #commonlisp
triffid has joined #commonlisp
amb007 has quit [Ping timeout: 246 seconds]
Eoco has quit [Ping timeout: 240 seconds]
Lycurgus has joined #commonlisp
Eoco has joined #commonlisp
varjag has joined #commonlisp
calx has quit [Remote host closed the connection]
calx has joined #commonlisp
amb007 has joined #commonlisp
amb007 has quit [Read error: Connection reset by peer]
amb007 has joined #commonlisp
pve has joined #commonlisp
varjag has quit [Remote host closed the connection]
azimut has quit [Ping timeout: 260 seconds]
waleee has quit [Ping timeout: 260 seconds]
Eoco has quit [Remote host closed the connection]
Eoco has joined #commonlisp
ebrasca has joined #commonlisp
Eoco has quit [Remote host closed the connection]
Eoco has joined #commonlisp
Eoco has quit [Read error: Connection reset by peer]
Eoco has joined #commonlisp
igemnace has joined #commonlisp
ymir has quit [Ping timeout: 268 seconds]
danza_ has joined #commonlisp
jonatack has quit [Ping timeout: 260 seconds]
rgherdt has joined #commonlisp
amb007 has quit [Ping timeout: 272 seconds]
amb007 has joined #commonlisp
rainthree has joined #commonlisp
traidare has joined #commonlisp
chomwitt has quit [Ping timeout: 255 seconds]
rainthree has quit [Read error: Connection reset by peer]
rainthree has joined #commonlisp
mi6x3m has joined #commonlisp
jonatack has joined #commonlisp
calx has quit [Quit: Leaving]
calx has joined #commonlisp
calx has quit [Quit: Leaving]
dnhester` has joined #commonlisp
calx has joined #commonlisp
<mi6x3m> hey friends, is there a ready to use macro that allows to decorate functions with test assertions?
dnhester` has quit [Ping timeout: 272 seconds]
bilegeek has quit [Quit: Leaving]
beach has quit [Ping timeout: 246 seconds]
random-jellyfish has quit [Quit: Leaving]
chomwitt has joined #commonlisp
notzmv has quit [Ping timeout: 255 seconds]
mi6x3m has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 272 seconds]
amb007 has joined #commonlisp
shka has joined #commonlisp
Mon_Ouie has quit [Ping timeout: 246 seconds]
beach has joined #commonlisp
occ has quit [Ping timeout: 264 seconds]
danza_ has quit [Ping timeout: 264 seconds]
mi6x3m has joined #commonlisp
<mi6x3m> can someone tell me why (assert (equal '(1) '(1))) fails
<mi6x3m> on SBCL
<calx> it isn't failing for me
alcor has joined #commonlisp
<beach> mi6x3m: About your first question, is there anything wrong with ASSERT, CHECK-TYPE, etc?
infos has joined #commonlisp
<mi6x3m> not that I know of but maybe something is wrong in my code
<mi6x3m> most likely even, im double checking
<beach> mi6x3m: Did you perhaps expect a useful return value from ASSERT?
<mi6x3m> no
<ixelp> CLHS: Function EQUAL
<beach> ,(assert (equal '(1) '(1)))
<ixelp> => NIL
<aeth> are you perhaps having two different values of 1? like 1 and 1.0?
<aeth> because equal uses eql on conses, which doesn't use = on numbers
<aeth> the numbers have to be the same type and same value (the latter probably using =)
<aeth> i.e. ,(assert (equal '(1) (1.0)))
<ixelp> (assert (equal '(1) (1.0))) ERROR: While compiling an anonymous function : ↩ In the form (1.0), 1.0 is not a symbol or lambda expression.
<beach> Try with a '
<aeth> s/uses eql on conses/recursively uses eql on conses/
<aeth> i.e. ,(assert (equal '(1) '(1.0)))
<ixelp> (assert (equal '(1) '(1.0))) ERROR: Failed assertion: (EQUAL '(1) '(1.0))
<aeth> my bad, thanks beach... when I expect code to fail I don't look closely when it doesn't fail in the right wrong way
<beach> I understand.
<younder> beach OK. I stashed Table grinder away at github https://github.com/jthing/table-grinder and have some more time to look at the compiler. Still interested in my preliminary analysis or would you prefer someone else?
<ixelp> GitHub - jthing/table-grinder: Database CRUD without the cruft
<mi6x3m> I suspect it was my stupidity, I forgot to reload a module maybe
<mi6x3m> it seems to work now
<aeth> s/recursively uses eql on conses/recursively uses eql on the car of conses if numbers/
<calx> ,(equal '(a . b) '(a . c))
<ixelp> => NIL
<younder> beach I've been preparing a document of sorts where I try to sort out my ideas.
varjag has joined #commonlisp
occ has joined #commonlisp
mgl has joined #commonlisp
<beach> Sure, I'll read the document. But I'll be very busy until this afternoon.
<mi6x3m> coming back to the question from yesterday, how can I destruct n vars to m values where n < m
<mi6x3m> i tried (&optional var1) (1 2 3 4 5) but it says "too many values"
bendersteed has joined #commonlisp
<beach> You have to have as many optionals as there can be optional values.
<beach> Or you can use &REST.
<beach> ,(destructuring-bind (a b &rest c) '(1 2 3 4 5 6) (list a b c))
<ixelp> => (1 2 (3 4 5 6))
danse-nr3 has joined #commonlisp
danse-nr3 has quit [Remote host closed the connection]
<beach> ,(destructuring-bind (a b &optional c d e f g h i j k) '(1 2 3 4 5 6) (list a b c d e f g h i j k))
<ixelp> => (1 2 3 4 5 6 NIL NIL NIL NIL NIL)
<mi6x3m> ,(destructuring-bind (&optional foo &rest r) '(1 2 3 4) foo)
<ixelp> ;Compiler warnings : ↩ ; In an anonymous lambda form: Unused lexical variable R ↩ => 1
danse-nr3 has joined #commonlisp
<mi6x3m> ,(destructuring-bind (&optional foo &rest r) nil nil)
<ixelp> ;Compiler warnings : ↩ ; In an anonymous lambda form: Unused lexical variable R ↩ ↩ ; In an anonymous lambda form: Unused lexical variable FOO ↩ => NIL
<mi6x3m> great
<calx> can you use &optional and &rest together?
<beach> Of course.
<calx> ,(destructuring-bind (&optional foo &rest r) '(1 2 3 4) (list foo r))
<ixelp> => (1 (2 3 4))
<calx> ohh
<beach> The optionals are considered first.
<beach> mi6x3m: it is all documented in the section on destructuring lambda lists.
<mi6x3m> "documented" is strongly exaggerated, there is a BNF
<beach> calx: So &REST means every argument in addition to the required and the optional arguments.
<calx> i see
<calx> what's BNF?
<gilberth> Here <https://novaspec.org/cl/3_4_Lambda_Lists> it's documented. I see much more than just a BNF.
<ixelp> 3.4 Lambda Lists | Common Lisp Nova Spec
dnhester` has joined #commonlisp
<younder> beach it is still a work in progress. Perhaps later this week?
<mi6x3m> True gilberth i was looking at http://clhs.lisp.se/Body/03_dd.htm
<beach> younder: Sounds good.
mzan has joined #commonlisp
<paulapatience> beach: No WSCL issue today? ;)
<beach> Not yet. :(
<beach> calx: Are you a newbie programmer?
<beach> paulapatience: I have been working on Predicament (the extracted condition system).
<paulapatience> I saw that you've been getting help from duuqnd. That's cool.
<beach> Yeah. Much appreciated.
attila_lendvai has joined #commonlisp
<calx> beach: you could say
<beach> calx: I see. I'll take that into account when I answer future questions.
<calx> thanx
<beach> calx: Do you know about #clschool? People hang out there precisely because they want to answer newbie questions. Not so here.
tok has joined #commonlisp
<dnhester`> beach: "process in improved a bit" type: "in" should be "is". My writing is not very good, but I would word it "is slightly improved", "improved a bit" sounds a little too informal to me.
<calx> beach: thanx, joined
<dnhester`> ^typo instead of type hahaha I made a typo in the word typo hahahahaha
<beach> dnhester`: Thanks. Where?
<calx> tho, i've been writing some stuff of myself in cl
<calx> just that, i don't have formal education in cs
Odin-LAP has quit [Read error: Connection reset by peer]
chomwitt has quit [Ping timeout: 255 seconds]
<dnhester`> beach: page 2 http://metamodular.com/cluster.pdf
<dnhester`> beach: page 6 of the pdf, but page 2 based on document's page numbering
danse-nr3 has quit [Ping timeout: 260 seconds]
ronald has quit [Ping timeout: 272 seconds]
danse-nr3 has joined #commonlisp
notzmv has joined #commonlisp
calx has quit [Quit: Leaving]
Mon_Ouie has joined #commonlisp
attila_lendvai has quit [Ping timeout: 256 seconds]
dino_tutter has joined #commonlisp
zephyr has quit [Read error: Connection reset by peer]
zephyr has joined #commonlisp
donleo has joined #commonlisp
traidare has quit [Ping timeout: 260 seconds]
random-nick has joined #commonlisp
pyooque has joined #commonlisp
puke is now known as Guest2177
pyooque is now known as puke
<paulapatience> Shinmera: Have you tested ABCL recently with cl-all? I have 1.9.2 installed and its --eval option is unusable. https://plaster.tymoon.eu/view/4175
<paulapatience> Obviously that's not a bug in cl-all. I have made ABCL work by creating a second temporary file and using --load instead.
synchromesh has quit [Read error: Connection reset by peer]
<Shinmera> no
Guest2177 has quit [Ping timeout: 268 seconds]
synchromesh has joined #commonlisp
<paulapatience> I think I'll just test on the latest commit of ABCL, and if the error is still present just report it.
dcb has quit [Quit: Connection closed for inactivity]
<beach> dnhester`: Thank you!
<beach>
mi6x3m has quit [Ping timeout: 240 seconds]
green__ has quit [Ping timeout: 272 seconds]
pfdietz has quit [Quit: Client closed]
<beach> dnhester`: Fixed, pushed to the repository and uploaded a new version of the PDF. Thanks again.
green__ has joined #commonlisp
attila_lendvai has joined #commonlisp
green__ has quit [Ping timeout: 272 seconds]
attila_lendvai has quit [Ping timeout: 264 seconds]
awlygj has joined #commonlisp
traidare has joined #commonlisp
igemnace has quit [Read error: Connection reset by peer]
zaymington has quit [Ping timeout: 255 seconds]
rainthree has quit [Read error: Connection reset by peer]
rainthree has joined #commonlisp
<paulapatience> Shinmera: I've narrowed the issue down to Guix. It's not ABCL's fault.
igemnace has joined #commonlisp
zaymington has joined #commonlisp
tyson2 has joined #commonlisp
mi6x3m has joined #commonlisp
varjag has quit [Read error: Connection reset by peer]
craigbro has quit [Ping timeout: 255 seconds]
Oddity has quit [Ping timeout: 264 seconds]
amb007 has quit [Ping timeout: 255 seconds]
yitzi has joined #commonlisp
amb007 has joined #commonlisp
<paulapatience> beach: Why is WSCL issue MAKE-PACKAGE-ERROR-TYPE-IF-EXISTS named like that? Where does the TYPE come into play?
prokhor_ has quit [Remote host closed the connection]
prokhor_ has joined #commonlisp
chomwitt has joined #commonlisp
green_ has joined #commonlisp
danse-nr3 has quit [Ping timeout: 260 seconds]
amb007 has quit [Ping timeout: 256 seconds]
josrr has joined #commonlisp
<dnhester`> beach: any time, I'm glad that I'm able to at least do something for you since you've taught me so much!
Lycurgus has quit [Quit: leaving]
dcb has joined #commonlisp
danse-nr3 has joined #commonlisp
traidare has quit [Ping timeout: 255 seconds]
<phoe> beach: now I am
varjag has joined #commonlisp
<beach> phoe: Never mind. Braino! Sorry.
<beach> paulapatience: It is the type of the error being signaled.
<phoe> beach: okay :D
<beach> phoe: I am working on the extracted condition system Predicament which is based on your portable condition system, except it can also work as an intrinsic system. I just misread some code.
<phoe> nice
mi6x3m has quit [Ping timeout: 260 seconds]
jon_atack has joined #commonlisp
jonatack has quit [Ping timeout: 264 seconds]
mi6x3m has joined #commonlisp
lucasta has joined #commonlisp
rainthree has quit [Ping timeout: 252 seconds]
varjag has quit [Quit: ERC (IRC client for Emacs 27.1)]
occ has quit [Ping timeout: 264 seconds]
ebrasca has left #commonlisp [ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.1)]
occ has joined #commonlisp
traidare has joined #commonlisp
justache has quit [Quit: ZNC 1.8.2 - https://znc.in]
justache has joined #commonlisp
<younder> Cluster outputs a CL Vector of unsigned bytes.. so we need the 'bloody' ABI (ELF STAB DWARF)
<beach> WHAT?
<beach> Why would you consider writing the data to a file?
<younder> If you want executable code from Cluster you need to put it in a ELF format. Most of the time it should be enough to put in a page and let the OS set the page to executable.
synchromesh has quit [Read error: Connection reset by peer]
<beach> Not at all.
<beach> Your Common Lisp system sticks it in a function object and jumps to it.
<beach> There are absolutely no files involved.
<younder> But the code page has to be made executable or the OS won't run it.
<beach> ELF is a file format that is needed because of the way the stupid OS and the stupid programming language work.
synchromesh has joined #commonlisp
<beach> But there is no reason to go through a file to make a page of memory executable.
<younder> no a code page is in memory no file
<beach> That's what I mean.
<bike> code in memory doesn't have to be in ELF format. ELF explains how to the loader how to use code, but you don't have to go through the loader.
justache has quit [Remote host closed the connection]
<beach> Thanks bike.
<bike> if you have memory that's executable, you can get to it with usual machine call/jump instructions no sweat.
justache has joined #commonlisp
* bike has been working on JIT a lot lately.
<beach> Ah, an expert!
<younder> I know this. Sorry for the misunderstanding. If you wanted to make a executable file then..
<bike> heh, "expert", sure
<beach> younder: I have created an executable file from Common Lisp, and it is not hard. You need the ELF part, but very little of it, and certainly no DWARF.
<bike> i think SICL is not supposed to have machine code executable files. FASLs are ASTs.
<beach> True, but in either case, writing code to a file would be up to the Common Lisp system and not the backend library.
<younder> OK lets focus on the REPL run. where E = Compile
<beach> Well E is Compile + Execute.
<beach> But that's outside the scope of a backend library.
<beach> It just returns the code vector, and the Common Lisp system does what it wants with it.
<bike> oh, yeah, there's definitely no reason for cluster to worry about elf or whatever
<beach> Nor for this hypothetical backend library to do so.
<younder> Yeah. Thank god. Went over that last year and it is a mess..
ymir has joined #commonlisp
<younder> So let SBCL execute it for now.
<bike> what a lisp runtime probably needs is a mapping from lisp functions to executable code ranges (so it can call functions and possibly do garbage collection on code) and vice versa (for debugging). ELF+DWARF+etc provides that but also provides a whole lot of other stuff that isn't strictly necessary.
<bike> in particular, you might not need to do any linking, which is an entire third of the acronym
<younder> bike, true but for just testing the compiler letting SBCL do the execution should be fine.
<bike> you'd have to make the cluster output amenable to SBCL's calling convention, which is nontrivial
<beach> That sounds hard to do (to me).
justache has quit [Remote host closed the connection]
justache has joined #commonlisp
<younder> For a start I could focus on the IR and optimizer and just use the SBCL assembler. That saves me the headache
<younder> Then worry about register optimization and code generation later.
<younder> This makes it more like the April compiler.
<beach> bike: In WSCL issue #36, you write that "it is an error" is defined in section 1.4.2, but I can't find it. Where is it?
<beach> Oh, it is in the glossary.
<beach> Hmm, in the glossary it suggests that the consequences are undefined.
eddof13 has joined #commonlisp
<bike> i think i meant the part in 1.4.2 that says "If an explicit error type is not specified, the default is error."
<bike> that glossary entry seems unfortunate
<beach> OK. I see.
<beach> Unfortunate, certainly, but it seems to be the only place where "it is an error" is defined.
Lycurgus has joined #commonlisp
amb007 has joined #commonlisp
occ has quit [Ping timeout: 252 seconds]
kevingal has joined #commonlisp
ymir has quit [Ping timeout: 240 seconds]
yitzi has quit [Remote host closed the connection]
occ has joined #commonlisp
azimut has joined #commonlisp
justache has quit [Quit: ZNC 1.8.2 - https://znc.in]
pfdietz has joined #commonlisp
jon_atack has quit [Ping timeout: 256 seconds]
green_ has quit [Ping timeout: 264 seconds]
thuna` has joined #commonlisp
ymir has joined #commonlisp
younder has quit [Remote host closed the connection]
amb007 has quit [Ping timeout: 255 seconds]
amb007 has joined #commonlisp
eddof13 has quit [Quit: eddof13]
pfdietz has quit [Quit: Client closed]
dnhester` has quit [Ping timeout: 260 seconds]
younder has joined #commonlisp
occ has quit [Ping timeout: 264 seconds]
pfdietz has joined #commonlisp
green_ has joined #commonlisp
amb007 has quit [Ping timeout: 256 seconds]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
green_ has quit [Ping timeout: 246 seconds]
tyson2 has quit [Read error: Connection reset by peer]
danse-nr3 has quit [Ping timeout: 268 seconds]
lucasta has quit [Quit: Leaving]
ronald has joined #commonlisp
ronald has quit [Read error: Connection reset by peer]
green_ has joined #commonlisp
danse-nr3 has joined #commonlisp
ronald has joined #commonlisp
dnhester` has joined #commonlisp
ymir has quit [Ping timeout: 264 seconds]
alcor has quit [Remote host closed the connection]
dnhester` has quit [Ping timeout: 255 seconds]
eddof13 has joined #commonlisp
X-Scale has joined #commonlisp
NotThatRPG has quit [Ping timeout: 246 seconds]
dnhester` has joined #commonlisp
cage has joined #commonlisp
dnhester` has quit [Ping timeout: 264 seconds]
green_ has quit [Ping timeout: 252 seconds]
justache has joined #commonlisp
dnhester` has joined #commonlisp
dnhester` has quit [Ping timeout: 272 seconds]
ec has quit [Remote host closed the connection]
ec has joined #commonlisp
yitzi has joined #commonlisp
zxcvz has joined #commonlisp
zxcvz has quit [Client Quit]
yitzi has quit [Ping timeout: 252 seconds]
yitzi has joined #commonlisp
mm007emko has quit [Ping timeout: 255 seconds]
mm007emko has joined #commonlisp
mm007emko has quit [Read error: Connection reset by peer]
alcor has joined #commonlisp
mm007emko has joined #commonlisp
ymir has joined #commonlisp
wacki has joined #commonlisp
ymir has quit [Ping timeout: 264 seconds]
dnhester` has joined #commonlisp
<mfiano> Shot myself in the foot today. It seems perfectly fine to have a package-local nickname point to the package that is being defined, which was a mistake on my part. Interesting error signal factory...
danse-nr3 has quit [Read error: Connection reset by peer]
danse-nr3 has joined #commonlisp
mgl has quit [Ping timeout: 255 seconds]
dnhester` has quit [Ping timeout: 264 seconds]
alcor has quit [Quit: ERC 5.6-git (IRC client for GNU Emacs 29.2)]
alcor has joined #commonlisp
NotThatRPG has joined #commonlisp
NotThatRPG has quit [Client Quit]
<beach> When would such a package-local nickname be used? The only time it could be used would be if *PACKAGE* is that package, and then it is not needed.
bendersteed has quit [Quit: bendersteed]
chomwitt has quit [Ping timeout: 264 seconds]
awlygj has quit [Remote host closed the connection]
attila_lendvai has joined #commonlisp
ymir has joined #commonlisp
tyson2 has joined #commonlisp
eddof13 has quit [Quit: eddof13]
ymir has quit [Ping timeout: 252 seconds]
alcor has quit [Ping timeout: 246 seconds]
nij- has joined #commonlisp
alcor has joined #commonlisp
Oddity has joined #commonlisp
igemnace has quit [Quit: WeeChat 4.2.1]
zetef has joined #commonlisp
dnhester` has joined #commonlisp
ymir has joined #commonlisp
danse-nr3 has quit [Ping timeout: 264 seconds]
elderK has joined #commonlisp
pfdietz has quit [Quit: Client closed]
eddof13 has joined #commonlisp
occ has joined #commonlisp
<nij-> (I asked similar questions a while ago, but it's not quite the same.)
<nij-> What are some obstacles in compiling emacs lisp to common lisp, so that most packages can be used as LEM's extensions?
mgl has joined #commonlisp
<zyd> heh, thats a tall order
NotThatRPG has joined #commonlisp
<fitzsim> nij-: have you tried compiling the Emacs sources with Iota yet? https://github.com/froggey/Iota
<ixelp> GitHub - froggey/Iota: LLVM to Common Lisp transpiler.
<fitzsim> nij-: you will see the first obstacles for yourself, as soon as you try
<fitzsim> please keep me posted how it goes, if you do try!
<fitzsim> oh, you want to transpile elisp to common lisp; hmm, not sure
<nij-> fitzsim Why? It's LLVM->CL.. not elisp->CL
<nij-> oh ok
molson has quit [Ping timeout: 256 seconds]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<fitzsim> still, that would get you an Elisp-capable engine in Common Lisp
<fitzsim> I think I've seen elisp parsers in Common Lisp before, but you would need lots of the Emacs class libraries to make elisp-on-CL useful in general
<fitzsim> so it's not just a pure language translation problem
<froggey> fitzsim: it doesn't work, I tried (issues with the emacs gc not finding all roots)
Lycurgus has quit [Quit: leaving]
<fitzsim> froggey: wow! sounds like you got way farther than I did though
<fitzsim> was it using newlib as the C-library, with the Gnulib shim?
NotThatRPG has joined #commonlisp
<nij-> More generally, I'm thinking of the possibility of embedding the ecosystem (packages, runtime, and symtax) of a inferior language in to a superior language.
eddof13 has quit [Quit: eddof13]
<froggey> I don't remember exactly, was a while ago. I'm pretty sure it was using newlib, I definitely didn't port glibc or anything like that
elderK has quit [Quit: WeeChat 4.1.1]
dnhester` has quit [Ping timeout: 252 seconds]
<nij-> In emacs, elisp code is compiled into bytecode for a bytecode VM (implemented in C). Anyone knows if LEM works in a similar way - is there a bytecode machine as well?
ymir has quit [Ping timeout: 268 seconds]
<bike> does it not just run in the host lisp?
<nij-> I think so.
<bike> probably no bytecode unless that's what the lisp does, then.
<nij-> Ah I see, when emacs was written, they were still using C as the host language. There's not a native C runtime, so they had to implement something as runtime (now the bytecode machine).
jonatack has joined #commonlisp
<nij-> Sigh.. ELISP is targeting that bytecode machine.. this ain't good news for possiblity of compilation to LEM.
<bike> maybe you could implement that bytecode machine in CL. it doesn't look super complicated. still kinda complicated.
<nij-> bike - While that's doable, that probably kill the reason why anyone would like to compile ELISP to LEM..
<nij-> They (me?) want to be free from the inferior runtime..
eddof13 has joined #commonlisp
<bike> what's wrong with the runtime?
eddof13 has quit [Client Quit]
<nij-> It's single threaded.
<nij-> It's slow, and hard to inspect
amb007 has joined #commonlisp
zetef has quit [Remote host closed the connection]
<bike> i'm not familiar with it very well, but i've got the doc open and nothing in it seems especially difficult to run in parallel aside from the buffer instructions, which are necessarily going to be weirder there
synchromesh has quit [Read error: Connection reset by peer]
eddof13 has joined #commonlisp
<bike> i'm not sure what you mean by hard to inspect, but it would have to be pretty bad to be harder to debug than native code
synchromesh has joined #commonlisp
<bike> and being slow just means you have to write a faster implementation. again, i haven't looked closely at this, but nothing immediately strikes me as being impossible to JIT or something. the doc even mentions work on that within emacs.
<bike> nah, i don't want to digest two thousand lines of C today. https://rocky.github.io/elisp-bytecode.pdf
X-Scale has quit [Quit: Client closed]
<nij-> OH yeah, there's this doc.
dnhester` has joined #commonlisp
<nij-> But.. even if we make a runtime in CL, we need to have that interact with LEM. The barrior between CL and elisp will remain.
<bike> you would be able to run elisp in LEM. isn't that what you want?
craigbro has joined #commonlisp
craigbro has quit [Remote host closed the connection]
pranavats has left #commonlisp [Disconnected: Hibernating too long]
<nij-> Does that count as running elisp *in* LEM? I'm not sure.. it sounds more like running elisp *around* LEM.
<bike> you could probably make elisp bytecode functions callable directly from CL if you want. i did that with my bytecode system, it's not actually too hard, especially if you don't need to do any boxing/unboxing/translation crap
<bike> what's the difference?
craigbro has joined #commonlisp
<nij-> bike, it's not the same as instructing what LEM should do directly.
dnhester` has quit [Ping timeout: 264 seconds]
<bike> what do you mean? you implement elisp bytecode, you get to the instructions moving point or changing buffers or whatever, the VM does that by calling whatever LEM functions do that.
<nij-> Hhmmmm
* nij- is out of his depth again; thinin'..
<nij-> thinkin'
craigbro has quit [Ping timeout: 255 seconds]
deadmarshal_ has quit [Ping timeout: 246 seconds]
<younder> My emacs uses gnu-jit to compile to machine code. So it isn't necessarily byte-code.
mi6x3m has quit [Ping timeout: 264 seconds]
<ixelp> Native Compilation (GNU Emacs Lisp Reference Manual)
<younder> libgccjit i guess
msavoritias has quit [Remote host closed the connection]
dnhester` has joined #commonlisp
<younder> Anyhow isn't Lisp constantly jumping in and out of C libraries (well ELF .so)? This 'purity' you seek seems a bit elusive.
dnhester` has quit [Ping timeout: 260 seconds]
nij- has quit [Ping timeout: 256 seconds]
tyson2 has quit [Ping timeout: 264 seconds]
<zyd> As not-fun as it sounds, might be better off simply writing clones of emacs packages that you find useful for Lem.
<zyd> does this channel have some kind of message-relay bot? like ".tell nij- <some message>" that would relay that message when they (nij-) reappear and type something in #commonlisp?
X-Scale has joined #commonlisp
<yitzi> Its ::notify
<zyd> whats the syntax or help command?
ebrasca has joined #commonlisp
<zyd> yitzi: thanks
waleee has joined #commonlisp
<zyd> ::notify nij- As not-fun as it sounds, might be better off simply writing clones of emacs packages that you find useful for Lem. Would quickly come across what utility libraries Lem needs as well. Win-win.
<Colleen> zyd: Got it. I'll let nij- know as soon as possible.
occ has quit [Ping timeout: 264 seconds]
green_ has joined #commonlisp
dnhester` has joined #commonlisp
deadmarshal_ has joined #commonlisp
nij- has joined #commonlisp
varjag has joined #commonlisp
mgl has quit [Ping timeout: 256 seconds]
mi6x3m has joined #commonlisp
ymir has joined #commonlisp
waaron has quit [Ping timeout: 246 seconds]
waaron has joined #commonlisp
mi6x3m has quit [Ping timeout: 264 seconds]
eddof13 has quit [Quit: eddof13]
kevingal has quit [Ping timeout: 264 seconds]
eddof13 has joined #commonlisp
kevingal has joined #commonlisp
eddof13 has quit [Client Quit]
X-Scale has quit [Quit: Client closed]
ymir has quit [Ping timeout: 264 seconds]
infos has quit [Quit: Leaving]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
ymir has joined #commonlisp
calx- is now known as calx
eddof13 has joined #commonlisp
calx is now known as calx-
eddof13 has quit [Client Quit]
traidare has quit [Ping timeout: 255 seconds]
ymir has quit [Ping timeout: 264 seconds]
mi6x3m has joined #commonlisp
ymir has joined #commonlisp
pranavats has joined #commonlisp
nij- has quit [Ping timeout: 264 seconds]
chomwitt has joined #commonlisp
cage has quit [Quit: rcirc on GNU Emacs 29.2]
mi6x3m has quit [Ping timeout: 260 seconds]
shka has quit [Ping timeout: 255 seconds]
jonatack has quit [Ping timeout: 252 seconds]
NotThatRPG has joined #commonlisp
<Kingsy> right, so I have probably the most basic asd example in the WORLD. but I get an error when running (ql:quickload :weather-publisher) can someone take a look -> https://bpa.st/ZKJQ <- and try and help me understand why... its insane....
<ixelp> View paste ZKJQ
mgl has joined #commonlisp
wacki has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
<bike> you need to put the asd somewhere asdf knows about. the easiest option is to put it into quicklisp/local-projects, and then run (ql:register-local-projects).
chomwitt has quit [Ping timeout: 255 seconds]
<Kingsy> bike: its symlinked in there
pve has quit [Quit: leaving]
<Kingsy> if it wasnt it wouldnt know about the weather-runner system, its specified in the depends-on in the weather-publisher.asd
<Kingsy> omg... so I didnt run (ql:register-local-projects).. JEEEEEEEEZ
<Kingsy> I am going to tattoo that on my hand :D
<Kingsy> bike: when does that need to be ran? only when a new project is added? orevery time a new system and .asd is created?
green_ has quit [Ping timeout: 260 seconds]
alcor has quit [Remote host closed the connection]
mgl has quit [Ping timeout: 272 seconds]
yitzi has quit [Remote host closed the connection]
ebrasca has quit [Remote host closed the connection]
<josrr> Kingsy: there is an explanation about handling local projects in the top comment of the file ~/quicklisp/quicklisp/local-projects.lisp
<Kingsy> thankyou
<paulapatience> beach: "in the section Exceptional situations" situations needs to be capitalized
<paulapatience> beach: stream-error should be all uppercase
<paulapatience> "We think that it [is] reasonable"
<paulapatience> "it is a fairly simple operations", no s to operation
<paulapatience> I prefer saying "different from", but that is stylistic
green_ has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Client Quit]
pillton has joined #commonlisp
eddof13 has joined #commonlisp
eddof13 has quit [Quit: eddof13]
eddof13 has joined #commonlisp
tyson2 has joined #commonlisp
pranavats has left #commonlisp [Disconnected: Hibernating too long]
<Bubblegumdrop> ,(loop for i from 1 to 10 collect (format nil "~:@r" i))
<ixelp> => ("I" "II" "III" "IIII" "V" "VI" "VII" "VIII" "VIIII" "X")
attila_lendvai has quit [Ping timeout: 256 seconds]
nij- has joined #commonlisp
Pixel_Outlaw has joined #commonlisp
eddof13 has quit [Quit: eddof13]
green_ has quit [Read error: Connection reset by peer]
green_ has joined #commonlisp
son0p has quit [Ping timeout: 264 seconds]
tok has quit [Remote host closed the connection]
a51 has quit [Quit: WeeChat 4.2.1]
NotThatRPG has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
eddof13 has joined #commonlisp
nij- has left #commonlisp [Using Circe, the loveliest of all IRC clients]
dino_tutter has quit [Ping timeout: 255 seconds]
donleo has quit [Ping timeout: 256 seconds]
NotThatRPG has joined #commonlisp
green_ has quit [Ping timeout: 256 seconds]
pranavats has joined #commonlisp
eddof13 has quit [Quit: eddof13]