freenode/lisp - IRC Chatlog
Search
16:45:25
_death
beach: I agree.. and also there are many gotchas that may need fixing.. but I'd rather stick with this standard because I see what other people want to put in a new standard ;)
16:46:13
beach
I promise not to put anything new, perhaps with the exception of package-local nicknames, in WSCL.
16:46:55
beach
And maybe the semantics of special variables in the presence of threads, without requiring that threads exist.
16:47:43
_death
beach: personally I see issues with package-local nicknames (I think I explained them here in the past).. I haven't used them anywhere, though I can imagine there might be a case where I would
16:49:20
_death
when I see phoe using a:foo here to say something about alexandria, I think it's a symptom ;)
16:50:50
phoe
https://github.com/search?l=Common+Lisp&o=desc&q=local-nicknames&s=indexed&type=Code for github
16:52:53
_death
although it has different implementations.. but no spec, so beach's work may be useful there
17:01:20
jackdaniel
and as we've heard, modern lisp is being ported to gerbil scheme as it bitrots ,-)
17:01:52
beach
I would get started with WSCL if I could just get the dpANS as a single LaTeX document (containing multiple files obviously) rather than a custom TeX document per chapter.
17:41:08
tinga
I'm getting a message "Session secret is unbound. Using Lisp's RANDOM function to initialize it." from somewhere in the startup of this app (not sure yet where), so I'll have to track that down I guess.
17:41:58
phoe
I just had the funniest idea of replacing *standard-output* with a Gray stream that calls BREAK whenever anything writes to it, so you can inspect what exactly produces the output you are looking for
17:43:24
ikrabbe
to interface with os randomness you have also to assure that this device is secure. If you are really interested in cryptography you should think about a hardware crypto device.
17:48:19
v3ga
newbie question. so I used quickproject to create a skeleton project and it adds #: before the project name. (defpackage #:project-name ...) it does that in both of the lisp files created.
17:48:50
v3ga
when I created the project I did add in a direct path but without a trailing '/' it created the project directory but i did get a cowerce warning...
17:53:39
v3ga
phoe: lol ok, I went ahead and made another project the correct way. I expected as much for ther coerce warning
17:55:34
phoe
the #:foo notation for system and package names is used when the symbol's package doesn't matter and we just want the name
17:56:53
Xach
when implementing a didactic thing with the same behavior as the package system, i found it a lot easier to understand things when designators were forbidden.
17:57:29
Xach
when working with symbol management, using symbols in place of strings can really slow down building intuition when you are learning.
17:57:47
v3ga
oh...ok, just familiarizing myself. It struck me as similar to clojures var reader macro #'
17:59:09
ikrabbe
When using keyword statements like :|some name| I get the error "illegal terminating character after a colon: #\|"
17:59:16
Xach
phoe: not that one particularly, but SHADOW for example takes a designator for a list of string designators.
17:59:30
v3ga
I was just thrown off because it looked a little different from a tutorial that i'm going through. Now I see...
17:59:37
Xach
so you could do (shadow 'cl:car) and it actually means ("CAR"), and the home package doesn't matter
17:59:50
ikrabbe
this happens after loading some files. Is that error known to someone, or should I search my own code for the problem?
18:02:06
ikrabbe
Hmm, seems I acted bad on the readtable... phoe: (devfar testvar :|yes thats my problem ;)|)
18:06:13
PuercoPop
VincentVega: Regarding inserting comment sin macro-expansions you could use (progn "Comment as a string here" ...) as way to do so. But I think it is better to leave a comment in the macro with an example expansion tbh.
18:20:42
ikrabbe
phoe: yes possibly I had one, I don't have one, right now: (get-macro-character #\|)
18:22:48
VincentVega
PuercoPop: Yeah, I think I am gonna go with that, an extra bit of information won't hurt, especially that there are no warnings or other downsides that I can see.
18:23:52
PuercoPop
ralt: np, Thanks for the contribs. Now if you want to write one to use the secret service API through dbus ^_^. I'll probably look into your latest one after work today
18:30:04
ikrabbe
Actually it is somewhere in my local libraries I load when I start my workspace, with some experiments and other stuff in it
18:38:09
ralt
Look at the pinentry module. If gpg-agent is setup right, it asks for your password in stumpwm.
19:01:51
VincentVega
What's "safe code"? "CLOS slot types form a notable exception. Types declared using the :type slot option in defclass are asserted if and only if the class was defined in safe code and the slot access location is in safe code as well." http://www.sbcl.org/manual/#Controlling-Verbosity
19:03:14
phoe
you can use both, declare is for local declarations, declaim is for global proclamations
19:04:16
VincentVega
I could swear this was enough to cause an error in class where initform 0 was with type string
19:04:53
phoe
there's been lots of similar breakages when SBCL started recognizing this sort of stuff as errors
19:32:57
ikrabbe
actrually the readtable seems to be restored to its original afterwards, so I still don't know if this happens here.
19:33:49
PuercoPop
ralt: Secret Service is the fdo API, gnome-keyring is one of the implementations. Althought tbh I use my own gpg-backed solution from Emacs for my personal needs.
19:35:05
phoe
like, explicitly create a new readtable, set the macro character inside it only, and then read with this readtable set
19:35:35
PuercoPop
ralt: No, I haven't mainly because my homegrown solution works 'good enough'. But I remember you had a stumpwm contrib for passwords
19:38:34
phoe
I assume that the second set-macro-character might be invalid, because it does not set non-terminating-p
19:39:25
phoe
still, you're mutating global state, my first advice would be to grab yourself a custom readtable for that
19:45:25
ikrabbe
it reads the output of an ascii program (actually the plan9 one) and builds a table of keywords with the names from the ascii table, that I can remember better, than the CL character names
19:47:32
ikrabbe
(tostring '("This is a" :nl "simple multiline string." :nl "Actually I used the code to write sed statements with" :tab " and " :esc "chracaters".)
19:51:23
ikrabbe
I wondered for years now how to escape the quoting problem, when writing commands for remote contexts, because what you do there is:
19:52:27
ikrabbe
ssh -l user system "bash -c \"sed -e \\\"s/\\\\\\\\/\\\\\\\\\\\\\\\\/\\\"\"" # of course with a bit more sense ;)
19:53:14
ikrabbe
then I found lisp as the only language to get around that problem without too much problems.
19:54:28
ikrabbe
Now I write my commands as embedded lists: '("ssh" "-l" "user" "system" ("bash" "-c" ("sed" "-e" ("s/\\/\\\\/"))))
19:55:10
ikrabbe
and I can decide through the level how many escapes I need for such \" and \\ characters.
21:03:37
v3ga
so how do you go about removing an undefined variable warning. i've tried makunbound and unintern...neither one of those seem to be what I want.
21:10:05
v3ga
phoe: basically i'm getting an undefined variable for a function I mispelled and removed. https://pastebin.com/Nr398e6q
21:15:41
aeth
This is a case where having variables and functions with the same name can lead to confusion because you were thinking the issue was renaming the function, when the issue was related to a typo in a variable name.
21:20:41
v3ga
Jesus It's right there too... I'm coming from clojure and not used to a usable stacktrace. -_-
0:46:24
Bike
i think i found a bug in sbcl's type simplifier but i'd appreciate a sanity check: could someone else compare (let ((c (cons 2 4))) (typep c '(or (cons (integer 0 8) (integer 5 15)) (cons (integer 3 15) (integer 4 15))))) against (let ((c (cons 2 4))) (or (typep c '(cons (integer 0 8) (integer 5 15))) (typep c '(cons (integer 3 15) (integer 4 15)))))
0:59:03
Nilby
Bike: That the second form is T seems like a bug to me. But I hardly every use such specific type checking.
1:05:44
_death
yeah.. a "simpler" case that shows it is (let ((c (cons 'a '0))) (typep c '(or (cons number symbol) (cons symbol number))))
1:16:49
Bike
also i wouldn't be surprised if ccl cribbed logic from sbcl. and the sbcl logic has a comment saying "UGH." so i don't have the greatest confidence in it
1:18:54
Bike
sbcl simplifies the type to (cons (unsigned-byte 4) (integer 4 15)) but i think (or (cons (unsigned-byte 4) (integer 5 15)) (cons (integer 3 15) (integer 4 4))) would be more correct
3:18:41
aeth
charles`: I mean, it's possible that gensym's a nonnegative (or positive? does it start at 0?) fixnum
3:19:57
aeth
Well, no, I don't think that would be conforming for an implementation to do that because you can rebind *gensym-counter* to any integer
3:20:55
aeth
(let ((*gensym-counter* (expt 2 123))) (gensym "FOO")) => #:FOO10633823966279326983230456482242756608
3:21:22
aeth
at least, going off of this: http://www.lispworks.com/documentation/HyperSpec/Body/v_gensym.htm
3:23:00
charles`
I'm not having any issues, I just want to make sure I wont run into any in the future
3:24:18
aeth
well, this seems to work in SBCL... (let ((*gensym-counter* (expt 2 999))) (gensym "FOO"))