phoe changed the topic of #lisp to: Common Lisp, the #1=(programmable . #1#) programming language | <http://cliki.net/> <https://irclog.tymoon.eu/freenode/%23lisp> <https://irclog.whitequark.org/lisp> <http://ccl.clozure.com/irc-logs/lisp/> | SBCL 1.4.16, CMUCL 21b, ECL 16.1.3, CCL 1.11.5, ABCL 1.5.0
dialectic has joined #lisp
igemnace has joined #lisp
<dialectic> How do I make sure a macro is available in the same file that I'm defining it in? I'm wrapping in eval-when (:compile-toplevel :load-toplevel) but I still get an undefined symbol warning on sbcl and no expansion occurs. Let me be more specific:
q9929t has joined #lisp
orivej has quit [Ping timeout: 268 seconds]
<Xach> dialectic: include :execute
<Xach> (that might not be your whole problem)
keep_learning_M has joined #lisp
q9929t has quit [Client Quit]
zacque has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
<dialectic> No-dice.
<grewal> Package issue? It's hard to tell without the code
<dialectic> Implementation I'm using is sbcl. I'm executing the repl, using ql:quickload to load my system. Executing the function results in symbol-undefined for my macro call. Here is the code: https://hastebin.com/civahodeqo.lisp
<dialectic> Macroexpanding in the repl on a quoted list works as expected so I don't really know what it is. :(
mindCrime has joined #lisp
<dialectic> Probably a process thing. I am not really used to the interactive development yet of saving changes and then loading the whole system again.
<grewal> As far as I can tell, (cond (make-clause 1 ONE) is first macro-expanded into (if make-clause (progn 1 one) nil), where make-clause is no-longer in a position where it can be macroexpanded
<dialectic> Oh, cond is a macro on sbcl?
<Xach> dialectic: you can't put macro forms in places that aren't evaluated in a normal way
<dialectic> That explains the weird if expansion I was seeing in some of the compiler output.
<Xach> dialectic: a cond clause is not evaluated like a normal function application
<Xach> just like you can't do (defclass foo () ((make-slot myslot)))
<dialectic> Oh. So macro calls are only ever expanded when they could be function calls?
<Xach> dialectic: sort of. wherever normal form evaluation would take place.
<dialectic> Ok. I'll reread the spec. That wasn't intuitive, but then again, I didn't really have a justification for my prior belief of how it worked.
<Xach> macros and special forms introduce new meaning for forms and their structure, so macros will only work where the meaning is "normal"
<dialectic> Thanks all
dacoda has joined #lisp
FreeBirdLjj has joined #lisp
nirved_ has quit [Read error: Connection reset by peer]
nirved_ has joined #lisp
arnaudga has quit [Remote host closed the connection]
buffergn0me has quit [Remote host closed the connection]
beach has quit [Remote host closed the connection]
buffergn0me has joined #lisp
beach has joined #lisp
physpi has quit [Ping timeout: 258 seconds]
physpi has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 245 seconds]
Lord_of_Life_ has joined #lisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life_ is now known as Lord_of_Life
dddddd has quit [Read error: Connection reset by peer]
torbo has joined #lisp
aedb has quit [Ping timeout: 258 seconds]
t58 has quit [Quit: Night]
eMBee has quit [Ping timeout: 258 seconds]
eMBee has joined #lisp
<mfiano> Why was it considered a good idea to have uiop:define-package take a &rest list of clauses instead of &body? Is it preferable that the first clause be indented differently? This is the sole reason I prefer defpackage-plus over the more ubiquitous option when I need non-standard packaging features.
dacoda has quit [Ping timeout: 272 seconds]
quazimodo has joined #lisp
Nomenclatura has quit [Quit: q]
esrse has joined #lisp
orivej has joined #lisp
aindilis has quit [Remote host closed the connection]
aindilis has joined #lisp
orivej has quit [Ping timeout: 248 seconds]
dialectic has quit [Ping timeout: 245 seconds]
Kaisyu7 has quit [Quit: ERC (IRC client for Emacs 26.2)]
libre-man has quit [Ping timeout: 268 seconds]
Kaisyu7 has joined #lisp
dialectic has joined #lisp
alexanderbarbosa has joined #lisp
sauvin has quit [Read error: Connection reset by peer]
voidlily has quit [Ping timeout: 276 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
mindCrime has quit [Ping timeout: 245 seconds]
voidlily has joined #lisp
libre-man has joined #lisp
mindCrime has joined #lisp
burtons has quit [Ping timeout: 244 seconds]
mindCrime has quit [Ping timeout: 272 seconds]
wigust- has joined #lisp
orivej has joined #lisp
wigust has quit [Ping timeout: 272 seconds]
Lycurgus has joined #lisp
torbo has quit [Remote host closed the connection]
leedleLoo has joined #lisp
vlatkoB has joined #lisp
seok has joined #lisp
<seok> hello,
<seok> (defun start ()
<seok> ndard-output*)
<seok> trying to echo output stream to *standard-output*, and this doesn't work.
<seok> any ideas?
leedleLoo has left #lisp [#lisp]
dialectic has quit [Remote host closed the connection]
<beach> Good morning everyone!
<beach> seok: I think your code was cut off. Please use a pastebin site to show the entire code.
sonologico has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #lisp
eMBee has quit [Ping timeout: 246 seconds]
eMBee has joined #lisp
manualcrank has quit [Quit: WeeChat 1.9.1]
voidlily has quit [Ping timeout: 252 seconds]
vutral has joined #lisp
orivej has quit [Ping timeout: 246 seconds]
Arcaelyx has quit [Ping timeout: 248 seconds]
dale has quit [Quit: dale]
Inline has quit [Quit: Leaving]
voidlily has joined #lisp
nanoz has joined #lisp
notzmv has joined #lisp
varjag has joined #lisp
test1600 has joined #lisp
varjag has quit [Ping timeout: 258 seconds]
<LdBeth> Good afternoon
JohnMS_WORK has joined #lisp
jprajzne has joined #lisp
capadoodle_ has joined #lisp
jerme__ has joined #lisp
bytesighs_ has joined #lisp
avicenna_ has joined #lisp
|3b|` has joined #lisp
selwyn_ has joined #lisp
CEnnis91_ has joined #lisp
markasoftware_ has joined #lisp
beaky_ has joined #lisp
ZombieByte has joined #lisp
varjag has joined #lisp
dru1d has joined #lisp
SaganMan has joined #lisp
MasterdonY has joined #lisp
cantstanya has quit [*.net *.split]
gxt has quit [*.net *.split]
kushal has quit [*.net *.split]
jerme_ has quit [*.net *.split]
|3b| has quit [*.net *.split]
avicenna has quit [*.net *.split]
bytesighs has quit [*.net *.split]
CEnnis91 has quit [*.net *.split]
mfiano[m] has quit [*.net *.split]
Jach[m] has quit [*.net *.split]
Jachy has quit [*.net *.split]
dru1d_ has quit [*.net *.split]
capadoodle has quit [*.net *.split]
selwyn has quit [*.net *.split]
masterdonx has quit [*.net *.split]
beaky has quit [*.net *.split]
markasoftware has quit [*.net *.split]
cyberlard has quit [*.net *.split]
guaqua has quit [*.net *.split]
voidlily has quit [Ping timeout: 252 seconds]
bytesighs_ is now known as bytesighs
avicenna_ is now known as avicenna
CEnnis91_ is now known as CEnnis91
jerme__ is now known as jerme_
capadoodle_ is now known as capadoodle
selwyn_ is now known as selwyn
notzmv has quit [Ping timeout: 248 seconds]
shenghi has joined #lisp
cyberlard has joined #lisp
Jachy has joined #lisp
voidlily has joined #lisp
sauvin has joined #lisp
eMBee has quit [Ping timeout: 245 seconds]
eMBee has joined #lisp
SaganMan has quit [Ping timeout: 248 seconds]
donotturnoff has joined #lisp
solrize has quit [Ping timeout: 245 seconds]
varjag has quit [Ping timeout: 272 seconds]
frgo has quit [Remote host closed the connection]
frgo has joined #lisp
nanozz has joined #lisp
nanoz has quit [Ping timeout: 245 seconds]
Lycurgus has quit [Ping timeout: 245 seconds]
nanozz has quit [Ping timeout: 272 seconds]
solrize has joined #lisp
nydel has joined #lisp
ltriant has quit [Quit: leaving]
schweers has joined #lisp
atgreen has quit [Ping timeout: 252 seconds]
libre-man has quit [Ping timeout: 248 seconds]
|3b|` is now known as |3b|
techquila has joined #lisp
scymtym has joined #lisp
MichaelRaskin has quit [Quit: MichaelRaskin]
libre-man has joined #lisp
<splittist> good day
<beach> Hello splittist.
nolanv has quit [Read error: Connection reset by peer]
asarch has joined #lisp
<asarch> How would you parse the output of an external program using uiop:run-program?
<asarch> So far, I can: (let ((process (sb-ext:run-program "/usr/bin/apt-cache" '("search" "sbcl") :output :stream))) (loop for line = (read-line (sb-ext:process-output process) nil) while line do (format t "~a~%" line)))
<asarch> But it seems that sb-ext:run-program is not portable at all
nolanv has joined #lisp
makomo has joined #lisp
shrdlu68 has joined #lisp
<d4ryus> asarch: there is a somewhat portable uiop:launch-program
<asarch> Thank you!
<asarch> Next question: how would you split a string? "One Two Three Four Five" into '("One" "Two" "Three" "Four" "Five")
varjag has joined #lisp
<ck_> asarch: there's split-sequence in quicklisp
voidlily has quit [Ping timeout: 264 seconds]
<asarch> Thank you!
<asarch> How would you slurp a file?
<pjb> com.informatimago.common-lisp.cesarum.file:binary-file-contents P F
<pjb> com.informatimago.common-lisp.cesarum.file:sexp-file-contents P F
<pjb> com.informatimago.common-lisp.cesarum.file:sexp-list-file-contents P F
<pjb> com.informatimago.common-lisp.cesarum.file:string-list-text-file-contents P F
<pjb> com.informatimago.common-lisp.cesarum.file:text-file-contents P F
<pjb>
<pjb> Note: they're accessors, you can also use them to barf a file.
<shrdlu68> #'alexandria:read-file-into-{string,byte-vector}
<pjb> (progn (setf (com.informatimago.common-lisp.cesarum.file:text-file-contents "/tmp/hw.txt") "Hello world") (com.informatimago.common-lisp.cesarum.file:text-file-contents "/tmp/hw.txt")) #| --> "Hello world" |#
<ck_> ... and here I thought hw stood for homework
<pjb> (defmacro define-persistent-string-variable (name) `(define-symbol-macro ,name (com.informatimago.common-lisp.cesarum.file:text-file-contents ,(format nil "/var/database/persistent-vars/~A" 'name))))
<pjb> (define-persistent-string-variable foo) (setf foo "42")
UniFreak has joined #lisp
UniFreak has left #lisp ["Leaving"]
<asarch> One last question: how do you concatenate strings?
<shrdlu68> (concatenate 'string "foo" "bar")
<asarch> Thank you!
<asarch> Thank you very much guys!
<asarch> Thank you! :-)
<asarch> I needed those "routines" for my small web server with aserve
<pjb> Why don't you know them already?
<pjb> You never learned anything?
<pjb> Are you a free loader?
<asarch> Free loader?
<pjb> s/ //
<asarch> Well, in my tons of notes I could only find the way to get the third column from a file that line matches a regexp
voidlily has joined #lisp
<pjb> asarch: brains work better than notes…
<asarch> (with-open-file (stream "big-file") (loop for line = (read-line stream nil nil) wile line when (regexp-match-line-p regexp line) do (print (third-column line))))
t58 has joined #lisp
<asarch> Not my brain :'-(
<shrdlu68> asarch: I also use format to concatenate strings a lot: (format nil "~{~A~^ ~}" '("foo" "bar" "baz"))
<ck_> brains and notes work best in tandem
<LdBeth> Build a small library, it’s better than copy from either brain or notes everywhere
<asarch> Yeah, I used to have a small web app connected to a PostgreSQL cluster for my notes when I was learning Perl
<asarch> And that's exactly what I am building right now with Common Lisp a la Common Lisp way
<asarch> For example, the problem of "<!DOCTYPE html>" from net.html.generator:html I could solved with:
<shrdlu68> asarch: Format is also very concise for building the body of POST/GET requests: https://github.com/shrdlu68/at-sms-api/blob/master/sms.lisp#L28
<asarch> (net.html.generator:html "<!DOCTYPE html>" (:html (:head "<meta charset='utf-8'>" (:title "Personal Home Page")) (:body ...)))))
<asarch> I needed to slurp a file in order to include JavaScript code in the net.html.genertor:html process:
<asarch> (net.html.generator:html "<!DOCTYPE html>" (:html (:head "<meta chartset='utf-8'>" (princ my-slurped-js-code-from-a-file) ...
SaganMan has joined #lisp
<shrdlu68> pjb: define-symbol-macro is very cool.
<asarch> And also a frontend for the "apt-cache search sbcl" operation on Debian-based systems
<asarch> Just to get the command line to install the desired packages: "apt-get -y install foo bar baz ..."
hhdave has joined #lisp
<asarch> Anyway, thank you very much guys :-)
<asarch> Thank you!
asarch has quit [Quit: Leaving]
SaganMan has quit [Ping timeout: 268 seconds]
nostoi has joined #lisp
quazimodo has quit [Ping timeout: 244 seconds]
crystalball has joined #lisp
crystalball has quit [Client Quit]
ebrasca has joined #lisp
crystalball has joined #lisp
random-nick has joined #lisp
catalinbostan has joined #lisp
quazimodo has joined #lisp
manualcrank has joined #lisp
quazimodo has quit [Ping timeout: 245 seconds]
beach has quit [Ping timeout: 258 seconds]
crystalball has quit []
cosimone has joined #lisp
beach has joined #lisp
igemnace has quit [Read error: Connection reset by peer]
igemnace has joined #lisp
eMBee has quit [Ping timeout: 245 seconds]
nostoi has quit [Quit: Verlassend]
beach has quit [Ping timeout: 258 seconds]
beach has joined #lisp
eMBee has joined #lisp
beach has quit [Disconnected by services]
beach has joined #lisp
nanoz has joined #lisp
beach has quit [Ping timeout: 259 seconds]
beach has joined #lisp
shrdlu68 has quit [Ping timeout: 245 seconds]
<LdBeth> Any recommendations on library encoding data in to compact representation?
<LdBeth> I’d like to specify the detailed data format, rather than general serialization on lisp objects
v88m has quit [Read error: Connection reset by peer]
v88m has joined #lisp
Folkol has quit [Ping timeout: 272 seconds]
Folkol has joined #lisp
keep_learning_M has quit [Quit: This computer has gone to sleep]
lavaflow_ has quit [Ping timeout: 245 seconds]
dddddd has joined #lisp
<ck_> LdBeth: sorry, fanciest I ever got was zipping the serialized lisp objects.
d4ryus has quit [Ping timeout: 246 seconds]
m00natic has joined #lisp
vutral has quit [Remote host closed the connection]
elinow has joined #lisp
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
d4ryus has joined #lisp
donotturnoff has quit [Ping timeout: 248 seconds]
schweers has quit [Ping timeout: 264 seconds]
slyrus_ has joined #lisp
igemnace has quit [Quit: WeeChat 2.5]
slyrus__ has quit [Ping timeout: 268 seconds]
<LdBeth> ck_: that’s ok, i have the plan to write one
v88m has quit [Ping timeout: 246 seconds]
nanoz has quit [Ping timeout: 245 seconds]
rocx has quit [Ping timeout: 276 seconds]
rocx has joined #lisp
xkapastel has joined #lisp
orivej has joined #lisp
eMBee has quit [Ping timeout: 245 seconds]
JohnMS_WORK has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
Jesin has quit [Ping timeout: 244 seconds]
dvdmuckle has quit [Ping timeout: 246 seconds]
dvdmuckle has joined #lisp
scymtym has quit [Ping timeout: 250 seconds]
Jesin has joined #lisp
eMBee has joined #lisp
clintm has joined #lisp
nullman has quit [Ping timeout: 245 seconds]
amerlyq has joined #lisp
nullman has joined #lisp
GoldRin has joined #lisp
<mpcjanssen> LdBeth: sounds like ASN.1 BER or protobuf
<LdBeth> mpcjanssen: thank you for the info
<mpcjanssen> but nothing beats a manually specified binary encoding. This is very specific to the application though
<mpcjanssen> depends on the goal, really
<shka__> thrift maybe?
<shka__> LdBeth: it would be awesome (for me) to have decent thrift lib for CL
<shka__> so yeah ;-)
esrse has quit [Ping timeout: 248 seconds]
cosimone has quit [Ping timeout: 264 seconds]
cosimone has joined #lisp
vutral has joined #lisp
cantstanya has joined #lisp
scymtym has joined #lisp
<LdBeth> The goal is a compact representation of common lisp programs with the reference relationship preserved.
amerlyq has quit [Quit: amerlyq]
<LdBeth> So possibly not thrift.
<shka__> oh, ok
<shka__> well, it was worth a try!
<shka__> :D
<jackdaniel> shka__: thrift has support for common lisp
<shka__> oh
<jackdaniel> or maybe you call the existing library undecent? ^_^
<shka__> not sure
<shka__> i just googled it
<jackdaniel> indecent°
<shka__> silly me assumed that there is no such library
<shka__> foolish
<shka__> ofc there is
<shka__> jackdaniel: thanks for pointing this
<shka__> maybe i can do something with this
<shka__> it seems to be portable
<LdBeth> I find this https://www.cliki.net/bintype
atgreen has joined #lisp
<pjb> LdBeth: There are a lot of serialization/deserialization libraries. But since you don't want a general one, you can only write your own specific one!
<pjb> LdBeth: anyways writing such code is much fun, so you should definitely write your own.
random-nick has quit [Ping timeout: 246 seconds]
elosant has joined #lisp
beaky_ is now known as beaky
cantstanya has quit [Ping timeout: 260 seconds]
<mpcjanssen> and then after having been burned by all the corner cases, use a standard one and appreciate the inherent complexity :)
cantstanya has joined #lisp
<jackdaniel> cl-store allows writing a specialized backend
<jackdaniel> so I'd start from there
frgo has quit [Remote host closed the connection]
scymtym has quit [Remote host closed the connection]
nirved_ has quit [Ping timeout: 252 seconds]
scymtym has joined #lisp
random-nick has joined #lisp
nirved has joined #lisp
amerlyq has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
GoldRin has quit [Ping timeout: 272 seconds]
elosant has quit [Quit: WeeChat 2.4]
zotan has quit [Quit: ZNC 1.6.5+deb1+deb9u2 - http://znc.in]
zotan has joined #lisp
test1600_ has joined #lisp
test1600 has quit [Ping timeout: 248 seconds]
zacque has joined #lisp
atgreen has quit [Remote host closed the connection]
atgreen has joined #lisp
mathZ has joined #lisp
gxt has joined #lisp
lucasb has joined #lisp
postit has quit [Ping timeout: 276 seconds]
postit has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
nicksmaddog has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
vutral has quit [Remote host closed the connection]
Lycurgus has joined #lisp
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
mathZ has quit [Ping timeout: 244 seconds]
test1600__ has joined #lisp
Lord_of_Life has quit [Ping timeout: 272 seconds]
Lord_of_Life has joined #lisp
vutral has joined #lisp
test1600_ has quit [Ping timeout: 245 seconds]
dale has quit [Quit: dale]
dale has joined #lisp
antepod has joined #lisp
LiamH has joined #lisp
mindCrime has joined #lisp
rocx has left #lisp ["ERC (IRC client for Emacs 26.2)"]
xkapastel has joined #lisp
vutral has quit [Remote host closed the connection]
Inline has joined #lisp
nowhereman has joined #lisp
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
Arcaelyx has joined #lisp
paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
igemnace has joined #lisp
nowhereman has quit [Ping timeout: 245 seconds]
scymtym has quit [Ping timeout: 252 seconds]
pfdietz has joined #lisp
vutral has joined #lisp
catalinbostan has quit [Quit: Textual IRC Client: www.textualapp.com]
nowhereman has joined #lisp
nowhereman has quit [Ping timeout: 246 seconds]
paul0 has quit [Read error: Connection reset by peer]
t58 has quit [Quit: Leaving]
libre-man has quit [Ping timeout: 245 seconds]
ym555 has joined #lisp
frgo has joined #lisp
saravia has joined #lisp
jprajzne has quit [Quit: Leaving.]
vutral has quit [Remote host closed the connection]
nicksmaddog has quit [Ping timeout: 272 seconds]
frgo has quit [Remote host closed the connection]
mindCrime_ has joined #lisp
<ober> +1 cl-store
vutral has joined #lisp
papachan has joined #lisp
mindCrime has quit [Ping timeout: 244 seconds]
test1600__ has quit [Quit: Leaving]
saravia has quit [Quit: Leaving]
saravia has joined #lisp
FreeBirdLjj has joined #lisp
vutral has quit [Remote host closed the connection]
aindilis has quit [Read error: Connection reset by peer]
lavaflow_ has joined #lisp
vutral has joined #lisp
aindilis has joined #lisp
lavaflow_ has quit [Ping timeout: 245 seconds]
Bike has joined #lisp
libre-man has joined #lisp
lavaflow_ has joined #lisp
<LdBeth> question about eclector: if i want to get the content of skipped comment, should i set the reader for semicolon or define a speclized else where?
<LdBeth> *specialized method
<beach> You should ask scymtym about that.
clintm has quit [Quit: Textual IRC Client: www.textualapp.com]
<beach> I am pretty sure you should not modify the reader macro associated with semicolon.
<LdBeth> the method make-skipped-input-result is called when stream position is after skipped content
aindilis has quit [Ping timeout: 248 seconds]
<beach> So I think you need to define a method on that generic function, specialized to your client instance.
papachan has quit [Quit: Saliendo]
rippa has joined #lisp
<LdBeth> for example, if i specialized make-skipped-input-result with body of (read stream), the next atom after the comment is lost
<LdBeth> i don't find a place where I can call something before the skipping happens
<beach> Sounds reasonable. Why would you do that?
<beach> What is it that you want to do before the skipping happens?
<LdBeth> I'm making a lisp to tex printer, in this senerio the comments and many other things should be preserved
v88m has joined #lisp
<LdBeth> *scenario
<beach> Yes, but it is not the right think to call READ to get the skipped input.
<LdBeth> so I see backquote readers calls generic functions to construct forms
vutral has quit [Remote host closed the connection]
<LdBeth> maybe we can add a call to a generic functions in semicolon reader which accepts the skipped things and by default does nothing
<beach> It looks to me like the technique to be used is clearly documented.
<beach> According to the documentation, you remember the stream position before the call to READ, and then recover the skipped input in NOTE-SKIPPED-INPUT.
<LdBeth> the reason why I ask if I should set semicolon reader is because the behavior I want to have actually doesn't skip contents
<LdBeth> beach: you mean I have to add a daemon to eclector.parse-result:read ?
<beach> No, that is not what I mean.
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
<beach> If you plan to use the eclector-.parse-result system, you must define methods on make-expression-result and make-skipped-input-result.
<beach> The note-skipped-input technique that I cited before is available in the ordinary reader.
Lycurgus has quit [Quit: Exeunt]
vutral has joined #lisp
scymtym has joined #lisp
<LdBeth> beach: I see, so I have to make a special variable and adds modifier to note-skipped-input and read-common to set stream position to it, am I right?
<beach> That's one way of doing it. Or you can use a Gray stream.
<beach> A Gray stream is often the easiest solution. Just read the entire file into a string, and then feed Eclector from the string. Then you can do what you want with the string contents.
<beach> For SICL source tracking, I read the source file into a list of lines, each line being a string.
<beach> That way, I don't have to worry about how newlines are represented in the operating system.
<LdBeth> So it relies on the stream has backup?
<beach> SICL does, because I store the entire source with the compiled code.
<beach> You might get away with setting the stream position and reading characters of skipped input.
orivej has quit [Ping timeout: 272 seconds]
<LdBeth> A ordinary character stream is not recommanded. Well...
<beach> Does it say that?
<LdBeth> beach: have you looked at Pragmatic Parsing in Common Lisp
<beach> Never heard of it.
<scymtym> it is Baker's META parser
<beach> I see.
cosimone has joined #lisp
<LdBeth> It demonstrates a technique building parser capable to parse both streams and seqences. And it can parse a large set of grammer including Common Lisp source and lambda lists
<beach> Well, that is possible only if you use the Common Lisp reader algorithm.
<beach> ... which is why we wrote Eclector.
NickBusey has quit [Ping timeout: 245 seconds]
ym555_ has joined #lisp
ym555 has quit [Ping timeout: 245 seconds]
<LdBeth> as final decision I'd override semicolon reader to call a generic function receives consumed input. for me I'd expect ordinary stream just works and one pass without backup is good enough.
* LdBeth goes to sleep
ym555 has joined #lisp
ym555_ has quit [Ping timeout: 272 seconds]
atgreen has quit [Ping timeout: 276 seconds]
mangul has joined #lisp
<scymtym> we could accumulate input characters as they are skipped and pass the accumulated string to MAKE-SKIPPED-INPUT-RESULT. but that would be wasteful in case the accumulated string was not used
shka_ has joined #lisp
sjl has joined #lisp
<beach> Yeah, not a good idea in my opinion.
mangul has quit [Client Quit]
<scymtym> maybe the documentation needs a list with problems and solutions for cases such as "i want comments as nodes in the concrete syntax tree", "i want skipped input ranges as strings", etc. those questions have come up several times already
<beach> Oh, that would be fantastic.
vutral has quit [Remote host closed the connection]
<beach> scymtym: I am unable to work on the new version of SICL bootstrapping at the moment, because my computer keeps crashing when I do. So until I get a new processor, I will work on other aspects of SICL. One such aspect is to remove obsolete code.
<beach> I am thinking I should replace the SICL reader in Second Climacs by Eclector soon-ish, so that I can remove the obsolete reader. As a consequence, I will likely read documentation and code examples from Eclector in the near future.
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
vutral has joined #lisp
alexanderbarbosa has quit [Ping timeout: 258 seconds]
vutral has quit [Remote host closed the connection]
ym555 has quit [Ping timeout: 248 seconds]
hhdave has quit [Quit: hhdave]
pfdietz has quit [Quit: Ping timeout (120 seconds)]
elinow has quit [Read error: Connection reset by peer]
vutral has joined #lisp
gravicappa has joined #lisp
<scymtym> beach: great. please keep me posted. i'm sure another set of shortcomings will be exposed (which is a good thing)
<beach> Maybe so. I'll definitely keep you informed.
ym555 has joined #lisp
dmiles has quit [Ping timeout: 245 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
FreeBirdLjj has quit [Ping timeout: 245 seconds]
dmiles has joined #lisp
orivej has joined #lisp
hiroaki has joined #lisp
t58 has joined #lisp
m00natic has quit [Remote host closed the connection]
nowhereman has joined #lisp
Folkol has quit [Ping timeout: 246 seconds]
shenghi has quit [Ping timeout: 272 seconds]
Folkol has joined #lisp
Jesin has quit [Quit: Leaving]
rippa has quit [Ping timeout: 245 seconds]
rippa has joined #lisp
skidd0 has joined #lisp
shenghi has joined #lisp
Jesin has joined #lisp
cosimone has quit [Quit: WeeChat 2.4]
grewal has quit [Ping timeout: 268 seconds]
vutral has quit [Remote host closed the connection]
grewal has joined #lisp
atgreen has joined #lisp
orivej has quit [Ping timeout: 272 seconds]
<skidd0> I'm experiencing some inconsistencies with cl-json and want to make sure i'm not just blundering over a simple mistake.
<skidd0> details here: https://pastebin.com/KS6exmdN
vutral has joined #lisp
random-nick has quit [Ping timeout: 268 seconds]
cosimone has joined #lisp
frgo has joined #lisp
<skidd0> it seems the alist <-> Object conversion with cl-json is inconsistent
sauvin has quit [Ping timeout: 258 seconds]
xuxuru has joined #lisp
vlatkoB has quit [Remote host closed the connection]
nowhere_man has joined #lisp
shka__ has quit [Ping timeout: 258 seconds]
vlatkoB has joined #lisp
nowhereman has quit [Read error: Connection reset by peer]
cosimone has quit [Quit: WeeChat 2.4]
makomo has quit [Quit: WeeChat 2.4]
nowhere_man has quit [Ping timeout: 258 seconds]
ZombieByte has quit [Ping timeout: 246 seconds]
shka__ has joined #lisp
ym555 has quit [Quit: leaving...]
femi has quit [Ping timeout: 268 seconds]
vutral has quit [Remote host closed the connection]
ym555 has joined #lisp
random-nick has joined #lisp
<sjl> this is probably related to cl-json:encode-json-alist
<sjl> but I gotta run
<skidd0> sjl: okay thank you
<Xach> sjl: !!
<Xach> i have a failure report but i will post to github
femi has joined #lisp
FreeBirdLjj has joined #lisp
femi has quit [Ping timeout: 245 seconds]
frgo has quit [Ping timeout: 245 seconds]
femi has joined #lisp
<ck_> Xach: your Naggum c.l.l archive has links to the message-ids on google groups, the Warnock archive doesn't. Is that because you found most weren't archived there?
FreeBirdLjj has quit [Ping timeout: 248 seconds]
mSSM has joined #lisp
<mSSM> Is there anyone here using slimv? I am looking for an overview of keybindings, such as ,c
<mSSM> Or ,s ,e ,h and others
<skidd0> around line 661
vutral has joined #lisp
<grewal> If you use gVim, all the menu options also show you the (default) key-binding
<skidd0> for the paredit stuff
<mSSM> grewal: I use cli vim
<Xach> ck_: I don't remember the exact reason, sorry.
<ck_> Xach: thank you. I'll accept the mystery.
<mSSM> skidd0: This is great, thank you. Can look this up in vim help
vutral has quit [Remote host closed the connection]
<skidd0> mSSM: it is the vim help
<mSSM> Yeah :D
<aeth> Is it possible to get GNU Emacs to indent elaborate macros correctly? Basically add to what SLIME does with common-lisp-init-standard-indentation? I'm not sure what put is doing there in that function, and it's an unsearchable name.
<aeth> Oh, found it. It's symbol plists. So, global? https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Plists.html
<dlowe> aeth: slime uses the &body keyword of macros as a formatting hint, but it'd be pretty hard with something more complicated
<aeth> Does anyone ship elisp to properly indent and highlight their elaborate macros?
<aeth> dlowe: SLIME works on like 90% of macros, but only if they fit the common forms. It won't work on e.g. a custom flet
<aeth> dlowe: SLIME also won't highlight stuff like the built-ins unless they begin with define- or with- or a handful of other things.
<Bike> it's not obvious how to indent flet from its "lambda list", though
<aeth> Common Lisp with SLIME also doesn't highlight types-or-classes green (iirc) like other Emacs modes, e.g. in defmethod or in custom macros.
<aeth> Bike: Exactly, a custom flet-like form absolutely needs custom elisp because there's no way to determine it
<Bike> are you talking about indenting emacs lisp code or common lisp code
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
<Bike> you can configure slime to indent some macro's forms like flet, and stuff like that
<aeth> Bike: I need to ship Emacs Lisp with my Common Lisp code to (1) autoindent a handful of macros that SLIME can't handle, such as ones that are similar to flet, (2) highlight certain forms that are not highlighted but should be (since it only auto highlights a handful like define- and with-), and
<aeth> (3) highlight classes/types in certain contexts like in other Emacs language modes (e.g. c-mode) including probably defmethod
<aeth> Ideally through customizing SLIME
<Bike> sure, throw in some puts or whatnot
vutral has joined #lisp
<Bike> my .emacs has a thing to tab make-instance less. it's like one line
amerlyq has quit [Quit: amerlyq]
<Bike> highlighting is also configurable, but i forget how
<Bike> i think that's a builtin emacs thing that does regexing
<aeth> If I were to highlight types-or-classes green, assuming SLIME doesn't have that functionality at all, which forms would I need to do that in? Obviously just talking about the standard ones, I know where in my macros. Would look out of place if my macros did this but not the standard forms. defmethod, declare, the, check-type? Maybe :type in slots and an array's :element-type, but that probably would look out of place.
<aeth> (Well, green for me, might not be green for you.)
<Bike> forms? i don't think the mechanism is that sophisticated
<aeth> oh, that's unfortunate if it's not that sophisticated.
elosant1 has joined #lisp
<Bike> in my emacs, if i do (let ((check-foo 4)) ...) check-foo is highlighted, but it's obviously a variable in context
<skidd0> it appears my issue is a feature not a bug: https://github.com/hankhero/cl-json/issues/4
<aeth> Would Emacs easily have the capability to have (defmethod foo ((bar bar)) ...) highlight the second bar green like it highlights the bar green in void foo (bar b) { /* ... */ } in c-mode?
<aeth> If it can't do that easily, that might be why it doesn't.
anewuser has joined #lisp
<Bike> it just does a regex search
akoana has joined #lisp
<Bike> well, and a bunch of other stuff, but looks like mostly regex
<aeth> seems like it would be a nightmare to use regex even if it's possible beacuse of stuff like &key (foo 42)
<Xach> welcome to the nightmare
nloadholtes has left #lisp [#lisp]
<aeth> And in my custom define-function, I permit &key (foo 42) as well as &key (foo 42 integer)
orivej has joined #lisp
<Bike> i'm just looking at the value of font-lock-keywords in a buffer and deciding to not look any further
elosant1 has quit [Quit: WeeChat 2.4]
Folkol has quit [Ping timeout: 258 seconds]
Folkol_ has joined #lisp
pfdietz has joined #lisp
ebrasca has quit [Remote host closed the connection]
xvx has joined #lisp
pest-ctrl has quit [Quit: ERC (IRC client for Emacs 26.2)]
anewuser has quit [Ping timeout: 248 seconds]
dialectic has joined #lisp
<dlowe> The CL editor climacs pretty much ran aground trying to provide a rigorous partial-form parser for fast accurate syntax formatting.
gravicappa has quit [Ping timeout: 246 seconds]
anewuser has joined #lisp
nowhere_man has joined #lisp
<dialectic> Formatting, or highlighting?
<dialectic> Seems like there's only one real way to format lisp code. Although, I would prefer to put go-tags on the same indentation level as the block form itself, but parinfer ties my hands there...
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
<dlowe> dialectic: well, both
scymtym has quit [Ping timeout: 252 seconds]
Josh_2 has joined #lisp
saravia has quit [Quit: Leaving]
shka_ has quit [Ping timeout: 245 seconds]
atgreen has quit [Ping timeout: 245 seconds]
iovec has joined #lisp
anewuser has quit [Ping timeout: 252 seconds]
donotturnoff has joined #lisp
vutral has quit [Remote host closed the connection]
sjl has quit [Ping timeout: 272 seconds]
anewuser has joined #lisp
Krystof has quit [Ping timeout: 258 seconds]
vutral has joined #lisp
mathrick has quit [Ping timeout: 250 seconds]
anewuser has quit [Ping timeout: 268 seconds]
<ober> dialectic: thanks for protecting all my electronics
sjl has joined #lisp
Folkol has joined #lisp
anewuser has joined #lisp
Folkol_ has quit [Ping timeout: 244 seconds]
mathrick has joined #lisp
<Josh_2> I want to store threads in a hash table, however bt:make-thread starts the thread object, can I create the object without starting it?
<dlowe> Josh_2: nope
hackware has joined #lisp
<Josh_2> I can store the names of threads and the functions maybe and use that instead then
<dialectic> What is a thread that isn't started? Sounds like a thunk to me.
<Josh_2> could be a thunk
<hackware> thunk...?
elosant has joined #lisp
vutral has quit [Remote host closed the connection]
<Bike> a thunk is a function of no arguments.
<Bike> a delayed computation.
xvx has quit [Quit: xvx]
actuallybatman has joined #lisp
<aeth> Josh_2: why not store the lambda that's used to make the thread?
<Josh_2> that's what I'm going to do
<hackware> was just wondering how an unstarted thread was a thunk...?
<Bike> make-thread takes a thunk as an argument
<Bike> the thunk represents the computation that will be done in the thread
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
donotturnoff has quit [Ping timeout: 272 seconds]
vlatkoB has quit [Remote host closed the connection]
Josh_2 has quit [Quit: ERC (IRC client for Emacs 26.1)]
<hackware> too deep 4 this noob... bak 2 clnoobs...
elosant has quit [Quit: WeeChat 2.4]
xantoz has quit [Quit: WeeChat 2.4]
vutral has joined #lisp
xantoz has joined #lisp
nowhere_man has quit [Ping timeout: 248 seconds]
<ober> (lambda () (thunk)) vs (lambda (p) (not-thunk p))
nowhere_man has joined #lisp
wilfredh has quit [Quit: Connection closed for inactivity]
atgreen has joined #lisp
nowhere_man has quit [Remote host closed the connection]
nowhere_man has joined #lisp
Folkol_ has joined #lisp
ym555 has quit [Ping timeout: 246 seconds]
Lycurgus has joined #lisp
Folkol has quit [Read error: Connection reset by peer]
<aeth> ober: (lambda (p) (lambda () (thunk p)))
<aeth> although technically the thunk is the unnamed inner lambda, just like in your examples the thunk are the lambdas, not the named functions
<aeth> (the thunk-or-not-thunk)
vutral has quit [Remote host closed the connection]
Krystof has joined #lisp
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
<dialectic> Is there a reader macro for evaling my defuns at compile time and load time? Should I just prefix the defun form with #. and be done with it? Or is that going to cause issues?
nowhere_man has quit [Ping timeout: 245 seconds]
<Bike> you should evaluate things at read time as little as possible. maybe eval-when would work for you?
<dialectic> I know there's also #, for load-time, was just hoping for another shortcut. wrapping in eval-when is not a problem, though
<Bike> there is no #,
<Bike> or maybe that was clisp only or something
<Bike> in any case, #. is basically for values, not for entire big forms
t58 has quit [Quit: Night]
<Bike> using it for a defun is definitely a hack
antepod has quit [Ping timeout: 252 seconds]
vutral has joined #lisp
vutral has quit [Remote host closed the connection]
<White_Flame> dialectic: the cleanest way to control what prerequisites are visible at compile-time is to split it up into multiple files, and make sure the dependency is in an earlier-loaded fine
<White_Flame> *file
xvx has joined #lisp
<dialectic> That doesn't come without cost. I like to keep my macro definitions closer to the "one big function" I use them in.
vutral has joined #lisp
bchar has joined #lisp
xvx has quit [Quit: xvx]
xuxuru has quit [Quit: xuxuru]
ym555 has joined #lisp
random-nick has quit [Read error: Connection reset by peer]
pest-ctrl has joined #lisp
random-nick has joined #lisp
LiamH has quit [Quit: Leaving.]
ym555 has quit [Quit: leaving...]
skidd0 has quit [Quit: WeeChat 2.5]
Lycurgus has quit [Quit: Exeunt]
myrkraverk has joined #lisp
makomo has joined #lisp
edgar-rft has quit [Ping timeout: 248 seconds]
mindCrime_ has quit [Ping timeout: 245 seconds]
random-nick has quit [Ping timeout: 248 seconds]
nowhere_man has joined #lisp
dialectic has quit [Ping timeout: 252 seconds]
dialectic has joined #lisp
dialectic has quit [Remote host closed the connection]
actuallybatman has quit [Ping timeout: 272 seconds]
remexre has quit [Quit: WeeChat 2.3]
<White_Flame> minion: memo for dialectic: If you have a macro that's only used in 1 function, then use MACROLET locally
<minion> Remembered. I'll tell dialectic when he/she/it next speaks.
<White_Flame> minion: memo for dialectic: You can even scope a MACROLET around multiple DEFUNs if you want
<minion> Remembered. I'll tell dialectic when he/she/it next speaks.
lemoinem has quit [Read error: Connection reset by peer]
lemoinem has joined #lisp
mindthelion has joined #lisp
techquila has quit [Ping timeout: 250 seconds]
makomo has quit [Ping timeout: 258 seconds]
mindCrime has joined #lisp
ltriant has joined #lisp
Bike has quit [Quit: Bike]
lavaflow_ is now known as lavaflow
iovec has quit [Quit: Connection closed for inactivity]
mSSM has quit [Ping timeout: 245 seconds]
cantstanya has quit [Ping timeout: 260 seconds]
nowhereman has joined #lisp
nowhere_man has quit [Ping timeout: 258 seconds]
cantstanya has joined #lisp
nowhereman has quit [Ping timeout: 245 seconds]
Misha_B has quit [Ping timeout: 244 seconds]
vhost- has joined #lisp
quazimodo has joined #lisp
mindthelion has quit [Ping timeout: 252 seconds]
<no-defun-allowed> Xach: sorry to bug you again, but wrt cl-ipfs-api2, should my friend resubmit her application now that the warning has been fixed?
quazimodo has quit [Ping timeout: 246 seconds]
akoana has left #lisp [#lisp]
quazimodo has joined #lisp
igemnace has quit [Quit: WeeChat 2.5]
Bike has joined #lisp
orivej has quit [Ping timeout: 244 seconds]
orivej has joined #lisp