freenode/#lisp - IRC Chatlog
Search
8:29:01
#lisp
** TOPIC Common Lisp, the #1=(programmable . #1#) programming language <http://cliki.net/> <http://paste.lisp.org/new> logs:<http://ccl.clozure.com/irc-logs/lisp/>|contact op if muted|SBCL 1.3.0, ASDF 3.1.6, CMUCL 21a, ECL 16.0.0, CFFI 0.16.0, cl-launch 4.1.4, flexi-streams 1.0.15, Hunchentoot 1.2.34, Drakma 2.0.1
9:59:41
smokeink
when i try to step-debug in slime, it always jumps to some code inside swank.lisp . Someone suggested recompiling swank with debug info turned off. I tried like this, in a fresh sbcl session: (declaim (optimize (debug 0))) (asdf:load-system :swank :force t) , this only recompiled swank-loader.lisp , then i did (compile-file "/home/smokeink/.emacs.d/..etc/swank.lisp") and restarted slime to see if it made an
9:59:47
smokeink
y difference. It didn't. (break)ing then pressing 's' still goes to swank.lisp . What am i doing wrong? malisper.me/2015/07/07/debugging-lisp-part-1-recompilation/
14:06:10
anti-freeze
Hi everyone. So, I'm reading "On Lisp" and I got to chapter 10.3, where he talks about non-functional expanders in regards to macros. In his examples he destructively modifies macro rest args, displaying how this could cause you to unexpectedly alter the macro call. For some reason, the issues described aren't reflected in SBCL (example: https://www.refheap.com/114968). Why doesn't this work as expected? Also, is it st
14:08:24
fiddlerwoaroof
"list n. 1. a chain of conses in which the car of each cons is an element of the list, and the cdr of each cons is either the next link in the chain or a terminating atom."
14:09:26
lieven
anti-freeze: it could. it's not guaranteed. typically it will happen when the code is compiled and even then it might depend on optimisation settings
14:09:37
fiddlerwoaroof
anti-freeze: the main reason is probably that the standard doesn't define what happens when &rest is modified
17:06:41
beach
OK, after some thinking, I think I have decided to use an Earley parser both for LOOP clauses and for lambda lists.
17:08:11
beach
Currently, for LOOP, I am using my own combinator parsing framework, but it does not allow backtracking, which is a problem for modularity, because one has to be careful with clause ordering.
17:09:33
beach
But it has the quality that I absolutely detest, namely, it refers to a similar library written in some other language, and the documentation is such that one has to know that other library and language already.
17:11:20
beach
So initially, I thought I would improve cl-parser-combinators, or perhaps just the documentation. But then I thought that a better Earley parsing framework would be useful. There is one already, but I am planning to make this one more flexible.
17:11:22
drmeister
beach: I'll open the repository in a few days once I have time to attach the copyright notices. That's all I need to do - right? Submit paper, open repo for inspection.
17:15:17
beach
One major reason for thinking of combinators parsing and Early parsing is that they do not have such restrictions, and they are naturally modular.
17:27:31
jasom
also, there is a monadic parser hidden within esrap, but esrap only parses strings, and I'm assuming you'll want to parse lisp forms rather than strings
17:30:10
PuercoPop
there is also https://github.com/gigamonkey/monkeylib-parser, but it is not documented and it seems abandoned. Anyone has experience with it?
18:03:06
jasom
that is you will always either get a parse-tre, or fail with esrap, but smug can produce a parse forest
18:04:43
jasom
also, as I said before esrap can only parse strings, but smug is generic; this is good if you want to use a separate tokenizer
18:06:12
jasom
I hadn't seen it before, but it looks like esrap-liquid adds the ability to parse non-string sources, as well as specific forms of context-sensitive grammars that cannot be described with PEGs
18:12:09
dilated_dinosaur
hi everybody: question, what is the macro that is like macrolet but interns its symbols in another package (ie. for making DSLs)?
18:15:55
dilated_dinosaur
macrolet will define mini macros that are only accessible in the context of its &body
18:16:26
dilated_dinosaur
you could, in package A, invoke a macro from package B that itself has a macrolet.
18:17:04
dilated_dinosaur
unless i am careful, all the 'macrolet'ing mini-macros in package B are 'interned' in package B context
18:17:39
dilated_dinosaur
and i have to (intern "SYMBOL" *package*) all the macro-let jobbies or it doesn't work smoothely
18:18:15
|3b|
creating symbols from inside a macro is sometimes considered bad form, partially due to reasons like that
18:19:11
|3b|
the more recent/preferred method is to just pass in all the symbols as arguments. compare the newer defclass which uses that style to defstruct, which creates symbols
18:20:17
dilated_dinosaur
hmm okay. i guess that may work. but it makes for a bit ugly DSL, asthetically speaking
18:20:51
|3b|
yeah, for DSL it is sometimes worth putting more effort into dealing with the problems
18:24:31
dilated_dinosaur
anyhoot. if anyone else wants to see what i am trying to do see https://github.com/ivankocienski/lspec/blob/master/src/test.lisp
19:08:10
schoppenhauer
that is, I can specify that n things can be done in parallel, in their own threads?
19:08:17
Shinmera
There's a brazillion ways to parallelise a task, so there's loads of libraries to do that.
19:09:11
schoppenhauer
I don't really need something fancy. I just have lots of stuff to do. which is mutually independent.