freenode/#lisp - IRC Chatlog
Search
17:21:40
beach
I should examine the argument by MichaelRaskin and see whether it is correct. I suspect he is making assumptions that might sound reasonable but that are not necessarily correct.
17:22:25
pjb
For example, he wants to call macroexpand-all outside of the lexical context, or without rebuilding it. This is a silly specification.
17:23:27
edgar-rft
apropos pedantic: pfdietz63 said it's not possible to portably write a code walker that works in all cases. Please note that "all casess" includes all impossible cases.
17:31:48
pfdietz63
I have written code where macroexpand-1 is called manually, in macros. It's not an unreasonable thing to do. A particular macro style uses macrolets to pass information down to nested macro forms, in the envirornment.
17:32:39
pfdietz63
If you want your code walker to leave the macrolets in the code, you can't do it in general.
17:34:20
pfdietz63
You can write a code walker that fully expands everything and removes all macrolets and symbol-macrolets, I think. But if you (say) want a code walker that allows manipulation of the code closer to the source level, and gives something that's not fully expanded, it can't work portably in general.
17:35:00
pfdietz63
Actually... I'm not even sure one can do that. What does the code walker do when it gets to a macrolet?
17:36:10
pfdietz63
I am talking about doing this in the lisp one is given, not doing a "Lisp is Turing complete so I can layer an entire new implementation on it that does what I want".
17:42:11
pfdietz63
One way to add that constraint is that it must handle macros that are "opaque", in the sense that for those macros all you can do with them is macroexpand them. You cannot go and recompile them yourself.
17:43:13
pfdietz63
That means you cannot reimplement your own version of environments; those opaque macros need the system environment.
19:20:09
jackdaniel
HiRE: both are used to return from a block. return-from is used to return from a named block, while return is equivalent to (return-from nil :result) (that is to return from block named NIL)
19:22:39
HiRE
asdf_asdf_asdf: I am reading that chapter. In ANSI Common Lisp Graham used `return`, PCL seems to like `return-from`
19:22:41
jackdaniel
HiRE: if you want to look up some operator, it is worth to check out l1sp.org (note that second character is a digit)
20:53:39
juliusdeane
Are there any nixos users here who know how to get SBCL to find C libraries (eg libffi and libSDL)?
21:23:17
smokeink
(sb-thread:make-thread (lambda () (swank/backend:call-with-debugger-hook *debugger-hook* #'anyfunction))) ; thank you luis.
21:23:17
smokeink
note that this gives a half as short backtrace than when we directly call #'anyfunction.
21:23:19
smokeink
(bt:make-thread (lambda () (handler-bind ((sb-ext:step-condition #'sb-impl::invoke-stepper)) (anyfunction))))
21:23:21
smokeink
also thank you jackdaniel for sharing your insight. Funny that for this simple question one of the answers I got in #sbcl was "just pretend that the debugger in sbcl doesn't exist."
21:23:24
smokeink
One small issue with this console only version though: after each step sbcl calls (sb-thread:release-foreground) https://github.com/sbcl/sbcl/blob/master/src/code/debug.lisp#L983 (as the manual says: "If a background thread enters the debugger, selecting any restart will put it back into the background before it resumes.") why is that??!?? now because of this, when debugging, after every step we have to call (bt:thread-yield))
21:32:14
smokeink
5 years ago: https://bugs.launchpad.net/sbcl/+bug/1514211 "Essential part of problem is that stepper indeed does not work in threads without handler-bind installed. I'm sure this should be described in the manual, but there is no single word about it. I suggested a fix for the problem, but it took half a day for me to figure out what was the problem.Please do not ignore this report."
22:25:36
earl-ducaine
I'm trying to get get the :qt system to load under latest quicklisp. (asdf:system-source-directory 'qt)
22:25:37
earl-ducaine
I'm running into some issues which after some investigation seem to be caused by GCC not being able to include <smoke/qtcore_smoke.h>
22:35:54
earl-ducaine
phoe: ql'ing :qt-libs worked! but :qt still fails. Was :qt-libs supposed to make :qt work. or were you suggesting I use that system instead of :qt.?
22:45:58
phoe
AFAIK the former requires all the qt4 libs and headers available on your computer so it can compile some C++ stuff locally
22:58:08
earl-ducaine
phoe: ah. Thanks for the additional info. Unfortunately, :qt is a dependancy in another system that I'm trying to use.
0:55:13
asarch
If I have: (defparameter *values* '('(lisp rocks) '(clos rocks even better) '(mcclim is also awesome))) and then I do: (loop for lists in *values* do (loop for element in lists do (format t "Parsing element: ~a~%" element))), how could I get each element?
0:58:08
aeth
You can think of ' as like multiplication. 2*(4+3)=2*4+2*3. '((foo) (bar)) = (list '(foo) '(bar))
1:02:52
White_Flame
asarch: if you (setf *print-pretty* nil), then you'll see the full lists with QUOTE symbols in them when you show *VALUES* at the repl, and you can see how they're in the way
1:04:06
pjb
'('(lisp rocks)) = '((cl:quote (lisp rocks))) and ask yourself why 1- you put (lisp rocks) in a sublist, 2- you put the symbol CL:QUOTE as first element of that sublist.
1:05:02
smokeink
(ql:quickload :com.informatimago) ; System "com.informatimago" not found. Not on quicklisp any more?
1:05:14
aeth
To use the distributive property analogy: '('(foo)) is (list ''(foo)) which of course is just (list (quote (quote (list foo))))
1:05:47
aeth
If you have to work with quote in quote, be aware of that extra quote, but it's rarely what you want
1:06:42
pjb
smokeink: indeed. cd ~/quicklisp/local-projects ; git clone https://github.com/informatimago/lisp informatimago
1:09:15
Xach
smokeink: the author posted many vile racist and neo-nazi things on twitter and i do not wish to work with them in quicklisp or anything else.
1:10:54
pjb
Note how he benefits from free-speech protection by his constitution, but he acts in a completely totalitarian way against others…
1:11:48
smokeink
yeah but if it was nazi stuff and he doesn't want to associate in any way, it's his freedom too
1:18:27
no-defun-allowed
There is also a...was it draw-cons-tree system on Quicklisp which achieves roughly the same thing.
1:20:34
smokeink
pjb: I have neo-nazi friends, I respect their vision , which in part is insightful, but as far as I'm concerned, it's only in part
1:24:23
holycow
Xach: if you are monitoring peoples personal postings online you are no longer worty of support
1:26:19
Xach
holycow: I don't generally seek out things like that, but if I am aware of them and do nothing, I find it intolerable.
1:28:33
holycow
i will make a donation for the work you have done thus far, i find it helpful, but i will no longer be using ql on principle
1:29:11
holycow
* i have not donated to you and should out of principle for the work you have done thus far
1:29:40
no-defun-allowed
holycow: The paradox of tolerance is an odd one; but not really a topic for #lisp. #lispcafe is usually at its greatest throughput when arguing such philosophical things.
1:29:50
holycow
* i admit that my position is hypocritical because my line in the sand is somewhere along the lines of sexual abuse and i would make a similar call then
1:35:21
LdBeth
Does the terminal emulator in CLiki’s suggested projects require to be a VT100 compatible one?
1:36:18
karlosz
i think with suggested projects you should take them in whatever direction you see fit
1:36:40
pjb
LdBeth: you can define your own control codes, but write down a termcap/terminfo entry for your terminal!
5:05:28
beach
HiRE: If you take a job in the right place, or work for the right customer, your employer or customer might not care whether you use Common Lisp or something else.
5:06:13
HiRE
beach: thats true. Similar to the one artcle...cant remember its name where a guy sells common lisp to JPL
5:08:47
beach
Also, consider getting a job at a place that does NOT use Common Lisp, but that has no good reason not to use it. Then you can show them that you can do better with Common Lisp than with what they are currently using.
5:09:22
beach
That's even better than to work for a company that is already convinced about the virtues of Common Lisp.
5:10:34
copec
I do systems admin and devops and my job is 100% remote, I've managed to slip in quite a bit of CL scripting
5:10:42
beach
The only thing I have found to work is to show that you can create a lot of high-quality stuff in a short period of time.
5:14:33
copec
You seem totally qualified for a lot of arbitrary listings I have seen, here in the states
5:16:31
beach
A degree, while not strictly necessary to get the job done, is a kind of international unemployment insurance.
5:17:08
no-defun-allowed
On the contrary, I am trying to find a part-time job so I can pay for university, but I could still wait since it'll just come out of my taxes after university.
5:19:12
HiRE
I'm currently in a PhD program. I just couldn't get enough of paying absurd university prices ;D