freenode/#lisp - IRC Chatlog
Search
8:19:19
verisimilitude
"{struct termios t; tcgetattr(#0, &t); t.c_lflag |= ECHO|ICANON; tcsetattr(#0, TCSANOW, &t);}")
8:20:04
verisimilitude
With other implementations, I'm writing the same thing, but tcgetattr, tcsetattr, the constants, and other tidbits are real Lisp functions.
8:20:30
verisimilitude
A really good implementation makes the functions accept actual Lisp streams, but only Allegro does this that I'm currently aware of.
8:21:12
verisimilitude
Allegro also provides a function specifically for enabling or disabling system echoing, which is more pleasant to work with than this.
8:23:05
verisimilitude
Of course, the implementations that provide these functions that want a file descriptor instead make you get the file descriptor from the stream and they're very unreasonable about it.
8:23:52
verisimilitude
You can't get the file descriptor of a synonym stream, as an example; no, you must get the stream it uses and then get that file descriptor.
8:24:31
verisimilitude
This is just one reason to avoid nonstandard Common Lisp, most of the implementations provide horrible nonstandard APIs.
8:50:45
beach
ELS is great in that there are so many great exchanges of ideas in such a short period of time.
9:19:11
beach
I am preparing a talk for industry called "choosing a programming language". I am not pushing explicitly for Common Lisp, but I am giving several characteristics of different programming languages, and obviously, the language for which most good qualities add up is Common Lisp.
9:20:24
beach
But currently, the talk does not mention many languages, and I would like to add a list of languages for each quality that I am discussing.
9:35:46
Xof
even PHP isn't really a single-implementation language (there's a facebook variant). Perl5, maybe?
9:36:34
beach
I guess I need to distinguish between "single implementation" and "defined by a reference implementation".
9:38:28
beach
I think what I'll do is I'll work on the "slides" for the talk, and then submit them here again for comments.
9:40:25
verisimilitude
Python is effectively a single implementation language, since so much Python only works properly under it.
9:55:04
smokeink
I wouldn't call python a single implementation language , because it's split into python2 versus python3 and python2 is split into Wide and Narrow , and they're incompatible when dealing with unicode
10:00:33
Xof
TeX has multiple implementations: luaTeX is written in C, whereas regular TeX is in WEB/Pascal
10:01:10
Xof
depends what you call an implementation, I guess; is OCaml its own language, or an implementation of ML?
11:18:05
drunk_foxx[m]
Why do you consider Python a single-implementation language? It has at least 7 of them
11:28:40
makomo
oh man, today was great. first time that i showed my lisp code for a laboratory exercise to the TA :')
11:31:05
schweers
our simulation methods professor refused to grade anything that was not C, C++ or Java
11:34:50
makomo
i mean, it's ok to recognize patterns in what you do, etc., but courses like these are always do dumb and rigid somehow
11:35:01
schweers
our professor (different prof) showed us the strategy pattern (if I recall correctly) in Java and I asked him if he was serious, because it looked like Object Oriented programming in C.
11:36:16
schweers
I didn’t even use lisp to demonstrate how silly this all was, using ruby or haskell was sufficient
11:39:01
makomo
this lab was particularly fun because one of the exercises was implementing simple spreadsheet functionality
11:40:34
schweers
I find it weird that I can too get excited about stuff like that. I somehow think that this should be the most normal thing in this line of work.
11:41:32
makomo
one of the things i'm trying to do is to just convince people by example, instead of just talking about lisp and how great it is
11:43:58
schweers
it is a sad state of affairs that I prefer elisp to most mainstream languages out there
12:09:41
jcowan
"This interface implements only 10% of <random foreign library> cuz that's all I needed. YMMV."
12:23:31
sheepduke
Hey, does anyone know how does clack handle static files? (Like CSS file included in a HTML etc)
12:33:43
jcowan
often it's subtly wrong, and so people either fork it or discard it, and pretty soon everyone is effectively using their own code again
12:34:03
schweers
the more it is spread, the more value, but I would not say that just because it is not particularly widespread, that this is in and of itself a bad thing
12:34:26
schweers
I do think I see what you mean, I don’t think it is no problem at all, but I think it is blown out of proportion
12:35:48
schweers
I also wonder how this would play out if a large portion of our industry were to use (and appreciate) lisp
12:57:11
makomo
jcowan: the problem you describe is something i would attribute to lack of manpower and the size of the community
12:58:06
makomo
i'm not really sure. what other reason is there for not implementing 100% of the bindings?
13:00:07
makomo
jcowan: true i guess, but how is this connected to the fact that lisp normalizes arcane things, etc.?
13:00:46
jcowan
one of the examples from the original paper is "make C object oriented". This is so hard that it has only been done twice, and standardization on C++ and Objective-C has been fairly easy
13:01:18
jcowan
whereas "make Scheme object oriented" is a semester project, and so no OO system for Scheme has ever caught on; everyone rolls their own or does without
13:02:57
makomo
hm i see, it's not as easy to standardize on something as it is in other languages, when everyone can just invent their own
13:03:42
beach
jcowan: What is the lesson to be learned from "only half of CLOS was ever standardized"?
13:04:16
jcowan
lisp is the oldest language still in use, given that Fortran has changed almost beyond recognition
13:06:59
beach
jcowan: Furthermore, there is absolutely not reason to believe that the size of a library is proportional to the age of a language.
13:07:32
beach
jcowan: Good Common Lisp libraries would not run on LISP1.5, so they could not have been invented back then.
13:15:18
beach
jcowan: So I ask you again, what is the lesson to be learned from the fact that only half of CLOS was ever standardized?
13:16:24
beach
jcowan: Do you mean "all of it is so good that it should have been in the standard, but the people writing the standard for some reason did not do it"?
13:17:03
jcowan
makomo: I'm referring to the MOP. beach: Yes, except that it isn't "for some reason"
13:17:41
beach
jcowan: So you mean, anything invented by anybody should have been included in the standard, either fully or not at all?
13:18:53
beach
jcowan: Is it that CLOS MOP is what YOU would like to see included in the standard, so you lament the fact that it didn't happen?
13:19:17
jcowan
No, but it was part of the design from the beginning. What kept it out of the standard?
13:19:38
schweers
did MOP just come late to the party? The authors of The Art of the Metaobject Protocol seem to have CLOS sans MOP as a prerequisite
13:19:54
beach
jcowan: Oh, I can answer that. For good reasons, the committee did not find the MOP to be sufficiently well specified and the specification did not have good enough quality for the language specification.
13:20:29
beach
jcowan: The authors say something like "yeah, we know, this document is not good enough for a standard".
13:21:47
jcowan
rpg's article strongly suggests that the motives for rejecting it were rather more political than that, which makes the authors' remark quite likely to be an attempt to paper over a significant split in the community (also described by rpg)
13:22:21
beach
jcowan: OK, I now understand. YOU would have wanted the MOP to be in the standard, It isn't so now there is something wrong with the way the standard was created.
13:23:36
dim
svillemot: btw the SBCL stanza to add to ~/.sbclrc that we talked about looks like: (sb-ext:restrict-compiler-policy 'debug 3)
13:24:17
beach
jcowan: I apologize for that. I should have said something like "so the only way I can interpret your previous statement is as if YOU..."
13:35:32
tfb
jcowan: at the time CLOS was arriving in CL there were really serious worries that it could not be implemented efficiently on stock hardware. Those worries were even more serious if a MOP was added: it is a long time since I read AMOP but I am not sure it provides an answer as to how slot access can be made really fast, for instance.
13:37:02
jcowan
In general I believe the strategy to be: optimize the common case (e.g. classes whose metaclass is standard-class)
13:38:27
jcowan
Not different in principle from JIT compilation, or noticing that a generic-math procedure (like +, not in the sense of generic functions) is actually being used only to add fixnums and implementing it that way
13:42:19
tfb
Yes of course: the question is does the AMOP MOP (as it existed in 1989 or whenever the cutoff date was) let you do that portably (with the things people knew how to do in 1989 -- remember that lots of people still believed that the right answer was HW still).
13:44:17
tfb
I think the right answer was 'punt until the next standard because we need to get this thing out of the door': no-one knew there would not be a next standard for a quarter of a century!
13:59:00
jcowan
rpg says (again, I have no ax to grind here) that delaying the MOP was probably a good idea, as it was still too implementation-centric; of course, nobody foresaw the collapse of CL standardization.
14:01:35
tfb
yes, he's right (remember he was behind one of the stock-hardware lisps): it was a good idea as it was not ready (my opinion of course, but I didn't know anyone who thought it was ready in my corner of the community)
14:12:50
tfb
there was another tfb who was a cll person too (Thomas Burdick?) but I both tfb and when I can't get that tfeb
14:17:35
jcowan
at one time on another freenode channel there was a huge fad for 3LNs; since I was the only one with a 6LN, my lines stood out like a sore thumb
14:18:47
tfb
Serious question though: are there any non-spammy Lisp fora now which are not this one or reddit (which I am in recovery from)
14:19:55
jcowan
if you mean completely spam-free, probably not, but c.l.l. is not very spammy except for MY USERNAME IS THE SAME AS MY SUBJECT LINE guy.
14:21:29
tfb
jcowan: tha ks perhaps I will look at cll again if I can find a newsreader (or remember how gnus works)
14:24:10
schweers
do any of you folks employ any technique to remove string literals (or any larger literal values) from your source code? My main motivation is in order to avoid having to deal with linebreaks and indentation in the string literals. But I also like the idea of having all relevant strings in one place.
14:24:58
jcowan
point it at https://groups.google.com/group/comp.lang.lisp/feed/rss_v2_0_msgs.xml?num=50
14:29:34
rme
Is that obsessive-compulsive poster still there posting his unasked-for solutions to various questions in whatever programming language he is interested in at the time?
14:33:16
loke
I honestly have to admire, in some sick way, his ability to keep up that nonsense. He must spend a ridiculous amout of time doing this, and to do it for years.
14:35:25
loke
shrdlu68: If it's a bot, I'd be very surprised, and impressed. Also, I just decided to check the current state and one of his drecent posts is actually a correction for a bug in a previous post.
15:57:43
jcowan
adlai, tfb: Technically no, the ANSI standard wasn't published until 1994, so only 24 years ago
16:57:12
dim
last I had a look at it, it seemed to me that cl21 was attempting to provide solutions to things that are not a problem...
17:01:56
tfb
It seems to me that, if there were to be another standard, the things to concentrate on would be things that can't be simply done in portable CL
17:13:02
dim
unicode, sockets/network, threading and dynamic environments and IPC, maybe some more advanced app building blocks such as a reference HTTP cient and server, and I would love to have a pure-CL secure socket (TLS?) but I wonder if that's material for a standard...