freenode/#lisp - IRC Chatlog
Search
20:02:14
phoe_krk
https://www.google.pl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwijyZzux_rKAhVl1XIKHXznDQoQFggfMAA&url=https%3A%2F%2Fwww.cs.cmu.edu%2F~dst%2FLispBook%2Fbook.pdf&usg=AFQjCNHzM32v612ibAe2--S-auWx7GbFDA&sig2=QRT3QA92NvLqX1tZ8graxg
20:09:11
phoe_krk
I mean, can I ask it "minion: gisc" to have the link to Gentle Introduction to Symbolic Computation pop up?
20:09:28
minion
phoe_krk: direct your attention towards pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
20:10:12
minion
phoe_krk: please see gentle: "Common Lisp: A Gentle Introduction to Symbolic Computation" is a smoother introduction to lisp programming. http://www.cs.cmu.edu/~dst/LispBook/
20:10:59
jsgrant
minion: Is that worth the read? I'm considering doing a learning log, starting from an introductory refresher text.
20:10:59
minion
Is that worth the read? I'm considering doing a learning log, starting from an introductory refresher text: An error was encountered in lookup: Parse error:URI "http://www.cliki.net/Is%20that%20worth%20the%20read?%20I'm%20considering%20doing%20a%20learning%20log%2C%20starting%20from%20an%20introductory%20refresher%20text?source" contains illegal character #\? at position 161..
20:13:41
pavelpenev
phoe_krk: evaling lisp code is rather hard to secure hence why it isn't available
20:14:25
phoe_krk
even through that shadow I was able to poke a hole through that and eval whatever I'd like, so. :P
20:19:24
kpoi
What Common Lisp implementations do you guys use? I have a project that I want to make portable to the most common ones, right now it only works on SBCL, any tips?
20:19:42
PuercoPop
I wonder why some people write (in-package #:cl-user) (defpackage ..) instead of (cl:defpackage) ..
20:21:15
kpoi
I'm not sure yet I haven't tested anywhere else but SBCL. It might work fine on all of them...
20:24:22
Shinmera
Note that some things in the standard are implementation-dependant, so it's always worthwhile to test anyway.
20:24:35
PuercoPop
phoe_krk: I am aware that portable is an overloaded term, but that is not enough for code to be portable http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_p.htm#portable
20:25:53
phoe_krk
like (eq 2 2) evaling to T, which was something that gave me a moment of pure WTF a moment ago.
20:27:11
phoe_krk
Scan the functions you use for whether they anyhow utilize implementation-dependent behaviour.
20:29:03
kpoi
it says "You are no longer marked as being away" every time, but I WANT to be marked as away
20:36:43
PuercoPop
phoe_krk: I was trying to come up w/o a good example, that didn't seemed contrived but have fail to come up or remember one. However more than implementation-dependent it is a constraint upon relying only on documented behaviour. For example, setf literals is not implementation-dependent but undefined. Sorry I couldn't come up w/ a more illustrative example
20:42:21
Shinmera
Both of which boil back down to implementation-dependant, since the implementation could try to bridge things over as much or little as it wants.
20:50:25
Shinmera
ASDF is probably the most portable code out there, as long as you only rely on features from ASDF2.
20:51:02
Shinmera
Either way, it's the standard build system and as such well tested on all implementations.
20:51:59
kpoi
Any feedback would be appreciated, it is my first "Open source" project: https://github.com/equwal/LispFuck
20:54:11
phoe_krk
Hum. You might want to put an optional reader macro there so you can go like #F>>>><
20:55:48
kpoi
I have never heard of a reader macro, I just finished reading Peter Siebel's book and he said to come here for help. Why would I want to go like "#F>>>><"?
20:56:28
Shinmera
Reader macros allow you to modify how the text is read, so they allow syntax modification.
20:57:01
phoe_krk
and it'll work the same way, although giving you a less Lispy and more Brainfucky feel I think.
20:59:27
phoe_krk
after using https://github.com/nvbn/thefuck I would consider this to be a very fine addition to an average REPL.
21:17:03
rpg
Does anyone know about QL internals? How does it do introspection? Does it have to load everything up, or does it do some kind of heuristic parsing of libraries' asd files?
21:19:46
Bike
ah, no, it's a bit more complicated check ql:autoload-system-and-dependencies, it uses asdf to compute the load strategy and then does the handler bit.
21:26:36
rpg
Bike: Thanks. We were arguing over whether QL did some sort of groveling where it needed to be able to load or read a system definition /without/ actually loading anything.
21:27:08
rpg
ASDF is not (cannot be) pure, so if you load an ASD file, you may change the image by loading systems needed to process the defsystem form.
21:28:02
rpg
We have been trying to figure out how QL and ASDF interact, with an eye towards fixing some ASDF stuff.
21:40:40
PuercoPop
rpg: I was going to ask, is the purpose of asdf-user to put all the system definitions in that package?
21:41:25
rpg
PuercoPop: Yes, that was fare's intention. I am old school: I have an emacs template for my ASD files and just make a new package for each one.
21:42:05
rpg
PuercoPop: Fare didn't like the old proliferation of anonymous packages. I'm not entirely sure why, since they provide namespace hygiene.
21:45:49
rpg
ASDF used to create a new package for each system, and load the system definition file into that package.
21:52:52
kpoi
Say, how do you get out of a package that doesn't inherit COMMON-LISP? I am trapped in my brand new G1334 package
22:04:30
Fare
rpg: they failed to provide hygiene. They just made symbols unreachable when you needed them
22:05:39
PuercoPop
rpg: you can replace aif with alexandria:let-if, the result will likely be mroe readable
22:07:06
rpg
axion, PuercoPop: Thanks! didn't realize that there was anything because of the declaration against anaphoric macros.
22:10:08
Fare
in practice, with the temporary ASDF~d packages, you still had to create your own package for anything serious, so all that was left of the pseudo-hygiene was a non-standard thing that made some symbols inaccessible. All the disadvantages, none of the advantages.
22:53:18
rpg
Fare: if you are still around, is there an easy way to run all the lisps on a single test (instead of all the tests on a single lisp)?
23:00:20
rpg
OK. I'll have a look. BTW, I'm trying to do this in lisp, with WITH-ALL-LISPS, and it seems like the GET-LISPS doesn't use the envar by default....
23:46:24
rpg
Quick SLIME question: should I expect SLIME to properly indent :METHOD inside DEFGENERIC?
23:51:44
phoe_krk
rpg: silly question, but are you including slime-indentation inside your slime-setup?
23:52:45
phoe_krk
(slime-setup '(slime-fancy slime-asdf slime-mrepl slime-indentation inferior-slime))
23:54:44
rpg
so what I see is that :METHOD forms have the first form of the body lined up under the argument list, instead of "outdented"
0:01:17
rpg
phoe_krk: looks like it's defined -- would you mind testing it? It's definitely not working for me, and slime-indentation is in features....
0:40:11
kpoi
I didn't know you could make your own reader macros so I am reading about them in Let Over Lambda
0:43:49
pillton
I'm not saying they aren't useful, but I can understand why they are mentioned in the last chapter.
0:44:19
phoe_krk
basically they interfere with Lisp's usual syntax which is, to put it lightly, a generalized lack of syntax. :P
0:44:32
kpoi
pillton: They aren't really mentioned, he just alludes to their existence with the XML quote I sent a minute ago
0:48:21
kpoi
;I don't think this is exactly how it worked, but you could make it work like this if not.
0:52:16
learning
does lisp have support for audio in the standard library or do i need to use a third party lib?
0:57:58
learning
if anyone else has worked with audio and has an open source library to reccomend please do
1:00:18
PuercoPop
learning: not my lib, but there is this WIP https://github.com/rick-monster/cl-alsaseq
1:33:15
Fare
learning: there's mixalot if you don't care too much about timing, or incudine if you do
1:34:48
Fare
or then again, outside cl, there's supercollider or extempore. Or in clojure, overtone or klangmeister
3:35:01
drmeister
What do you use to include source code? verbatim mode looks ok but I haven't figured out how to get captions or labels/refs.
4:30:05
beach
drmeister: Look in the SICL Specification directory. Look for \inputcode in TeX files and look at the shell script named codify.
4:31:08
Opodeldoc
beach: I shot you an email couple or few hours back. Wasn't sure which to use so I sent it to the one in the paper
4:39:28
beach
Opodeldoc: Some of your remarks I'll have to run by my wife, who has a PhD in English and who is a member of the IBM style and word-usage council.
4:41:33
beach
For (First) Climacs, it is more complicated, because it used Drei which is part of McCLIM, so I would have to make sure I don't break input editing in McCLIM if I were to use Cluffer there.
4:53:46
Opodeldoc
beach: I never got my head around clim-anything tbh. I'd just love to see some syntax hilighting that isn't just blind matching of characters :)
4:54:59
beach
OK. (First) Climacs already does a better job than Emacs in that respect, but the technique used is wrong and unmaintainable. For Second Climacs I have a much better idea of how to do it.
4:59:29
beach
For Second Climacs, I also plan to have a better isolation between the model and the user interface, so that I can put a CLIM II GUI on it now, and a CLIM3/CLIMatis interface later when it is available.
5:21:57
beach
But my remaining life expectancy is only around 20 years, and I am not sure I will have time to do all this.
5:23:49
Opodeldoc
beach: I can't for the life of me find a reference, but I'm pretty certain both nvi and vim also just use a gap buffer
6:02:58
moore33
beach: Good morning! I'm reading http://www.infoq.com/articles/no-more-mvc-frameworks, which you might find interesting with your CLIM hat on.
6:09:23
minion
emaczen, memo from pjb: yes, there's at least one OSX app in the App Store written in CCL: 'Clozure CL.app'.
6:09:23
minion
emaczen, memo from pjb: you need to write a wrapper Objective-C class with a lisp slot refering to your lisp object.
6:15:54
Opodeldoc
"you don’t necessarily get this warm feeling that, even at Google, people know what they are doing:" haha
6:22:46
beach
Recently, from reading articles and now this web page, I have detected a change in the way "API" is used.
6:23:28
beach
It now appears to mean "The means by which a web server communicates with the client web browser".
6:27:32
smokeink
when it comes to web dev, api usually means the backend that responds with 'json data'
6:29:46
beach
No wonder I had a hard time understanding those articles I read, given the definition in my mind of "API".
6:32:36
Opodeldoc
It's safe to assume anything web means something different, as they're reinventing bloody everything.
6:57:00
fiddlerwoaroof
beach: by "explicit view updates" do you mean that the view should not be able to request an update?
7:02:30
fiddlerwoaroof
I was just reading an article by a smalltalk guy about how everyone gets MVC wrong.
7:02:32
fiddlerwoaroof
http://blog.metaobject.com/2015/04/model-widget-controller-mwc-aka-apple.html
7:09:22
Opodeldoc
"Right now we write UIs by poking at them, manually mutating their properties when something changes, adding and removing views, etc. This is fragile and error-prone. Some tools exist to lessen the pain, but they can only go so far. UIs are big, messy, mutable, stateful bags of sadness."
7:27:30
emaczen
interesting -- now I know what the GUI is made from (or somethign similar) when my OS crashes lol
7:31:12
Opodeldoc
I knew there was an obvious example. I can't believe I didn't think of editors hah
7:47:25
myrkraverk
Oh, that's interesting. People did a lot of cool things with softfonts in real terminals too.
7:47:58
myrkraverk
Anyway, I am wondering, the SBCL garbage collector is essentially single threaded, right?
7:48:29
myrkraverk
So, if one thread holds a reference to something, another thread will not garbage collect it? Is what I mean to ask.
7:49:46
p_l
then, a single-threaded GC happens, in this case single-threaded means it marks and collects from a signle thread
7:50:35
myrkraverk
I am going to use a CFFI binding in multithreaded envirnmont, and am wondering what (if anything) I need to make thread safe on the C level. (I have already reviewed the C++ code I'm binding)
7:53:08
p_l
and that's on a limited ANSI terminal, unlike on advanced stuff in XTerm (which does vector graphics if you ask it) or one of the crazier DEC VT-series with programmable fonts
7:56:31
p_l
https://raw.githubusercontent.com/algernon/potential-happiness/master/docs/screenshots/screenshot-2.png