freenode/#lisp - IRC Chatlog
Search
18:50:02
beach
1. inverting e and h. 2. Forgetting final period. 3. Using an article in the first place.
18:54:11
beach
Shinmera: My keyboard is acting up. The shift key seems broken. Time to change the keyboard. I have had it for more than a decade.
18:55:20
Shinmera
Okey, I meant to say that capitalising the first letter was another mistake in jackdaniel's sentence that you didn't list.
19:00:13
rme
The thought of a $5.86 monthly royalty is a great incentive for me to get to work on my own book.
19:04:11
warweasle
"Learn a programming language in 30 days to write a book in 180 days!" - my new book.
19:04:19
beach
rme: And it is 10 times better than the book in French that I wrote with my favorite coauthor that give around 2€ per year.
19:08:51
rme
Anyway, my proposed title is "Creative Common Lisp" or "Creative Computing in Common Lisp". If anyone writes it before me. let me know so that I can buy it.
19:14:22
beach
Now that I think about it, "Learn to program in Common Lisp in at least 10000 hours." is a great title.
19:30:37
dmiles
what i am trying to figurte out is if my macro's lambda list has &environment e in it and if the e is passed to macroexpand will that cause the same result if i had not passed it e
19:32:46
beach
dmiles: If your macroexpander needs to call another macro expander for a macro defined in its lexical environment, you might get the wrong answer if you don't use the right environment.
19:35:43
pjb
dmiles: a simple example: (define-symbol-macro s 42) (defmacro m (x &environment e) `(list ,(macroexpand-1 x e))) (symbol-macrolet ((s 33)) (m s)) --> (33)
19:35:53
dmiles
ok so the '&environment e' that my macro uses is the enviroment beelonging to whom.. the environemnt of my caller or the enviroment i would manipulate from labels?
19:36:13
beach
pjb: I find you much more helpful lately, and much less aggressive. Or maybe it's just my own aging that plays tricks on me. :)
19:36:16
pjb
or: (define-symbol-macro s 42) (defmacro m (x &environment e) `(list ,(macroexpand-1 x e) ,(macroexpand-1 x))) (symbol-macrolet ((s 33)) (m s)) --> (33 42)
19:37:42
pjb
We'll see. I need to find a new customer, I don't know if I'll be free then. I guess for 2 days I could do it.
19:38:33
jmercouris
beach: My impression of pjb has been that he's always been helpful, excpet that one time on #ecl where exploded on me telling me to RTFM :D
19:38:36
pjb
Of course, macroexpand-1 also expands normal macros (and macrolet), and other functions take an environment argument.
19:40:35
pjb
dmiles: there's an interesting application of envionment with CLOS: notice that find-class 1- is an accessor and 2- takes an environment. This let you define local classes!
19:41:12
jmercouris
beach: Yeah, hopefully I can make it to ELS and put some faces to names, would be nice
19:41:39
Bike
it allows for the possibility of local classes, except you can't give an environment to setf find-class.
19:43:46
dmiles
i been deciding to have a first class environemnt object be passed arround so that such uses can be used on an environments with indefinate extents
19:45:24
pjb
dmiles: even if it's not allowed to refer at macroexpand time to lexical variable in a local macro; local macros can still refer to surrounding local macros.
19:46:04
pjb
shka: if you leak the dynamic environment outside of the blocks where the local macros are defined, and use it, you could expand using local macros that are not active anymore.
19:46:35
shka
Shinmera: btw, i hooked docstring formatter into documentation-utils, i have few issues to sort out though
19:46:37
pjb
Also, you have to consider that local macros are defined and expanded at compilation time, while the dynamic environment is returned at run-time.
19:46:48
dmiles
pjb: heh, i think my impl of continuations is what inspired a willingness to do this with envs
19:48:05
pjb
dmiles: or to make it useful, you could expand the environments to include more. And letting an environment escape would be equivalent to returning a closure.
19:48:56
dmiles
actually yes.. the problem is as pjb points out is do i see function macros i *should* be seeing due to runtime extent or do i see what is overridden
19:50:39
pjb
for example, find-class modifies the environment at run-time. while defmacro provides a compilation-time environment, and assumedly macroexpand is used at compilation time too (but not necessarily). So you have the problem of transporting environment (and their enclosed bindings) from compilation time to run-time (possibly thru a FASL, so now you have to be able to write environment and load them!).
19:50:55
dmiles
oh yeah and about what pjb is saying.. this is kinda been a big issue.. i currently have to pass two envs to around
19:52:27
dmiles
i been trying to come up with a way to merge them somehow.. its not a big deal for my compiler.. i pass two arround.. i just trying to decide how that will be at runtime
19:53:50
beach
For what it's worth, environments figure more prominently in SICL. Most (all?) Common Lisp function that take an &optional environment argument dispatch to some SICL-specific generic function that dispatches on that argument.
19:54:08
pjb
dmiles: well, they should be merged anyways, because you can also macroexpand at run-time!
19:55:49
dmiles
pjb: yes .. it turns out the runtime env needs basically almost everythig the compiler env would have had
19:57:19
pjb
The thing is rather that the way clhs specifies it (that environment have only dynamic extend, without leaking them), let the compiler optimize out the local macros and symbol-macro, so they don't have to go thru to the run-time environment.
19:58:14
dmiles
yeah the whole of what dynamic extent is about ios letting one " optimize out the local macros "
19:59:59
dmiles
really what i meant it i dont feel comfortable with inlining a local macro that expects to not get what functions it will call overridden
20:03:39
dmiles
pjb: :( , that is why whatever i do i have to make sure i dont do something unexepected :)
20:09:55
dmiles
shka: i gensym (rename ) everything that everything that is not part of the global environment .. so continuations can be defined and found over a global namepace (i think this is how most impls would have done it) my compilation envinments job is to remember these names durring compilation.. at runtime i have lost all that info
20:10:34
dmiles
so i am trying to decide if i should not discard it.. i think pjb is talking me into not
20:11:04
pjb
If the environment is not leaked, you can discard it; if it is leaked, you need to keep it.
20:12:08
dmiles
yeah i think why i am considering leakjing it is to movtive mysself to wwrite the code arround keeping it
20:19:23
dmiles
the only difference between flets and labal in my code is in flets i delete the shadows at line 42 https://github.com/TeamSPoon/wam_common_lisp/blob/master/prolog/wam_cl/defun.pl#L35-L50
20:22:30
phoe
I will now try to spin up a brand new Linux container and try to reproduce this Qtools/Lparallel bug on it.
20:38:08
beach
s/perfect is/perfect it/ The full day cooking for my favorite coauthor, feeding her, and then working on our ELS submission related to partial inlining clearly had some consequences on my typing skills.
20:48:22
phoe
She won't attend. She'll stay in Poland - she had a car accident two years ago, and it still prevents her from travelling far.
20:48:45
phoe
KZiemian is my partner-in-CLUS though, and I thought that you had him on mind. He'll probably come to ELS with me.
20:51:05
beach
phoe: Sorry, "partner" is the current euphemism for "wife/husband/girlfriend/boyfriend/" I hate it, but that's the way it is.
20:55:50
beach
jmercouris: I consider a "partner" to be an administrative relationship, like me and my wife who married to avoid giving half of the house to our families, or like two people getting together to create a company.
20:57:02
jmercouris
beach: Are you listing an example, or are you actually saying you and your wife married for the purposes of not giving your property to other relatives?
20:58:49
jmercouris
Can't tell if you guys really like each other, or really don't like the relatives, either way, none of my business and off-topic :P
20:59:22
aeth
jmercouris: When I hear "oracle" I don't interpret the word as anything other than "give me all of your money, and pay per processor core"
20:59:32
beach
Sure. We do like each other. It is all relative to specific French rules. Nothing to worry about.
21:01:23
beach
jmercouris: I invite you to come visit us. You wouldn't be the first on #lisp do to that. And then you can find out for yourself.
21:06:21
jmercouris
Ah yeah, American culture is something complex, and I don't think a non-native can pick it up, because we are also very subtle
21:06:33
jmercouris
a huge part of the complexity arises from the mixing of so many cultures I think
21:07:45
jmercouris
I also have another theory, all of the most extreme types of individuals are in the US as those are the types of people that would leave their home country in favor of something new
21:09:51
rpg
it's worth remembering that the original model of the confederation was like the EU.... But if this keeps up we need to move to #political-science!
22:51:13
jmercouris
emaczen: here's what you need: https://gist.github.com/b0692ae85cfb9151d31e2ec690e51ef1
22:52:34
jmercouris
emaczen: for the sender you can use your content view (or really another view within your layout I think)
23:15:04
dmiles
the consequences of symbol-macroletting over a global variable is an error .. with-slot seems to symbol-macrolet.. i guess it is the case that there are typically very few global vars
23:15:18
jmercouris
emaczen: I have no idea, it is bound when starting the IDE and should be in your bootstrapping code for standalone
23:16:26
jmercouris
emaczen: if you look in my source cocoa/application.lisp you'll see where I setq *nsapp* as part of the bootstrap/startup of the standalone app
23:19:00
emaczen
jmercouris: I didn't really want to mess with it so I just figured out how to do it with cocoa...
23:19:52
emaczen
having to program a little bit with cocoa/objective-c makes me VERY thankful for common-lisp, there is some strange stuff out there
23:22:39
jmercouris
emaczen: You can also get access to the shared application via another function called like [sharedApplication] or something, I can't remember
23:33:47
asarch
PCL in chapter three says about some implementations compiles the code and other just interpret it
23:34:24
jmercouris
asarch: Yeah, but I believe SBCL does both, I'm not an SBCL user though, many people in this channel are though
23:35:38
dmiles
in clisp we have to ectually tell it we want a function compiled.. is that the case in SBCL>
23:38:01
Shinmera
I don't think sb-fasteval is activated on standard fancy builds, but that's the more recent and involved interpreter.
23:38:34
asarch
I remember quiet long ago that someone told me that God used Lisp to create the Universe
23:46:59
dmiles
i am calling WAM-CL a compiler since before i run a form at the repl i convert it to prolog source, then on several versions of prolog (especially the one i am using) code is compiled whenever it is called
23:50:16
dmiles
so (disassemble ..) calls clause/2 (which decompiles the Zip-WAM) and prints out what was threre
0:15:43
dmiles
what is neat is on YAP-Prolog it compiles to the Extended Andorra Model (EAM) https://arxiv.org/pdf/1009.3806.pdf
1:26:12
rpg
dmiles: compiling one high level language to another does seem a little perverted. But on the other hand, everyone's compiling stuff to JavaScript these days, so go figure!
1:27:15
rpg
dmiles: Once you get WAM-CL done, you can run Peter Norvig's Prolog-in-Lisp on it, which will almost be an MCEscher drawing!
2:25:42
ebzzry
When using S-L-A-D (SBCL), the path /usr/lib/sbcl/sbcl.core is hardcoded inside, right?
2:45:43
loke
cgay: Be careful though. Don't forget that f-k-r-t will block the östenfreischer unless the zahnspühle is set to ZWEI
2:47:30
drmeister
If I have a remote swank server and I want to access the file system on the remote server - is there a way to do that through slime?
2:48:24
loke
drmeister: https://www.common-lisp.net/project/slime/doc/html/Setting-up-pathname-translations.html#Setting-up-pathname-translations
5:20:23
jack_rabbit
playing with lparallel. Anyone know why the pmap* functions seem to be consing up a lot of memory?