00:00:16 zbigniew: wtf? 00:00:38 zbigniew: Oh. I see the context now. 00:01:19 gnomon: Do you have a specific example of the space/tab breakage? 00:01:30 gnomon: http://paste.lisp.org/display/85353 certainly seems right to me. 00:02:50 gnomon: Oh. I found it. I'm awfully close to blaming your client. There used to be some tab/space replacement code in lisppaste, but I nuked that all a while ago. 00:04:20 tabs should be banned in all nations ;) 00:05:18 jim_west [i=jsidenei@200-100-55-62.dial-up.telesp.net.br] has joined #scheme 00:06:30 Hello Araujo, from Brazil ? 00:06:44 So what is up with scheme docstring? Are they implementation dependent? 00:08:17 So, what is discussed on this room, which kind of scheme ? 00:09:05 a scheme for writing better programs ;) 00:09:37 Is this a trick question? 00:11:43 minion: memo for gnomon: given that both OmniWeb (WebKit) and Firefox paste tabs correctly, I really don't know what your client is doing, but I wash my hands of this. http://paste.lisp.org/+1TUX looks right to me. 00:11:43 Remembered. I'll tell gnomon when he/she/it next speaks. 00:11:53 -!- dmoerner [n=dmr@ppp-71-139-30-13.dsl.snfc21.pacbell.net] has quit [Remote closed the connection] 00:12:43 cool, a `practical' use for a bot 00:13:03 minion: Do you resent being called practical? 00:13:03 you'd have to tell me... my memory circuits are fried 00:13:17 heh 00:15:21 -!- jim_west [i=jsidenei@200-100-55-62.dial-up.telesp.net.br] has left #scheme 00:18:05 rarely is the question asked, "is our minion learning?" 00:18:15 minion: is our minion learning? 00:18:16 no 00:18:22 Well that settles it. 00:18:37 rudybot: later tell bytecolor Sometimes practical, sometimes dubious. 00:18:37 minion: memo for bytecolor: TimMc told me to tell you: Sometimes practical, sometimes dubious. 00:18:38 Remembered. I'll tell bytecolor when he/she/it next speaks. 00:18:49 What a concept. 00:18:55 Sometimes just plain silly. 00:20:34 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 00:21:47 -!- MrFahrenheit [n=RageOfTh@users-120-56.vinet.ba] has quit [Read error: 110 (Connection timed out)] 00:23:19 foo? 00:23:19 bytecolor, memo from rudybot: TimMc told me to tell you: Sometimes practical, sometimes dubious. 00:23:24 heh 00:23:53 rudybot: later tell minion memo for minion: memo for minion: memo for minion. 00:23:53 minion: memo for minion: sladegen told me to tell you: memo for minion: memo for minion: memo for minion. 00:23:53 Buzz off. 00:24:05 :-D 00:24:07 minion: chant 00:24:08 MORE LIKE SUDETIAN 00:24:20 minion: buzz off! 00:24:20 watch out, you'll make krystof angry 00:24:22 took a break to eat a bowl of frosted flakes. Do you like frosted flakes, minion? 00:24:55 bytecolor: minion doesn't do tail calls 00:25:07 heh 00:25:11 It's written in Common Lisp. What do you expect? 00:25:11 tail answers. 00:26:03 minion: what are your thoughts on being rewritten in Scheme? 00:26:04 scheme is the root of all evil 00:26:10 muahah 00:28:30 any of you use/hack TeXmacs? 00:28:49 cool program, it's what got me interested in Scheme 00:29:18 Come for the TeXmacs, stay for the better implementations than guile! 00:29:35 *chandler* looks around shiftily but does not see wingo 00:31:19 trying to add emacs-like C-h functionality to TeXmacs. I've got a dumbed-down version of C-h a implemented. 00:32:08 Scheme code is a trip. I know my way around C++ and Python, but some of the Scheme code boggles the mind ;) 00:32:23 ok, boggles MY mind 00:33:23 tjafk2 [n=timj@e176222254.adsl.alicedsl.de] has joined #scheme 00:33:35 sphex_ [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has joined #scheme 00:34:25 dmoerner [n=dmr@ppp-71-139-30-13.dsl.snfc21.pacbell.net] has joined #scheme 00:35:04 -!- r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has quit [Read error: 110 (Connection timed out)] 00:37:10 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [Read error: 113 (No route to host)] 00:47:03 -!- sphex [n=nobody@modemcable239.185-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 00:48:33 -!- tjafk1 [n=timj@e176220059.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 00:51:01 -!- dmoerner [n=dmr@ppp-71-139-30-13.dsl.snfc21.pacbell.net] has quit [Read error: 110 (Connection timed out)] 00:57:13 dmoerner [n=dmr@ppp-71-139-30-13.dsl.snfc21.pacbell.net] has joined #scheme 01:02:48 -!- masm [n=masm@bl10-6-250.dsl.telepac.pt] has quit ["Leaving."] 01:05:18 bytecolor: Such as? 01:05:20 bytecolor: Scheme took me a long time to "get", but it's so worth it; you never think of programming (or other programming languages for that matter) the same way again. 01:05:40 TimMc: I'm putting money on "continuations". :-) 01:10:27 sorry, I were hacking ;) 01:10:42 no, I fully understand that scheme is making me `think' differently 01:11:28 and yes call/cc is ummm interesting, I havent actually tried to use the concept though, just reading the docs 01:11:38 *lol* 01:12:14 chylli [n=lchangyi@119.181.15.104] has joined #scheme 01:12:14 cky: What I need to really understand next is the difference between the expand-time vs. ... run-time? environments. 01:12:15 laugh! you too were once a noob! ;) 01:12:29 TimMc: You mean syntax/macro stuff? 01:12:40 bytecolor: That's right. :-) 01:12:49 cky: Sort of. 01:13:12 bytecolor: I laugh when I think about call/cc because even DSSSL has it (IIRC), which is fascinating given that DSSSL has a "subset" of Scheme, and they chose call/cc to be in that subset. 01:13:22 I had an issue at one point where I tried to refer to a regular variable from inside a transformer, and it wouldn't work. 01:14:01 TimMc: that's a scope issue, no? 01:14:10 I ran into the same problem 01:14:46 the referenced var is not visible when the macro is `expanded'? 01:14:51 It's a phase issue. Whether it's a scope issue depends on the macro system you're using. 01:14:55 rudybot: init scheme 01:14:56 chandler: your scheme sandbox is ready 01:15:00 bytecolor: This was in Scheme48 with raw transformers (x-rename), so I dunno. 01:16:28 I don't think I can give a good phase example using rudybot, actually. 01:16:43 I used define-syntax in a module that referenced a procedure in that same module, but I couldnt use it in another modules unless I exported the referenced procedure along with the new syntax 01:16:59 This is with guile? 01:17:02 I'm not surprised. 01:17:05 nod 01:17:29 The newest guile is reputed to have a more sane module system, but the current one has brain-damage like that. 01:17:35 I could only refer to bindings in Scheme48 if I had imported them from another module. 01:18:14 I thought the referenced procedure would some how be `captured' by the define syntax. I was wrong. ;) 01:18:21 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [No route to host] 01:19:08 bytecolor: It ought to be. 01:19:27 oh? so it is just a guile issue 01:19:37 As I said earlier, "stay for the better implementations than guile." 01:19:43 I know you are trying to pound in my skull that... nod 01:20:06 but but but... TeXmacs uses guile 01:20:42 Well, then you get to put up with it, and when guile 2.0 is released you can pester them to adopt it immediately. 01:21:32 nod, I just recently started communicating with the lead dev of TeXmacs 01:22:15 what is is called when you capture a free var in a returned procedure? 01:22:31 I never can remember what that is called 01:22:46 `closure' 01:23:10 (define (foo) (let ((x 1)) (lambda () (set! x (1+ x))))) 01:23:18 nod 01:23:59 that's a very cool concept, I dont think python supports that, I could be wrong. I often am. ;) 01:24:04 That's a good example of something that couldn't, until recently, be done in Python. 01:24:11 ah 01:24:35 I'm a bit behind on python releases 01:24:37 Not for any deep technical reason; the syntax is just so poorly "designed" that it was impossible to distinguish between assignment of a closed-over variable and a new binding. 01:24:52 They added a new syntactic keyword `nonlocal' as a kludge to get around it. 01:24:53 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 01:25:07 Adamant_ [n=Adamant@c-68-51-134-164.hsd1.ga.comcast.net] has joined #scheme 01:25:09 ah, interesting 01:25:26 This is what happens when people who don't care to read design programming languages. 01:25:52 so the var would go out of scope after returning the cluosure? 01:26:12 In Python? No. You could close over variables, but you couldn't mutate the variable. 01:26:15 before `nonlocal' I mean 01:26:22 ah 01:26:28 The syntax for doing so would be identical to the syntax for creating a new binding: x = 5 01:26:39 The solution is to prepend the assignment with the `nonlocal' keyword. 01:26:41 oh I see 01:26:44 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [Read error: 113 (No route to host)] 01:26:58 As I said, it's not for any interesting technical reason. 01:27:20 chandler: Reminds me of Java, where an anonymous-classed object can only "share" final-marked local variables. 01:27:33 Guido simply didn't know what he was doing, and is rather proud of his ignorance. 01:27:43 muahah 01:27:58 Pisses me off. I don't see why they don't automatically box up the shared variables so they are mutable references. 01:28:01 I still don't understand his complaint at SICP 01:28:09 What I'd like though is some sort of generator syntax like python does, except better. 01:28:20 python _is_ a cool language imslio (in my scheme lisp ignorant opinion) ;) 01:28:20 "it's too much about making programs run on computers" or something 01:28:29 MononcQc: He might learn something if he really sat down to read it? 01:28:40 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 01:28:41 I guess so. I'm at the 8 queens problem right now :) 01:28:47 -!- bohanlon [n=bohanlon@TUBERIUM.CLUB.CC.CMU.EDU] has quit [Client Quit] 01:29:00 I figured out how to make "coroutines" that pass between each other, but they error out when evaluating to an expression, and not sure how to handle that... 01:29:43 synx: Just use JS, it has generators now. :-P 01:30:03 JS rules 01:30:10 except for some scope issues 01:30:11 History teaches me that trying to discuss it with you will be fruitless and frustrating, and the issue may ultimately be one of your own creation, so I shan't bother. 01:30:13 I implemented some sort of `generator' in scheme, hrm I think it was an iterator, actually 01:30:55 MononcQc: I'd love to see a JS IDE that enforces a subset of JS. Maybe it could use jslint. 01:30:58 close over a list, then get the car of the cdr 01:31:21 depends on the JSlint settings I guess 01:31:30 bohanlon [n=bohanlon@pool-71-184-223-212.bstnma.fios.verizon.net] has joined #scheme 01:31:37 never really was a fan of IDEs. More of a vim/notepad++ guy 01:31:42 Deformati [n=joe@c-76-112-68-135.hsd1.mi.comcast.net] has joined #scheme 01:31:44 Yeah I'm thinking coroutines. Things that can call other things, then return back to where they called it and continue. 01:32:16 So like you pause a procedure to do other stuff, then return to the procedure to finish. 01:32:55 -!- mrsolo [n=mrsolo@nat/yahoo/x-aioxgqfbqlyknufs] has quit ["Leaving"] 01:33:24 http://pastebin.org/8904 01:33:28 lisppaste: url? 01:33:28 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 01:33:43 cool 01:33:45 bytecolor: Would you mind re-pasting your code via lisppaste? 01:33:52 not at all 01:33:53 synx, isnt that like most procedures that use helper procedures? 01:33:57 -!- kniu [n=kniu@pool-71-106-16-199.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 01:33:58 I find it hard to read the pastebin colors. 01:34:05 nod, they do suck 01:34:15 synx: I could give you a coroutine implementation, but the NSA might be able to read it and I don't have a HTTPS server set up. 01:35:07 bytecolor: You might notice a few surprises in lisppaste as well. 01:35:13 bytecolor pasted "list-iter" at http://paste.lisp.org/display/85358 01:35:31 I think I was playing around with closures, then 01:35:58 jedc: It's a generalization of procedures, really. 01:36:08 If you're not using IE, move the mouse over parens in the code. 01:36:27 I could make up a coroutine but it would be plt specific and horribly hackish. Was trying to do it with call/cc and set! instead, but... no luck so far. 01:36:43 cool 01:37:09 much better coloring, nice... parens highliting works in firefox too ;) 01:37:46 It works in any modern graphical browser but IE. 01:38:04 oh, if your NOT using IE... heh 01:38:16 Also, when Scheme highliting is selected, symbols from R5RS are linked to the HTML version of the report. 01:38:17 must read s l o w e r 01:38:20 :-) 01:38:49 oh, that's `practical' ;) 01:38:56 I like practical 01:39:36 need to change 'a function that takes no arguments' to thunk 01:40:51 bytecolor: it would also be appropriate to call it a "nullary function" 01:41:15 oh, that's much to complex ;) 01:41:25 "thunk" is fairly common and well-understood. 01:41:30 Or so I thunk... 01:41:58 chandler: Is "thunk" strictly synonymous with "nullary function"? 01:42:20 I understand it to mean "procedure of no arguments". 01:42:27 I picked it up mainly from context, and I couldn't tell if there was connotation. 01:42:30 -!- Deformative [n=joe@c-68-84-166-52.hsd1.mi.comcast.net] has quit [Read error: 110 (Connection timed out)] 01:43:05 In my experience, this usage is consistent across both Common Lisp and Scheme. 01:43:52 yea, you wouldnt call a method with no args in java a thunk though 01:45:11 jedc: public interface Thunk { public E thunk(); } 01:45:14 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING LATEST VERSION OF THE INTERNET"] 01:45:28 Sure I can! 01:45:36 heh 01:46:47 TimMc, i mean, you can, but java programmers dont so probably wouldnt understand what you were talking about if you just said a thunk 01:47:29 jedc: A shame, innit? 01:48:52 TimMc, something to be said by us talking in #scheme :p 01:49:57 blame it on the noob! 01:53:56 jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has joined #scheme 01:55:09 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 01:55:27 https://synx.us.to/code/scheme/coroutines.ss 01:56:05 What Scheme is that for, synx? 01:56:10 Horrible implementation, but that's the sort of thing I'm aiming at. Hopefully without preemptive threads. 01:56:13 jcowan: plt 01:56:25 Or any scheme that implements green threads I expect. 01:56:41 jcowan: This is a rabbit-hole you're going down. 01:57:13 ooh purty lambdas 01:57:28 If you want non-preemptive, why not implement directly on top of call/cc? 01:57:43 You take the blue pill - the story ends, you wake up in your bed and believe whatever you want to believe. 01:58:11 I'm trying to jcowan, but it's not working. Not sure how to do it... 02:00:20 What's with the camelCaps? 02:01:21 I have no idea. 02:03:39 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 02:06:45 r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has joined #scheme 02:15:06 chandler pasted "One implementation of coroutines using call/cc" at http://paste.lisp.org/display/85359 02:16:09 synx: Study that. This will be on the test. 02:17:04 *synx* gets all swirly eyed 02:17:43 I did...something like that... but it didn't... didn't put the whole coroutine in a syntax... 02:17:47 I'd probably have written it as a function that takes a lambda rather than as syntax 02:18:08 Besides you can't pick which coroutine you "yield" to there. 02:19:02 https://synx.us.to/code/scheme/yield.ss is what I did so far. It works sort of, but then fails kind of oddly. 02:19:12 Right, so technically they are semi-coroutines. But it's easy to write a driver coroutine that runs all the others as they direct. 02:20:24 thanks chandler, nice and portable too 02:20:29 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 02:20:43 sounds kind of like a trampoline 02:21:15 Exaclty 02:21:19 or even exactly 02:21:54 The only problem is when you are incorporating multiple libraries all of which want to be the driver. 02:22:21 jcowan: You're right; the meat of that should be a procedure, though I quite like the sugar. 02:27:06 QinGW [n=wangqing@203.86.89.226] has joined #scheme 02:31:37 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 02:34:14 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 02:36:12 -!- Adamant_ [n=Adamant@unaffiliated/adamant] has quit [] 02:40:17 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 02:44:37 -!- bytecolor [n=user@32.158.16.246] has left #scheme 02:44:49 -!- drwho [n=drwho@c-98-225-211-78.hsd1.pa.comcast.net] has quit ["Leaving"] 02:45:00 -!- peddie [n=peddie@c-67-169-9-130.hsd1.ca.comcast.net] has quit [Read error: 110 (Connection timed out)] 02:45:51 foof: are you keeping hato anywhere in particular? I only see the release download. 02:50:01 phax [n=phax@unaffiliated/phax] has joined #scheme 02:50:22 synx: That's really old. 02:51:03 It is definitely for chicken 3... 02:51:19 The dev version is for chicken 4. 02:51:42 Where is that? 02:52:10 Uh... not available yet, been too lazy to make a release :) 02:52:47 Got a repository? Doesn't really matter I guess. 02:53:13 tjafk1 [n=timj@e176201255.adsl.alicedsl.de] has joined #scheme 02:54:05 I made a SMTP proxy that blocks their IP halfway through the SMTP session and asks you if it's a non-spam source. If not spam, it lets the connection finish normally and doesn't ask again. 02:54:57 But now I need to add a Received: line which means I need to implement the whole freaking SMTP and RFC2822 protocol, instead of just proxying bytes between the remote server and postfix. 02:55:34 So, could use some tips I guess. At the moment there's no way to tell what IP a spam email came from, since my proxy doesn't add a received line... 02:58:25 Gotta run, can talk later... 02:58:53 np 02:59:24 rudybot: eval (call-with-values * -) 02:59:25 TimMc: your sandbox is ready 02:59:25 TimMc: ; Value: -1 02:59:39 ^ So distressing, at first. 03:02:10 tarbo_ [n=me@unaffiliated/tarbo] has joined #scheme 03:09:12 -!- tjafk2 [n=timj@e176222254.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:11:18 Hah, cute! 03:11:26 *TimMc* is reading about dynamic-wind 03:11:36 -!- tarbo [n=me@unaffiliated/tarbo] has quit [Connection timed out] 03:12:26 sleepydog [n=user@64.252.12.149] has joined #scheme 03:23:46 TimMc pasted "Illustration of re-entry in `dynamic-wind`" at http://paste.lisp.org/display/85362 03:39:00 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:41:23 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 03:43:03 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 03:45:25 MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 03:46:56 -!- Nshag [n=shag@Mix-Orleans-106-4-176.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 03:47:04 what 03:47:09 kniu [n=kniu@pool-71-106-16-199.lsanca.dsl-w.verizon.net] has joined #scheme 03:47:18 * is not a thunk 03:47:21 is it? o.o 03:47:31 Do you think it's a thunk? 03:47:40 holy crap it is. 03:47:45 rudybot: eval (*) 03:47:45 synx: your scheme sandbox is ready 03:47:46 synx: ; Value: 1 03:47:55 "'Thunk' is the past tense of 'think' at four o'clock in the morning." 03:48:14 I think of thunk as a procedure that takes no mandatory arguments. 03:48:21 -!- davids [n=davids@189.122.90.116] has quit ["Client exiting"] 03:49:06 Quite so 03:49:09 synx: Yeah, it broke my brain too. 03:49:19 rudybot: eval (+) 03:49:19 TimMc: ; Value: 0 03:49:23 The original thunks were used to implement Algol call-by-name procedure arguments 03:49:32 Anyway (*) makes no sense, yet it doesn't raise an exception. 03:49:40 Why does it make no sense? 03:49:44 synx: Sure it does. 03:49:48 It returns the identity value of * 03:50:19 synx: If you were going to use `fold` with `*`, what base value would you provide? 03:50:43 * is an operation on numbers, not a number. 03:50:43 It's like saying "times equals one." It's just an absurd statement. 03:51:08 1 most likely. Be a shame to use 0. 03:51:36 synx: It's analagous to (pow x 0) 03:52:08 So, (* x 0) there you go. 03:52:25 ... 03:52:39 ... 03:52:49 *synx* (pow! TimMc) 03:52:58 *synx* (hide) 03:56:02 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 03:56:26 That weird example with `*` and `-` was from R5RS, incidentally. 03:56:43 I'm getting to the good stuff now. 03:58:51 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 04:09:43 -!- phax [n=phax@unaffiliated/phax] has quit [Remote closed the connection] 04:12:50 rindolf [n=shlomi@bzq-219-139-216.static.bezeqint.net] has joined #scheme 04:12:52 Hi all. 04:13:09 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 04:13:16 All the URLs in the /topic are non clickable. 04:13:21 Due to the "..." 04:15:12 rindolf: Not for me. 04:15:27 TimMc: I'm using XChat2 04:15:34 rindolf: I'm using irssi 04:15:44 Generally URLs should be delimited by space. 04:15:48 Or at least <....> 04:15:52 *shrug* 04:16:32 I don't see it as a big issue. 04:16:54 TimMc: I do. It hurts usability. 04:17:19 All for the sake of a branding factor. 04:17:34 rindolf: Or, it's *great* for usability, if you have a Scheme REPL with `surf-to` defined. ;-) 04:18:30 Will it open all these links at once? 04:18:50 rindolf: It would, yes. 04:19:09 In separate windows? 04:19:10 (I have no idea if `surf-to` is defined in any REPL, though.) 04:19:28 rindolf: That would depend entirely on your OS and browser and settings. 04:19:42 TimMc: I'm using MSIE 6. 04:19:45 TimMc: Just kidding. 04:19:49 >_< 04:19:50 I'm using Firefox 3.5. 04:20:00 MSIE 2 > * 04:20:08 I wonder if anyone still remembers that. 04:20:09 bytecolor [n=user@32.158.16.246] has joined #scheme 04:20:22 MSIE 3 was pretty decent though. 04:20:28 For its time. 04:20:55 http://www.shlomifish.org/ recently broke with MSIE 8 due to the AdBrite ads. 04:21:06 Removing them made it work perfectly. 04:21:12 (It's my homepage, BTW) 04:21:21 MSIE 8 seems pretty decent. 04:21:36 I'm on Linux though, so I can only run it inside a VBox VM. 04:21:54 Same here. 04:22:16 But MSIE 8 still doesn't support .xhtml files. 04:22:21 application/xml+xhtml 04:22:26 I have some pages with that. 04:22:30 With MathML and stuff. 04:22:46 I used IE8 a tiny bit about a year ago. 04:22:47 Hopefully MSIE 9 will support them. 04:22:55 TimMc: a year ago? 04:22:59 Was it released then? 04:23:03 Not yet. 04:23:09 Ah. 04:23:10 a beta? 04:23:14 Yup. 04:23:35 One thing great about Firefox is that even their snapshots are ultra-stable. 04:23:41 chandler, ping? 04:23:41 gnomon, memo from chandler: given that both OmniWeb (WebKit) and Firefox paste tabs correctly, I really don't know what your client is doing, but I wash my hands of this. http://paste.lisp.org/+1TUX looks right to me. 04:23:44 TimMc: what did you think of it? 04:23:52 *offby1* assumes rindolf is being bitterly ironic 04:23:54 Yes, yes, minion; I'm aware, I read the scrollback. 04:24:05 oh, I haven't 04:24:14 *offby1* washes his hands 04:24:22 offby1: no, I've used many Firefox snapshots and they work fine. 04:24:30 huh 04:24:33 Firefox leaks a lot of memory, but is otherwise solid. 04:24:40 mine's a release, not a snapshot; and it's pretty crashy 04:24:46 3.5.2 04:24:46 offby1: ah. 04:24:46 rindolf: Once you have 30 extensions, it's hard to tell what the underlying browser is like. 04:24:51 offby1: maybe due to flash? 04:24:56 *shrug* 04:25:06 offby1: what is your OS+distro? 04:25:40 Mine is Mandriva Linux cooker. 04:26:29 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 04:28:58 minion: memo for chandler: Sorry for bothering you. I attempted unsuccessfully to recreate the problem on my personal machine, and eventually ruled out my editor and web client, and narrowed it down to http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/paste-fidelity.html 04:28:58 Remembered. I'll tell chandler when he/she/it next speaks. 04:29:00 -rudybot:#scheme- http://tinyurl.com/pfkp68 04:29:38 offby1, that boggles my mind. 04:29:51 I keep hearing people say that they find Firefox to be crashy in general. 04:31:09 It rarely if ever crashes for me on Ubuntu, and I have a fair number of extensions installed 04:31:24 I've used Mozilla since it was called Netscape; I used the pre-alpha versions of Seamonkey, and the Firebird, Phoenix and Firefox series; across polluted Windows machines, antiquated Debian boxes and unstable/testing desktop machines; and it almost never crashes for me. That is, it's a rare three months during which I experience a single crash. 04:31:26 Linux Chrome has pretty much stopped crashing too. 04:32:29 gnomon: Do you have Flash installed? 04:32:32 On the other hand, I don't install Flash or Adobe Acrobat. 04:32:35 Aha! 04:32:37 TimMc, no. Absolutely not. 04:32:59 Nor anything by Adobe, in fact, except perhaps the nanojit component in Tracemonkey. 04:33:18 Thank goodness for HTML5 video. It may not be ready, but at least it's on the way. 04:34:15 drwho [n=d@c-98-225-211-78.hsd1.pa.comcast.net] has joined #scheme 04:34:27 I don't install Acrobat, but Flash, yes. 04:35:59 Ad Block Plus, Customize Google, Download Statusbar, Forecastbar Enhanced, GMail and GReader notifiers, Linkification, Movie Ratings, NoSquint, Passive Cache, PDF Download, Read Easily, User Agent Switcher. 04:36:04 All very stable. 04:36:12 TimMc, there's nothing wrong with the flash video format (well - there's plenty wrong with it, really, but mplayer and vlc handle it fine, so my objections are mostly quelled there) that can't be solved by a little time with swfdump from swftools and a bit of Greasemonkey. 04:37:24 bryanzh [n=user@207.46.55.28] has joined #scheme 04:38:00 jcowan: I have the Flash plugin installed. 04:38:08 jcowan: which causes some problems. 04:40:19 Maybe I'll disable Flash from my main browser profile and enable it in an alternate profile. 04:40:37 Why would you do that? 04:40:37 You all know about the -pm and -no-remote command line flags for Firefox, right? 04:41:04 jonrafkind [n=jon@98.202.86.149] has joined #scheme 04:41:08 gnomon: Flash threatens the stability of the browser instance, but I don't have objections to actually using it. 04:41:47 You and I have different priorities, sir. 04:42:29 Firefox crashes? 04:43:12 So þey say. 04:43:16 er, they say 04:43:19 hit the Win key 04:43:25 oh, thorn 04:44:25 þorn? 04:44:41 Indeed. 04:44:44 þorn: the internet is for it 04:44:49 Win-t-h generates þ on this keyboard 04:44:50 zbigniew: Yep. I don't mind it as much as I did IE's crashes, which 1) usually involved freezing, 2) sometimes took down Explorer itself, and 3) didn't have session restore. 04:45:16 TimMc: ah. I can't remember the last time Firefox crashed on me, and I have 47 tabs open right now 04:45:23 zbigniew: þorn.com is taken by some random ol' squatter. :-( 04:45:24 The 27th letter of the Latin alphabet 04:45:52 Come to think of it, I wish it would crash hard and clear out my tab backlog 04:46:01 Give me ASCII or give me deaþ! 04:46:42 If þe English had been able to keep þeir sensible alphabet, ASCII would *have* þ in it. 04:47:01 jcowan: instead of what? 04:47:20 *jcowan* shrugs 04:47:28 but if we needed it, we'd have had it 04:47:33 -!- tltstc [n=tltstc@cpe-76-90-92-154.socal.res.rr.com] has quit [] 04:47:36 On beyond zebra! 04:48:14 http://www.evertype.com/standards/csur/seuss.html 04:48:15 on donder, on blitzen 04:48:43 bytecolor pasted "untitled" at http://paste.lisp.org/display/85365 04:49:38 I wanted U+E643 to be called SEUSS LETTER INNOMINATE, but Michael went with SEUSS LETTER ABCDEFGHIJKLMNOPQRSTUVWXYZ 04:49:51 Þeir ought to be a heavy metal band called "Þörn Ïn Mÿ Sïdë" or something. 04:50:31 So þere out. 04:50:49 jcowan, I second your desire for the naming of U+e643. 04:51:22 foo evaluates to a procedure, but 'foo evaluates to itself, so how do I make 'foo evaluate to foo 04:51:27 incubot: (##sys#char->utf8-string #\u00fe) 04:51:27 þ 04:51:39 jcowan, has someone properly fontified the Seussian Unicode extensions? 04:52:03 bytecolor: generally if you want to do that, you're doing something wrong. 04:52:41 Michael drew a font for use in making that page, I'm sure. 04:52:47 He would probably sell it for a reasonable sum. 04:52:58 Maybe even distribute it for free. 04:53:24 hrm, ok I have a list of all symbols in the current name space, I want to tell if a symbol is a variable, procedure, macro, etc. 04:53:31 i just use y instead of þ and be done with it 04:53:37 actually just test if one is a procedure, for now 04:53:41 jcowan, should I contact him about that? 04:53:53 sure 04:54:01 it's for looking up symbol documentation 04:54:02 bytecolor: a symbol is a symbol, not a procedure 04:54:14 zbigniew: Þuk. 04:54:36 now you're cheating... 04:54:36 nod, but I have the 'name' of the procedures, they are just quoted 04:54:45 Yucch. 04:54:48 bytecolor, *why*? 04:55:17 In some ME manuscripts, you really can't tell the y's from the þ's, and so you get words like mþkþll instead of the normal mykyll 'mickle, large' 04:55:41 those letters, they all look alike 04:55:42 jcowan, I notice that the name of the image representing U+e643 is "innominate.gif". Well played. 04:55:44 gnomon: mostly because I'm a scheme noob, but it's to search for a symbol by name, then display the docstring 04:55:47 -!- bryanzh [n=user@207.46.55.28] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 04:55:53 gnomon: Not my doing, but thanks. 04:56:06 bytecolor: are you sure you're not using elisp? 04:56:40 no, but that's kind of what I'm trying to do in TeXmacs, C-h a symbol-name 04:57:04 -!- drwho [n=d@c-98-225-211-78.hsd1.pa.comcast.net] has quit [Remote closed the connection] 04:57:09 get a list that matches the regexp symbol-name, display the docstring for each (if they have one, that is!) 04:57:16 jcowan: That isn't a font, just images. 04:57:31 -!- r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has quit [Remote closed the connection] 04:57:44 Of course. But the images were created from a font, almost certainly. I know how ME works. 04:57:46 TimMc, how do you think the images were generated? Guess what: jcowan probably knows how :) 04:58:23 "I don't know, man, I didn't do it." --Malaclypse the Younger 04:58:55 Perhaps I misunderstood the statement, then. 04:59:51 Ah, I see. 05:00:48 They are GIFs, which is why they look funky, and not properly anti-aliased. 05:02:40 Ugh, it is time for sleeping. 05:04:47 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 05:05:49 *jcowan* chuckles at http://www.seuss.org/seuss/seuss.sttng.html 05:07:27 -!- sleepydog [n=user@64.252.12.149] has quit [Read error: 110 (Connection timed out)] 05:08:32 (procedure? (eval (car a-list) (current-module))) 05:08:50 that _is_ fugly 05:09:06 I used to play around with eval in python all the time and people told me to STOP! 05:10:16 eval is not villainous evil. It's just so misunderstood! 05:10:50 synx: is there a better way to achieve my goal? 05:10:58 bytecolor: I once used eval in some Perl code for optimisation. 05:11:03 I eval'ed a closure. 05:11:12 cool 05:11:19 bytecolor: first time I used it for production. 05:12:19 I used eval in python to generate dynamic code, then execute it. I guess I was attempting scheme macros in python 05:12:31 Python has both eval and exec 05:12:34 bytecolor: It's better if you change your strategy. You should never have the 'name' of the procedures, except in very specific circumstances, and you haven't mentioned anything like that yet. 05:13:32 hrm, I use (ice-9 ls) (ls) to obtain a list of all visible symbols 05:13:46 I don't know any other way to get at the active name space 05:14:24 yes, I suppose it's guile specific, but TeXmacs is guile specific 05:15:38 hrm I wonder if that's how you could do genetic programming in python; with eval/exec 05:15:53 The identifiers are entirely stripped of their name by the time you can apply their procedures. Are you writing a REPL, you're saying, bytecolor? 05:16:14 -!- MononcQc [n=parseido@modemcable062.225-20-96.mc.videotron.ca] has quit [Remote closed the connection] 05:16:20 that and compile, but that's python not scheme. 05:16:30 Are you doing genetic programming? 05:16:31 synx: no just a system to grep the active name space, extracting docstrings from symbols 05:16:42 no, I read about it a bit 05:16:47 I read a lot ;) 05:18:01 I currently have a program that I can feed a regexp, it returns any symbols that match in the current guile session. 05:18:01 If you really want to do that, you probably want to implement a syntax transformer. 05:18:09 hrm 05:18:49 Something like (with-docstrings (define-with-docstring foo "This is foo, the movie." 42) (define-with-docstring bar "Foo, the sequel" 23)) 05:19:18 maybe with-docstrings! and it updates a global alist of name:docstring pairs. 05:20:01 hrm, but that's for _new_ procedures I create, correct? 05:20:11 underspecified_ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 05:20:35 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 104 (Connection reset by peer)] 05:20:37 or is that assigning a property to an existing symbol? 05:22:20 Well, if you're using someone else's procedures, how are you going to demand that they give it a docstring? 05:23:00 How do you want to retrieve these "docstrings"? You want to have a procedure that takes a procedure and returns a docstring? 05:23:48 phax [n=phax@unaffiliated/phax] has joined #scheme 05:24:14 guile actually supports docstrings of a sort _and_ texmacs has its own tm_define that uses a :synopsis keyword to add a docstring, both with the procedures to access them. 05:24:29 so the docstrings are there 05:24:45 well... not _all_ symbols are documented 05:25:30 I didn't even know Guile had namespaces. 05:26:04 well I'm using name space generically (all visible symbol) 05:26:16 I guess lexically bound symbols? 05:28:25 maybe lexically scoped is the correct term 05:28:35 so many terms, so little time 05:28:37 -!- phax [n=phax@unaffiliated/phax] has quit [Client Quit] 05:28:49 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has quit ["Leaving"] 05:33:24 hrm, if I used the syntax method you suggested, the docstrings and symbols would be defined in different locations. Sort of like how doxygen allows you to put all your docs in a seperate file (sort of). 05:33:30 I'm hungry... 05:41:35 -!- sstrickl [n=sstrickl@c-76-119-235-127.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 05:54:08 -!- jedc [n=jedc@dhcp-0-1f-f3-c6-58-ca.cpe.norwoodlight.com] has quit [Read error: 110 (Connection timed out)] 06:02:12 -!- Pepe_ [n=ppjet@78.116.11.105] has quit [Read error: 113 (No route to host)] 06:07:38 -!- ASau [n=user@83.69.240.52] has quit ["off"] 06:10:02 -!- bytecolor [n=user@32.158.16.246] has left #scheme 06:12:52 higepon658 [n=taro@218-223-22-147.bitcat.net] has joined #scheme 06:18:48 peddie [n=peddie@c-67-169-9-130.hsd1.ca.comcast.net] has joined #scheme 06:21:11 HG` [n=wells@xdslec221.osnanet.de] has joined #scheme 06:23:31 MrFahrenheit [n=RageOfTh@80.65.72.29] has joined #scheme 06:48:30 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 06:51:22 tltstc [n=tltstc@cpe-76-168-78-251.socal.res.rr.com] has joined #scheme 06:56:44 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 06:59:45 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 06:59:56 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 07:01:00 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:04:24 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 07:05:42 leppie|work [i=52d2e3c8@gateway/web/freenode/x-uujxtsfyromsoxbu] has joined #scheme 07:06:36 skemer [n=t@adsl-71-137-9-224.dsl.sndg02.pacbell.net] has joined #scheme 07:07:32 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["Leaving"] 07:08:32 Hello, fellow Skemers! I have a [noob] question about using Emacs with Scheme: when you eval a Scheme expression in the editor, where should the results appear? How can I make them appear on the bottom of the screen and then go away (easily)? 07:09:40 -!- underspecified_ [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 104 (Connection reset by peer)] 07:10:44 cracki [n=cracki@46-199.eduroam.RWTH-Aachen.DE] has joined #scheme 07:11:30 ASau [n=user@host158-231-msk.microtest.ru] has joined #scheme 07:13:17 ment [i=thement@ibawizard.net] has joined #scheme 07:13:38 hi, does scheme have something like perl has CPAN? 07:15:35 ment: I don't think it does. 07:15:47 ment: there are some libraries out there for Scheme, though. 07:16:18 ment: Scheme has many incompatible (at least in the hard-coded internals) implementations. 07:16:31 This makes creating something like a CSAN harder. 07:16:56 i thought that it has standard every implementation should conform to? 07:16:57 Every programmer has already written a Scheme interpreter. 07:17:06 ment: it has. 07:17:20 ment: but only the external behaviour of the language is defined. 07:17:45 And until R6RS you didn't get stuff like Random file I/O, Sockets, Regexps, etc. 07:18:36 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 07:18:41 http://www.shlomifish.org/humour/bits/Programs-Every-Programmer-has-Written/ 07:18:42 ah, so the core was defined, but not the interface to the operating system (only to some abstract concept of "ports") 07:18:43 -rudybot:#scheme- http://tinyurl.com/npauj6 07:19:03 ment: well, the core programming language. 07:19:16 ment: but I can write the internals using any convention I want. 07:19:23 ment: and in whatever language. 07:19:37 ment: R6RS gives you files and stuff. 07:19:48 ment: though I still haven't read it. 07:20:22 http://www.r6rs.org/ 07:20:24 that link is scary, i wrote exactly every one of them 07:20:31 ment: :-) 07:20:34 ment: it's mine. 07:20:44 ment: well, some of them were added by perl.net.au contributors. 07:20:48 oh :) 07:20:57 I think maybe two. 07:22:07 the scheme interpreter i wrote was rather nice one, 10KB in assembler and capable of passing sexps via network to simulate multi-agent systems 07:22:30 http://www.r6rs.org/ - doesn't seem to have regexps. :-( 07:22:39 But these can be implemented in user-land. 07:22:47 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 07:22:56 ment: cool. 07:23:15 ment: I only started writing a lame Scheme->Perl converter. 07:23:30 and is there some interpreter to do everyday scheme in (perl-like stuff for example)? 07:23:38 s/interpreter/implementation/ 07:23:45 ment: there's STk 07:23:49 ment: and DrScheme 07:23:58 ment: and maybe also MIT Scheme. 07:24:08 ment: and GUILE has a lot of features too. 07:27:27 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 07:28:02 rindolf: r6rs is still very minimal: no sockets, no regexps, etc; and it is unlikely that such things will be added. 07:28:15 eli: ah. 07:29:18 ment: You should not view "Scheme" as a programming language implementation in the same way as "Perl" and "Python"; instead, it is a minimal specification that is used by a bunch of somewhat similar implementations -- all are basically languages in the same family, but still distinct enough that some "CSAN" thing makes very little sense. 07:32:22 Maybe there should be a CPLTSAN 07:32:32 Or a CSTkAN 07:32:37 Or whatever. 07:34:04 "CPLTSAN" is called "PLaneT", and lives at http://planet.plt-scheme.org/ 07:34:34 Some other implementations have their own package repositories (at least Gambit and Chicken do). 07:34:47 Oooh! Shiny. 07:35:12 eli: i understand that concept. but it makes everyday use rather uneasy. i'll give you an example 07:35:24 Does not seem as comprehensive as CPAN though. 07:35:58 ment: Which language are you coming from? 07:36:21 rindolf: Well, that's hardly surprising given that there are probably about 10000 perl users for every plt user. 07:36:30 eli: i want to write a sorter-generator in scheme and i need permutations for that. i know how the algorithms work so it is not a problem to write some cycle-decomposition and invert-permutation, but it's waste of work 07:36:34 eli: I guess. 07:37:20 ment: Which language are you coming from? And why is the above a waste of work? 07:37:22 eli: i've been mostly programming C and asm for last decade 07:37:39 OK, so why is what you described a waste of work? 07:38:19 eli: if i would want to implement everything myself, i could just stick to C 07:38:57 eli: because it has no added cost over some standard-library implementation? (i will not learn anything and it's unlikely i will reuse it in near future) 07:39:06 ment: That doesn't make any sense. Why do you expect other people to implement stuff for you in Scheme but not in C? 07:39:21 ment: and there are reusable C libraries. 07:39:46 http://www.shlomifish.org/open-source/portability-libs/ 07:40:31 ment: Ignoring the non-sensical bit for a minute, you're confusing the concept of a "standard library" in "Scheme" -- there are very few of these things, because the implementations are very different from each other. 07:40:57 npe [n=npe@195.207.5.2] has joined #scheme 07:41:04 ment: A better way to think about the situation is that a standard library in Perl doesn't help you one bit as a C programmer, even though both languages make extensive use of curly braces. 07:41:21 (Perhaps Java is a better analogy there, but the point should be clear.,) 07:42:46 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 07:42:58 ok, let's try it the other way - i want to do some bignum computations and i want to implement it in scheme, where should i start? 07:43:34 eli: well, ANSI C has many compilers, but there's a lot of reuse in C. 07:43:42 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 07:43:51 eli: many libraries can work across many compilers. 07:44:07 And OSes and CPU Architectures 07:44:37 ment: Most Schemes come with bignums built in. But if you wanted to do implement that, then you could start with the basic arithmetic operations of whatever implementation you choose. 07:45:03 rindolf: How many (real!) Perl and Python implementations are there? 07:45:19 eli: Perl 5 has one main one - perl 5 07:45:26 eli: and Python has quite a few. 07:45:34 perl 5 has exactly one real implementation 07:45:38 CPython, Jython, IronPythom PyPy. 07:45:56 Elly: stackless python. 07:45:57 rindolf: No, Python has one, and a few fringe projects that *most* people don't take seriously. 07:46:05 stackless python is not a perl implementation. 07:46:19 Elly: it is a python implementation. 07:46:20 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 07:46:26 is that relevant to what I said? 07:46:41 rindolf: In any case, C happens to be popular enough to have many compilers; PLT Scheme, or MIT Scheme, or Guile, or Gambit have much less people in them, so each has exactly one implementation. 07:46:50 Elly: sorry, I mis-addressed you. 07:46:55 ahh 07:47:25 eli: are you Israeli, BTW? 07:47:28 eli: ok, so my implementation doesn't come with bignums, other implementation libraries don't work in it, so i start either 1) inspecting $myimplementation api to link C library 2) writing again bignum library and spending two weeks finding reinventing the wheel 07:47:45 rindolf: And the different operating systemns and architectures is an irrelevant point, since some scheme implementations are also very portable. 07:47:52 eli: yes. 07:48:08 rindolf: (Yes, I'm Israeli.) 07:48:15 eli: ah, cool. So am I. 07:48:27 Your name rings a bell. 07:48:30 Yeah, "shlomi" is pretty obvious. 07:48:35 eli: :-) 07:48:48 eli: some Americans think I'm a girl. 07:48:53 ment: Which implementations are you using? 07:48:55 Because my name ends with an "i". 07:49:34 rindolf: Ugh. And when americans hear how I pronounce my name (as "Elly" is pronounced) they find it amusing. 07:49:44 eli: guile at the moment, but that doesn't matter for the sake of discussion. 07:50:36 Éleee ? 07:50:40 the reason there is not a standard $foo library is that r5rs did not specify either a) how to do $bar, which is a dependency of $foo, or b) how to do $bar with any useful efficiency, so each implementation did it its own way 07:50:45 in general, that is 07:51:22 ment: (a) guile has bignums; (b) it *does* matter -- it matters very much because -- like I said -- you should not view Scheme implementations as different implementations of the same language, but as different languages that are somewhat related. 07:51:34 I think Americans tend to call me shlemi 07:51:41 and I should think the reason r5rs did not specify that is that they wanted to keep the language as small as possible :P 07:51:53 *Elly* still thinks r5rs is the most elegant language she's ever seen 07:52:19 Elly: Lambda calculus is more elegant. :-P 07:52:21 rindolf: Yes, "Elly" is pronounced as "L.E", and "Eli" as "Eeeeelay". 07:52:21 J/K. 07:52:32 eli: ah. 07:52:40 eli: has guile ie. permutations? and which implementation should i choose? 07:52:46 I have programmed in lambda calculus before, and I must disagree with your claim :P 07:52:46 Elly: r5rs is full of dark corners. 07:52:48 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:52:51 eli: I know 07:52:59 eli: a lot of bits of it are painfully underspecified 07:53:04 Elly: I was joking about LC. 07:53:07 but the idea that they are laying out is still beautiful :) 07:53:09 Hardly the most elegant. 07:53:14 LC is not really usable. 07:53:24 Sure it is. 07:53:41 But personally I'd rather have usability over elegance. 07:53:42 rjack [n=rjack@adsl-ull-198-50.51-151.net24.it] has joined #scheme 07:54:12 Scheme is elegant, but I often feel that Perl 5 was designed really well. 07:54:22 ment: I don't know about permutations in guile, and as for an implementation recommendation -- I'm very biased so I try to avoid recommendations. (If you look at my web page, then it'll be very clear what I would recommend.) 07:54:23 Or evolved really well - don't know. 07:54:35 *eli* chokes 07:55:00 eli: what is your web-page? 07:55:05 eli: i see. 07:55:15 rindolf: Google for my name. 07:55:19 eli: OK. 07:55:28 barzilay.org; not too difficult. 07:55:46 or just whois eli 07:56:20 (((x)(x x))((x)(x x))) - is this the Y combinator? 07:56:23 ment: BTW, one thing I can tell you is that Guile is not a popular recommendation in general. 07:56:32 rindolf: Not really, it's a little more basic. 07:56:38 eli: ah. 07:56:48 that's the Omega function applied to itself, IIRC 07:56:49 It's the core of Y, and it's often called Omega. 07:56:54 Yeah, I wondered about it. 07:57:24 Elly: "omega" (lower case) is what leads to "Omega" (upper) when it's applied to itself. 07:57:32 ahh 07:57:34 eli: why is that? (just to avoid finding caveats too late) 07:57:35 (That's the common terms, at least.) 07:57:48 unfortunately case distinctions don't work so well with verbal memory as phoneme distinctions :P 07:58:37 ment: It has some weird issues with macros etc, somewhat messy in its design etc. (It went through a few rough times with changes in leadership that weren't too healthy.) 07:58:48 eli: http://www.ccs.neu.edu/home/eli/hacks.html - sgrep seems similar to ack in concept. 07:58:54 eli: have you heard of ack? 07:58:56 eli: ok, thanks 07:59:16 Elly: think about the greek characters -- omega and Omega look very different. 07:59:44 rindolf: No, I don't know about ack, but I know that it is a popular thing to hack; and of course my version works well enough for me. 07:59:57 it's true, but in my head, I'm thinking the phonemes for the anglicization, not the actual greek 08:00:14 eli: http://betterthangrep.com/ 08:00:20 *eli* chokes again. 08:00:46 (I wasn't aware of my .ccs.neu.edu becoming more google-popular than barzilay.org...) 08:02:00 rindolf: Yes, I've probably seen that. I didn't like it. 08:02:08 eli: ah. 08:02:27 eli: I'm fond of it. 08:02:42 eli: but YMMV 08:02:49 Installing Perl modules is really not my thing; --perl is a stupid way to specify perl files, and a lot of their "advantages" exist in plain grep too. 08:03:06 (Like extended regexps, and colors, etc) 08:03:30 eli: many distributions package ack. 08:04:32 eli: do you know of cpan2dist? 08:04:43 eli: or of local::lib? 08:05:10 I'm very happy for perl and for these distributions... Just talking about this has probably taken half the time I've spent writing that tiny thing. 08:05:21 hm, I just use grep 08:05:44 No, I don't know of cpan2dist, and anything::anything-else; I don't like perl. (Just in case it wasn't clear...) 08:08:10 what is prefered way to write output with (something more handy than display and print)? 08:08:17 format! 08:08:33 that common-lispish thingie? 08:11:16 eli: so you never install Perl programs? 08:11:52 perl is not mandatory 08:12:01 eli: I don't like Java a lot, but I still run Java programs when I need to. 08:12:06 Elly: no. 08:13:12 eli: and I've re-implemented an Amarok script in JavaScript for Amarok 2.x even though I think JavaScript was a bad choice for an exclusively scripting language. 08:13:17 a quick look through `ps aux` reveals that all the programs presently running on my laptop are written in C, python, or sh 08:13:19 It's bad enough on the browser. 08:13:50 Elly: I'm running spamassassin at the moment. Perl. 08:14:06 dmoerner_ [n=dmr@ppp-71-139-15-211.dsl.snfc21.pacbell.net] has joined #scheme 08:14:16 *rindolf* hugs spamassassin. 08:16:14 RageOfThou [n=RageOfTh@80.65.72.29] has joined #scheme 08:16:38 Elly: of course, I can argue that you sometimes run Perl programs, they do their thing and then they exit. 08:16:38 I am not running a mail server at all 08:16:44 rindolf: No, I don't install perl programs that are not yum-able. 08:16:45 my university does a great job of it 08:16:59 rindolf: I could counter-argue that `which perl` returns no result :P 08:17:03 Elly: I have postfix I think. 08:17:18 Elly: seriously? 08:17:22 Elly: is this a BSD? 08:17:25 no, gentoo 08:17:27 ment: That's a good demonstration -- if you want to print stuff using only what you get in r5rs, then you have only `write', `display', and `newline'. 08:17:41 I do have a BSD box that doesn't have perl either 08:17:49 ment: And even that is kind of iffy, since `display' is not specified completely. 08:18:01 two of my debian machines shipped with it, I think 08:18:02 Well, using Mandriva without Perl is a bit hard. You won't even have urpmi. 08:18:07 for reasons that are not really clear to me 08:18:12 *rindolf* uses Mandriva. 08:18:16 portage is written in python 08:18:23 Elly: yes, I know. 08:18:23 alaricsp [n=alaricsp@217.205.201.45] has joined #scheme 08:18:24 ment: But of course individual implementations have something like `format' or `printf' etc. 08:18:26 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 08:18:29 eli: aww 08:19:08 Elly: I think the OLPC people thought they could keep perl out of their distribution and ran into many issues. 08:19:21 Because lots of stuff depended on it. 08:19:35 I'm using perl instead of awk or sed. 08:20:27 No use in learning more god-forsaken mini-languages. 08:20:42 Not learning, but keeping in resident memory. 08:21:23 It's like what Sherlock Holmes said. The human brain is like an Attic - the more things you put there, the less space there is for other things. 08:21:41 all of my uses of awk look like this: awk '{print $x}' 08:21:52 Elly: OK. 08:22:19 if there was a program for that I wouldn't need awk :P 08:22:28 Elly: cut? 08:22:35 cut does not do the right thing 08:22:40 A. 08:22:42 Ah. 08:22:45 with respect to multiple delimiters 08:23:04 e.g., ps aux | awk '{print $3}' versus ps aux | cut -f 3 08:23:15 (or cut -d ' ' -f 3) 08:23:22 Ah. 08:23:49 In Perl the command line is a bit more complex . Something like perl -plAF '$_=$F[2]' 08:23:59 Don't remember it. 08:24:30 I think Ruby has these flags too. 08:24:47 *eli* sighs 08:25:23 We need SchemeScript. 08:25:25 I would like to be able to use scheme for that kind of thing 08:25:40 Elly: then write something like that for Scheme. 08:25:49 Scheme scripts already exist. 08:26:02 eli: and how long are they? 08:26:03 in my head, that operation is logically: (map (lambda (p) (print (%cpu p))) (all-processes)) 08:26:19 which is unfortunately way longer than `ps aux | awk '{print $3}'` :( 08:26:29 Elly: looks like Windows PowerShell. 08:26:41 Except in Scheme. 08:27:11 Elly: you can start from http://svn.plt-scheme.org/plt/trunk/collects/mzlib/awk.ss 08:27:23 rindolf: Huh? Some are long, and some are short. 08:27:33 http://perl.plover.com/yak/12views/samples/notes.html#sl-39 - this is illustrative. 08:28:43 eli: interesting - does it have any documentation? 08:29:37 -!- dmoerner [n=dmr@ppp-71-139-30-13.dsl.snfc21.pacbell.net] has quit [Read error: 110 (Connection timed out)] 08:30:13 Elly: have you heard of Windows PowerShell (formerly known as Monad)? 08:30:35 http://en.wikipedia.org/wiki/Windows_PowerShell 08:31:27 Hmmm... the examples look pretty nifty. 08:34:05 jewel_ [n=jewel@dsl-247-206-08.telkomadsl.co.za] has joined #scheme 08:35:20 rindolf: How is the view of some random lisp-ignorant person illustrative? 08:35:29 eli: he's not lisp-ignorant. 08:35:42 He's lisp-challenged. 08:35:45 rindolf: Sure he is. That blurb is a direct demonstration. 08:35:58 Well, then take http://www.paulgraham.com/power.html 08:36:25 And that's supposed to illustrate ... what? 08:36:36 eli: he was saying that if you want to have Lisp (or Scheme) as a viable language for scripts, it needs to be brief and convenient. 08:37:18 ( maybe have a look at scsh and es ) 08:37:18 eli: and Mark Jason Dominus is a pretty big name in the Perl world. 08:37:23 rindolf: In case you don't know that, PG defines "brief" by the number of "tokens" used in a program, which is insensitive to the actual length of the names that are used in code. 08:37:38 eli: I know that. 08:37:40 rindolf: I'm very happy for Mark Jason Dominus. 08:37:55 That still doesn't make him and less unenlightened. 08:37:55 eli: and I assure you he knows Lisp. 08:38:14 He was making a point. 08:38:17 -!- MrFahrenheit [n=RageOfTh@80.65.72.29] has quit [Read error: 110 (Connection timed out)] 08:38:36 In any case, for command line scripts, brevity is also dependent on the number of characters. 08:38:42 No, he certainly demonstrates very well that he doens't *know* lisp for any useful value of "know". IOW, I could just as well claim that I know perl because I've written three programs. 08:39:09 I wouldn't want to write (string-length ) when "len" or "length" would do. 08:39:09 "command line scripts" is an oxymoron. 08:39:21 eli: what? 08:39:28 eli: scripts that I write on the command line. 08:39:33 In bash, etc. 08:39:35 In that case you shouldn't have brought Paul Graham's page in, because he considers botrhe the same. 08:39:41 That I then forget about. 08:39:59 s/botrhe/both/ 08:40:19 -!- rjack [n=rjack@adsl-ull-198-50.51-151.net24.it] has quit ["leaving"] 08:40:22 If it's on the command line then it's not a program and therefore not a script. 08:40:28 eli: I agree with PG about succinctness being power, but also thinks that tokens shouldn't be excessive in length. 08:40:43 Because it is also a factor that comes into play. 08:40:53 And Arc has relatively short identifiers. 08:40:55 On purpose. 08:41:05 Sometimes even too short if you ask me. 08:41:16 Tangentially related: I have toyed with the idea of making sexpr-based versions of sed/awk/grep/etc. for dealing with data structured at a higher level than "lines": http://www.snell-pym.org.uk/archives/2009/06/25/magic-pipes/ 08:41:28 rindolf: Well, guess what a random person would think that `list-length' does, and what some other person would think that `$_=$F[2]' does? 08:41:31 eli: it is a program, just a throwaway program. 08:41:46 eli: that's intuitivity. 08:41:50 eli: not succinctness. 08:41:57 eli: it's a different factor all together. 08:41:58 Throwaway programs do not exist. 08:42:05 eli: yes they do. 08:42:09 No they don't. 08:42:28 eli: how would you call something like \du . > du.txt ? 08:42:38 Or something involving a pipeline? 08:42:49 Or with a bash while loop? 08:42:56 I sometimes write those things. 08:42:58 By definition, a *program* is an abstraction -- abstractions are things that are *re*used. 08:43:03 And they are code. 08:43:19 A program is a way to tell the computer what to do. 08:43:32 I may choose to reuse it or I may not. 08:43:41 OK, this is becoming silly. 08:43:51 "Not a girl, not yet a woman?" 08:43:55 Why must a program be an abstraction by definition? 08:44:15 Is it a program or not when I delete a file with a command like "rm "? 08:44:52 alaricsp: yes, it is a program. 08:44:52 alaricsp: programming is the art of using *abstractions*; take away that, and CS is reduced to nothingness. 08:45:12 alaricsp: a trivial program, but a program nonetheless. 08:45:56 eli: if I do something like ls *.txt | (while read T ; do cp "$T" "$T".bak ; done) 08:46:01 what would you call it? 08:46:07 I've done such things. 08:46:18 And it has a loop. 08:46:31 Two even. 08:46:40 IF we count the implicit loop of the ls 08:47:06 Writing the same program in C will take at least 20 lines. 08:47:16 3 if you count the shell expanding *.txt 08:47:26 rindolf: This discussion has went well off-topic, to a place that is not interesting to me, and certainly not interesting for #scheme. 08:47:28 pgas: yes, I might as well do echo *.txt 08:47:36 eli: ah. 08:48:24 eli: I was trying to argue that if Scheme wishes to be a viable scripting language, then one should be able to write brief code using it. 08:48:34 With both tokens and characters. 08:48:45 eli: Ah, yes, in my rm program, I'm using an abstract (rm deletes any file), but the result isn't very abstract. 08:49:19 eli: if I write a program to calculate Pi - is it a program? 08:49:25 The idea of *designing* a *PL* around the concept of few characters is pure brain damage, which scheme happily ignores. 08:49:29 I might as well do a huge print statement. 08:49:37 I'd say that a program instantiates some abstractions into a concrete use. Now, some programs accept inputs, so could be considered as an abstraction; but I think my rm command is pretty concrete. Sure, it could delete any file that happens to have that name, but that's getting tenuous :-_) 08:49:51 eli: I'm not saying the minimal ones (a la APL or J) 08:49:53 alaricsp: Of course -- the *program* is always abstract; and its output is always concrete. 08:50:08 eli: but short enough to be convenient to write it from withing bash. 08:50:15 if I calculate pi in a forest and no one is around to hear me, am I at risk to become the unabomber? 08:50:20 heheheheh 08:50:22 rindolf: note fwiw there is a scheme shell: scsh 08:50:28 pgas: yes. 08:50:36 pgas: haven't tried it yet. 08:50:55 pgas: does it have something like sed/awk/perl? 08:51:04 I don't know 08:51:16 rindolf: I'm not saying anything against having some short syntax for some purpose (like command lines); but the idea that you can carry that kind of terseness over to a *language* is a broken concept. 08:51:31 And that's something that *every* shell programmer knows all too well. 08:51:33 Personally, I believe there is some value in terse command syntaxes for common use by experts, but there's a danger that such things have a nasty tendency to grow and grow and end up being used to write complex applications. Perhaps a non-terse syntax plus a tab-completing shell is a better approach... 08:51:58 alaricsp: That's exactly the point. 08:52:10 alaricsp: I don't have problem reading the Perl code of most people. 08:52:28 Golf Perl code is giving me some problems, but people don't write this way. 08:52:33 For production. 08:52:54 And I appreciate the fact that this production code is relatively brief. 08:53:12 In fact, I've talked to several people about scsh's bad attempt at being terse (in it's `run' syntax) -- and pretty much everyone agreed that this was a bad idea, and that a much saner approach would be a plain Scheme syntax for programs and an alternative shell-like syntax for exclusive use on the command line. 08:53:44 eli: Aye, we agree in principle, I was just moaning about the details of your argument ;-) 08:54:31 alaricsp: Take it at the conceptual level of course. 08:55:17 eli: what do you see as the tradeoffs of being able to write brief code for complex applications? 08:55:27 alaricsp: Another view on this -- if your shell's command line is *really* throwaway programs, then how come there is so much attention in all shells to history? 08:55:31 Why do you think it's undesirable? 08:55:53 eli: Because I often mistype a command, or run it in the wrong directory by accident ;-) 08:56:01 eli: well, some stuff start as throwaway and end up re-used. 08:56:24 eli: like some stuff start as programs for internal use and end up as marketplace software. 08:56:34 alaricsp: In that case, each command that had an exit status of 0 should be immediately removed from the history; and also you should not have any history files. 08:56:46 Yes. I say there is true throwaway code, but you can't really tell if it's going to be throwaway or not until after you've used it the first time... 08:57:04 eli: for example I wrote http://web-cpan.berlios.de/latemp/ for my own use (well, evolved it) and then I released it as open-source. 08:57:07 -!- ofthelesser [i=oftheles@cpe-174-100-207-183.neo.res.rr.com] has quit [SendQ exceeded] 08:57:11 rindolf: Yes, some "throwaway" things end up being real scripts, and then real programs -- that was exactly my point. 08:57:11 eli: Good idea, but exit status can be a poor indicator of success or failure :-) 08:57:13 Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has joined #scheme 08:57:20 eli: OK, then we agree. 08:57:28 ofthelesser [i=oftheles@cpe-174-100-207-183.neo.res.rr.com] has joined #scheme 08:57:33 eli: but some things stay throwaway. 08:57:51 rindolf: This is exactly why I'm saying that *designing* a language around terse one-liners is a bad idea. 08:58:25 eli: OK. 08:58:26 Edico [n=Edico@unaffiliated/edico] has joined #scheme 08:59:11 eli: assuming I can use the same terseness in one-liners as I do in complex applications, without reducing from the power of abstraction that the langauge gives me, would that be acceptable to you? 08:59:39 eli: do you agree that succinctness may be a virtue in writing complex applications too? 08:59:50 Because I'd rather write 100 LOCs than 1,000 LOCs? 09:00:22 -!- skemer [n=t@adsl-71-137-9-224.dsl.sndg02.pacbell.net] has quit [Read error: 145 (Connection timed out)] 09:00:55 Of course it is, but when you take that to an extreme of using obscure names like `_' as overloaded "anything goes here", you're trading off fragility for the succinctness. 09:01:25 For example, the usual Scheme thing would be (+ 1 (string->number "2")), 09:01:56 Yeah, things like Perl's $_ are really just a hardcoded global variable. Always made me twitch, that :-/ 09:01:58 Perl hackers regard that as clutter, and will make it do the "obvious" thing and coerce "2" to a number implicity. 09:02:43 eli: why not have a ->num which will convert every arg to a number and DTRT? 09:02:45 And they are mostly happy about that decision, because code is shorter and life is beautiful ... until one day something goes horribly wrong when 1+2 returns 12. 09:03:03 eli: it never does in Perl. 09:03:12 eli: + always adds. "." is string concatenation. 09:03:18 Maybe you're thinking about Python. 09:03:51 eli: operators in Perl 5 (and Perl 6 too I think) are not polymorphic. 09:04:14 eli: I agree that too much terseness can be a problem. 09:04:40 People can write APL or J code, but often they cannot understand what they wrote. 09:04:46 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 09:04:46 Or how it works. 09:05:02 The specific example is irrelevant. 09:05:08 APL is a write-only language. I can write programs in APL, but I can't read any of them. 09:05:20 -- Roy Keir 09:05:57 (Having the types go on operators rather than on identifier or values is a nice step towards assembly. Maybe that's the direction perl will converge to.) 09:05:59 eli: well, I'm just saying that such mistakes are not as common in Perl as you might believe. 09:06:39 Towards Assembly? 09:06:44 rindolf: Here's something from a textbook I'm using in my course. 09:06:49 Compare these expressions: 09:06:55 1. a[25]+5 09:07:00 2. (+ (vector-ref a 25) 5) 09:07:05 3. a[25]+5 09:07:07 4. a[25]+5 09:07:13 5. $a[25]+5 09:07:17 6. a[25]+5 09:07:20 7. a[25]+5 09:07:36 They're all coming from different languages. 09:07:41 Which one is the most different? 09:07:47 Scheme 09:07:58 The (+ (vector-ref... 09:08:02 OK. 09:08:08 Now let me specify the languages: 09:08:17 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit [Read error: 104 (Connection reset by peer)] 09:08:25 Java, Scheme, JavaScript, Python, Perl, C, ML. 09:08:37 Do you still think that Scheme is the most different? 09:08:42 Yes. 09:09:02 Syntactically speaking. 09:09:06 OK, now one more bit of information -- in all of these `a' stands for a vector of 5 items. 09:09:15 So? 09:09:52 Hmmm.... 09:10:05 In C it will be an overflow. 09:10:15 Bring on the nasal demons 09:10:23 And in Scheme it woulld be a run-time error. 09:10:30 And in Perl you'll get a warning. 09:10:37 And I assume also in Pythoin 09:10:44 Though it may be an exception in Python. 09:10:49 In Java, Scheme, Python you get an exception. 09:10:55 In Java you'll get an exception too. 09:10:58 In JS you get NaN 09:11:16 in Perl you get 5 (and I tried it, I didn't see any warnings). 09:11:35 in ML you get nothing because [5] is not the syntax for referring to a vector. 09:11:53 and ... in C you can get anything at all, nasal daemons or whatever. 09:11:56 perl -e 'use warnings; use strict; my @a=(1,2,3,4,5); print $a[25]+3' 09:12:01 eli: with use warnings 09:12:11 -!- higepon658 [n=taro@218-223-22-147.bitcat.net] has quit [Read error: 110 (Connection timed out)] 09:12:32 eli: or with -w 09:12:45 I'm getting 09:12:45 That's irrelevant. 09:12:48 Use of uninitialized value $a[25] in addition (+) at -e line 1. 09:12:52 Irrelevant? 09:12:52 That's irrelevant. 09:13:00 Why is it irrelevant? 09:13:11 Because it's not part of the languages semantics. 09:13:18 Yes it is. 09:13:19 In any case, that doesn't matter to the point. 09:13:28 Every serious code should have use warnings 09:13:54 So why is it optional? 09:14:02 eli: out of back-compat. 09:14:04 Is the default in Perl to write joke code? 09:14:11 eli: Perl 5 is compatible with Perl 4 to Perl 1. 09:14:39 eli: well, use warnings; can sometimes be a nuisance in writing command line scripts. 09:14:58 eli: but Perl 5 has kept backwards compatibility and this is the main reason. 09:15:21 eli: but using "use warnings;" or "-w" has become a de-facto convention and should not be ignored. 09:15:53 I might as well argue that you should use gcc without -Wall 09:16:30 You're missing my point completely and somehow make this a discussion about Perl; as one schemer that is not really obsessed with talking about Perl, unlike what Dominus thinks, I'll just stop talking about the stupid thing. 09:16:35 no strict no warnings no help. That's the #perl motto! 09:16:58 eli: how am I missing your point? 09:21:37 OK, back to Scheme and brevity. 09:22:00 Assuming we agree that APL may be too terse. 09:22:14 And COBOL or whatever are two verbose. 09:22:18 And COBOL or whatever are too verbose. 09:22:39 We can also agree that C and Java are too verbose. 09:23:47 Which means that the optimal amount of brevity is between APL and C/Java. 09:24:29 Now, most people won't claim Python code is unreadable due to the syntax, grammar and conventions of the language. 09:24:47 And Python is quite succinct. 09:25:05 So we've narrowed it down to between Python and APL/J. 09:26:31 -!- poe [n=poe@unaffiliated/xerox] has left #scheme 09:28:34 Can we improve on Python and make code in something similar to it potentially more succinct while not sacrificing on readability and maintainability? 09:28:41 I think it is possible. 09:29:10 For example, the choice of using indentation for scoping in Python is silly. 09:29:23 Braces or parentheses are equally as readable. 09:29:51 And getting rid of this we can have such niceties as closures of more than one statement. 09:29:59 And lexical scoping. 09:31:09 And using delimiters for blocks/scoping we can write the entire program on one line should we need to shell it. 09:31:31 I think Arc had some nice ideas in the direction of making Lisp brief. 09:31:41 But it was missing on some incredibly basic features. 09:31:54 Brevity of languages isn't quite a linear scale, though. I'd say that the higher order functions and macros in Scheme make it (on a large scale) at least as terse as almost anything else... but for one-liners, just having short keywords becomes the dominant factor. 09:32:02 We need a notion of big O brevity :-) 09:32:40 alaricsp: right. 09:33:00 alaricsp: the problem is that most programs in the world are short. 09:33:30 alaricsp: and that programmers are likely to start hacking on a very short program than an initially long one. 09:33:37 And yet we need to consider the large ones, as they're often the ones you can sell for lots of money and thus feed your book habit ;-) 09:34:25 alaricsp: if I have to write 100 lines of support macros/functions/whatever for what I already have built-in in a different language, I'll probably choose the other option. 09:34:34 Now, working out a way to increase the small-program brevity of Scheme while still keeping the large-program brevity and not sacrificing large-program maintainability is indeed a noble goal. 09:34:44 alaricsp: right. 09:34:56 Yeah, in the medium scale, just having a vast standard library helps a lot, too 09:35:06 alaricsp: yes. 09:35:16 alaricsp: or a repository of re-usable code like CPAN. 09:35:19 Perl wins on that front, with CPAN 09:35:20 Aye 09:35:31 CPAN is not what you call a standard library. 09:35:33 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 09:35:44 I count CPAN as a standard library for this argument - not bundled with perl, but just a few keystrokes away 09:35:47 Like Java's or whatever. 09:35:51 alaricsp: yeah. 09:35:52 Yeah, I know what you mean 09:36:17 But I see your point. 09:36:24 It's still code that I can depend on. 09:36:29 Indeed 09:36:39 And re-use. 09:37:19 Scheme suffers somewhat in this respect due to the balkanisation; here's hoping R7RS fixes this somewhat so we can pool libraries more, rather than reinventing the wheel in every implementation ;-) 09:37:47 alaricsp: yes. 09:38:22 I think the Scheme community is large enough that, if united, we could surge ahead in terms of useful libraries easily available in a relatively short timespan 09:39:02 If there was a sockets SRFI that every implementation supported, then a lot of useful network protocol libraries could be made portable with very little effort, IMHO, for example 09:39:11 alaricsp: yes. 09:39:51 So the real question is, do we need a shorter way of writing simple code 09:39:53 -!- ASau [n=user@host158-231-msk.microtest.ru] has quit [Read error: 104 (Connection reset by peer)] 09:40:16 alaricsp: I think that Scheme should allow you to take command line scripts and grow them into something more substantial. 09:40:24 Not restrict it to command line only. 09:40:41 I quite like macros like cut, for example: (cut + 1 <>) = (lambda (x) (+ 1 x)), but having a huge library of macros and combinators with terse names can lead to trouble for people who don't know them 09:41:30 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 09:41:31 While playing with Factor recently, I had to overcome a hurdle of words like "bi" which (IIRC) is something like (lambda (p1 p2 v) (values (p1 v) (p2 v))), but in postfix notation, and which made things totally inscrutable to me 09:41:40 alaricsp: Scheme should have decent namespace support. 09:42:21 Experienced factorites have no problem with things like "bi" and its variants, and I'm sure they save lots of effort, but they're a hurdle to newcomers 09:42:54 How would you handle namespaces, out of interest? 09:43:21 alaricsp: something like perl 5. 09:43:34 alaricsp: or maybe using some of what CL has. 09:43:41 Though CL has flat namespaces. 09:43:43 Which isn't good. 09:43:48 They are nested in Perl 5. 09:44:04 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 09:44:04 So I wonder if such 'shorthand notations' as cut in scheme or bi in factor should really be input-only syntax - you type (cut + 1 <>) and when you press that closing parens, you editor expands it there and then, so everyone thereafter sees the simple expanded notation. Or something. 09:44:14 Ah yes, I see 09:45:36 I have wondered about extending the meaning of symbols to be a hierarchial namespace, then having written forms that use prefixes or a 'default namespace' to make it bearable 09:45:43 And the implications thereof 09:47:36 alaricsp: in Perl 5 you can also import symbols selectively. 09:47:39 Using aliasing. 09:47:53 Yeah 09:50:21 C++'s namespace support sucks a lot. 09:50:35 At least in comparison to Perl 5's. 09:51:28 I'm no connoisseur of namespace models; I know Java's well, but that's it. How do Perl5 and C++ compare to Java's, if you know anything of it? 09:51:52 (apart from the fact that all those import statements in Java are rather painful, I know that all too well...) 09:52:16 alaricsp: in Perl you can have MyPackage::SubPackage::OtherPackage::my_function() 09:52:44 alaricsp: and then do use MyPackage qw(hello there); - to import only "hello" and "there" from MyPackage. 09:52:50 Or from MyPack::Other 09:53:11 alaricsp: and you can also do use MyPackage qw(:http) to import all HTTP related symbols. 09:53:23 alaricsp: and Sub::Exporter gives you even more. 09:53:55 Yeah, in Java you can write java.io.InputStream or "import java.io.*; .... InputStream ...", or "import java.io.InputStream; ... InputStream ..." 09:53:57 c++ has nested namespaces, but when you do using namespace foo you import *all* of its symbols. 09:54:08 So some Java files start with a LOT of imports as they import each and every class they use individually 09:54:17 And don't get me started on the convention of using domain names as prefixes for third-party packages 09:54:33 "import com.mycompany.myproduct.component.Class;" - my RSI!!!! 09:54:34 alaricsp: heh.. 09:54:53 But Java is known for its repetative boilerplate code ;-) 09:54:53 alaricsp: in Perl I can do use MyClass (qw( one two three four five something )) 09:54:58 yeah 09:55:16 Or just use a :http or :web or :cgi etc. tags. 09:55:37 alaricsp: and I can even alias symbols at run-time. 09:55:43 *nod* 09:55:46 dynamically. 09:55:51 FunkyDrummer [n=RageOfTh@80.65.72.29] has joined #scheme 09:56:01 So it's really powerful. 09:56:33 I've read the chapter about packages/namespaces in Practical CL, but don't remember a lot from ti. 09:56:48 He said that CL was the most similar to Perl in that respect. 09:56:55 Yeah, it'd be nice to evaluate this kind of stuff when finally coming up with a standard Scheme module system 09:56:55 Compared to say Python or other languages. 09:57:01 *alaricsp* stares pontedly at R6RS 09:57:37 Namespaces will allow programmers to not step on each other's toes. 09:57:45 classes are also useful for encapsulation. 09:58:06 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 09:58:17 Because you instantiate a class instance and then call methods on it. 09:58:35 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:59:09 Meh, I prefer generic functions: share the function name, but everyone can throw in their own methods, selected on argument type 09:59:21 But you get to the same place, by a different route ;-) 10:01:00 -!- RageOfThou [n=RageOfTh@80.65.72.29] has quit [Read error: 60 (Operation timed out)] 10:01:22 poe_ [n=poe@void.printf.net] has joined #scheme 10:01:49 alaricsp: OK. 10:02:06 I'm not very familiar with generic functions. I think this is the mechanism that CLOS is using. 10:02:27 I am currently writing a blog post about them, in fact, but it's not ready yet ;-) 10:02:50 alaricsp: ah. 10:02:54 zipMe_ [n=manu@87-194-4-100.bethere.co.uk] has joined #scheme 10:03:45 There's surprisingly little written about them 10:04:00 http://www.c2.com/cgi/wiki?GenericFunction is the best I could find 10:04:14 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:06:08 alaricsp: I see. 10:06:15 Sounds like a multi-method to me. 10:06:56 ASau [n=user@host158-231-msk.microtest.ru] has joined #scheme 10:07:27 Nshag [i=user@Mix-Orleans-106-4-39.w193-248.abo.wanadoo.fr] has joined #scheme 10:07:28 Yeah, multimethods and GFs have significant overlap 10:07:58 -!- ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [Read error: 104 (Connection reset by peer)] 10:08:32 Some might even say they're synonymous, but GF doesn't necessarily imply mulitple dispatch (although it strongly suggests it) and multimethod doesn't necessarily imply the method exists 'outside the class' (although if it dispatches on multiple arguments, there's only a tenuous argument as to which class it should belong in) 10:08:46 So, being an annoying pedant, I draw a distinction ;-) 10:09:57 alaricsp: OK. 10:10:06 alaricsp: you can do multimethods in Perl too. 10:10:11 Yes 10:10:13 alaricsp: using ->isa(...) 10:10:17 At run-time. 10:10:35 It's not used too often. 10:10:43 Mostly people just use normal methods. 10:11:16 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 10:11:18 Of course some methods instances are polymorphic based on which arguments are passed. 10:11:34 So they may be considered multi-methods too. 10:12:00 I once started designing my own Lisp dialect called Park. 10:12:09 Now I think I'll call it spark. 10:12:17 Because park has too many bad cronotations. 10:12:24 parking etc. 10:12:39 alaricsp: have you looked at Clojure? 10:12:46 ski [n=slj@c-9011e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 10:15:15 alaricsp: http://www.shlomifish.org/open-source/projects/Park-Lisp/ 10:16:21 alaricsp: but I didn't know CL too well back when I wrote it. 10:16:24 And still don't. 10:16:30 I have not, no 10:17:17 AIUI, CL namespaces work by making symbols only compare equal if the string is equal and they'r ein the same 'package', which can be confusing at times 10:17:34 A bit of a hack, perhaps 10:17:53 alaricsp: what is AIUI? 10:18:08 As I understood it? 10:18:12 Sorry "As I Understand It", a disclaimer that I've only briefly looked at it :-) 10:24:07 alaricsp: OK. 10:33:56 Yes, we need namespaces and we need a standard way to have classes and generic functions/multimethods. 10:34:27 And we also need to standardise on a single or a few implementations. 10:34:32 Vinnipeg [n=barbastr@95.84.18.248] has joined #scheme 10:34:39 So people can write extensions in C for it. 10:35:04 alaricsp: what is your favourite Scheme implementation? PLT? 10:46:02 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 10:49:26 underspecified_ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 10:49:33 borism [n=boris@195-50-199-72-dsl.krw.estpak.ee] has joined #scheme 10:52:22 underspecified__ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 10:52:24 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 60 (Operation timed out)] 10:57:18 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 10:58:34 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Remote closed the connection] 10:58:40 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 10:59:16 -!- chylli [n=lchangyi@119.181.15.104] has quit [Remote closed the connection] 11:01:15 -!- underspecified__ [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 60 (Operation timed out)] 11:02:44 -!- jewel_ [n=jewel@dsl-247-206-08.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 11:09:06 underspecified__ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 11:09:23 -!- underspecified__ [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 54 (Connection reset by peer)] 11:09:36 underspecified__ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 11:10:50 -!- underspecified_ [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 113 (No route to host)] 11:27:54 jao [n=jao@127.Red-213-98-196.dynamicIP.rima-tde.net] has joined #scheme 11:28:02 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 110 (Connection timed out)] 11:28:02 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Read error: 104 (Connection reset by peer)] 11:28:10 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 11:43:37 ct2rips [n=ct2rips@p548694C3.dip0.t-ipconnect.de] has joined #scheme 11:43:54 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 11:45:47 masm [n=masm@bl10-6-227.dsl.telepac.pt] has joined #scheme 11:58:40 mario-goulart [n=user@201-40-162-47.cable.viacabocom.com.br] has joined #scheme 12:12:27 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 12:19:39 -!- poe_ is now known as poe 12:23:58 -!- igraltist [n=jens@kasten-edv.de] has quit [Remote closed the connection] 12:25:01 igraltist [n=jens@83.133.120.64] has joined #scheme 12:31:18 -!- ray [i=ray@drong.notacat.org] has quit [Remote closed the connection] 12:31:21 ray [i=ray@drong.notacat.org] has joined #scheme 12:31:41 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit [Remote closed the connection] 12:32:05 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 12:39:48 -!- FunkyDrummer [n=RageOfTh@80.65.72.29] has quit [Read error: 110 (Connection timed out)] 12:41:54 -!- igraltist [n=jens@83.133.120.64] has quit [Read error: 60 (Operation timed out)] 12:42:21 igraltist [n=jens@kasten-edv.de] has joined #scheme 12:51:29 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 110 (Connection timed out)] 12:52:07 bzzbzz [n=franco@modemcable240.34-83-70.mc.videotron.ca] has joined #scheme 12:52:28 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 12:55:50 MrFahrenheit [n=RageOfTh@users-55-243.vinet.ba] has joined #scheme 12:56:40 annodomini [n=lambda@64.30.3.122] has joined #scheme 13:09:57 annodomini_ [n=lambda@64.30.3.122] has joined #scheme 13:09:57 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 54 (Connection reset by peer)] 13:12:10 -!- annodomini_ [n=lambda@wikipedia/lambda] has quit [Client Quit] 13:25:28 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 13:27:06 bombshelter13_ [n=bombshel@206.80.252.37] has joined #scheme 13:35:28 -!- g0ju [n=moo@spalila.hrz.fh-zwickau.de] has quit [Remote closed the connection] 13:36:29 annodomini [n=lambda@130.189.179.215] has joined #scheme 13:39:03 luz [n=davids@139.82.89.70] has joined #scheme 13:41:36 wingo [n=wingo@67.Red-79-156-145.staticIP.rima-tde.net] has joined #scheme 13:47:19 -!- igraltist [n=jens@kasten-edv.de] has quit [Remote closed the connection] 13:49:58 -!- rmrfchik [n=rmrfchik@linuxhacker.ru] has quit [Read error: 110 (Connection timed out)] 13:50:18 -!- pgas [n=user@pdpc/supporter/active/pgas] has quit ["/quit"] 13:52:25 igraltist [n=jens@kasten-edv.de] has joined #scheme 14:00:26 rmrfchik [n=rmrfchik@linuxhacker.ru] has joined #scheme 14:04:36 alaricsp: Check out Olin Shivers 14:04:51 (stupid enter key) 14:05:02 Olin Shivers' "Little Languages" paper. 14:06:24 TimMc: what is it about? 14:07:00 rindolf: It's apropos of an earlier comment alaricsp made about reimplementing sed/awk/grep in Scheme 14:07:15 TimMc: ah. 14:08:17 Basically, looking at sexps and the macro system as a way of writing minilanguages without having to learn a new syntax for each command. 14:08:51 You still have to learn the semantics and "glossary" for each language, of course. 14:27:18 TimMc: interesting. 14:33:27 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 14:34:58 -!- MrFahrenheit [n=RageOfTh@users-55-243.vinet.ba] has quit [Read error: 113 (No route to host)] 14:38:31 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 14:39:43 TimMc: "On the Expressive Power of Programming Languages" is a much more in-depth analysis of the subject, and demonstrates formally how you cannot beat Scheme in terms of terseness, due to its macro system. 14:40:45 -!- kniu [n=kniu@pool-71-106-16-199.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 14:43:06 eli: when code is how large? 14:43:28 eli: and how do you measure this terseness? 14:43:50 eli: and does it include the over-head of defining all the necessary abstractions? 14:44:32 rindolf: the first question doesn't make sense; for the second you'll need to read that paper; and for the third you'll need to break out of this perl-defensiveness. 14:44:57 eli: I mean let's suppose we have language A and language B. 14:45:35 language A has Length-of-Code(Complexity) = Complexity. 14:46:05 And language B has Length-of-Code(Complexity) = 10,000 + Complexity/10 14:46:26 Now for any Complexity < 10,000 (and more) Language A wins. 14:46:36 But for complexity = 1,000,0000 langauge B wins. 14:46:48 But I may never get to 1,000,000 so I don't care. 14:46:50 sepult [n=user@xdsl-87-78-103-121.netcologne.de] has joined #scheme 14:47:13 That makes as much sense as saying that my height is 27. 14:47:36 eli: don't be so pedantic. 14:47:42 eli: don't you get my point? 14:48:10 eli: one language has an initial overhead and a faster rate after the initial length of code was invested.. 14:48:28 But the other has a lower overhead but scales less well. 14:48:53 So if I have a small complexity, then Language A is preferable. 14:48:57 Constant overheads do not exist in programming languages; they're called "libraries". 14:49:11 eli: they sometimes do. 14:49:24 eli: I've written many libraries of my own. 14:50:06 And once I took someone else's CPAN module, patched it, sub-classed and extended and eventually ended up with all-original code. 14:50:22 It could have been Scheme for that matter. 14:51:23 rindolf: I'm not going to be dragged into another perl festival. If you really want to learn something new read that paper. 14:51:25 It's possible that writing the module from scratch without relying on the other developer's efforts would have taken me more. 14:51:35 eli: is it avialable online. 14:51:43 eli: can you give me an executive summary? 14:51:48 Did you try google? 14:51:49 eli: and it's not really about Perl. 14:51:55 eli: no I didn't. 14:53:04 I would have been more inclined to read it, if you answered my question instead of dismissing them. 14:53:15 You are sidestepping one important point: those two languages tie if Complexity is 11111 1/9. Did you think about that? 14:53:25 masm: yes, I did. 14:53:28 masm: that was my point. 14:53:45 masm: but assuming my complexity never grows beyond 100 (say) then I'm ok. 14:54:22 I'm not dismissing your questions, I *refuse* to go down an unproductive waste of time in the form of some imaginary Scheme vs Perl pissing contest. (And no, if you s/Perl/Java/ or s/Perl/B/, it will still be the same contest.) 14:54:35 Also, if we need to invest money in growing to 100 now, and then can afford to grow to 10,000 in a long time, then the language will have a faster time-to-market. 14:55:08 The paper is at http://www.ccs.neu.edu/home/matthias/papers.html, btw. 14:55:33 -!- ASau [n=user@host158-231-msk.microtest.ru] has quit ["off"] 14:55:42 eli: thanks for the link. 14:56:14 PostScript. 14:56:24 dysinger [n=dysinger@71.20.35.99] has joined #scheme 14:56:40 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.51.4656&rep=rep1&type=pdf 14:56:42 -rudybot:#scheme- http://tinyurl.com/ldupbv 14:57:08 I can handle postscrpit. 14:57:46 eli: finding the right library and learning it is also time consuming. 14:58:03 Oh, sorry! I thought you were complaining. :) 14:59:05 masm: well, PostScript is not ideal. 14:59:12 But I can handle it. 14:59:16 HTML is the best for me. 14:59:28 That's PDF incidentally, not PostScript. 14:59:29 Or DocBook/XML. 14:59:47 I only see a .ps.gz link. 15:00:52 Oh I was looking at the citeseer one. 15:00:52 I like PostScript about as well as DocBook. *shrugs* Both are annoying... 15:01:20 synx: what do you prefer? 15:01:44 I've been writing most of my essays in DocBook/XML. 15:02:21 http://www.shlomifish.org/philosophy/ 15:02:27 Some of them are in HTML though. 15:02:35 Dependening on what I feel like is the best. 15:02:43 MediaWiki syntax > * . ;-) 15:02:46 J/K. 15:02:52 I like HTML honestly. DocBook makes me install yet another huge formatter/parser/lexer library. 15:02:52 Horrible stuff. 15:03:03 jewel_ [n=jewel@dsl-247-206-08.telkomadsl.co.za] has joined #scheme 15:03:09 synx: I always give HTML output from my DocBook. 15:03:14 I mean you may as well use OpenOffice's document format if you're going to use DocBook. 15:03:17 synx: but I also give the DocBook for download. 15:04:06 Well, okay. Multiple formats are always good. 15:04:11 I also give PDFs and RTFs. 15:04:22 I can use DocBook/XML to generate them all. 15:04:35 It just bugs me how document formats have these huge behemoths of programs just to display them. 15:04:37 synx: have you looked at AsciiDoc? 15:04:42 I mean TeX is just a nightmare. 15:04:48 Bah nobody uses Tex anymore? 15:04:52 synx: DocBook/XML has DocBook/CSS. 15:04:53 :) 15:05:01 masm: I dislike TeX. 15:05:10 There's DocBook->LaTeX. 15:05:50 TeX was the first one. Now they got DocBook and it's just as huge and complex. 15:05:50 and tex4ht which allows you to create DocBook+MathML or XHMTL_+MathML from LaTeX. 15:06:02 synx: troff preceded it. 15:06:12 synx: DocBook is not as complex as TeX. 15:06:19 At least not its HTML output. 15:06:32 Or most of the non-XSL-FO stuff 15:06:33 Oh right troff... 15:06:48 Unix was originally a glorified troff machine. 15:07:10 How things have advanced. 15:07:24 Or was it roff? 15:07:41 There were earlier typesetting systems I think. 15:07:50 And SGML date back to the 70's. 15:07:55 I think. 15:08:00 moveable type :| 15:08:05 synx: heh. 15:08:28 synx: http://www.shlomifish.org/philosophy/computers/web/choice-of-docs-formats/ 15:09:30 I gave up on writing a MediaWiki parser. 15:09:38 And I got a grant for it. 15:10:03 Which I ended up cancelling. 15:10:16 Maybe I tried to be too right all the time. 15:10:25 Sometmes even more right than MediaWiki itself. 15:10:39 Huh... 15:10:53 You can do stuff like Bold Italics and BoldOnly Italics in MediaWiki. 15:11:01 And it will try to do the right thing. 15:11:07 Amazing. 15:11:18 I tried to do the right thing even better. 15:11:29 My biggest problem with PDF is the viewer. It's like it's designed to try to find sneaky ways to keep you from copying. 15:11:33 Because I wanted valid XHTML. 15:11:40 synx: ah. 15:11:47 PDF sux big time 15:11:54 i can't even express how much it sucks 15:12:01 synx: one thing that frustrates me a little abot PDFS is that I cannot select text excessively. 15:12:12 PDF is basically just compressed postscript. 15:12:13 ment: on web pages it's OK for me. 15:12:20 synx: it's also a simplified language. 15:12:26 rindolf: you can't because there's NO TEXT LAYER 15:12:30 Wtih some niceities such as hyperlinks and JS. 15:12:37 synx: no it is not 15:12:38 That's what I'm saying rindolf. I think Adobe was trying rudimentary copy protection when they set that up. 15:13:03 i've been writing pdf text extractor for a while, it has over 7K SLOC and still works only on about 90% pdfs 15:13:07 There are PDF-to-text filters. 15:13:21 zip -r doc.zip doc.ps stuff/ == doc.pdf 15:13:26 I know PDF does not handle Bidirectional languages (Hebrew, Arabic , etc.) very well. 15:13:47 in one point, it just renders the glyphs and guesses what character is it supposed to be 15:13:47 ment: one good thing about PDF is that it is self-contiained. 15:13:56 It's true ment, that out of a misguided attempt to further copy protect their intellectual property, people producing PDFs will replace their text with a picture of the text. Insanity IMO. 15:13:57 But maybe .chm is also good for that. 15:13:59 synx: no it is not 15:14:07 ugh .chm... 15:14:20 .chm's tend to look crappy. 15:14:40 synx: that's not "protecting intellectual property", that's flawed design 15:14:41 But at least they are HTML-based. 15:14:45 I still don't know why Firefox can't parse zip files. 15:14:51 And a documented standard. 15:14:56 Well, PDFs are also documented. 15:14:56 ment: They think it's protecting intellectual property. 15:15:14 if you want protect property, you check flag "Respect MAH AUTORITAH!" and most pdf viewers will tell you too fuck off 15:15:16 synx: you can also have an HTML with one huge png 15:15:24 s/too/to 15:15:36 synx: instead of text. 15:15:43 Seen that. 15:15:57 I really shouldn't use the word "intellectual property" it's not even an extant legal concept. 15:16:08 It still doesn't mean that images in HTML are bad. 15:16:30 rindolf: Or a HTML page that has a Flash animation that loads up PNG images of text x_x 15:16:36 synx: heh. 15:16:38 synx++ 15:16:53 God I hate Flash so much 15:16:53 synx: Flash is also documented. 15:17:05 synx: and also quite accessible. 15:17:11 At least on windows. 15:17:17 It's documented byte code, but so what? :p 15:17:20 But most blind people are using windows nowadays. 15:17:20 flash is another oh-how-much-i-suck format 15:17:28 I hate Flash too usually. 15:17:39 But I like the Flickr Photo organisation applet. 15:17:45 This is a good use of Flash. 15:17:50 i like gqview organisation application 15:17:57 Maybe it can be done with htML+JS+stuff too. 15:18:07 ment: is it a front-end for Flickr? 15:18:20 rindolf: no, it is picture viewer! 15:18:28 ment: well, I'm using Flickr. 15:18:31 Flash is like "Hmm, let's make a cool animation application in java. No wait, let's hack our own crappy format and fool people into using that, since we'll make more money that way!" 15:18:36 I like to share my photos with the world. 15:18:39 Under the PD. 15:18:47 Flickr sucks 15:18:53 synx: I like it. 15:18:58 Useful to find images. 15:19:00 sucker flix 15:19:05 Some good stuff there. 15:19:11 All that bandwidth and they try to tell you what to do with your own images. 15:19:12 -!- leppie|work [i=52d2e3c8@gateway/web/freenode/x-uujxtsfyromsoxbu] has quit ["Page closed"] 15:19:13 Including a lot of CC stuff. 15:19:26 synx: I keep backups of all my images. 15:19:36 and you have full APIs. 15:19:43 Why would anyone upload a large resolution to Flickr, but then not allow anyone to download it? 15:19:48 You can make a 1<->1 backup of your entire account. 15:20:01 Yeah full APIs, as long as you submit to being tracked and monitored by Yahoo Inc. 15:20:14 synx: with my photos - what do I care? 15:20:20 So... about Scheme. Has anyone here actually used `dynamic-wind` in the course of programming? 15:20:24 synx: if you're not happy, write your own photo gallery. 15:20:29 Or use a pre-made one. 15:20:39 Some of theme may have comments. 15:20:44 There's gallery2 and stuff. 15:20:52 API keys are such folderol. 15:20:58 TimMc: I never used it. 15:21:22 Is dynamic-wind ever really necessary, or is it a power-tool/convenience method that replaces more verbose code? 15:21:29 I did! But I don't have half the bandwidth of Yahoo Flickr. :p 15:21:33 I think Flickr is not even the lesser Evil but pretty fair. 15:21:50 synx: good for you. 15:22:21 synx: and I think they are also profitable. 15:22:25 I think Flickr is okay, but every now and then I find a wonderful picture and can't get more than a tiny size of it, and that makes me sad. :( 15:22:31 reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:22:34 synx: ah. 15:22:42 synx: I'm registered there. 15:23:06 Sometimes people have non-premium accounts and they cannot have the large resolutions for downlaod. 15:23:18 The large resolutiosn are still there on the server, just blocked. 15:23:25 Registering doesn't help. They're the copyright barons, absolute lords of their domain. 15:23:25 There ain't no such thing as a free lunch. 15:23:35 -!- npe [n=npe@195.207.5.2] has quit [] 15:23:45 And I keep asking why would you upload a large resolution if you didn't intend for people to download it? 15:23:53 synx: maybe it's because these people don't have premium accounts. 15:23:56 The only thing that does is give Yahoo more power to push people around. 15:24:04 synx: in case you pay or someone gifts you. 15:24:15 npe [n=npe@195.207.5.2] has joined #scheme 15:24:22 Yeah premium accounts great, so Yahoo gets to profit off of your work. How much of a cut do you get, out of curiousity? 15:24:32 synx: you can have a free account for years, and then have the higher quality ones restored when you pay. 15:24:41 synx: I don't . 15:24:48 what a surprise! 15:24:58 synx: I'm paying Yahoo for the time and convenience . 15:25:16 Maintaining my own Photos sharing service would be much more hassle for me. 15:25:30 I have enough trouble maintaing my static HTML web-site. 15:25:32 You know if I took my painting to an art gallery, and they sold prints but didn't give me any of the money, I'd be pretty upset. 15:25:35 Which once got spammed. 15:25:42 static HTML spammed. 15:25:51 I kid you not. 15:26:05 someone exploited something there and planted links in the HTML. 15:26:23 synx: my photos are PD. 15:26:27 Well, most of them are. 15:26:52 synx: I upload them to enrich the commons. 15:27:07 Yahoo still gets to make money off of them. Unless you upload it somewhere else? 15:27:23 synx: how do they make money? 15:27:29 Flickr is owned by a privately owned company, not public, not commons. 15:27:33 Well, I pay them. 15:27:36 It just tries really hard to pretend to look like a commons. 15:27:39 -!- Vinnipeg [n=barbastr@95.84.18.248] has left #scheme 15:27:45 synx: yes,but other people can download these photos. 15:27:58 synx: you can do a CC search on Flickr. 15:28:10 And find lots of high-rez photos. 15:28:20 CC-by-sa CC-by, etc. 15:28:28 CC-whatever. 15:28:36 Trust me if it wasn't profitable to allow other people to download certain permitted photos, Flickr would close in a day. 15:28:39 I tag them as CC-by but say they are PD. 15:28:45 We're getting very, very far off-topic here. synx, if you really want to continue belabouring the point, may I suggest that you take it into private conversation with rindolf? 15:28:57 synx: you can come to #perlcafe 15:29:02 Or #perl-cats 15:29:13 gnomon: you're right. 15:29:17 OK, where were we? 15:29:20 I don't do any perl these days. 15:29:21 DocBook? 15:29:23 PostScript? 15:29:25 Scheme! 15:29:32 synx: they are not really about Perl. 15:29:42 How about #learnanycomputerlanguage 15:29:46 Or ##programming 15:29:52 synx: /wii rindolf 15:30:14 synx: do you have a favourite chat channel? 15:30:31 ##teenlinux 15:30:36 I'm not a teen. 15:30:41 But I'm there. 15:30:52 uh... 15:30:52 maybe later... 15:30:56 OK. 15:30:59 Never mind. 15:31:05 Let's leave Flickr aside. 15:31:20 So everyone prefers HTML? 15:31:32 Let's have an XHTML vs. HTML holy war. 15:31:42 rindolf: No. 15:31:47 TimMc: I was joking. 15:31:52 They're useless. 15:31:56 Have you yet noticed this is the #scheme channel? 15:32:00 OK. 15:32:02 Back to Scheme. 15:32:06 -!- cracki [n=cracki@46-199.eduroam.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 15:32:33 We were discussing the functions of code size vs. problem complexity. 15:32:40 This is on-topic, right? 15:33:14 Until someone grumpier than me shows up, sure :) 15:33:31 Vaguely. It's really more a matter of IDE/interface pragmatics. (e.g. tab-completion) 15:33:37 We were discussing libraries. 15:34:13 We said that for any given task, you can normally find libraries that will make the initial overhead zero. 15:34:16 In any language. 15:34:43 Now the question is: 15:35:08 A library doesn't eliminate overhead. It's like stomping on a carpet bubble: you're merely moving it around. Proper macros let you actually reduce the size of the carpet and eliminate the bubble. 15:36:00 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 15:36:08 -!- dysinger [n=dysinger@71.20.35.99] has quit [Read error: 110 (Connection timed out)] 15:37:13 Questions* are: 1. Can we compare something like CPAN or the Java or .NET standard libraries (and Jakarta, etc.) to something that rindolf-own's-incompatible-dialect-of-prolog-written-in-ObjC has? 15:37:43 Obvisouly, the chances of finding something useful in the first case is better than in the second one. 15:40:21 rindolf, since we don't know what the libraries for rindolf-own's-incompatible-dialect-of-prolog-written-in-ObjC look like, nobody can answer your question. 15:40:37 gnomon: let's suppose that very few. 15:40:41 At the moment. 15:40:54 rindolf, if you're arguing that the utility of a language is enhanced by a large, rich, comprehensive set of publicly available libraries... well, sure. That's pretty much tautological. 15:41:02 gnomon: right. 15:41:09 But then nobody is going to disagree with that point, so why bother making it? 15:41:22 gnomon: because that will be part of the overhead. 15:41:34 If I can find an HTTP client library in CPAN I can use it. 15:41:50 IF none of them exist for rindolf-prolog, then I'll have to write one on my own. 15:42:02 rindolf: What is your point? 15:42:10 -!- npe [n=npe@195.207.5.2] has quit [Connection timed out] 15:42:34 TimMc: my point is that even if rindolf-prolog is more expressive than Perl, it will take less time to write what I need in Perl. 15:42:42 Because Perl already has these libraries. 15:42:46 Which I can use. 15:42:52 Right. Libraries are good. 15:43:18 More expressive languages won't need as many libraries, of course. 15:43:24 weekend! 15:43:29 leppie: WOOO! 15:43:35 *TimMc* is still at work, though 15:43:57 GreyLensman [n=ray@c-76-109-2-157.hsd1.fl.comcast.net] has joined #scheme 15:44:00 TimMc: possibly not meta-syntactical libraries. 15:44:06 But what about APIs? 15:44:08 For HTTP/ 15:44:10 For SMTP? 15:44:12 For maildir? 15:44:14 For XML? 15:44:16 For RSS? 15:44:19 For PDF? 15:44:27 All different formats. 15:44:35 Or protocols or whatever. 15:45:30 rindolf, again: what is your point? 15:45:36 rindolf: Please try to increase your words/line ratio (while keeping the same number of words) 15:45:44 TimMc: OK. 15:46:00 rindolf: Thanks. 15:46:08 Libraries are good. Yay, everyone agrees. But more expressive languages are also *very good*. In the long term, more expressive languages beat out languages with large libraries. 15:46:10 no! TimMc: Ok, I will try that 15:46:13 :) 15:46:22 TimMc: let's suppose I want to make an application that scraps Flickr (sorry) and creates a PDF with all the pictures resized and rotated and then emails it? 15:46:40 I'll need APIs for Flickr, SMTP, PDf, and jpeg/png/etc. 15:46:45 -!- GreyLensman [n=ray@c-76-109-2-157.hsd1.fl.comcast.net] has left #scheme 15:47:00 If one is missing, I'll have to spend a lot of time developing it myself. 15:47:40 Now Jakarta has all of them, so if I'm using Java, I don't need to re-invent any of these wheels and just get to the business logic. 15:47:44 borism_ [n=boris@195-50-206-23-dsl.krw.estpak.ee] has joined #scheme 15:48:14 Making various API calls. However, let's suppose rindolf-prolog is missing one fo these APIs. Doesn't matter which one. 15:48:32 I'll need ot spend some time hacking an API ( possibly ad-hoc but still ) for one of them. 15:49:06 And then even if teh core rindolf-prolog app core would be 10% of the core Java app core, I'll still have about 10K lines of excess API. 15:49:14 Just for illustrative purposes. 15:50:24 If I'm feeling altruistic, I might release my rindolf-prolog API as open-source. But if I'm not, or if it's too ad-hoc, then someone will have to write something similar for his own tasks. 15:50:53 rindolf: I agree with you. It is completely stupid to create new languages and platforms, because they will have fewer libraries to start with. That is why we should all be using Fortran. 15:51:11 -!- reprore [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 15:51:33 rindolf, you're still not making any point other than "libraries are good". I don't think anyone in here has argued *against* that point. What's next? 15:51:35 reprore__ [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:51:52 Moreover, sometimes APIs build on existing APIs. I can use an HTTP client API to communicate with www.shlomifish.org and scrap its web-services. 15:52:39 gnomon: OK, my point is that the less libraries a platform has the more its potential initial overhead will be. 15:52:55 ...and..? 15:52:59 gnomon: so I cannot assume all languages are equal as far as overhead is concerned. 15:53:05 -!- borism [n=boris@195-50-199-72-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 15:53:08 Ok. 15:53:24 gnomon: so a language's expessiveness is not the only factor in determining its productivity gain. 15:53:26 You're correct: not all languages are equal as far as overhead is concerned. 15:53:39 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 15:53:40 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 15:53:42 Now *that* we can argue. 15:53:49 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 15:53:50 -!- jonrafkind [n=jon@98.202.86.149] has quit [Connection timed out] 15:54:00 rindolf-prolog may be the most expressive language ever, but its lack of libraries will make it a poor choice for most tasks. 15:54:06 Usually libraries can be 'ported' much easier than they can be written from scratch in the new language. Both are a pain in the ass though. 15:54:21 synx: yes, and still an initaly overhead. 15:54:36 rindolf, do you agree that there is a difference between a programming language and the programs written in that language? 15:54:38 I'm not arguing against creating new languages. 15:54:48 gnomon: yes. 15:55:01 I do agree with that. 15:55:30 Ok then. 15:55:39 Just saying that an initial lack of API is something a language will need ot suffer from at the beginning. 15:55:47 Do you agree that there is a difference between a language implementation and a library system? 15:55:55 gnomon: sure. 15:56:04 rindolf, excellent. 15:56:25 BTW, that's just one of my points about libraries. 15:56:25 rindolf, so you agree that there are qualities that a *language* can have which are different from the qualities that a *set of libraries* can have? 15:56:33 gnomon: yes, I do. 15:56:58 gnomon: hopefully these will be manifest in the factor of productivity. 15:57:10 After all libraries have materialised. 15:57:23 Somehow. Don't care how exactly. 15:57:33 s/libraries/APIs/ 15:57:46 rindolf, and do you agree that given two different langauges, each with equally capable set of libraries, it is a good idea to choose the language with more expressive power? 15:57:49 Because libraries may be meta-programming libraries. 15:58:17 gnomon: barring other factors such as portability, bugs, expertise in the langauge, etc. - yes. 15:58:50 We're arguing programming languages here, not what's best for Joe the Coder. 15:59:02 gnomon: for example, Ruby may be more expressive than Perl but it still takes me more time to write Ruby code because I'm not familiar with its nouns and adjectives. 15:59:07 gnomon: right. 15:59:15 gnomon: assume we know all languages perfectly. 15:59:20 Please, rindolf, you don't need to restate the same point over and over again. I assure you, I get it :) 15:59:33 gnomon: OK. 15:59:53 gnomon: OK, so we choose the language with the most expressive power. 16:00:09 Oh, don't give up that easily! We're just getting to the good bit! 16:00:21 Or at least the one of the two (or more) that have all the APIs we need. 16:00:36 gnomon: OK, so what's your point? 16:01:42 rindolf, my point is that Scheme has more expressive capability than your favourite language. 16:02:14 gnomon: OK, let's assume that it does. 16:02:23 gnomon: either Scheme or rindolf-prolog. 16:02:25 Doesn't matter. 16:02:45 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Read error: 145 (Connection timed out)] 16:03:04 rindolf, and my further point is that unless you want to spend the rest of your life hopping from language to language, re-learning how to express the very same functionality with the new set of libraries, you should pick a language that offers you at least as much expressive capability as Scheme. 16:03:25 If you're OK with spending all your time re-learning the same basic steps, well, we have nothing further to argue. 16:03:58 gnomon: well, I've been programming Perl 5 since 1996 and it's not going anywhere soon. 16:04:12 No, it's not, and that's really part of the problem, isn't it? 16:04:17 gnomon: I'm still learning new languages to expand my horizons. 16:04:26 gnomon: you mean I'm a blub programmer? 16:04:42 rindolf, I'm asking you if *you* think you are. 16:04:57 -!- reprore__ [n=reprore@ntkngw598092.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Client Quit] 16:05:14 gnomon: I know Haskell , and CL, and Scheme. 16:05:17 gnomon: to some extent. 16:05:27 gnomon: probably not enough. 16:05:30 "To some extent"? 16:05:38 Did it hurt your brain? 16:05:41 gnomon: well, I've written quite a lot of code in them. 16:05:42 (if not, you're doing it wrong :) 16:05:47 gnomon: no, I liked them. 16:05:57 gnomon: that's not the point. 16:06:04 Ever tried APL, or Erlang, or Smalltalk, or Forth? 16:06:15 gnomon: it's just that Perl 5 fits my way of thinking better. 16:06:22 Maybe it's because of my GW-BASIC root.s 16:06:27 I tried J. 16:06:35 All the operators confused the hell out of me. 16:06:51 I've learned Erlang during one weekend. 16:07:04 The processing/messaging seemed cool. 16:07:22 But it was not as expressive as Perl. 16:07:26 J is APL like . 16:07:31 It's ASCIIfied APL. 16:07:37 I think it errs on being too terse. 16:08:05 I tried Squeak Smalltalk and the UI there annoyed the hell out of me. 16:08:17 I'm glad to see I'm not the only one. 16:08:17 chandler, memo from gnomon: Sorry for bothering you. I attempted unsuccessfully to recreate the problem on my personal machine, and eventually ruled out my editor and web client, and narrowed it down to http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/paste-fidelity.html 16:08:19 -rudybot:#scheme- http://tinyurl.com/pfkp68 16:08:22 minion: yeah, yeah. 16:08:23 watch out, you'll make krystof angry 16:08:36 chandler: who what? 16:08:53 I can't stand the Squeak UI either. 16:08:54 chandler, I ower you about five minutes of your life back. Apologies. Thanks for being so responsive. 16:09:09 gnomon: If I didn't want to waste time, I wouldn't have been there. 16:09:31 Much obliged, then. 16:09:34 Smalltalk seemed a very interesting environemtn but it was so antagonist to what I'm used to. 16:09:42 I want to write code in gvim. Or notepad even. 16:09:48 Well , maybe Notepad++ 16:09:51 But something. 16:09:55 And then save it. 16:09:59 And then execute it. 16:10:04 Squeak doesn't give me that. 16:10:10 yes it does 16:10:12 rindolf, I think we're done, here. I respectfully withdraw from our discussion. 16:10:13 Did you try GNU Smalltalk? It's not built around a graphical in-image development environment ala Squeak. 16:10:19 the 'save' step happens transparently 16:10:36 gnomon: ah. 16:10:40 forth is exceedingly mindbending, by the way 16:10:55 Elly: I've learned alittle PostScript. 16:11:01 I'm a latecomer to the discussion, so I'm not sure why exactly gnomon is respectfully withdrawing. 16:11:20 chandler: we were discussing how libraries affect one productivity. 16:11:26 Or lack of them. 16:11:28 also, prolog is cool 16:11:31 *Elly* ducks 16:11:43 Elly, Forth is hilarious in that if it's used in the fashion approved of by its most vocal community, it simultaneously rewards high-level thinking and absraction and exploiting all the weird quirks of your target hardware. 16:11:44 Comparing CPAN or Java/.Net's STL with rindolf-incompatible-prolog. 16:11:47 nothingHappens [n=nothingh@173-25-176-111.client.mchsi.com] has joined #scheme 16:11:50 Elly, I love that about it. 16:11:55 gnomon: I like that too :P 16:11:56 Which I announced version 0.0.1 of on Freshmeat.net yesterday. 16:12:07 I mean, that's what it's *for*, really 16:12:24 It's a mixed bag. There's no replacement for high quality existing code. There are plenty of replacements for hacked up libraries that only do half of what they ought to do and handle few or none of the boundary conditions of the domain. 16:12:47 gnomon: I did write code like I used to in Haskell , CL and Scheme (in gvim even) and it worked fine. 16:12:58 gnomon: I could never get used to Emacs. 16:13:09 gnomon: but Lisp code is just text. 16:13:15 Well it has a text representation. 16:13:24 gnomon: I did get into macros and stuff. 16:13:36 gnomon: I know what they are good for. 16:13:42 And sometimes hack around them in Perl 5. 16:13:51 rindolf, I withdrew from our conversation, sir. I've made all the points I want to make. 16:13:55 Did you miss the part where gnomon said he wasn't part of this discussion anymore? 16:14:11 gnomon: OK. 16:14:20 ASau [n=user@83.69.240.52] has joined #scheme 16:14:38 But I have other aspects of eli 's argument about libraries. 16:14:42 Oh well. 16:14:45 this discussion is less compelling than the idea of showering 16:14:46 chanlOK. 16:15:06 chandler: I can continue it with you. 16:15:23 I don't know what the discussion is about, honestly. 16:15:55 -!- Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has quit [] 16:16:08 chandler: do you have a backlog? 16:16:18 Or do you want me to paste the logs? 16:16:22 Or explain.. 16:16:29 I do. I saw a lot of text there, and I'm not really that interested in reading it. 16:16:35 Sorry. 16:16:37 chandler: OK. 16:16:41 Please, *please* don't paste anything, rindolf. The channel logs are public and well documented. 16:16:50 gnomon: I see. 16:16:54 OK, fair enough. 16:17:00 Not here, on a pastebot. 16:17:04 pastebin. 16:17:13 You seem to be talking about everything under the sun as far as I can tell, and doing so in rapid-fire style. I don't really have the attention to devote to that. 16:17:13 I wouldn't dream of pasting into a channel. 16:17:14 Again, that's a waste of time, really. Just point to the logs. Here, I'll do it. 16:17:19 I'm not an IRC newbies. 16:17:27 /topic ? 16:17:39 chandler: OK. 16:17:50 I didn't mean to imply that you were. Give me a moment and I'll show you a neat trick. 16:18:56 Great googly-moogly, rindolf, have you been arguing this same point for the last six hours?! 16:19:30 Oh, no, you took a break for a while. 16:19:33 gnomon: I've done some other stuff, like converting the http://fc-solve.berlios.de/ docs to AsciiDoc. 16:19:42 So the day was not completely wasted. 16:19:51 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:20:06 gnomon: just for the record - what was your conclusion? 16:20:27 Oh yes. 16:20:42 That I should transfer immediately to the most expressive language possible 16:20:46 Say rindolf-prolog. 16:21:01 And then be at programming nirvana. 16:21:12 Implementing libraries as I go. 16:21:20 Because it will be best in the long run. 16:21:30 rindolf, I think it's beyond my capabilities to express my conclusion in a way that will be constructive to the conversation, so with your indulgence, I'll refrain from doing so. 16:21:56 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 16:22:13 gnomon: ok, sorry if I disappointed you. 16:22:34 That's an interesting conclusion. Out of curiosity, what is the connection between rindolf-prolog and Scheme? 16:22:54 chandler: we've assumed that Scheme is the most expressive language possible. 16:22:57 Or implied it. 16:23:12 Only we discussed rindolf-prolog instead just to be less politcal. 16:23:28 I think that's a very strong overstatement. 16:23:52 It definitely is a very strong overstatement. 16:24:06 If you'll recall, rindolf, all I said was that Scheme is more expressive than your favourite language. 16:24:21 gnomon: yes, my bad. 16:24:40 chandler: by expressive we mean the speed in which you can implement functionality after the overhead. 16:25:00 I came to that conclusion, rindolf, because your argument is about how Scheme has fewer or less powerful libraries than your favourite language, rather than about the ways in which Scheme limits your ability to express your ideas. 16:25:03 chandler: the initial overhead of finding the APIs, or writing them et.c. 16:25:30 gnomon: I was trying to criticise eli 's argument. 16:26:15 gnomon: he claimed that all languages have equal initial overhead because of the avaialbility of APIs and other libraries. 16:26:37 gnomon: this was *one* of my arguments why it wasn't always the case. 16:27:11 Because CPAN is more comprehsive than the APIs avaialble for rindolf-prolog-0.0.1 16:28:07 Because it take time to produce good APIs and they don't materialise out of thin air. 16:28:23 rindolf: You've said all that already. 16:28:30 TimMc: yes. 16:28:41 rindolf: So stop saying it. 16:28:44 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 16:29:01 OK, so can we agree that the overhead of various platforms is not constant? 16:29:15 As eli claims? 16:29:58 That was my entire point. 16:30:48 rindolf: I hate to be this blunt, but... 1) You're saying the same things over and over again without moving towards a point. 2) At least 4 people have repeatedly told you that they are not interested in discussing this with you. 3) As far as I can tell, no one else in here cares about CPAN, Perl, or the quantity of libraries for any given language. 16:31:45 TimMc: OK. 16:31:48 I'll shut up. 16:31:52 rindolf: Your original argument was with eli, and he has left the discussion. 16:32:08 -!- HG` [n=wells@xdslec221.osnanet.de] has quit [Client Quit] 16:32:29 I'm not saying that you don't have anything worthwhile to say, just that this appears to be neither the time nor the place for it. 16:32:55 TimMc: do you want Scheme to be more popular? 16:33:30 (TimMc, as an aside, I actually do care about CPAN and Perl. I have a great deal of respect for the effort, engineering, and community organization that went into it. I think that the Scheme community has a long row to hoe to produce a comparable resource. I'm just sorry that CPAN was built on a foundation I dislike so much) 16:33:54 -!- dmoerner_ is now known as dmoerner 16:34:07 rindolf: Probably. It's a neat idea. Whether or not Scheme is the most appropriate vector for these neat ideas remains to be seen. 16:34:17 TimMc: ah. 16:34:33 gnomon: I'm curious as to why you respect CPAN so much. My general impression is that there are a few gems scattered about a collection of libraries that, for the most part, is designed with neither extensibility nor correctness in mind. 16:34:35 TimMc: then why don't you think Scheme isn't used too much for real-world stuff? 16:34:57 I'm not attached to Scheme (the specification, or any particular implementation), just the ideas it is founded on. 16:35:12 TimMc: which is? 16:35:46 TimMc: sorry, which are? 16:35:55 rindolf: Why do you think Guido designed a language and implementation (Python) that did not correctly implement closures, that started out with reference counting as its "garbage collection" implementation, that did not include a native compiler, and which does not have an expressive form of syntactic abstraction? 16:35:58 rindolf: I'm not qualified to answer that. Probably because "too many parens", or the specific interests of the community. 16:36:01 And why do you think people adopted it? 16:36:33 TimMc: no I meant - what are the idea it is based on it. 16:36:34 The languages that people do use to day were at one point *less* frequently used than Scheme is today. 16:36:43 chandler: right. 16:36:54 chandler: perl included. 16:36:59 jlongster [n=user@c-68-59-241-164.hsd1.tn.comcast.net] has joined #scheme 16:37:09 chandler: perl 5 is still mostly backwards compatible with perl 1. 16:37:18 scheme has other problems... like the awful syntax of (do) iterator 16:37:21 And perl 1 was horrible, 16:37:33 ment: then can be fixed using a macro. 16:37:38 ment: but I agree. 16:37:44 Right. And Perl today is still stuck with reference counting. 16:37:50 chandler: right. 16:38:01 rindolf: S-expressions are nicer to read (once you shake off the infix mindset). I approve of functional programming. Macros are powerful and interesting. 16:38:07 rindolf: well yeah, but it's a long way (for most users) from for-loops and writing macros 16:38:16 ment: I hate do. 16:38:25 ment: took me a long time to understand it. 16:38:27 s/and/to/ 16:38:30 And then I forgot. 16:38:37 TimMc: OK. 16:39:23 TimMc: if I create a different dialect of Lisp with all these features and more (like namespaces, objects/classes/generic methods/multimethods/etc., etc.) - would you switch? 16:39:26 It *is* possible to design a new language properly from the start. Compare any of the popular dynamic languages to Factor, a stack language by Slava Pestov. Factor has a (quite good!) native compiler, a generational copying collector with hardware write barriers, proper Unicode support, syntactic abstraction, multimethods, and a cross-platform GUI library. 16:39:30 Assuming it becomes popular enough? 16:39:44 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 16:39:45 All of these things are missing from Perl, PHP, Python, Ruby, etc. 16:39:58 And Factor is much younger than all of them. 16:40:08 chandler: maybe. 16:40:19 chandler: factor is the pure-functional or the everything-forth one? 16:40:24 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["If technology is distinguishable from magic, it is insufficiently advanced."] 16:40:34 ment: The latter, if I understand what you mean. It is a stack language, like Forth. 16:40:41 It is not purely functional, but was strongly influenced by Joy. 16:40:44 chandler: Lisp evolved too. 16:40:59 Or should I mention dynamic scoping? 16:41:00 rindolf: Adoption depends also on the size and nature of the community, the quality of the documentation, and the quality of the write/run/debug/manage toolchain. 16:41:12 TimMc: right. 16:41:31 rindolf: It did. I wouldn't argue otherwise! But is there a good reason to ignore what other people have done? 16:41:38 TimMc: let's assume we've solved all these problems with the new dialect of Lisp called TimLisp.. 16:41:38 chandler: ah. from what i've seen, factor has no single-simple-paradigm and includes every good idea from last 40 years of forth development 16:41:51 chandler: no. 16:42:13 Right. So why are languages that are created by people who are willfully ignorant of that evolution so widely used? 16:42:20 chandler: Perl 6 aims to cure Perl 5 of all of its ills by breaking compatibility. 16:42:24 At some level, willful ignorance must have an inherent appeal. 16:42:25 But Perl 5 is not going away. 16:42:33 because ignorance is Bliss! 16:42:40 And Bliss is ignorance. :-) 16:42:58 chandler: anyway, C started very crappy too, and it's not quite usable. 16:43:06 rindolf: All those issues, magically? Then I'm sure it would quickly become popular. Maybe some rebranding or an alternate syntax would be required to inject it into the corporate world, though. 16:43:16 I still prefer to use C for many stuff that I wouldn't use either C or Scheme or whatever. 16:43:23 Sorry Perl or Scheme or whatever. 16:43:33 TimMc: TimLisp 16:43:37 If alternate syntax was the cure, why does Open Dylan recieve so little attention? 16:43:40 TimMc: let's call it "Spark" 16:43:52 Or Clojure . 16:43:57 Doesn't matter. 16:44:02 A cool name. 16:44:21 chandler: maybe Dylan has bad marketing. 16:44:39 chandler: or maybe it has other problems. 16:44:43 well if you want to make some new language more popular, you just have to find a use for it 16:44:46 I'm not familiar with Dylan. 16:44:53 ment: right. 16:44:58 incubot: dylan 16:45:02 thing (after all) was to print T-shirts. We printed T-shirts (at Apple's expense) that said "The power to cancel your very best" on the front. On the back was a screen shot of the Dylan IDE with all of our names listed in a window. In front of that was a dialog box that said "Are you sure you want to cancel the entire Cambridge lab?", with the mouse pointer hovering over the "Cancel" button." 16:45:12 Perl started as a way for people to write (slightly) more robust shell scripts. 16:45:19 Heh. That's a great quote. 16:46:14 In any case, there are vestiges of Lisp (and Scheme) in all modern languages. 16:46:16 Perl I give some slack. It's pond scum, but even pond scum plays a very important role in the ecosystem. 16:46:28 So it wasn't a complete failure. 16:46:40 ... only mostly? 16:46:59 chandler: well, no, it wasn't a failure at all. 16:47:06 Of course not. 16:47:20 OK, let's suppose we want to create a dialect of Lisp that will be popular. 16:47:26 And used for real-wrold stuff. 16:47:30 What do we do first? 16:47:30 like arc! 16:47:36 ment: yeah. 16:47:37 I think a lobotomy might be in order. 16:47:53 It can be based on Scheme , or it can be completely different. 16:48:10 Perhaps you should do some reflection on the point I made about willful ignorance before continuing this discussion. 16:48:11 Now this dialect probably won't have too many libraries at first. 16:48:26 But it should have some. 16:48:26 creating just another scheme spinoff with different syntax is just waste of time 16:48:29 s/just/yet/ 16:48:30 For stuff people find useful in real world applicatiopns. 16:48:49 I find both Common Lisp and Scheme useful now in real world applications. 16:48:58 chandler: fair enough. 16:49:08 chandler: but not too many people do. 16:49:20 screw them! 16:49:22 You still need to reflect on my point about willful ignorance. 16:49:22 rindolf: My favourite impl is Chicken 16:49:40 If we can study the languages that are popular today or were popular in the past, we might be able to find what we need to do. 16:49:44 rindolf: Is it so horrible if Scheme never becomes the Hot Corporate Language? 16:49:55 TimMc: well, no. 16:49:57 There are any number of language implementations that are at least as viable as Python or Ruby for real-world applications, and are in most ways significantly technically superior. 16:49:58 TimMc: I may check out Olin Shivers, but if he sees me checking him out, I may giggle and blush. Is he cute? ;-) 16:50:04 TimMc: but it would be better if it did. 16:50:10 More people == more fun. 16:50:14 And more APIs. 16:50:38 chandler: probably, I don't rule it. 16:50:42 alaricsp: I see. 16:50:43 I may have read his little languages paper, it rings a bell, but I'll find it and make sure I have, thanks ;-) 16:50:59 And more APIs mean more people. 16:51:06 alaricsp: Dunno, but he looks kinda like Tom Hanks did: http://en.wikipedia.org/wiki/File:TomHanks1989.png 16:51:22 alaricsp: Compare: http://www.ccs.neu.edu/home/shivers/trance.gif 16:51:24 Heheheheh 16:51:29 -!- dmoerner [n=dmr@ppp-71-139-15-211.dsl.snfc21.pacbell.net] has quit [Read error: 60 (Operation timed out)] 16:51:38 I studied clojure a little. 16:51:42 They've diverged in appearance since, but find the likeness amusing. 16:51:44 It seemed cute but kinda lame. 16:51:52 It's a Lisp dialect above the JVM. 16:51:55 Written in Java. 16:52:07 Which has access to all the Java APIs. 16:52:09 I know what Clojure is. 16:52:10 TimMC: hahahaha 16:52:14 I assume that many people here do as well. 16:52:19 chandler: OK. 16:52:26 Maybe not all. 16:52:35 This is not a haven for willful ignorance. People will know what you mean if you talk about Clojure, Erlang, ML, Haskell, and more. 16:52:47 chandler: this may be a problem. 16:52:57 chandler: in #perl we're getting many ignorant people. 16:53:10 It's part of the cycle. 16:53:21 rindolf: If people don't know what the language is and have any interest in the conversation, they'll google it. 16:53:35 TimMc: OK. 16:53:53 In any case I'm not sure clojure will be the Lisp messiah. 16:53:55 Not all the noobs, of course. >_< 16:54:03 And you are still conversing in a rapid-fire style instead of putting a complete thought into each message. 16:54:12 It's difficult to follow. 16:54:15 chandler: sorry, I'm tired. 16:54:19 I'll try better. 16:54:21 You've been doing this the whole time. 16:54:42 rothwell [n=rothwell@unaffiliated/rothwell] has joined #scheme 16:54:57 I think you should reflect on willful ignorance. Start with thinking about the mindset that led to the design of the currently-popular languages. Their popularity is an extent of that mindset. 16:55:19 "Extent" isn't the word I was looking for there, but I'm not sure what is. 16:55:27 Aha, "expression" 16:55:33 The way I see it, I express one thought in one IRC message. Maybe I hit return too often though. 16:55:50 Then your thoughts are fragmented. 16:56:04 why do you want new language anyway? what are you missing from the current ones? 16:56:17 chandler: there's the Being Popular article by Paul Graham which I found enlightening. But he may have missed a lot of factors. 16:56:19 Other people, it seems. 16:56:38 ment: well, Scheme is too minimalistic and fragmented. 16:57:06 ment: I would want everyone to standardadise on a single implementation. Or one for C, one for JVM and for .NET, etc. 16:57:23 Like say, Python has. 16:57:32 Yes, he did. And Arc is not particularly well-designed. What is the mindset that leads to the belief that Lisp would be popular, if only the identifiers were shorter and the type system messier? 16:58:34 chandler: well, this is an ad-hominem. You're disqualifying what Paul Graham says because he failed at implementing them. It still doesn't mean he didn't make good points. 16:58:56 chandler: I think there are other factors from what he mentioned. 16:59:38 It's only ad-hominem inasmuch as the design of Arc is an expression of the views of its creator. I think someone who compared programming to art would not dispute that. 16:59:42 chandler: a language can be terribly designed and still be popular. Re: Perl or C. 16:59:56 You are implying a "yet" where there may be a "because" 17:00:13 chandler: not sure I understand you here. 17:00:31 chandler: but never mind, it's tangential to the point. 17:00:39 Is it possible that C, Perl, PHP, Python, Ruby, JavaScript, Java, et. al. are popular *because* they are poorly designed? 17:00:51 I'm unhappy with Arc too . I wrote about it in my blog. 17:00:52 If that is the case, is there a point to having a discussion about a "popular Lisp"? 17:00:56 Good for you! 17:01:08 chandler: I don't think they are popular because they are poorly designed. 17:01:26 Maybe despite the fact they were initially poorly designed. 17:01:45 But a language can be neatly designed and still be popular. 17:01:50 They are currently poorly designed, not just "initially". 17:01:58 chandler: I disagree. 17:02:04 I think PHP is poorly designed. 17:02:17 C too? 17:02:18 And JavaScript has a lot of warts too. 17:02:36 But with jQuery/etc. it is acceptable for some domains. 17:02:45 Like client-side web scripting. 17:02:48 Let's leave C out of this for a minute, as it solving a different problem than the rest. 17:02:54 We don't have a better choice. 17:02:56 chandler: right. 17:03:05 There's no excuse for not having a correctly functioning garbage collector. 17:03:17 There's no excuse for not having unlimited-range integers. 17:03:17 chandler: maybe. 17:03:30 There's no excuse for not having a native compiler (for the single-implementation languages). 17:03:38 There's no excuse for not having a generational garbage collector, too. 17:03:44 There's no excuse for not having syntactic abstraction. 17:03:47 There's no excuse for not having *some* form of syn... 17:03:49 ...oh, bother. 17:04:05 chandler: yes, yes, and yes. 17:04:09 There's no excuse for not having a syntax that isn't so poorly designed that assignment from a closed-over variable can't be distinguished from binding of a new variable. 17:04:29 There's no excuse for not having an implementation of closures that doesn't retain objects that are not closed over. 17:04:34 chandler: I think you are missing the poitn. 17:04:38 There's no excuse for not having proper Unicode support. 17:04:56 These are all aspects of good language design, but they are not necessary for popularity. 17:05:34 Yet you disputed that the languages (and language implementations) I mentioned are poorly designed. 17:05:49 "only perl can parse perl" 17:06:04 some languages are popular, because they do not have any of above 17:06:19 We shouldn't violate them, but we're trying to create a popular Lisp dialect, not create the perfect language. 17:06:50 chandler: I think Perl 5 with some good practices (use strict; use warnings; etc.) is OK. So are Python and Ruby. 17:07:02 *rothwell* sniggers 17:07:03 zbigniew: Only Common Lisp can parse Common Lisp. That's not a bad thing, in my opinion. 17:07:05 *WHO* is trying to create a popular Lisp dialect? 17:07:26 chandler: http://www.perlmonks.org/index.pl?node_id=44722 17:07:36 chandler: I'm not saying they don't have their problems, but it won't lead to writing unmaintainable (much less dangerous) code in the hand of a clueful progrmamer. 17:07:45 Who hopefully also knows Lisp and other languages. 17:08:04 And is aware of the ptifalls in his native language. 17:08:19 gnomon: it's a thought experiment. 17:08:22 zbigniew: The Perl syntax is horrible. I wouldn't dispute it. I'm just saying that "only $foo can parse $foo" is not indicative of anything bad in and of itself. 17:08:46 The original was "Only tex can parse TeX" I think. 17:09:06 chandler, out of curiousity, do you use Lua very often? 17:09:17 And I'm quite fond of Website Meta Language and "Only WML can parse WML". 17:09:38 gnomon: No. I have it on my phone, and am intending to do more with it at some point. 17:09:49 OK, so why isn't Scheme more popular ? Or CL? Or Clojure? 17:09:55 Or Arc for that matter? 17:09:56 It seems like an acceptable little language, but instead of learning it I may just port chibi. 17:10:02 chandler: I have it on my camera. >_< 17:10:10 gnomon: i do quite often 17:10:22 TimMc: Can you actually program on the camera? 17:10:28 Too few buttons! 17:10:43 I should port Scheme to it. 17:10:52 chandler, ah, I see. The reason I ask is that I've been following it since the late 3.x days, and I'm very impressed with how it has evolved from a tiny, feature-poor, oddly-designed little language into the 5.x series, which I consider to be a very pleasantly designed language. The growth process was inspiring. 17:10:53 Aha. I can write Lua on my phone. And it's got a hardware keyboard. 17:10:56 are we seriously going to get into a "why isn't scheme more popular" argument... go bring this up on #lisp, they will probably shoot you in a blind rage 17:11:02 -!- rothwell [n=rothwell@unaffiliated/rothwell] has left #scheme 17:11:11 And what should we do for a Lisp dialect - let's call it "Spark" - could be Scheme or CL or Clojure or whatever we want - to become really popular and actively used in Real world applications by a growing number of programmers. 17:11:12 Camera scripting is friggin' *awesome*, but the hardware for interaction is a bit limiting. 17:11:17 chandler, which phone are you using now..? 17:11:36 Note: we do not want to convert everyone from Perl/Python/Ruby/PHP/whatever to Spark. 17:11:37 gnomon: I'm pleased to see that there is a good example of learning among language designers. 17:11:40 I would love to attach a USB keyboard, but the camera can only act as guest... so far. 17:11:44 gnomon: I have a T-Mobile G1 (HTC Dream). 17:11:51 We just want Spark to be up to par with them. 17:11:52 chandler, ah! 17:11:58 TimMc: Oh, and my phone is a camera too (of course) :-) 17:12:05 chandler: That's cheating. 17:12:12 Psh. 17:12:13 Most people on the street don't know what Python or Perl are. They've only heard of C and Java. 17:12:24 But Python and Perl are still popular. 17:12:34 Most people on the street haven't heard of C and Java. (Well, Java's a cuppa joe.) 17:12:43 And vibrant and healthy and with. 17:12:43 And C's the third letter of the alphabet. 17:12:51 chandler: everyone I know have heard of Java. 17:12:57 In Israel at least. 17:12:59 Nobody I know voted for Nixon! 17:13:04 It was marketed to the sky. 17:13:21 Well, Israel is kinda a Silicon Vaddy. 17:13:23 chandler, I've got an S60 device (the Nokia E51), and although I can write Python on the device - with a full-sized external keyboard, when the situation permits - I have neither Lua nor on-board Scheme. Despite its shortcomings, I miss the LispMe system I used to have on my old Palm device. 17:13:33 Oh, yes. I very much miss LispMe. 17:13:48 I was just blogging (heh) about how disappointed I am that such environments are not allowed on the iPod touch / iPhone. 17:13:49 It was such a lovely little tool. 17:14:01 There was another environment I used, which was a sort of Matlab clone. 17:14:02 chandler: but Java is more popular than Perl or Python. 17:14:15 Ah. It was called LyME: http://www.calerga.com/products/LyME/ 17:14:26 chandler, I used something similar... oh, no! I used the exact same thing, actually. 17:14:39 Did you also use SiEd..? 17:14:42 And Plua? 17:14:52 No, I don't think so. 17:14:57 OK. 17:15:00 Oh, good. You're not a clone of me, then. 17:15:07 (or vice versa, I suppose) 17:15:12 A long time ago, I used to use cBasPad (on my first Palm Pilot Professional) 17:15:35 But once I installed LispMe, it became the tool of choice. LyME was good for math, though. 17:16:06 So what is missing from all the Lisp dialects up to now that didn't make them as popular as Perl/Python/Ruby are today. However, badly design they are they are still community languages without any substantial corporate interest behind them. 17:16:17 rindolf: You are still missing the point. 17:16:23 stupid users 17:16:25 Like PG says they became popular by the time most people have heard of them. 17:16:30 chandler: what is the point? 17:16:35 -!- zipMe_ [n=manu@87-194-4-100.bethere.co.uk] has quit [] 17:16:38 lusers. 17:16:46 You should be asking yourself what is missing from Perl and Python and Ruby that Scheme has, that made them popular. 17:16:55 chandler: I disagree. 17:17:09 chandler: or do you imply that imperfection leads to accessibility? 17:17:19 I am implying that there is an inherent appeal to willful ignorance. 17:17:19 Yar. 17:17:53 chandler: it's only matter of timing, almost any language could be today inside instead of PHP 17:17:53 rindolf, could you please take a moment to set out your points? I want to follow your argument, but I really don't know what points you are trying to support. 17:17:55 chandler: so if I can hack a PHP form in 3 hours without knowing PHP (no matter how many XSS/SQL/security attacks it has) it is a virtue? 17:18:17 gnomon: I want to create a popular dialect of Lisp. 17:18:30 gnomon: which will be actively used for real-world applications. 17:18:35 In production code. 17:18:45 Something like Perl, Python, PHP or Ruby are today. 17:19:00 You can't set out to create something popular, unless you control what other people do. 17:19:05 gnomon: and I'm trying to understand why? 17:19:21 chandler: I don't think Perl became popular by chance. 17:19:28 Or Python 17:19:35 Or Ruby or PHP or whatever. 17:19:42 rindolf, so you're asking a question rather than trying to support a point? Or do you think that you already know what makes a language popular? 17:19:54 gnomon: I'm not sure I do. 17:20:00 gnomon: I'm trying to discuss it. 17:20:11 -!- mario-goulart [n=user@201-40-162-47.cable.viacabocom.com.br] has quit [Connection timed out] 17:20:24 I can tell why I'm using Perl 5 instead of Scheme for my real-world code. 17:20:31 Despite the fact I know Scheme. 17:20:56 Or why I was unhappy from Arc. 17:21:14 rindolf, do you consider yourself to be a Scheme expert? 17:21:18 perhaps it's just more suited, like I use C# for earning an income (a nice one at it) 17:21:32 gnomon: not sure. 17:21:38 gnomon: I know SICP scheme very well. 17:21:55 gnomon: but it has a lot of dark corners that I haven't explored. 17:22:06 leppie: that is acceptable. 17:22:19 I once met a Russian Perl programmer who preferred O'Caml. 17:22:20 mrsolo [n=mrsolo@nat/yahoo/x-wmxcwmyoaipevswi] has joined #scheme 17:22:29 But no one would employ him to write O'Caml. 17:22:37 it reminds me of russian story of cinderella 17:22:52 rindolf, can you explain when it would be appropriate to use a continuation? Or why dynamic-wind can cause difficulties when used to wrap a procedure with side effects? 17:23:03 rindolf: that's becoes 1 no-one else could maintain it, and 2 he would have to maintain it for a long time 17:23:15 bad for both sides 17:23:36 gnomon: a continuation is when you want a function to return from a different place then the place it was called. 17:23:43 gnomon: and I don't know what a dynamic-wind is. 17:23:45 Sorry. 17:23:51 leppie: right. 17:24:04 http://community.livejournal.com/shlomif_tech/18438.html - here's what I didn't like of Arc. 17:24:12 FWIW. 17:24:12 um, i use perl because my clients are large, lumbering, inertial corporations that are stuck in the 90s--and it sucks less than python, ruby and java, as a bonus 17:24:22 zbigniew: OK. 17:24:36 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit [No route to host] 17:24:52 I like Scheme as it allows me to do everything I cant do in C#, but funny enough the core way to do things stays the same, Scheme does help me to write things more concisely 17:24:54 zbigniew: I suppose sometimes second-best is good enough. 17:25:14 leppie: I took my Scheme knowledge to Perl too. 17:25:21 Made me understand closures much better. 17:25:43 (in other words, if you have a choice between java and perl, stay far, far away from java) 17:26:03 a class is nothing but a poor man's closure 17:26:04 gnomon: in any case, of all the language I know the only ones I can say I know the whole of are probably C and Perl 5. 17:26:08 Maybe also PHP. 17:26:25 And it took me a lot of time to learn Perl 5. 17:27:29 And some things in Perl 5 still surprise me a bit (but don't matter in day to day programming). 17:27:49 rindolf, ok. Would it be fair to say that you're judging Scheme without fully understanding it, then? 17:28:06 a language should never surprise you, that could be bad 17:28:09 gnomon: it's an option. 17:28:22 leppie: I mean some facts about the syntax. 17:28:25 leppie: or trickes. 17:28:31 or what does this code do stuff. 17:28:34 Stuff on #perl 17:28:50 then you have much to learn still :) 17:29:25 rindolf: you know the whole of perl 5? for example what an IV is and how the 'tie' system works with regards to magical SVs? 17:29:40 zbigniew: hmmm.... 17:29:42 rindolf, I'm not trying to be insulting - in fact, I'm trying very hard to avoid that, and I hope I'm being at least somewhat succesful. I'm just trying to say that perhaps if you're not using the more advanced parts of Scheme, it may not be immediately and viscerally obvious to you why the lack of those features from other languages is such a big deal. 17:29:46 zbigniew: and IV is an integral value. 17:30:06 gnomon: maybe. 17:30:19 gnomon: I know why coroutines can be useful. 17:30:52 gnomon: What's the answer to the dynamic-wind question? I've been reading about it today. 17:31:03 gnomon: thing is - I didn't learn the whole of Perl at once. 17:31:03 Right, sure. When is a coroutine less useful than a true continuation? When is a single-shot, exit-only continuation less useful than one with truly unlimited extent? 17:31:05 No one can. 17:31:19 gnomon: I cannot answer these questions. 17:31:28 Ok. That answers my question. 17:31:56 Just so we're both on the same page, I'm far, far from being a Scheme expert. 17:32:11 gnomon: still sometimes I program in Perl and say to myself "Wish I could have a macro here." 17:32:14 gnomon: OK. 17:32:23 Gosh, is this discussion still meandering on? 17:32:39 gnomon: or does Evil duplicaty of syntax without it. 17:32:39 It's a slightly different discussion now, thankfully. 17:33:12 zbigniew: "perl 5" or "Perl 5". I'm not a perl 5 (the implementation) expert. 17:33:35 and saying the whole of a language is kinda a hyperbole. 17:33:43 Some stuff in C still surprise me. 17:33:55 gnomon: Out of curiosity, why do you say that you're far from being a Scheme expert? 17:34:46 Anyway, see: http://www.research.att.com/~bs/bs_faq.html#Java 17:34:49 chandler, because I cannot fully explain the intricacies of R5RS macros; and because I have not demonsrated expertise by creating even a toy implementation, let alone one which forces me to take a stand on implementation details left unspecified by the standard. 17:34:57 "demonstrated", rather. 17:35:00 It's about how languages accumulate features. 17:35:07 By Bjarne Stroustrup. 17:35:18 Relevant to this discussion. 17:35:32 "It's a paper about how to dance gracefully and elegantly, by Steve Wozniak." 17:35:39 gnomon: Ah. That's a good answer. 17:36:02 chandler, I hope one day to actually be an expert, and I'm trying, but I'm not there yet! 17:36:21 gnomon: OK. 17:36:44 gnomon: I think I can call myself a Perl 5 expert or an ANSI C expert. 17:37:07 gnomon: not a Bash expert though - I probably know less than 10% of bash. 17:37:17 But I don't want to become a bash expert. 17:37:21 chandler: I probably shouldn't try to write a Scheme implementation for my camera as a first attempt. It's a single-threaded environment in assembly. :-( 17:37:31 Because I don't need that extra functionality. 17:37:53 And I'm certainly not a C++ expert. 17:37:54 gnomon: For what it's worth, I have been pondering implementing R6RS for just that reason, in the hope that having a better understanding at that level of what the R6RS is now will provide me with a better perspective on where the R7RS process ought to go. 17:38:08 chandler: What do you think I should know before writing one (on some other platform) though? 17:38:12 Even non-experts can be productive and write functional (and secure) code. 17:39:00 My co-worker, back when I was a Linux kernel developer of sorts implemented his own C implementation in C. 17:39:09 And he was a true kernel hacker. 17:39:21 He could write kernel code as fast as I'm writing Perl. 17:39:38 And he was younger than me. 17:40:10 there's nothing magical about 'kernel code'; it's still C, just under a different set of constraints 17:40:34 Elly: someone once told me web programming was harder than writing kernel code. 17:40:39 TimMc: Well, I'm not quite sure how to answer that question. If you feel that you have a good grasp on the R5RS from a user perspective, implementing it would probably help fill in that level of understanding better. I'm not a Scheme implementor myself, actually. 17:40:46 Elly: and he has done both. 17:40:54 I think leppie would say that he has learned a lot in implementing IronScheme. 17:40:58 rindolf: I'm not sure I understand that comparison 17:41:17 Elly: programming web-backends- RoR, Django, etc. 17:41:23 Maybe I should just go for it, and that will tell me whether I'm ready for that step. :-P 17:41:28 With cross-browser portability. 17:41:32 "kernel code" is not a monolithic task 17:41:35 And portable JS and AJAX ,etc. 17:41:35 yes,I have learned alot,still learning 17:41:39 chandler, how wonderfully coincidental! I've been toying with the very same idea. 17:41:43 I think I'll write it in JS. :-D 17:41:55 TimMc: the Scheme implementation? 17:41:55 chandler, this doesn't exactly lend weight to the not-being-a-clone argument, though. 17:42:01 e.g., implementing context-switching or fork() is actually difficult and takes a while to wrap your brain around 17:42:04 TimMc: using jQuery or something? 17:42:12 TimMc: maybe look at Joose. 17:42:18 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 17:42:19 gnomon: Well, I was toying with writing the implementation in Common Lisp. Does that distinguish us? 17:42:29 A Schmee in a browser would be cool. 17:42:31 chandler, yes! Thank the FSM. 17:42:37 There's already vi in a browser. 17:43:10 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 17:43:17 I even saw an x86 emulator in JS or something. 17:43:22 No, it was Java. 17:43:26 It ran DOOM. 17:43:39 http://sisc-scheme.org/sisc-online.php 17:43:58 Java. 17:44:04 scheme 17:44:10 It's clearly in my browser. 17:44:13 Yes, written in Java. 17:44:19 OR the JVM at least. 17:44:22 There are many implementations of Scheme in JavaScript, with varying levels of compliance and performance. 17:44:23 I have NoScript. 17:44:42 That's nice. 17:44:53 gnomon: How were you thinking of implementing the R6RS? 17:46:13 *sladegen* bets on "not often". 17:46:15 chandler, actually, I was thinking of using Lua. 17:46:22 Does Lua have bignums? 17:46:32 mario-goulart [n=user@201-40-162-47.cable.viacabocom.com.br] has joined #scheme 17:46:46 I was under the impression that it used floating-point numbers for everything, except if you compiled it in integer mode. 17:46:52 chandler: Should something be showing up at that link? I see no REPL. 17:47:11 Not natively, but there are a couple of libraries that support bignums quite well. There's a binding of GMP to Lua, and there is another pure Lua implementation of arbitrary precision arithmetic. 17:47:25 TimMc: Are you sure you haven't disabled Java? It works for me. 17:47:35 Oh, it's *Java*. 17:47:38 works for me too 17:47:40 Yeah. 17:47:46 I am sure I *have* disabled Java. 17:47:53 The operator overloading in the language makes it pretty easy to integrate the library routines with the core language arithmetic operators. 17:48:23 Were you planning on an interpreter, or on translating Scheme to Lua somehow? 17:48:24 chandler: Meh, I'm not fond of applets. 17:48:37 I'm not fond of applets either. But it's indisputably "in the browser". :-) 17:48:44 It's nto native, though. 17:49:41 Of course, since JS could compile Java... :-P 17:50:05 The idea of a real Scheme in JavaScript sounds particularly horrible to me. 17:51:13 chandler, I was planning on starting with an interpreter and gradually hoisting it toward compiling instead (probably down to Lua at first, but also possibly down to something more primitive). 17:51:22 chandler: I've seen a Scheme REPL in JS. That's danking's work. 17:51:53 It's not written in straight JS. It's a Scheme->JS translator that was passed through itself. 17:52:44 gnomon: Does Lua have call/cc, or were you planning on using CPS? 17:53:49 chandler, Lua has coroutines but not proper call/cc. It does feature tail-call elimination, though, so CPS isn't as painful as it could otherwise be. 17:54:28 OK. One of the things I was trying to decide for my potential R6RS-in-CL is whether to assume the CL has tail-call elimination (as most if not all do), or to use trampolines. 17:55:05 I had sort of settled under the latter, as it would also provide a convenient way of running code sandboxed with maximum time and space usage bounds. 17:57:02 Though I could of course do both, so that non-sandboxed code could run as efficiently as possible. 17:57:26 Another Scheme implementation coming up. 17:58:05 chandler: you should write the Scheme implementation in Perl 6. 17:58:12 chandler, http://www.lua.org/pil/6.3.html documents some of the specifics of tail calls in Lua 5.x 17:58:31 dmoerner [n=dmr@a206-213-164-037.losaltos.k12.ca.us] has joined #scheme 17:59:12 rindolf: I could. But I won't. 17:59:25 gnomon, chandler : or in a language you don't know. 17:59:43 chandler, and http://lua-users.org/lists/lua-l/2009-08/msg00151.html documents another reason I like Lua quite a lot :) 17:59:48 rindolf: You should ask more questions. 18:00:21 OK Topic: how can we create a popular dialect of Lisp? 18:00:43 Ugh... call me when this is over 18:01:08 rindolf: I meant, as in "why are you interested in implementing a Scheme in Common Lisp?" 18:01:14 rindolf, I think you've exhausted the potential for productive conversation on that topic in this channel. Perhaps you should try #lisp, or #emacs? 18:01:22 chandler (IIRC) said something about if a language is dumbed down then it contributes to poularity. 18:01:25 gnomon: ah. 18:01:34 I haven't got even started. 18:01:36 rindolf: You are going in loops. I am still here. I have nothing more to say about it. 18:01:40 Maybe I should try #perl 18:01:41 maybe try #arc. someone affiliated with that language thinks they know how to make one 18:02:06 just email pg 18:02:06 Or are you interested to know why I still prefer Perl 5? 18:02:11 No, I am not. 18:02:17 No, I am not. 18:02:17 I think we are not. 18:02:25 zbigniew: /ignore works for me. 18:02:32 gnomon: You are not doing all that well at not being a chandler clone. 18:02:35 zbigniew: I already emailed him with some feature ideas which he hasn't implemented. 18:03:12 rindolf: Please feel free to ask specific questions about the Scheme language. My tolerance for meandering discussions about language popularity has now been exhausted. 18:03:37 chandler: OK. 18:03:44 What is this dynamic-wind thingy? 18:04:15 r5rs dynamic-wind 18:04:15 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_576 18:04:17 -rudybot:#scheme- http://tinyurl.com/6ejmxp 18:05:01 `dynamic-wind' takes three thunks as arguments, and arranges for the first thunk to be called whenever the dynamic extent of the call to the second thunk is entered, and for the third thunk to be called whenever that dynamic extent is exited. 18:05:48 you have to study the implementation to really appreciate it 18:06:08 It's tricksy, but enormously powerful when used correctly. 18:06:23 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 18:06:32 gnomon: And what is a correct use? 18:06:49 I implemented it in C# when I experimented with CPS'd code, very scary 18:09:14 no-one should ever lay eyes on that code 18:13:17 -!- jlongster [n=user@c-68-59-241-164.hsd1.tn.comcast.net] has quit [Read error: 110 (Connection timed out)] 18:17:29 chandler, `whether to assume the CL has tail-call elimination (as most if not all do)' -- what Common Lisp implementations guarantee proper tail recursion? 18:18:18 TimMc, it's a lot easier to give an example of an incorrect use rather than a correct one! 18:19:07 gnomon: That's... not encouraging. :-/ 18:19:31 chandler: I think I understand it. 18:19:38 chandler: can it be implemented using a function? 18:19:46 chandler: or does it require at least a macro? 18:19:49 Well, let me put it this way: I am not confident in my ability to write code that uses dynamic-wind and guarantee that I'm doing so correctly - but, as I said earlier, I'm no wizard. 18:19:55 Though it makes my head spin. 18:20:07 I wonder if I could put a closure inside a macro, or vice-versa? 18:20:18 Gosh, there's been a long conversation. Could someone please digest and summarize it for me in twenty-five words or fewer? Thanks! 18:20:37 Riastradh: blah blah Perl PHP CPAN blah popular languages blah 18:21:28 You have a few words left, and have yet to mention Scheme; would you care to elaborate any on that, TimMc? 18:21:35 THat's the problem. 18:21:43 Ah, I see. 18:22:04 But I did (or I thought I did) see some talk about the R6RS and implementations of Scheme and continuations and DYNAMIC-WIND. 18:22:11 -!- hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has quit ["|_ e /\ \/ i |/| G"] 18:22:21 Just now, yes. 18:22:52 I may have missed some other references, and I did try to bring it up earlier. 18:24:35 There was also some discussion of learning Scheme by attempting to implement it, and some complaining about the relative verbosity of Scheme when compared to line noise. 18:28:30 someone mentioned that it was weekend 18:29:49 we also touched on the Brothers Grimm, or perhaps it was the Brothers Karamazov, I can no longer recall 18:30:06 Brothers Grimm? Brothers Karamozov? Same difference. 18:30:30 Both involve some sort of religious idiot and magic beans or something. 18:31:34 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 18:33:02 Man, the more GUI work I do, the better CPS looks as an explicit programming style. 18:33:06 Riastradh: None "guarantee" it, but if you know the implementation, you can determine when it will be optimized. 18:33:20 That's a world of difference from what the R5RS requires, chandler. 18:33:28 Of course. 18:34:11 Riastradh: I can summarise it to you in a PM. Don't want to spam the channel. 18:34:22 But it is sufficient to allow the removal of trampolines, isn't it? 18:34:23 rindolf, no, don't worry -- I was joking. 18:34:30 Riastradh: ah, OK. :-) 18:40:20 rindolf: re "the overhead of various platforms is not constant [...] As eli claims" -- please do *not* put words in my mouth. You are still as clueless as you were about my claims -- at least from my POV; and dropping some sentence into my mouth while I'm gone is not helping you in getting a clue or in explaining your so called point. 18:40:52 eli: OK. 18:40:56 hiyuh [n=hiyuh@KD124214245222.ppp-bb.dion.ne.jp] has joined #scheme 18:41:12 eli: maybe i was misinterpreting you and I apologise. 18:41:39 heat [n=dima@8.21.172.227] has joined #scheme 18:41:48 eli: but I'm still not fond of the "I don't want to bother explaining it to you" attitude. 18:42:36 eli: I once spent several hours explaining about references to a complete newbie, and was glad I did. 18:43:03 And I think I can understand it faster than that because I'm much more clueful than he was. 18:43:31 attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has joined #scheme 18:43:38 eli: so until then we can agree that I don't understand you. 18:43:49 I get the feeling that you think that you are very clueful indeed. This may or may not match reality. 18:44:05 And I think you don't bother to understand me. 18:44:12 Also, my tolerance for this meandering discussion is no less at an end than it was before. 18:44:26 chandler: I was just replying to eli 18:44:29 rindolf: You're missing attitude too, now. "Bothering" with an explanation is something that I now consider a waste of time -- given past 10 hours or so, where you haven't moved an inch, and haven't really said anything new. 18:44:39 Then I'd ask eli not to continue it as well. 18:45:01 Fair enough. 18:45:06 End of discussion. 18:45:27 *rindolf* is entering deep lurk mode. 18:45:28 As it was supposed to have been already. If someone else brings it up again, drop it. 18:48:58 Riastradh, why did your ears perk up when you saw mention of R6RS and dynamic-wind? 18:49:44 gnomon, because it was more recent than the conversation that preceded it. I began by slowly skimming backwards, and then accelerating until I gave up finding the beginning of the conversation. 18:49:53 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 18:50:29 Riastradh, but was it pertinent to something that you've been working on or pondering recently, or was it notable merely for its variety? 18:51:22 It was notable because I saw it while skimming slowly enough to read the words on the screen, before I was scrolling the text so fast that I could not read it. 18:52:04 i need to get around to implementing dynamic-wind efficiently 18:52:14 *Riastradh* blinks. 18:52:17 How does one implement it inefficiently? 18:52:31 oh, inefficiency is guile's specialty :) 18:53:08 mmc [n=mima@cs137104.pp.htv.fi] has joined #scheme 18:53:09 I thought that it was dubious hygiene and scary licensing? 18:53:11 :-) 18:53:32 chandler: Like my uncle! 18:53:56 guile's hygiene is fine now, thank you very much :) 18:54:25 Ah. So, time for a new speciality. I get it. 18:54:25 also, LGPLv3+ is god's one true license. so there. 18:55:19 Thank heavens I don't believe in God! 18:56:07 Fight! Fight! Fight! 18:56:27 *rindolf* loads some X11L ammunition. 18:56:29 Sorry, I've got no God in this fight. 18:57:00 god's got no fight in him, either. 18:57:17 -!- ment [i=thement@ibawizard.net] has quit ["eof"] 18:57:25 I'm not so sure about that: http://www.youtube.com/watch?v=RTEUbtgpIgo 18:57:33 I believe in Absolute Morality, but not in this fight. 18:59:45 wingo, actually, I'm kind of curious to hear your answer to Riastradh's question: in what way is dynamic-way currently inefficient in guile? 19:00:35 gnomon: oh, it conses up a bunch of crap, then calls a c function that does some more consing, forcing its args to be consed as closures 19:00:38 The obvious inefficiency to me would involve having to walk stack frames to find wind points. 19:00:43 really it's consaholism 19:00:48 Ah. 19:01:03 Neato. Thanks very much, wingo. 19:01:06 wingo: so it's not an asymptotic complexity problem? 19:01:23 No, it's asymptomatic. 19:01:29 *gnomon* ducks 19:01:38 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 19:01:40 gnomon: :-) 19:01:45 wingo: Is guile 2.0 intending to be API compatible with 1.x, so that projects currently using 1.x as an extension language can move to the new version quickly? 19:01:53 *rindolf* asymptomates gnomon to zero. 19:02:31 "intended", not "intending" 19:02:37 wingo, in what programs does this consing (of which there can't be all that much!) occupy significant amounts of time? 19:03:52 oh, it's not terribly significant -- but i bet it's on the order of a couple percent on a normal repl session, for example 19:04:02 Or rather, what programs would you expect to speed up by changing how DYNAMIC-WIND stores information? 19:04:20 A couple per cent? How much DYNAMIC-WIND does a normal REPL session entail? What inner loops use it? 19:04:51 things that compile in modules, bind fluid vars, etc 19:05:05 apparently it's a big deal for elisp 19:05:49 Oh. 19:06:00 Does the guile implementation of elisp share the real elisp's broken numeric system? 19:06:17 it could if necessary 19:06:25 currently it uses scheme's 19:06:35 Didn't someone build a hairy elisp->Scheme compiler that would heuristically guess where dynamic binding is actually needed? 19:07:41 i read a scheme48 paper on that once 19:07:46 i think sperber was involved 19:08:03 there is the lexbind branch in CVS (!) too 19:08:20 Heck, you could probably get a pretty good approximation by mimicking Common Lisp. 19:09:12 indeed 19:09:44 So why not do that rather than crufting together a hairy reimplementation of DYNAMIC-WIND that tries to be clever about where and when it allocates storage? 19:10:16 I'm not sure what you mean by "mimicking Common Lisp". 19:10:16 (Hair adds character!) 19:10:55 chandler, by default, variables are lexical, unless marked special by `defvar'. 19:11:00 wingo: Did you see my question about guile 2.0 API compatibility? 19:11:15 Riastradh: Perhaps I'm not following, but how does this help with an implementation of Emacs Lisp? 19:11:27 chandler: i did not. what was it? 19:11:52 what does the keyword 'return' do? 19:12:00 wingo: Is guile 2.0 intended to be API compatible with guile 1.x, such that projects currently using guile as an extension language can pick up 2.0 fairly easily? 19:12:08 chandler, it doesn't help to implement the semantics of Emacs Lisp precisely, but it helps to run existing Emacs Lisp programs faster, and would be simpler to implement than a hairy DYNAMIC-WIND. 19:12:09 CSMan: There is no keyword `return' in standard Scheme. 19:12:30 chandler: not precisely compatible, but most programs will not require modification 19:13:10 ok 19:13:17 Riastradh: I'm not sure how existing Emacs Lisp programs will run if the semantics are changed. 19:13:40 chandler, most Emacs Lisp variables are used as if they were lexically scoped. 19:13:42 The idea of determining whether a dynamic binding can be converted to a lexical binding sounds appealing. 19:14:20 So a cheap heuristic for guessing which ones are used as such and which ones are not is to assume that if the name was bound with `defvar', it will be used as a dynamically scoped variable. 19:16:03 yeah i think that will be a good next step -- i think though that precisely implementing elisp has to be the first one tho 19:16:12 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Client Quit] 19:16:24 Well, elisp doesn't have a precise specification anyway, though, and it changes from version to version of Emacs. 19:16:36 wingo, actually, I'm not so sure if that is correct. 19:16:43 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 19:17:23 If you implement the 'defvar' heuristic, you'll work correctly in most cases, and for those packages that people care about, you'll prompt the developer(s), maintainer(s), and/or user(s) to inspect and address the shortcomings of the code. 19:17:49 In the very best case, you'll end up improving the codebases of projects that don't even go anywhere near Guile. 19:17:50 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Remote closed the connection] 19:18:28 handle-exceptions via dynamic-wind in chicken seems pretty slow 19:18:47 Of course, in the worst case the incompatible behaviour will drive off the very community you're attempting to court... but hey, let's stay optimistic :) 19:20:25 zbigniew, pretty slow compared to what? 19:21:32 proqesi [n=user@unaffiliated/proqesi] has joined #scheme 19:22:34 compared to not catching the exception :) 19:22:54 I don't have comparison data against other systems 19:24:00 so, does that mean we are looking to have a guile run emacs at some point? 19:27:47 sstrickl [n=sstrickl@c-76-119-235-127.hsd1.ma.comcast.net] has joined #scheme 19:27:50 Arelius: if everything works out, yes 19:27:53 unclear tho 19:30:26 Hrm 19:30:32 Well that'd be exciting 19:31:00 Are we talking on the scale of a couple of years, or closer to tens of years? 19:31:05 guile, exciting and new 19:31:07 heh 19:31:13 hopefully within a year or two 19:31:23 Well luck with that 19:31:48 -!- dmoerner [n=dmr@a206-213-164-037.losaltos.k12.ca.us] has quit [Read error: 60 (Operation timed out)] 19:32:11 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Read error: 110 (Connection timed out)] 19:32:29 arcfide [n=arcfide@adsl-99-14-210-197.dsl.bltnin.sbcglobal.net] has joined #scheme 19:36:08 So the idea here is to retain the existing blob of C at the heart of Emacs, and just switch out the language implementation to Guile? 19:36:19 Or would it involve rewriting more substantial parts of that C blob in Scheme? 19:37:00 One can hope for the latter! 19:37:56 chandler: mostly retaining the blob of c, but making shims for the elisp runtime 19:40:40 Interesting. 19:40:48 Well, I hope it works! Elisp drives me batty. 19:41:11 That's funny! I thought you started off that way, chandler. 19:41:52 danfowler1 [n=DFowler@ip-66-9-231-226.autorev.intellispace.net] has joined #scheme 19:41:59 Batty? Not if I can help it. But software works against my sanity. 19:42:58 -!- Edico [n=Edico@unaffiliated/edico] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- ineiros [n=ineiros@james.ics.hut.fi] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- danfowler [n=DFowler@ip-66-9-231-226.autorev.intellispace.net] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- eno [n=eno@nslu2-linux/eno] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- easy4 [n=easy4@c-68-45-192-148.hsd1.pa.comcast.net] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- Khisanth [n=Khisanth@pool-68-237-101-85.ny325.east.verizon.net] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- lde [n=nnuser@184-dzi-2.acn.waw.pl] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- WuJiang [n=wujiang@jumpbug.ccs.neu.edu] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- kazzmir [n=kazzmir@98.202.86.149] has quit [simmons.freenode.net irc.freenode.net] 19:42:58 -!- z0d [n=z0d@unaffiliated/z0d] has quit [simmons.freenode.net irc.freenode.net] 19:44:22 eno [n=eno@nslu2-linux/eno] has joined #scheme 19:44:49 Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 19:45:02 ineiros [n=ineiros@james.ics.hut.fi] has joined #scheme 19:45:09 z0d [n=z0d@unaffiliated/z0d] has joined #scheme 19:45:40 -!- attila_lendvai [n=ati@catv-89-132-189-132.catv.broadband.hu] has quit ["..."] 19:46:13 -!- mmc [n=mima@cs137104.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 19:49:59 easy4 [n=easy4@c-68-45-192-148.hsd1.pa.comcast.net] has joined #scheme 19:50:26 dmoerner [n=dmr@a206-213-164-037.losaltos.k12.ca.us] has joined #scheme 19:51:01 WuJiang [n=wujiang@jumpbug.ccs.neu.edu] has joined #scheme 20:04:40 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 20:07:27 Someone is trying to rewrite Emacs? 20:07:27 arcfide, memo from zbigniew: lshw -short -c memory, dude 20:08:56 if anyone is rewriting emacs, here's what we need to do: write a workable version of the c runtime in javascript, with an elisp interpreter 20:09:07 ... JavaScript?! 20:09:11 What a horrible idea. 20:09:15 1) it's the chrome os version, and 2) imagine doing web programming that way 20:09:35 horrible only in the slowness, not in the awesomeness 20:09:40 -!- jao [n=jao@127.Red-213-98-196.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 20:10:09 Good gravy grasshoppers! People are insane these days. 20:10:12 langmartin: No, we need a hardware emulator in JS to make it really effective. 20:10:39 And with that, I bid you all a good weekend. 20:10:41 that's a good call, TimMc 20:12:41 -!- ct2rips [n=ct2rips@p548694C3.dip0.t-ipconnect.de] has quit ["Noch da, noch da ... Uuuuund weg."] 20:13:37 ravenex [n=raven@238-243-252-87-dynamic-pool.gprs.mts.by] has joined #scheme 20:13:54 arcfide: wingo is trying to yank the existing elisp interpreter out of Emacs and replace it with guile. 20:13:55 -!- Nshag [i=user@Mix-Orleans-106-4-39.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 20:23:16 chandler: To the end of having a GUILE Based editor framework, or to the end of having an Emacs that runs with Guile? 20:25:33 to the ends of time... 20:27:27 Didn't you guys get the memo? JavaScript is the universal virtual machine of the future. 20:32:04 Of the *now*. 20:34:31 Hey, we can and have had worse. 20:36:49 subleq is the only instruction I've ever needed. 20:49:42 -!- dmoerner [n=dmr@a206-213-164-037.losaltos.k12.ca.us] has quit [Read error: 110 (Connection timed out)] 20:57:21 arcfide: wingo indicated that the initial goal is to have a version of GNU Emacs that uses Guile instead of its existing Elisp interpreter. 20:58:51 -!- jewel_ [n=jewel@dsl-247-206-08.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 20:58:53 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit ["Leaving"] 20:59:50 doesn't texmacs use guile? have no idea, though, whether it shares anything with emacs other than the four-letter suffix 21:00:24 Yes, it uses guile, but I don't think it shares anything but a vague editorishness with Emacs. 21:00:33 "It was inspired by TeX and GNU Emacs and while it shares no code with those programs, TeXmacs uses TeX fonts." 21:00:37 indeed 21:01:02 lde [n=nnnuser@184-dzi-2.acn.waw.pl] has joined #scheme 21:01:11 It's one of those programs that I should putz around with someday. I was very interested when I saw that it used Scheme, but then saw that the implementation was Guile. 21:01:32 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 21:03:34 But if wingo keeps it up, I may not need to say things like that for much longer! 21:04:48 i'm compiling texmacs at the moment on recommendation from a friend; he claims it won't disappoint. i'm not nearly as allergic to guile since using lilypond (for better or worse). 21:07:15 i tired it on cygwin about 2 -3 back, was very slow :( 21:07:23 2-3 years back 21:08:16 How much C is there in the implementation? Is it mostly Guile, or is it a lot of C with some extension hooks in Guile? 21:10:14 the scheme seemed very tightly integrated, but i cant say, it was before I discovered scheme 21:11:12 leppie: what's "it", btw: texmacs, lilypond, emacs cum guile? 21:11:34 snurble [n=snurble@s83-191-238-2.cust.tele2.se] has joined #scheme 21:11:36 it = the time 21:11:50 I disambiguated "it" to TeXmacs 21:11:51 reffering to texmacs 21:18:12 -!- mario-goulart [n=user@201-40-162-47.cable.viacabocom.com.br] has quit [Remote closed the connection] 21:18:54 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 21:21:32 chandler: So, a version of Emacs wherein the Elisp interpreter was written in GUILE? Presumably, then, all the code on top would still be in Elsip, but could potentially be rewritten in Guile if someone was so inclined? 21:21:49 dmoerner [n=dmr@ppp-71-139-15-211.dsl.snfc21.pacbell.net] has joined #scheme 21:22:11 arcfide: That seems to be the idea. And theoretically new code could be written in Scheme immediately. 21:22:57 heh; texmacs exports to scheme 21:22:59 brilliant 21:24:36 arcfide, wasn't RMS talking about that in the early 90's? 21:24:54 is guile performance decent these days? 21:25:33 *Fare* remembers horrible memory leaks in SCWM, written on top of guile -- had to kill the process every few days 21:25:43 Fare: oh, inefficiency is guile's specialty :) 21:27:01 Apparently, everyone is telling me that wingo is trying to bring Guile into the fold of respectable Scheme implementations. 21:27:11 *arcfide* is not sure what possessed him to do so. 21:27:14 is elisp performance sooo bad that no one will notice and complain if the elisp interpreter is written in guile? 21:28:08 Fare: I'm pretty sure that no one would notice if the interpreter is properly written and does not have bugs in it. I don't think people using Emacs seem very concerned about some minor slow down here and there, and I don't seem to recall Elisp code being very fast. 21:29:03 arcfide, whatever the speed of it is, a x2 slowdown would probably be noticed. 21:29:34 -!- bombshelter13_ [n=bombshel@206.80.252.37] has quit [] 21:29:40 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 21:30:07 The reason wingo made that statement about guile inefficiency was because of discussion on the performance of `dynamic-wind', which is currently used for Elisp variables. 21:30:13 He is looking at improving the situation. 21:30:45 I don't believe the Elisp implementation is an interpreter of Elisp written in Guile, but rather a translation of Elisp semantics to Guile semantics - so there is no second layer of interpretation. 21:32:36 chandler, continuation marks would be mucho better than dynamic-wind, indeed -- and safe-for-space 21:32:40 -!- mrsolo [n=mrsolo@nat/yahoo/x-wmxcwmyoaipevswi] has quit ["Leaving"] 21:32:48 jao [n=jao@127.Red-213-98-196.dynamicIP.rima-tde.net] has joined #scheme 21:32:55 mrsolo [n=mrsolo@nat/yahoo/x-hwyqvhpykfohoxgj] has joined #scheme 21:50:52 -!- rindolf [n=shlomi@bzq-219-139-216.static.bezeqint.net] has quit [Remote closed the connection] 21:52:40 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 22:01:44 -!- ravenex [n=raven@238-243-252-87-dynamic-pool.gprs.mts.by] has quit [Read error: 104 (Connection reset by peer)] 22:04:54 ravenex [n=raven@155-243-252-87-dynamic-pool.gprs.mts.by] has joined #scheme 22:10:10 jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has joined #scheme 22:10:44 copumpkin [n=pumpkin@129.170.241.32] has joined #scheme 22:11:10 gnomon: ping 22:11:31 *jcowan* unvanishes too and all that sort of thing 22:12:11 *jcowan* belatedly looks around for whats-his-name 22:15:53 he's where-it's-at 22:16:39 What ho, Fare. Long time no speak. 22:17:34 long time no type-on-keyboard-while-watching-the-result-of-what-you-typed 22:19:19 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:22:03 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 22:25:43 arvenex [n=raven@155-243-252-87-dynamic-pool.gprs.mts.by] has joined #scheme 22:26:09 tjafk2 [n=timj@e176220073.adsl.alicedsl.de] has joined #scheme 22:26:29 -!- luz [n=davids@139.82.89.70] has quit ["Client exiting"] 22:26:49 -!- ravenex [n=raven@155-243-252-87-dynamic-pool.gprs.mts.by] has quit [Read error: 104 (Connection reset by peer)] 22:27:58 is there a way to 'resize' a pdf document? I want to change it from paragraph form to a two column format 22:29:19 -!- Elly [n=pyxystyx@unaffiliated/elly] has quit [Read error: 110 (Connection timed out)] 22:33:36 lowlycoder, not really 22:34:04 though mpage and friends may help you print multiple pages reduced 22:37:03 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 22:38:02 They call it "final form" for a reason 22:42:04 -!- tjafk1 [n=timj@e176201255.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 22:49:05 -!- arvenex [n=raven@155-243-252-87-dynamic-pool.gprs.mts.by] has quit [Read error: 104 (Connection reset by peer)] 22:52:03 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 22:59:03 lowlycod1r [n=x@tongke.Stanford.EDU] has joined #scheme 22:59:10 -!- lowlycod1r [n=x@tongke.Stanford.EDU] has quit [Remote closed the connection] 22:59:25 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 23:08:04 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 23:15:44 MononcQc [i=MononcQc@modemcable062.225-20-96.mc.videotron.ca] has joined #scheme 23:21:04 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 23:26:11 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has left #scheme 23:27:34 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 23:33:04 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 23:45:29 -!- wingo [n=wingo@67.Red-79-156-145.staticIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 23:56:14 does (call/cc foo) pass another parameter implicitly? 23:59:47 CSMan: ?