00:00:02 -!- vixey [n=vicky@amcant.demon.co.uk] has quit ["There exists an infinite set!"] 00:00:02 but that's not the point, I just wanted to explain my view of mutable things, you can do pure fp with r5rs 00:00:38 and I lost my idea 00:00:43 sorry 00:00:44 poof 00:01:00 It's getting late here 00:01:29 .fr ? 00:01:35 yep 00:01:37 you're an hour East of GMT? 00:01:44 pretty late for a Sunday evening. 00:01:51 1am 00:04:51 GreyLensman [n=ray@c-76-108-236-161.hsd1.fl.comcast.net] has joined #scheme 00:05:14 -!- GreyLensman [n=ray@c-76-108-236-161.hsd1.fl.comcast.net] has left #scheme 00:05:54 offby1, suppose I have a (let ((a 1)) (let ((a 2)) (is a mean offered by plt scheme to access the first a from here ?)) 00:06:17 nope 00:06:24 That Would Be Bad 00:06:52 -!- yhara_ [n=yhara@7.193.12.221.megaegg.ne.jp] has quit [Read error: 60 (Operation timed out)] 00:07:26 maybe, but in fact, I just have to know the function doing the binding, to override it 00:08:11 offby1: To get simple match to work, you can use quasiquote: 00:08:18 oho 00:08:23 rudybot: eval (match '(fee .fi) [`(,x . ,y) (format "It's ~a and ~a!!" x y)]) 00:08:24 eli: ; Value: "It's fee and (.fi)!!" 00:08:26 well, mine worked, after a few attempts 00:08:32 note my typo 00:08:42 Yes, I saw that... 00:09:00 The reason that patterns like (x . y) don't work is that it makes it impossible to have an extensible pattern language. 00:09:34 _Pb [n=Pb@75.139.140.101] has joined #scheme 00:09:42 -!- a-s [n=user@92.80.104.123] has quit [Remote closed the connection] 00:09:42 rudybot, eval (exit) 00:09:43 Fulax: error: evaluator: terminated (exited) 00:09:51 error ? 00:09:52 synx: re "This is an extremely odd form of IPC" -- why? 00:10:01 rudybot, eval (GRAB) 00:10:01 Fulax: ; Value: # 00:10:22 huh 00:10:33 eli: he killed his sandbox, but he still has his value. 00:10:34 rudybot, eval (+ 3 3) 00:10:34 Fulax: ; Value: 6 00:10:34 hmm 00:10:43 synx: and BTW, you didn't make an infinite loop -- just a self referential one, which means that the two sandboxes are locked waiting for each other. 00:10:44 I guess that's 'cause those values live _outside_ the sandbox. 00:10:45 :) 00:10:48 rudybot: eval (GRAB) 00:10:48 offby1: ; Value: # 00:10:51 rudybot: eval (exit) 00:10:52 offby1: error: evaluator: terminated (exited) 00:10:53 rudybot: eval (GRAB) 00:10:53 offby1: ; Value: # 00:10:55 *offby1* nods gravely 00:11:03 rudybot: eval (procedure-arity (GRAB)) 00:11:03 offby1: ; Value: 0 00:11:06 offby1, that's the behavior I expected 00:11:08 rudybot: eval ((GRAB)) 00:11:08 offby1: ; Value: 1 00:11:09 offby1: Yes, the handles are kept in a global table that maps nick strings to value handles. 00:11:21 rudybot, eval (define mybox (GRAB)) 00:11:22 Fulax: I _didn't_ expect it ... and I've supposedly read the code :-| 00:11:45 offby1: The value will disappear if the originating sandbox died. For example: 00:11:47 rudybot, eval (mybox '(read)) 00:11:47 Fulax: ; Value: (define + *) 00:11:48 yes, now of course if you kill _that_ sandbox, mybox willgo away. 00:11:54 rudybot: give offby1 123 00:11:54 offby1: eli has given you a value, use (GRAB) in an eval to get it (case sensitive) 00:11:58 eli: In my opinion, deadlock is equivalent to an infinite loop. 00:12:01 rudybot: eval (GRAB) 00:12:01 offby1: ; Value: 123 00:12:02 rudybot: eval (exit) 00:12:02 eli: error: evaluator: terminated (exited) 00:12:05 rudybot: eval (GRAB) 00:12:05 offby1: error: grab: the sending evaluator died 00:12:07 yep 00:12:29 anyone can overwrite me value by quickly "giving" me another. 00:12:33 So I'd better GRAB fast! 00:12:49 synx: There's nothing that loops in a deadlock. It's a deadlock: nothing is moving. 00:13:02 rudybot, give offby1 '|Good Night| 00:13:02 offby1: Fulax you got a value, use (GRAB) 00:13:08 offby1: Yes, there's a single receiver per user. 00:13:10 rudybot: eval (GRAB) 00:13:10 offby1: ; Value: |Good Night| 00:13:14 *offby1* falls asleep 00:13:46 In an infinite loop without side effects, nothing moves either. That the implementation is a spinlock doesn't seem to matter. 00:13:48 -!- fusss [n=chatzill@ip70-179-113-121.dc.dc.cox.net] has quit [Read error: 110 (Connection timed out)] 00:13:57 offby1: It's easy to solve that -- but that will imply a more complex interface, like (GRAB 'offby1), or something. 00:14:20 mm hmm 00:14:21 an infinite loop is nearly a livelock 00:14:26 heh 00:14:27 synx: Your idea of a `loop' is a very weird one. 00:14:46 from the POV of what's commonly called "a loop". 00:15:51 It just seems the same to me... the same problem you're dealing with. A implies B when B implies A. Either it spins uselessly, or it deadlocks the threads. 00:16:20 synx: No, you're using the terms in the wrong way. 00:16:39 First of all, there is a "self reference" -- that can happen in many ways and forms. 00:16:41 I'm glad that locking does not take up the processor time. That would suck... 00:17:16 A `loop' happens to be a piece of code with a label that is self-referential: so to execute the code, the computer must jump to a place in the same code. 00:17:41 okay I can follow with that. 00:17:42 And an `inifinite loop' is a common way to describe such a loop where there is no end condition. 00:18:03 (And, of course, there are lots of infinite loops that are very useful.) 00:18:36 offby1, you could maybe add a public read only status for each user who created its sandbox 00:18:56 So is there anything wrong with considering a deadlock as the same sort of situation as an infinite loop? 00:19:44 -!- Kumool [n=Amarante@24.139.152.73] has quit [Read error: 110 (Connection timed out)] 00:19:57 The end condition would be what unlocks the lock, and if it doesn't exist... 00:19:57 No, "same sort of" is vague enough. Unlike "is". 00:20:23 I guess "in my opinion" isn't vague enough 00:20:33 No. 00:20:51 still specifies it too exactly 00:21:13 Like saying apples are equivalent to oranges. They're the same sort of thing, but... yeah 00:21:30 The Earth is blue, like an orange ? 00:23:08 offby1: Will you accept more patches? 00:24:05 of course! 00:24:22 OK, I have one that will make this: 00:24:25 rudybot: eval GRAB 00:24:26 eli: ; Value: # 00:24:39 print as # 00:24:39 Fulax: I think if someone was sharp enough to set a read-only status, they'd also be sharp enough to copy the value someplace safe 00:24:53 eli: huh. Sounds good to me. 00:25:00 Sounds applicable to Scheme in general, not just rudybot 00:25:22 offby1: No, it's just that mzscheme will infer a name in some cases. 00:25:26 For example: 00:25:30 rudybot: eval (lambda () 1) 00:25:31 eli: ; Value: # 00:25:34 offby1, read-only for public, not for the owner 00:25:40 rudybot: eval (let ([foo (lambda () 1)]) foo) 00:25:41 eli: ; Value: # 00:25:46 but readable by everyone 00:26:12 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 00:26:19 Fulax: I know what you meant (I think); it's a way to prevent it from being overwritten. 00:26:36 yep 00:26:38 offby1: Also, do you have any facility to remember things? 00:26:41 eli: oh, so your proposal affects only GRAB itself? 00:26:47 but it shouldn't stored in the sandbox 00:26:47 yes. 00:26:50 eli: are you kidding? I'm notorious for forgetting everything 00:26:58 Kumool [n=Amarante@24.139.152.73] has joined #scheme 00:27:02 who are you again? And why are you kids all on my lawn!! 00:27:04 I mean, something like a per-user preference thing. 00:27:09 eli: nothing like that. 00:27:35 Because it would be easy to make it possible to ask rudybot for an r5rs repl. 00:27:39 yeah 00:27:40 so have a nice end of day 00:27:45 then it'd be useful in #SICP 00:27:50 -!- Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has quit ["Leaving"] 00:28:01 or, _more_ useful, anyway 00:28:42 Recommended hack of the day: http://www.lesswatts.org/projects/powertop/ 00:28:58 I think I went to school with Les Watts -- he's Charlie's brother 00:30:27 offby1: Any preferred interface for "give me an r5rs sandbox"? 00:30:39 rudybot: give offby1 ':-) 00:30:39 mejja: error: eval:1:3: read: unexpected `)' 00:31:32 yhara [n=yhara@raichu.netlab.jp] has joined #scheme 00:32:59 -!- amoe [n=amoe@cpc1-brig3-0-0-cust512.brig.cable.ntl.com] has quit ["leaving"] 00:33:14 eli: maybe "r5eval" instead of "eval" ? 00:33:23 rudybot: give mejja '|:-)| 00:33:24 mejja: offby1 has given you a value, use (GRAB) in an eval to get it (case sensitive) 00:33:33 -!- hoboninja [n=hkarau@acesulfame-potassium.csclub.uwaterloo.ca] has quit [Read error: 104 (Connection reset by peer)] 00:33:45 That doesn't sound great -- then you'd have to be careful saying that or your sandbox will reset. 00:33:48 yep 00:33:51 rudybot: eval (symbol->string (GRAB)) 00:33:51 mejja: ; Value: ":-)" 00:33:57 Either that or allow two sandboxes per person. 00:34:04 well, I was thinking: a nick could have _two_ sandboxes at once 00:34:07 one for each language 00:34:11 kinx 00:34:12 jinx 00:34:47 rudybot: eval (define hope-chest (box #t)) 00:34:54 Even that could be confusing, consider "eval (define x 1)", "r5rseval (+ x 1)" 00:34:57 rudybot: give mejja hope-chest 00:34:57 mejja: offby1 you got a value, use (GRAB) 00:35:06 eli: yep, I did think of that 00:35:10 I figured it'd be "interesting" 00:35:27 I'll just do some command that starts a fresh sandbox for you, in a given language. 00:35:28 rudybot: eval (set-box! hope-chest 'trusseau) 00:35:35 go wild 00:35:45 This will also solve the kill-my-sandbox thing: just start a new one. 00:35:49 does every person have their own sandbox? 00:35:50 aha 00:35:55 elly: not really. 00:36:00 not really? 00:36:01 elly: there can only be three at any time 00:36:05 oh 00:36:08 aw 00:36:14 so the last three people to "eval" each get their own 00:36:18 everyone else is bereft 00:36:19 it'd be cool if the sandboxes could do "IPC" to each other :) 00:36:23 *offby1* stares blankly 00:36:27 isn't that what we're doing? 00:36:37 I mean if they persisted 00:36:47 persistence == eating up all my VM 00:36:58 because I'm cheap, I'm now running the bot on my very own machine over in the office there. 00:37:03 not unless scheme leaks memory like woah 00:37:03 -!- athos [n=philipp@92.250.204.223] has quit ["leaving"] 00:37:04 rudybot: eval (set-box! (GRAB) #xdeadbeef) 00:37:05 oh, I see 00:37:14 which means the next time I vaccuum it's likely to crash. 00:37:28 rudybot: eval (unbox hope-chest) 00:37:28 offby1: ; Value: 3735928559 00:37:38 I coulda swore I put a trusseau in there. 00:37:54 rudybot: eval (define (hope-chest (make-channel))) 00:37:54 offby1: error: eval:1:20: define: not an identifier, identifier with default, or keyword for procedure argument at: (make-channel) in: (define (hope-chest (make-channel))) 00:38:02 rudybot: eval (define hope-chest (make-channel)) 00:38:13 rudybot: eval (channel-put! hope-chest 'take-that-you-bastard) 00:38:13 offby1: error: reference to undefined identifier: channel-put! 00:38:19 *offby1* scratches head 00:38:22 rudybot: eval (channel-put hope-chest 'take-that-you-bastard) 00:38:25 offby1: error: with-limit: out of time 00:38:29 *offby1* stares blankly 00:38:31 rudybot: eval x 00:38:32 eli: error: reference to undefined identifier: x 00:38:35 rudybot: eval (channel-put hope-chest 'take-that-you-bastard) 00:38:38 offby1: error: with-limit: out of time 00:38:39 aaah, it's blocking. 00:38:40 duh. 00:38:42 rudybot: eval x 00:38:42 eli: error: reference to undefined identifier: x 00:38:51 rudybot: eval (define hope-chest (make-asyn-channel)) 00:38:51 offby1: error: reference to undefined identifier: make-asyn-channel 00:38:53 *sigh* 00:38:56 rudybot: eval x 00:38:57 eli: ; Value: rusty-nail 00:39:01 someday I'll learn to type. Not quite yet, though. 00:39:18 offby1: Please call your supervisor, I want to complain about this rusty nail I found in my sandbox. 00:39:40 I want a refund. 00:39:53 that ain't no sandbox. 00:39:59 and you're lucky it wasn't a cat turd. 00:40:14 rudybot: eval (define hope-chest (make-async-channel)) 00:40:14 offby1: error: reference to undefined identifier: make-async-channel 00:40:24 rudybot: eval (require (lib async-channel)) 00:40:25 offby1: error: eval:1:9: lib: ill-formed module path in: (lib async-channel) 00:40:31 damn, I don't remember anything 00:40:41 (require scheme/async-channel) 00:40:50 yeah 00:40:54 fusss [n=chatzill@pool-70-108-121-51.res.east.verizon.net] has joined #scheme 00:40:55 rudybot: eval (require scheme/async-channel) 00:41:03 rudybot: eval (define hope-chest (make-async-channel)) 00:41:10 rudybot: eval (async-channel-put hope-chest 'take-that-you-bastard) 00:41:15 finally 00:41:26 rudybot: give mejja hope-chest 00:41:26 mejja: offby1 has given you a value, use (GRAB) in an eval to get it (case sensitive) 00:41:59 of course I've just opened up a DOS opportunity 00:42:06 rudybot: eval (define foo (GRAB)) 00:42:08 oh? 00:42:23 rudybot: eval (for-each (lambda (thing) (async-channel-put hope-chest thing)) (build-list 1000 values)) 00:42:25 *offby1* ducks 00:42:43 homoiconicity is so much win 00:42:45 elly: it won't hurt mejja, but those values will hang around until my sandbox dies 00:42:57 offby1: they'd do that anyway, wouldn't they? 00:43:02 yeah, I guess. 00:43:09 rudybot: eval (async-channel-get foo) 00:43:09 mejja: error: reference to undefined identifier: async-channel-get 00:43:11 but I think mejja can also add stuff to it, too 00:43:22 mejja: you gotta require scheme/async-channel too 00:43:35 i never understood the wisdom to ban evalbot in #lisp until today 00:43:39 rudybot: eval (async-channel-put foo "manual please") 00:43:39 mejja: error: reference to undefined identifier: async-channel-put 00:43:40 now now 00:43:48 mejja: needs a ! 00:43:56 oh, never mind 00:44:31 rudybot: eval (async-channel-put! foo "LA LA LA") 00:44:32 mejja: error: reference to undefined identifier: async-channel-put! 00:44:50 mejja: plus, that message was for duncanm, not me. 00:44:56 Actually, that's a nice test 00:45:03 rudybot: eval (define x '()) 00:45:04 rudybot: give duncanm "la la la" 00:45:05 duncanm: offby1 has given you a value, use (GRAB) in an eval to get it (case sensitive) 00:45:15 rudybot: eval (define (push! a) (set! x (cons a x))) 00:45:30 rudybot: eval (for-each push! '(1 2 3 4)) 00:45:31 what in the world is he up to ... 00:45:35 rudybot: eval (length x) 00:45:36 eli: ; Value: 4 00:46:02 rudybot: give offby1 push! 00:46:02 offby1: eli you got a value, use (GRAB) 00:46:06 *offby1* glances around nervously. 00:46:12 rudybot: eval (GRAB) 00:46:13 offby1: ; Value: # 00:46:23 offby1: Now do (let ([push! (GRAB)]) (for ([i (in-range 1000000)]) (push! i))) 00:46:25 rudybot: eval ((GRAB) 32) 00:46:28 x 00:46:35 rudybot: eval (length x) 00:46:36 eli: ; Value: 5 00:46:40 rudybot: eval (let ([push! (GRAB)]) (for ([i (in-range 1000000)]) (push! i))) 00:46:42 *offby1* whistles innocently 00:46:45 rudybot: eval (length x) 00:46:46 eli: ; Value: 1000005 00:46:49 eww 00:46:52 rudybot: eval (length x) 00:46:52 eli: ; Value: 1000005 00:46:53 well, nothing wrong so far. 00:47:00 if it didn't exceed its memory limit. 00:47:01 Add a couple of zeroes. 00:47:08 rudybot: eval (let ([push! (GRAB)]) (for ([i (in-range 100000000)]) (push! i))) 00:47:12 offby1: error: evaluator: terminated (out-of-memory) 00:47:13 It should kill my sandbox 00:47:16 *offby1* twiddles thumbs 00:47:20 rudybot: eval (length x) 00:47:21 eli: error: reference to undefined identifier: x 00:47:24 Ha! 00:47:30 DOS 00:47:34 The error about termination was from my sandbox... 00:47:42 Your sandbox should be fine. 00:47:52 eli: if you ever get bored being a Scheme prof, you should become one of those white-hat security guys; you're good at this stuff 00:48:04 rudybot: eval (GRAB) 00:48:04 offby1: error: grab: the sending evaluator died 00:48:10 rudybot: eval push! 00:48:10 offby1: error: reference to undefined identifier: push! 00:48:11 :) 00:48:12 hmm 00:48:34 [off-to-baby-maintenance] 00:48:52 be sure to use the right weight of motor oil 00:48:57 check the points 00:49:01 gap the plugs, etc. 00:49:15 Yeah, all that and more. 00:49:49 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 00:51:26 -!- p1dzkl [i=p1dzkl@2001:470:1f09:979:0:0:0:14] has quit [Read error: 110 (Connection timed out)] 00:54:01 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [] 01:00:12 -!- _Pb [n=Pb@75.139.140.101] has quit ["Leaving"] 01:02:41 X-Scale [i=email@89-180-156-31.net.novis.pt] has joined #scheme 01:03:10 p1dzkl [i=p1dzkl@2001:470:1f09:979:0:0:0:14] has joined #scheme 01:03:11 -!- ASau [n=user@193.138.70.52] has quit [Remote closed the connection] 01:03:22 ASau [n=user@193.138.70.52] has joined #scheme 01:07:35 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 01:17:29 hiyuh [n=hiyuh@KD059133115102.ppp.dion.ne.jp] has joined #scheme 01:24:37 -!- yhara [n=yhara@raichu.netlab.jp] has quit ["Leaving..."] 01:25:09 -!- tabe [n=tabe@210.188.204.133] has quit ["Riece/5.0.0 Emacs/22.3 (berkeley-unix)"] 01:25:23 tabe [n=tabe@210.188.204.133] has joined #scheme 01:26:03 -!- AtnNn [n=welcome@modemcable230.56-56-74.mc.videotron.ca] has quit ["foo"] 01:27:41 -!- Axioplase_ [n=Pied@watchdog.msi.co.jp] has quit ["brb"] 01:30:36 ballzack3 [n=chatzill@cpe-173-89-18-112.wi.res.rr.com] has joined #scheme 01:30:47 how do i include draw.ss in drscheme? 01:30:47 somebody got a test suite for Alex Shinn's pattern matcher? 01:32:24 Axioplase [n=Pied@watchdog.msi.co.jp] has joined #scheme 01:36:17 rotty: such as matchable-test.scm ? 01:36:31 -!- ballzack3 [n=chatzill@cpe-173-89-18-112.wi.res.rr.com] has quit ["ChatZilla 0.9.84 [Firefox 2.0.0.16/2008072311]"] 01:37:18 zbigniew: in chicken? 01:38:02 yes, in svn. it's fairly short. i can post it on the web if you like 01:38:46 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Read error: 54 (Connection reset by peer)] 01:38:47 zbigniew: no, I'll grab chicken SVN -- thanks! 01:40:03 rotty: https://galinha.ucpel.tche.br/svn/chicken-eggs/release/3/matchable/matchable-test.scm 01:40:05 -rudybot:#scheme- http://tinyurl.com/c9fj8p 01:40:12 user anonymous, blank password 01:40:47 in case you just want the one file from SVN 01:42:23 ballzack3 [n=chatzill@cpe-173-89-18-112.wi.res.rr.com] has joined #scheme 01:45:57 -!- hml [n=x@unaffiliated/hml] has quit [Remote closed the connection] 01:51:00 -!- ASau [n=user@193.138.70.52] has quit [Remote closed the connection] 01:51:06 ASau [n=user@193.138.70.52] has joined #scheme 01:52:24 underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has joined #scheme 02:04:05 -!- underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has quit [] 02:07:51 -!- bombshelter13 [n=bombshel@209-161-238-145.dsl.look.ca] has quit [] 02:08:10 bombshelter13 [n=bombshel@209-161-238-145.dsl.look.ca] has joined #scheme 02:30:11 -!- ballzack3 [n=chatzill@cpe-173-89-18-112.wi.res.rr.com] has quit ["ChatZilla 0.9.84 [Firefox 2.0.0.16/2008072311]"] 02:35:04 -!- gweiqi [n=greg@69.120.126.163] has left #scheme 02:37:58 gweiqi [n=greg@69.120.126.163] has joined #scheme 02:40:25 kniu [n=kniu@DA-YU.RES.CMU.EDU] has joined #scheme 02:43:19 -!- attila_lendvai [n=ati@business-89-132-61-222.business.broadband.hu] has quit [Read error: 60 (Operation timed out)] 02:47:35 reprore [n=reprore@ntkngw560169.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 02:49:46 wy [n=wy@c-98-228-40-51.hsd1.in.comcast.net] has joined #scheme 02:49:54 underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has joined #scheme 02:51:02 Mr_Awesome [n=eric@isr5956.urh.uiuc.edu] has joined #scheme 02:51:12 -!- underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has quit [Read error: 104 (Connection reset by peer)] 02:51:30 underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has joined #scheme 02:52:27 underspecified_ [n=eric@isa7-dhcp-116-155.naist.jp] has joined #scheme 02:53:01 -!- underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has quit [Success] 02:55:52 -!- underspecified_ [n=eric@isa7-dhcp-116-155.naist.jp] has quit [Client Quit] 02:58:23 -!- wy [n=wy@c-98-228-40-51.hsd1.in.comcast.net] has quit ["Leaving"] 03:00:59 -!- benny [n=benny@i577A0B8E.versanet.de] has quit [Read error: 113 (No route to host)] 03:01:21 -!- ray` [n=user@c-76-108-236-161.hsd1.fl.comcast.net] has quit [Remote closed the connection] 03:02:42 GreyLensman [n=ray@c-76-108-236-161.hsd1.fl.comcast.net] has joined #scheme 03:02:59 -!- GreyLensman [n=ray@c-76-108-236-161.hsd1.fl.comcast.net] has quit [Client Quit] 03:06:04 arcfide [n=arcfide@99.137.203.69] has joined #scheme 03:06:10 Good evening, y'all. 03:07:39 ballzack3 [n=chatzill@cpe-173-89-18-112.wi.res.rr.com] has joined #scheme 03:07:52 how do you register listeners for keyboard and mouse event in plt scheme? 03:08:04 this is nuts 03:09:37 in plt scheme you usually let the GUI mred do keyboard and mouse events. It's like any other GUI pretty much. 03:10:56 ballzack3, when you create objects you give a callback, thats all 03:15:10 i see how to do that for repainting, but not the other events 03:20:32 the GUI mred? 03:28:11 ballzack3: http://docs.plt-scheme.org/gui/windowing-overview.html#(part._mouseandkey) 03:30:22 Let Me Google That For You 03:31:18 ballzack3: you can usually download the documentation in a way that lets you search it too... 03:31:53 thanks, i didn't see the part before where you had to subclass to override the listener 03:32:02 i thought there was a way to just add them 03:32:59 it didn't seem to mention that in any of the functions like on-subwindow-char, either 03:33:14 I think you can add them, but it's most convenient to subclass it. 03:38:57 -!- Grimmjow_ [n=chatzill@c-69-250-158-95.hsd1.md.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 03:38:58 Grimmjow__ [n=chatzill@c-69-250-158-95.hsd1.md.comcast.net] has joined #scheme 03:39:06 underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has joined #scheme 03:40:59 -!- ballzack3 [n=chatzill@cpe-173-89-18-112.wi.res.rr.com] has quit ["ChatZilla 0.9.84 [Firefox 2.0.0.16/2008072311]"] 04:02:00 -!- CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has quit [Remote closed the connection] 04:09:44 -!- Kumool [n=Amarante@24.139.152.73] has quit ["Leaving"] 04:12:34 CaptainMorgan [n=CaptainM@c-75-68-42-94.hsd1.nh.comcast.net] has joined #scheme 04:13:32 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit ["bye"] 04:14:39 -!- gweiqi [n=greg@69.120.126.163] has quit ["Leaving."] 04:15:44 -!- hadronzoo [n=hadronzo@ppp-70-247-166-177.dsl.rcsntx.swbell.net] has quit [] 04:18:07 -!- arcfide [n=arcfide@99.137.203.69] has quit ["Sleep"] 04:19:16 -!- fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has quit [Success] 04:19:21 -!- incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has quit [Read error: 110 (Connection timed out)] 04:20:15 fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has joined #scheme 04:20:24 jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has joined #scheme 04:20:36 hml [n=x@unaffiliated/hml] has joined #scheme 04:21:32 *jcowan* unvanishes. 04:22:32 incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has joined #scheme 04:24:20 -!- Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has quit [] 04:24:40 Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has joined #scheme 04:26:03 *offby1* waves 04:26:10 rudybot: give jcowan a-gift 04:26:10 jcowan: offby1 has given you a value, use (GRAB) in an eval to get it (case sensitive) 04:26:26 rudybot: eval (grab) 04:26:27 jcowan: error: reference to undefined identifier: grab 04:26:31 case sensitive. 04:26:39 rudybot: eval (GRAB) 04:26:39 jcowan: ; Value: |Not valid in UT, MO, NJ, or months with the letter 'r'| 04:26:44 oh bummer; it expired. 04:26:48 well, I'll get you a new one. 04:27:37 rudybot: eval (GRAB) 04:27:38 jcowan: ; Value: |Not valid in UT, MO, NJ, or months with the letter 'r'| 04:29:29 offby1: What, no threads? 04:30:03 Is it really all sequential one-by-one operations? 04:30:12 -!- nothingHappens_ [n=nothingH@12.226.78.3] has quit [Read error: 145 (Connection timed out)] 04:30:19 rudybot: eval (CDR '(a . b)) 04:30:19 jcowan: error: reference to undefined identifier: CDR 04:30:25 rudybot: yeah, yeah 04:30:54 jcowan: Coming soon to a rudybot near you: r5rs mode. 04:30:54 eli: that's right 04:31:05 eli: it used to be thread-y but it was a big ugly snarl. 04:31:08 offby1: That's pretty surprising. 04:31:15 I have never noticed any problem with it all being one big thread. 04:31:27 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 04:31:49 rudybot: eval (begin (sleep 2.5) 1) 04:31:52 eli: ; Value: 1 04:31:54 now, if it suddenly becomes popular due to your improvements, maybe I should reconsider 04:32:03 rudybot: eval (begin (sleep 3.5) 1) 04:32:06 eli: error: with-limit: out of time 04:32:33 I suspect I know where you're heading with this 04:32:43 one sandbox's sleep will block the others 04:32:45 rudybot: eval (begin (sleep 2.5) (display 1) (display (current-error-port)) (values 1 2 3 4 5 6)) 04:32:48 eli: ; Value: 1 04:32:50 eli: ; Value#2: 2 04:32:51 eli: ; Value#3: 3 04:32:52 eli: ; Value#4: 4 04:32:53 eli: ; Value#5: 5 04:32:54 eli: ; five values is enough for anybody; here's the rest in a list: (6) 04:32:54 eli: ; stdout: "1#" 04:33:02 very 04:33:03 slow 04:33:05 output 04:33:08 that's deliberate 04:33:10 pardon the pun 04:33:12 Sure 04:33:13 That's like 15 seconds where nobody can do anything. 04:33:18 *sigh* 04:33:35 It's not exactly meant to be an industrial-strength bot. 04:33:42 it wasn't, anyway. 04:33:42 Plus, there's some strange bug there in the stdout, which I'm probably responsible for. 04:33:47 :-( 04:33:56 what's the bug? 04:34:06 looks like it's correct to me 04:34:45 rudybot: eval (display 2) 04:34:46 eli: ; stdout: "2" 04:34:58 Ugh. 04:35:02 Hello. Does anyone have some spare minutes for a question regarding dynamic binding? 04:35:05 The bug was on that line. 04:35:13 rudybot: eval (begin (sleep 2.5) (display 1) (display 2 (current-error-port)) (values 1 2 3 4 5 6)) 04:35:14 rudybot: eval (begin (sleep 2.5) (display 1) (display 2 (current-error-port)) (values 1 2 3 4 5 6)) 04:35:15 rudybot: eval (begin (sleep 2.5) (display 1) (display 2 (current-error-port)) (values 1 2 3 4 5 6)) 04:35:16 eli: ; Value: 1 04:35:17 eli: ; Value#2: 2 04:35:18 eli: ; Value#3: 3 04:35:19 eli: ; Value#4: 4 04:35:20 eli: ; Value#5: 5 04:35:21 eli: ; five values is enough for anybody; here's the rest in a list: (6) 04:35:21 eli: ; stdout: "1" 04:35:22 eli: ; stderr: "2" 04:35:26 eli: ; Value: 1 04:35:26 eli: ; Value#2: 2 04:35:27 eli: ; Value#3: 3 04:35:29 eli: ; Value#4: 4 04:35:31 eli: ; Value#5: 5 04:35:33 eli: ; five values is enough for anybody; here's the rest in a list: (6) 04:35:35 There You Go(TM) 04:35:35 eli: ; stdout: "1" 04:35:37 eli: ; stderr: "2" 04:35:39 eli: ; Value: 1 04:35:41 eli: ; Value#2: 2 04:35:43 eli: ; Value#3: 3 04:35:45 eli: ; Value#4: 4 04:35:47 eli: ; Value#5: 5 04:35:49 eli: ; five values is enough for anybody; here's the rest in a list: (6) 04:35:50 -!- geckosenator [n=sean@64-130-160-157.pool.dsl.scrtc.com] has quit [Read error: 110 (Connection timed out)] 04:35:51 eli: ; stdout: "1" 04:35:53 eli: ; stderr: "2" 04:35:57 That's the answer to "Define DOS". 04:36:22 z0d: never mind the spammer; he'll go away if we ignore him 04:36:30 I have an alternative. 04:36:37 z0d: ask away 04:36:42 http://paste.lisp.org/display/74204 04:36:50 rudybot: eval (+ 1 2) 04:36:53 eli: ; Value: 3 04:37:00 rudybot: eval (+ 1 2) 04:37:08 eli: ; Value: 3 04:37:19 rudybot: eval (+ 1 2) 04:37:27 eli: ; Value: 3 04:37:27 If we have a dynamic binding Lisp, it returns (0 0 0). Why? What will l be bound to in map? 04:37:39 offby1: I hope you are paying atenshon. 04:37:49 eli: actually I wasn't :-| 04:37:57 -!- eli [n=eli@arabic.ccs.neu.edu] has quit [Excess Flood] 04:38:04 eli [n=eli@arabic.ccs.neu.edu] has joined #scheme 04:38:27 what'd I miss? 04:38:40 rudybot: eval (+ 1 2) 04:38:41 eli: ; Value: 3 04:38:49 offby1: Look: 04:38:57 *offby1* looks 04:38:59 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 04:39:22 z0d: hold on, I really do want to see what eli is saying 04:39:28 rudybot: eval (+ 1 2) 04:39:30 See? 04:39:37 you keel heem? 04:39:38 eli: ; Value: 3 04:39:48 you slowed him down? 04:40:06 No, I just talked to it privately and made a bunch of (sleep 2) requests. 04:40:12 oh 04:40:17 well, sure. 04:40:20 If I do this long enough, I can DOS anything else from happenning. 04:40:23 of course. 04:40:36 Which means that the input buffer can grow arbitrarily large. 04:40:36 and if you detonate a nuclear weapon under my house, you'll -really- interfere with people. 04:40:41 ah. 04:40:53 lemme think about that. 04:41:00 And when it does wake up, it will deal with a load of stuff coming in. 04:41:06 Let me try something similar. 04:41:34 I assume if you freeze him so long that he forgets to say "PONG" to the server, the server will disconnect him. 04:42:18 rudybot: eval (+ 1 2) 04:42:20 rudybot: eval (+ 1 2) 04:42:22 rudybot: eval (+ 1 2) 04:42:24 rudybot: eval (+ 1 2) 04:42:26 eli: ; Value: 3 04:42:27 eli: ; Value: 3 04:42:28 eli: ; Value: 3 04:42:29 eli: ; Value: 3 04:42:54 Oooh, I forgot that it's my change... It now sleeps after printing any value, even the last one. 04:43:06 I thought about not doing that delay, which was your original version. 04:43:22 Then you'd get a bunch of consecutive messages here. 04:43:39 I don't think it makes sense to allow the sandboxes to have their own threads; then we risk flooding the server. 04:43:43 if that's what you were thinking. 04:44:04 rudybot: quote 04:44:06 rudybot: quote 04:44:08 rudybot: quote 04:44:10 rudybot: quote 04:44:12 rudybot: quote 04:44:14 rudybot: quote 04:44:14 eli: Let's buy a subscription from dotmac. 04:44:14 eli: I'll assign root access to you. 04:44:14 eli: Let's use strncpy. 04:44:14 eli: I love it how Apple voted Yes without comments for OOXML. 04:44:14 eli: Let's riot because our sports team won/lost. 04:44:15 eli: Let's creat a vast network of computers so people all across the world can communicate. 04:44:26 offby1: See? 04:44:28 Too late now, rudybot. 04:44:41 Should I make it more explicit? 04:44:42 well, I see that the responses are oddly delayed. 04:44:57 no swearing; my cat is watching over my shoulder and he's a minor 04:44:59 rudybot: quote 04:45:01 rudybot: quote 04:45:03 rudybot: quote 04:45:05 rudybot: quote 04:45:07 rudybot: quote 04:45:09 rudybot: quote 04:45:09 eli: Let's xult this. 04:45:09 eli: I think anyone who uses an editor that emails you every day needs taken out back and shot. 04:45:09 eli: Perl needs taken out back and shot for making its own regexes. 04:45:09 eli: I feel great inside. Like the cavity of my body is filled with an avocado and mayonnaise whip 04:45:09 eli: Let's login. 04:45:10 eli: I'LL TRANSLATE YOU 04:45:11 rudybot: quote 04:45:12 eli: Let's switch to bitkeeper. 04:45:13 rudybot: quote 04:45:14 eli: Let's sue the Regents of the University of Californa for incorporating our intellectual property into their operating system. 04:45:15 rudybot: quote 04:45:17 rudybot: quote 04:45:17 eli: Let's kill a mockingbird. 04:45:19 rudybot: quote 04:45:19 eli: Let's just all agree that Apple sucks. 04:45:21 rudybot: quote 04:45:21 eli: I'll download you. 04:45:22 yeah yeah 04:45:23 eli: Let's be a '90s guy. 04:45:34 wow, it's like jordanb is right here with us ... 04:45:36 *offby1* shivers 04:45:43 ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has joined #scheme 04:45:56 The point is that if I'm persistent enough I can find some way to get him kicked away. 04:46:01 oooohhhh 04:46:03 bummer 04:46:42 I need to look at that code again. I don't understand how that's happening 04:46:44 I just do a bunch of sleeps, then a bunch of quotes -- and since he's just that sequential kind of guy, he'll do everything one by one, which means spitting out a bunch of quotes very fast. 04:47:12 Well, I just did it privately to avoid more spam, but here's a quick version: 04:47:19 rudybot: eval (define (s) (sleep 2)) 04:47:23 rudybot: eval (s) 04:47:23 rudybot: eval (s) 04:47:24 rudybot: eval (s) 04:47:25 rudybot: eval (s) 04:47:25 rudybot: eval (s) 04:47:28 rudybot: quote 04:47:28 seems to me the solution is to keep track of when he last spoke, and delay if he's said "a lot" of stuff "recently" 04:47:29 rudybot: quote 04:47:33 eli: Personally I maintain that Kelly is a boy's name, and parents who name their girls that also need taken out back. 04:47:34 eli: Let's fuse hydrogen in our cores. 04:48:04 Huh. Whoever wrote that Kelly quote is a "needs VERB+ed" dialect speaker. 04:48:09 Possibly from Western Pennsylvania. 04:48:21 jcowan: he lives in Chicago now; dunno where he grew up 04:49:00 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 04:49:23 offby1: Anyway, I want to do some code shuffling to have toplevel functions do the work instead of nesting them all in one giant function. 04:49:37 feel free 04:49:43 I'm delighted that your hacking on it 04:49:57 eek 04:49:59 I'll leave the thread issue alone -- I'm just surprised that it actually withstood several "omega storms". 04:49:59 s/your/you're/ 04:50:02 I'm doing that more and more 04:50:11 what's an omega storm? 04:50:15 As long as you don't degrade to "ur". 04:50:25 fear not 04:50:26 rudybot: eval ((lambda (x) (x x)) (lambda (x) (x x))) 04:50:29 That. 04:50:30 eli: error: with-limit: out of time 04:50:32 hm 04:50:44 Multiplied by 5 attempts from 10 people, at roughly the same time. 04:50:55 nobody around here is organized enough :) 04:51:48 Probably something to be said about how IRC servers/clients are kind of used to really slow lags etc. 04:52:01 probably. 04:52:12 Anyway, 04:52:26 *eli* disappears in a puff of hacking smoke. 04:52:44 golly 04:54:41 mmm... coffee... 04:55:12 where? 04:55:29 In my mug... and now a little bit in my tummy :) 04:55:36 rudybot: eval (begin (define a 3) (+ a 4)) 04:55:37 X-Scale: error: reference to undefined identifier: a 04:55:47 foof: well, that doesn't help me any :-| 04:56:21 So okay, why does that not work? 04:56:34 who are you asking, and what are you asking about? 04:56:44 hmm 04:56:58 I'm stumped. 04:57:00 rudybot: (begin (define a 3) (+ a 4)) 04:57:03 rudybot: eval (begin (define a 3) (+ a 4)) 04:57:04 offby1: ; Value: 7 04:57:14 someone trashed x-scale's environment? 04:57:27 let me try again 04:57:30 rudybot: eval (begin (define a 3) (+ a 4)) 04:57:30 X-Scale: error: reference to undefined identifier: a 04:57:50 I was querying the bot privately...maybe that's it 04:58:06 I suspect that has something to do with it. 04:58:14 do "eval (exit)" 04:58:17 that'll reset your sandbox. 04:58:18 I think. 04:58:23 Oh 04:58:36 I guess I know what made it that way eval (define define 3) 04:58:37 :) 04:58:42 eval (exit) 04:58:47 rudybot: eval (exit) 04:58:48 X-Scale: error: evaluator: terminated (exited) 04:58:53 let's see if that helps. 04:58:54 rudybot: eval (begin (define a 3) (+ a 4)) 04:58:55 X-Scale: ; Value: 7 04:58:56 yay 04:59:01 great offby1 :) 04:59:02 thx 04:59:13 rudybot: give X-Scale 'nice 04:59:13 X-Scale: offby1 has given you a value, use (GRAB) in an eval to get it (case sensitive) 04:59:29 eval (GRAB) 04:59:34 rudybot: eval (GRAB) 04:59:34 X-Scale: ; Value: nice 04:59:47 that's *nice* :-) 04:59:52 What's the purpose of give? 04:59:59 rudybot: (define cell (mcons 'a 'b)) 05:00:07 rudybot: give z0d cell 05:00:07 offby1: error: reference to undefined identifier: cell 05:00:13 rudybot: eval (define cell (mcons 'a 'b)) 05:00:14 rudybot: give z0d cell 05:00:14 z0d: offby1 you got a value, use (GRAB) 05:00:22 is rudybot running mit-scheme ? 05:00:24 rudybot: eval (GRAB) 05:00:24 z0d: ; Value: {a . b} 05:00:28 Nice. 05:00:29 rudybot: eval (set-mcar! cell 'frotz) 05:00:32 z0d: do it again 05:00:36 rudybot: eval (GRAB) 05:00:36 z0d: ; Value: {frotz . b} 05:00:44 jcowan: eli did that 05:00:44 rudybot: give jcowan 'glotch 05:00:45 jcowan: error: Talk to yourself much too? 05:00:56 rudybot: no 05:01:03 that's his snark. 05:01:06 Cool. Persistent sandboxes? 05:01:25 they persist as long as a) the bot stays alive, and b) three other people don't come along and create their own sandboxes 05:01:47 Limiting it to three is either too many or too few 05:01:51 ayup 05:01:55 no idea what else to do though 05:02:00 rudybot: eval (version) 05:02:00 X-Scale: ; Value: "4.1.4" 05:02:00 I want them to get gc'd eventually 05:02:12 rudybot: eval (banner) 05:02:12 offby1: ; Value: "Welcome to MzScheme v4.1.4 [3m], Copyright (c) 2004-2009 PLT Scheme Inc.\n" 05:02:15 rudybot: version 05:02:15 offby1: 5a808bf 05:02:17 rudybot: source 05:02:18 offby1: http://github.com/offby1/rudybot/tree/5a808bfc5c7a1fb6021566815bd6ae4e7f64c3b8 05:02:18 ah 05:02:23 offby1: So, can you help me with my aforementioned question? 05:02:29 z0d: ah; I'd forgotten! 05:02:30 sure 05:02:32 lemme think 05:02:55 I'd'a thought that'd work in a dynamic lisp, too 05:03:31 Were's speaking about a dynamic Lisp. 05:04:48 heh, it does return 0 0 0 05:05:00 after suitable fiddling to get it to work in Emacs 05:05:14 I couln'd make it work with Emacs. 05:05:22 I whined about fn being undefined. 05:05:33 offby1 annotated #74204 with "emacs flavor" at http://paste.lisp.org/display/74204#1 05:05:36 It's a good thing Emacs exists, or there'd be no dynamic lisps to play with. 05:05:46 jcowan: Um, Common Lisp? 05:05:55 I honestly don't know where those zeroes come from. 05:06:49 Theortically l in map captures something 05:06:54 But I don't know what. 05:07:32 I'd actually have expected this to work the same in a dynamic lisp as in scheme. 05:08:04 In Scheme it returns (c b a) 05:08:09 z0d: Not unless you declare everything in sight special, no. By default CL is lexical. 05:08:37 offby1, pay mind to the variable named `l'. 05:08:49 jcowan: I know. But you can declare them to be special 05:08:51 aha, I was _just thinking_ "I wish Riastradh were here; he'd explain it"! 05:09:07 Riastradh is the genie in the magic lamp. 05:09:17 oh,I think I see 05:09:27 this is an excellent example of why dynamic binding is bad! 05:09:44 I was never able to come up with a simple but realistic example. 05:09:53 So, enlighten me please. 05:09:57 well ... 05:10:09 the outer "let" binds "l". No problem so far. 05:10:15 But the call to "map" rebinds it ... 05:10:24 offby1, try this in elisp: (let ((list-var nil)) (add-to-list 'list-var 5) list-var) 05:10:27 then ... uh ... 05:10:50 Then `map' calls `fn', and `fn' refers to `l', which is the list (2 1 0), as it was passed to `map'. 05:11:04 Specifically, `fn' takes the 2nd element of `l', which is 0. 05:11:18 z0d: watch and learn son 05:11:19 Next, in the recursive call to `map', `l' is (1 0), and `fn' takes the 1st element of `l', which is 0. 05:11:32 Finally, in the last recursive call to `map', `l' is (0), and `fn' takes the 0th element of `l', which is 0. 05:11:58 It's exactly the same reason that non-hygienic macros are bad. 05:12:13 Riastradh: your "list-var" example is excellent 05:12:57 rudybot_ [n=luser@winooski.ccs.neu.edu] has joined #scheme 05:12:58 wow, that's a really good example 05:12:59 -!- bzzbzz [n=franco@modemcable027.191-81-70.mc.videotron.ca] has quit ["leaving"] 05:13:13 Stumped me for a minute. 05:13:35 -!- rudybot_ [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 05:13:58 Riastradh: Do you see any way better than brute force of detecting class ordering dependencies in multiple inheritance? 05:14:30 I don't know what you mean. 05:14:51 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 05:15:18 Are you asking about whether it is necessary to topologically sort the transitive closure of the direct superclass relation to form the class precedence list of any new class? 05:15:20 offby1: Don't use recursion in Emacs Lisp. 05:15:25 foof: lesson learned. 05:15:32 foof: actually, I don't all that often. 05:15:33 offby1: Don't use Emacs Lisp. 05:15:35 now now. 05:15:36 offby1: I revised your `require' specs to new style in places where it was old (foo/bar and (planet user/package/file)) 05:15:36 Riastradh: No. 05:15:43 eli: fine 05:15:54 The idiom is actually to use a `while' loop with `setq'. 05:16:02 offby1: I also made it consult an environment variable, so I don't have to change the source to get a different nick. 05:16:04 I was planning to impose a restriction to the effect that all class precedence lists be globally consistent, 05:16:05 eli: that's the sort of thing I do in passing when I notice it, but have never sat down and done thoroughly 05:16:12 Then drink heavily and try to forget what you just wrote. 05:16:14 eli: fine fine 05:16:20 but that's stronger than necessary if I can detect when cycles make no difference. 05:16:23 eli: although ... I empty the environment before starting. 05:16:24 OK, OK, I'm just saying. 05:16:38 *You* do, which is fine -- then you get the defaults. 05:16:48 (Obviously local cycles are already forbidden.) 05:17:09 I was tired of changing the nick & channels to try it, then revert to commit. 05:17:49 foof, don't forget the occasional littering of one's loops with catches and throws. 05:18:20 How does map rebind l? 05:18:22 foof, consider the highly idiomatic `paredit-forward-sexps-to-kill' in paredit.el, a beauty of Emacs Lisp loopification. 05:18:31 z0d, `l' is among `map's formal parameters. 05:18:47 Yes, I see that. 05:19:09 I rephrase: Why does it bind l to (2 1 0)? 05:19:14 (You probably don't actually want to read that function, by the way, foof. Apologies if you have already blown several brain cells on it.) 05:19:30 z0d, because you passed the list (2 1 0) as the argument for the parameter named `l'. 05:19:44 *foof* will someday get used to everyone's voices so he'll know who's speaking when he's afk 05:19:58 foof: screen reader? 05:20:07 offby1: erc-speak-mode 05:20:45 Riastradh: Oh! 05:20:51 Riastradh: e.g. I was going to forbid (defclass ab (a b) ...) and (defclass ba (b a) ...) from coexisting, but that's not necessary if the names of the methods defined on a and b are disjoint. 05:21:05 I think. 05:21:34 The brute force I spoke of is "for each gf, and any arguments, the applicable methods must be the same for all of the orderings implied by the class definitions in the program" 05:21:39 instead of macro and, is there a function and ? (yes i know it will execute all it's args first) 05:21:47 I'm afraid I don't know what undesirable consequences that restriction might imply, jcowan. 05:22:06 jcowan: How many gf's are you having arguments with? 05:22:08 hml, no, but there is in SRFI 1 a procedure EVERY that will do nearly what you asked for. 05:22:28 lol @ foof 05:23:04 foof: I don't have gf's, I have SO's. 05:23:12 tizoc_ [n=user@r190-133-135-102.dialup.adsl.anteldata.net.uy] has joined #scheme 05:23:18 -!- kniu [n=kniu@DA-YU.RES.CMU.EDU] has quit [Remote closed the connection] 05:23:55 Special orthogonal groups only? 05:24:19 Special and orthogonal, but not groups. 05:25:15 -!- newrudybot [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 05:25:25 In any case, the question here is not "is this a good restriction?" but "is there a straightforward way to determine when the restriction is not necessary?" 05:26:14 The purpose of the restriction is so that method ordering can be done at compile time once and for all, rather than after method selection. 05:26:56 That said, if there's a cogent argument that a fixed method ordering is bad, I'm willing to take it into account. 05:27:42 -!- tjafk1 [n=timj@e176223053.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 05:27:54 tjafk1 [n=timj@e176218031.adsl.alicedsl.de] has joined #scheme 05:29:55 MichaelRaskin_ [n=raskin@chld.ru] has joined #scheme 05:30:05 -!- MichaelRaskin_ [n=raskin@chld.ru] has left #scheme 05:30:15 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 05:30:43 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 05:31:03 -!- newrudybot [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 05:31:14 Is `brute force' tantamount to computing the transitive closure of the direct superclass relation and checking for cycles? 05:32:55 -!- tizoc [n=user@r190-133-141-104.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 05:34:42 No. 05:34:56 Oops. 05:35:00 I didn't mean `direct superclass relation'. 05:35:58 Let me restate that as I meant. Is `brute force' tantamount to checking for cycles in the union of the class precedence relations? 05:36:11 No. 05:36:25 What is brute force, then, in this case? 05:36:31 this is going to sound like a horrible idea; but please help me burn my hand so I can learn that fire = bad. i want to use unicode chars of lambda & arrow (->) in my code; but i'm not sure how to find out which particular unicode char I want (and how to input it in emacs) 05:36:44 "Brute force" is about determining when such cycles are harmless because there are no cases in which method ordering is affected by class ordering. 05:37:13 (Again, I do not speak of local cycles, which are obviously harmful.) 05:37:14  05:37:20 ooooh 05:37:25 rudybot: eval (char->integer #\) 05:37:25 offby1: ; Value: 955 05:37:33 okay, enough, how do you input it? 05:37:34 rudybot: eval "" 05:37:35 offby1: ; Value: "" 05:37:44 hml: in Emacs I did M-x ucs-insert RET 05:38:02 then I typed random crap, getting many errors in the process, until I discovered that its name is GREEK SMALL LETTER LAMDA 05:38:25 it asks me for Unicode (hex) 05:38:38 Riastradh: This can obviously be implemented by a generate-and-test that looks at all possible invocations to make sure all are consistent, but I hope to avoid that. 05:38:39 what is thiss about 'GREEK SMALL LETTER LAMBDA" 05:39:02 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 05:39:15 hml: that's a feature of the newer emacs 05:39:28 so: how you input it depends heavily on what editor you're using. 05:39:42 But PLT scheme, at least, thinks of it as character #955, so that might be worth something 05:39:51 it's also 955 in emacs 05:39:54 3bb 05:39:59 rudybot: eval (number->string (char->integer #\) 8) 05:39:59 offby1: ; Value: "1673" 05:40:04 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 05:40:06 try typing C-q 1673 RET 05:40:19 -!- newrudybot [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 05:40:45 jcowan, sorry, I'm afraid I'm not thinking closely enough about this to be coherent this evening. 05:40:46 M-x ucs-insert \n 3bb also works 05:40:52 how do I bind this to \ ? 05:41:31 Riastradh: I will probe you another time, then. 05:41:32 or rather, i want to bind it to \y 05:42:51 hml: heck, I dunno 05:42:56 that's an Emacs question, really 05:42:58 ask in #emcas 05:43:01 #emacs 05:43:06 and I'll say "I dunno" there, too :) 05:43:20 you haven't said anything there yet 05:58:25 OT: is there anyway to get grep to only show the part of the line that matches (rather than the entire line) 05:59:26 WebDestroya [n=webdestr@ip68-109-87-166.oc.oc.cox.net] has joined #scheme 06:02:45 the answer is "-o" :-D 06:02:54 In GNU grep, yes. 06:03:30 However, -o is known to be very buggy, so complex examples may malf in bizarre ways. 06:03:44 "malf", huh? 06:04:06 May Malkovich? 06:04:16 it's not in the Jargon File so it's not a real word 06:04:32 malfunction 06:04:36 Indeed. 06:05:16 Malkovich, -o Malkovich GNU grep Malkovich Malkovich, Malkovich Malkovich Malkovich. 06:06:19 Malkovich [n=luser@winooski.ccs.neu.edu] has joined #scheme 06:06:23 BUFFALO? BUFFALO (BUFFALO? BUFFALO BUFFALO)* BUFFALO BUFFALO? BUFFALO (BUFFALO? BUFFALO BUFFALO)*. 06:06:41 Malkovich: eval (* 8 7) 06:06:42 eli: ; Value: 56 06:06:53 -!- Malkovich [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 06:07:32 offby1: Now the patterns (the last half of the gigantic `slightly-more-sophisticated-line-proc' function) are all defined separately. 06:07:37 -!- wastrel [n=wastrel@nylug/member/wastrel] has quit ["sleep time is now"] 06:07:46 ...using a syntax hack that I'm very proud of. 06:07:58 good 06:08:08 usual drop location? 06:08:20 I have a bunch more stuffs to do. 06:08:33 I'll be heading to bed in not-long 06:08:47 OK, I'll see if you're still here when I'm done. 06:09:04 There's no visible changes yet anyway. 06:09:17 The motivation for all this is to be able to register commands, so you can do 06:09:19 rudybot: help 06:09:43 yay!!! 06:09:50 I've always meant to do that 06:09:55 incubot: help 06:09:57 anydbody care to help me with a small scheme function? 06:10:06 No. 06:10:12 minion: help 06:10:12 There are multiple help modules. Try ``/msg minion help kind'', where kind is one of: "lookups", "helping others", "adding terms", "aliasing terms", "forgetting", "memos", "avoiding memos", "nicknames", "goodies", "eliza", "advice", "apropos", "acronyms". 06:10:29 sarahbot: help 06:10:39 (Her corpse is not even stinking now.) 06:11:22 hml, Malkovich Malkovich sed Malkovich `-n', Malkovich Malkovich Malkovich `/Malkovich/p'. 06:12:51 Riastradh: ? 06:13:08 Malkovich? 06:13:42 minion: Malkovich 06:13:42 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 06:13:42 Sorry, I couldn't find anything in the database for ``Malkovich''. 06:13:50 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 06:14:25 minion: help making-minion-stfu 06:14:27 minion: add "Malkovich" as: Malkovich Malkovich Malkovich; Malkovich Malkovich, Malkovich. 06:14:27 OK, done. 06:14:35 what's the purpose of dynamic-wind? 06:15:11 to let you have some prep done before your function gets called, and cleanup after -- even if you enter and exit the continuation repeatedly 06:15:41 I suspect it's more for library implementers and less for mere mortal programmers -- I don't use it much 06:15:53 I use exception handling instead, when I can 06:16:04 hml: sed -n -e '//p' 06:16:09 bsmntbombgirl: I see you've had a sex change. 06:16:25 Unless you're not bsmntbombdood, in which case I've put my foot in it. 06:16:31 offby1: how do you even remember me? 06:16:41 i haven't talked in any of your channels for ages 06:16:41 I remember a bsmntbomb_dood_ 06:16:48 bsmntbombgirl, may I ask what `bsmntbomb' is supposed to mean? I figured out the `dood' part eventually, I think (a typo for an extinct bird), but the rest remains opaque. 06:17:03 d00d? 06:17:04 duud? 06:17:11 düd? 06:17:16 you're awesome Riastradh 06:17:47 Satchmo to you, Riastradh, Satchmo to you. 06:17:52 -!- Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has quit [] 06:18:23 so it's like try: finally: ? 06:18:27 No. 06:18:54 It has no analogue in languages without multiply usable continuations, which are most languages. 06:19:24 Its purpose is to establish reversible state for a certain dynamic extent -- a certain span of time -- in a program. 06:19:29 I'd say it serves the same purpose that try/finally serves, although it does a lot more besides. 06:19:33 No, offby1. 06:19:36 not even? 06:19:37 It absolutely does not. 06:19:47 *offby1* sulks 06:19:53 rtra_ [n=rtra@unaffiliated/rtra] has joined #scheme 06:19:54 isn't (dynamic-wind (lambda ()) (lambda () foo) (lambda () bar)) the same as try: foo; finally: bar 06:20:09 bsmntbombgirl: I thought so too 06:20:20 The conventional interpretation of `try/finally' is that the `finally' block should be executed once when control exits the dynamic extent of the `try' block. 06:20:27 yep 06:20:35 The operative assumption is that control will exit the dynamic extent of the `try' block only once. 06:20:40 well, sure 06:21:14 Riastradh: Rather, that the finally block will be executed exactly once 06:21:20 Yes, that's what I meant. 06:21:23 A guarantee which dynamic-wind does not provide. 06:21:27 sure sure 06:21:43 If we discard that assumption, then the conventional interpretation ceases to make sense: `The ``finally'' block should be executed once and only once whenever control exits the dynamic extent of the ``try'' block, which may happen more than once.' 06:22:26 Translate: it's like `try/finally', except that having gotos in the language complicate things. 06:22:29 I don't think your average Python programmer thinks that the finally block must be executed "exactly once", since there's really no other option. 06:22:55 that'd be like me thinking "y'know, this here air is breathable". 06:23:02 -!- Khisanth [n=Khisanth@pool-141-157-238-161.ny325.east.verizon.net] has quit [Read error: 101 (Network is unreachable)] 06:23:05 it's -true-, it's just not something you think about. 06:23:11 "'Water'? What the hell does he mean by 'water'?" 06:23:26 it's like the Ether. 06:23:37 everywhere and nowhere all at once, you see? 06:24:09 For example, it's common to close an open file in a finally block, and you may need to defend against closing a never-opened file there, but you normally don't bother to defend against closing a *closed* file. 06:24:19 true true 06:24:23 `try/finally' (conventionally called UNWIND-PROTECT in Lisp) can be extended to have sensible semantics as follows: `The ``finally'' block should be executed once and only once, when control can no longer enter to the dynamic extent of the ``try'' block.' This is fit for cleaning up non-sensitive resources. 06:24:50 Riastradh: When can that be known other than when it is known a priori? 06:25:29 perhaps a better question (for me anyway) is: what's a simple but typical example of a use of dynamic-wind? 06:25:35 It can also be extended to have sensible semantics in a different way: `The ``finally'' block should be executed once and only once, when control exits the dynamic extent of the ``try'' block, after which re-entering the dynamic extent of the ``try'' block is prohibited.' This is fit for sensitive resources. 06:25:43 (For example, password buffers.) 06:25:45 -!- rtra [n=rtra@unaffiliated/rtra] has quit [Read error: 145 (Connection timed out)] 06:26:13 Neither semantics is that of DYNAMIC-WIND, however. 06:26:23 I think I've used dynamic-wind maybe once in the last two years 06:27:25 DYNAMIC-WIND guarantees that a given procedure be called when control enters the dynamic extent of the body, and that another given procedure be called whenever control exits that dynamic extent. 06:27:33 Riastradh: is it the case that both of these kinds of unwind-protects can be implemented with dynamic-wind? 06:27:36 well, yes; I knew that 06:28:25 For example, suppose we have thread-local cells with procedures CELL-VALUE and SET-CELL-VALUE! with the obvious meanings. 06:28:32 -!- rtra_ [n=rtra@unaffiliated/rtra] has quit [Read error: 145 (Connection timed out)] 06:28:54 ok 06:29:02 Then we can emulate dynamic scope, or dynamically bound cells, with thread-local cells using DYNAMIC-WIND: 06:29:27 I can see that 06:29:54 -!- WebDestroya [n=webdestr@ip68-109-87-166.oc.oc.cox.net] has quit ["Leaving"] 06:30:14 (How did lisppaste know that my nickname was Riastradh?) 06:30:19 Khisanth [n=Khisanth@pool-141-157-230-134.ny325.east.verizon.net] has joined #scheme 06:30:27 Riastradh pasted "dynamic-bind" at http://paste.lisp.org/display/74259 06:31:46 sure 06:31:59 well that's somewhat interesting, not sure how it's useful 06:32:07 The purpose of DYNAMIC-WIND is to establish temporary dynamic state; that is, state that is established when entering a dynamic extent and disestablished when exiting it. 06:33:16 The purpose of `try/finally' (or whatever extension one chooses of it for Scheme) is to release otherwise permanently acquired resources. 06:33:51 Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has joined #scheme 06:34:23 One extension of the semantics of `try/finally' that I described is expressible using DYNAMIC-WIND to prohibit re-entry. (This is what one often finds as a `definition of UNWIND-PROTECT in Scheme'.) 06:35:03 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 06:35:36 The other extension requires finalization, which requires at the very least some form of weak cells; it can also profit from introspection of continuations by which to determine whether they have been reified (and therefore may be multiply invoked), in order to release resources early if safely possible. 06:37:05 is, say, "call-with-input-file" likely to be written using dynamic-wind? 06:37:09 For details on my last rather terse and vague remarks, search for mumblage about DYNAMIC-WIND and UNWIND-PROTECT in . 06:37:13 No, offby1. 06:37:48 how do it make sure the file gets closed? 06:38:07 Riastradh: my, you stay up to date 06:38:21 yep, he's got a web site and everything 06:39:40 Here is basically the only sensible definition of CALL-WITH-INPUT-FILE, according to the R5RS's specification of the procedure: (define (call-with-input-file pathname procedure) (let ((port (open-input-file pathname))) (receive results (procedure port) (close-input-port port) (apply values results] 06:41:02 funny how he's written a whole essay on just this 06:41:28 (It appears that the R6RS specifies CALL-WITH-INPUT-FILE and CALL-WITH-OUTPUT-FILE identically.) 06:42:25 charmless [n=charmles@64-110-209-189.sktn.hsdb.sasknet.sk.ca] has joined #scheme 06:43:13 Riastradh: how does that guarantee that the file gets closed? 06:43:39 What file? Do you mean the port in the definition of CALL-WITH-INPUT-FILE that I just gave in-channel? 06:43:50 yes 06:43:55 r5rs call-with-input-file 06:43:55 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_588 06:43:57 -rudybot:#scheme- http://tinyurl.com/day94j 06:44:04 Read carefully. 06:45:26 wouldn't you be able to prevent that behavior by using dynamic-wind? 06:45:44 Prevent what behaviour? 06:45:58 the port not getting closed 06:46:17 When is the port to be closed, according to the specification? 06:46:33 only when proc returns 06:46:52 When are DYNAMIC-WIND `after' procedures executed? 06:47:31 when control leaves proc, either by returning or jumping out with a continuation 06:48:05 Is CWIF to close the port in the latter case? 06:48:12 hence, Rationale 06:48:36 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 06:48:40 no, but why? 06:49:02 Well, are you questioning the design of CWIF, or whether the definition I gave is correct? 06:49:19 i am asking why CWIF is that way 06:49:35 my assumption is, seeking 06:49:53 because using dynamic-wind you could open the file and set the offset in the before procedure, and close in the the after procedure 06:50:29 Question: Why should CWIF close the port when the procedure returns? 06:50:51 rlimits 06:51:04 That's why the port should be closed when it is no longer needed. 06:52:39 it's no longer needed by definition in CWIF 06:52:43 The designers of CWIF arbitrarily chose the return of the procedure to be an indication that the port is no longer needed. 06:53:02 (Return of the procedure? Return of the Living Procedures!) 06:54:01 It's not no longer needed by definition; it is no longer needed by arbitrary fiat. 06:54:39 it would be stupid to save the port you get using CWIF, that's not the point 06:57:09 Let me be more precise. Ports should be closed when they are no longer needed. CWIF should close the port when the dynamic extent of the procedure's call has finished, i.e. control can no longer be in the dynamic extent of the procedure's call. Do you agree with these propositions? 06:57:28 (These are independent propositions.) 06:57:33 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 06:58:00 not exactly 06:58:30 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 06:58:33 Pray elaborate. 06:58:37 you can close the port when you exit the dynamic extent, then reopen it when you reenter the dynamic extent 06:58:43 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [Read error: 113 (No route to host)] 06:59:25 That's not an option. Suppose, for instance, that after the file is opened, its link is removed. 06:59:49 then you don't have any problems with proving that you can't reenter the dynamic extent (not possible when you have call/cc) 07:00:01 oh, you're right there 07:00:32 Also, what you described does not contradict the propositions I put forth. 07:01:57 option 2: the file could be a device, for which seeking may not have the meaning you want, and opening/closing may not be benign 07:03:03 So do you agree with those propositions? 07:04:32 yes 07:05:28 -!- Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has quit [] 07:06:09 Then I suggest that (file) ports should always have finalization procedures associated with them, irrespective of whether they are created in CWIF; and that CWIF should use the UNWIND-PROTECT that I described in the blag entry -- specifically, that CWIF ought to have a specification for which the definition given in that article is correct. 07:07:08 rcy` [n=rcy@d154-20-134-144.bchsia.telus.net] has joined #scheme 07:07:08 However, the definition of CWIF given in my article is not correct for the specification in the R5RS (and that in the R6RS). 07:07:48 cnicolas [n=cyprien@pdpc/supporter/student/cnicolas] has joined #scheme 07:10:16 rudybot, eval (mybox '(write university)) 07:10:17 cnicolas: error: reference to undefined identifier: mybox 07:10:21 hu 07:10:26 rudybot, eval (GRAB) 07:10:52 remeber that quine using rudybot and that other bot? 07:11:14 you mean the one you got banned for 07:11:27 That was before rudybot, zbigniew. 07:12:03 Oh, I thought bsmntbombgirl was referring to the sarahbot/minion bot loop 07:12:14 Yes...that was before rudybot. 07:12:23 might have been, i don't remember their names 07:12:27 I know. 07:12:38 (I apologize that the blag urticle is as poorly written and unpersuasive as it is; I had neither time nor inclination to improve it, and at least it serves as a reference.) 07:12:43 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 07:13:32 -!- cnicolas is now known as Fulax 07:13:39 lacking finalizers on ports, I usually resort to handle-exceptions 07:19:50 *Fulax* thinks rudybot has some memory lapses 07:21:53 -!- rcy [n=rcy@d154-20-167-168.bchsia.telus.net] has quit [Read error: 110 (Connection timed out)] 07:23:46 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 07:25:38 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit [Remote closed the connection] 07:27:02 charmless_ [n=charmles@207-47-213-135.sktn.hsdb.sasknet.sk.ca] has joined #scheme 07:27:25 -!- jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has quit ["Bailing out"] 07:27:55 -!- Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has quit ["Leaving"] 07:30:59 -!- araujo [n=araujo@gentoo/developer/araujo] has quit [No route to host] 07:31:31 -!- rcy` [n=rcy@d154-20-134-144.bchsia.telus.net] has left #scheme 07:32:08 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 07:33:17 -!- peter_12 [n=peter@S010600119506b129.gv.shawcable.net] has quit [] 07:36:04 -!- charmless [n=charmles@64-110-209-189.sktn.hsdb.sasknet.sk.ca] has quit [Read error: 110 (Connection timed out)] 07:51:04 -!- fusss [n=chatzill@pool-70-108-121-51.res.east.verizon.net] has quit [Read error: 104 (Connection reset by peer)] 07:54:03 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Remote closed the connection] 07:57:45 dzhus [n=sphinx@95-24-15-54.broadband.corbina.ru] has joined #scheme 07:58:51 -!- bombshelter13 [n=bombshel@209-161-238-145.dsl.look.ca] has quit ["Where is the glory in complying with demands?"] 08:04:23 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 08:07:26 jgracin [n=jgracin@93-141-76-230.adsl.net.t-com.hr] has joined #scheme 08:09:54 -!- raikov [n=igr@203.181.243.11] has quit [Remote closed the connection] 08:13:59 -!- ttmrichter [n=ttmricht@221.235.59.231] has quit ["Ex-Chat"] 08:14:19 ttmrichter [n=ttmricht@221.235.59.231] has joined #scheme 08:22:13 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 08:24:11 -!- hml [n=x@unaffiliated/hml] has quit [Remote closed the connection] 08:24:30 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 08:25:03 -!- jgracin [n=jgracin@93-141-76-230.adsl.net.t-com.hr] has quit [Read error: 113 (No route to host)] 08:27:00 ecraven [n=nex@140.78.42.103] has joined #scheme 08:29:10 foof` [n=user@isa7-dhcp-116-127.naist.jp] has joined #scheme 08:33:00 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 08:39:17 -!- foof [n=user@dn157-046.naist.jp] has quit [Read error: 110 (Connection timed out)] 08:42:50 Ragnaroek [i=54a66ffd@gateway/web/ajax/mibbit.com/x-e78758b7739d669a] has joined #scheme 08:51:11 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 09:03:01 schmalbe [n=bernhard@p549A06D0.dip0.t-ipconnect.de] has joined #scheme 09:05:17 -!- foof` is now known as foof 09:05:26 -!- underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has quit [] 09:08:29 -!- synthase [n=synthase@c-69-243-234-165.hsd1.al.comcast.net] has quit [Read error: 60 (Operation timed out)] 09:17:26 attila_lendvai [n=ati@business-89-132-61-222.business.broadband.hu] has joined #scheme 09:41:01 jewel [n=jewel@dsl-242-151-10.telkomadsl.co.za] has joined #scheme 09:41:58 underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has joined #scheme 09:49:55 benny [n=benny@i577A0D87.versanet.de] has joined #scheme 09:53:11 -!- underspecified [n=eric@isa7-dhcp-116-155.naist.jp] has quit [] 10:00:11 ejs1 [n=eugen@77.222.151.102] has joined #scheme 10:02:53 -!- hiyuh [n=hiyuh@KD059133115102.ppp.dion.ne.jp] has quit ["|_ e /\ \/ i |/| G"] 10:04:32 -!- Arelius [n=Indy@209.77.67.98] has quit [] 10:09:09 -!- ejs1 [n=eugen@77.222.151.102] has quit [Read error: 145 (Connection timed out)] 10:09:50 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 10:14:16 orgy` [n=ratm_@pD9FFE363.dip.t-dialin.net] has joined #scheme 10:19:11 -!- elmex [i=elmex@ist.m8geil.de] has quit [Read error: 111 (Connection refused)] 10:20:44 -!- Axioplase is now known as Axioplase_ 10:22:46 kraant [i=7d3fc3d9@gateway/web/ajax/mibbit.com/x-e76ef02524f51cbf] has joined #scheme 10:42:29 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 10:53:07 raikov [n=igr@81.153.145.122.ap.yournet.ne.jp] has joined #scheme 10:56:56 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit ["Leaving"] 11:04:53 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 11:13:04 elmex [i=elmex@ist.m8geil.de] has joined #scheme 11:23:42 -!- tizoc_ is now known as tizoc 11:29:52 -!- reprore [n=reprore@ntkngw560169.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 11:46:45 pmatos [n=pmatos@pocm06r.ecs.soton.ac.uk] has joined #scheme 11:47:03 -!- pmatos [n=pmatos@pocm06r.ecs.soton.ac.uk] has quit [Client Quit] 11:54:07 -!- foof [n=user@isa7-dhcp-116-127.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 11:59:22 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 11:59:27 athos [n=philipp@84.184.113.25] has joined #scheme 11:59:27 "I will say that the continued evolution of the shell shows just how crufty a language can get when you just keep adding on ad hoc syntactic features." 11:59:40 You wouldn't say that's a Larry Wall quote, would you? ;) 11:59:44 http://www.perl.com/pub/a/2007/12/06/soto-11.html 12:01:14 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 104 (Connection reset by peer)] 12:02:10 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 12:02:45 foof [n=user@dn157-046.naist.jp] has joined #scheme 12:03:51 name [n=name@sburn/devel/name] has joined #scheme 12:14:00 OLD 12:17:07 ? 12:20:07 -!- raikov [n=igr@81.153.145.122.ap.yournet.ne.jp] has quit [Read error: 110 (Connection timed out)] 12:24:37 -!- attila_lendvai [n=ati@business-89-132-61-222.business.broadband.hu] has quit [Read error: 145 (Connection timed out)] 12:24:59 NOT FOR ME 12:26:01 it's a year old, hardly NEWS 12:26:25 Well excuse me for posting a quote I found amusing 12:26:32 ;) 12:26:33 Won't happen again, I promise 12:26:35 :) 12:29:07 lol :) 12:43:28 elias` [n=me@unaffiliated/elias/x-342423] has joined #scheme 12:43:43 attila_lendvai [n=ati@business-89-132-61-222.business.broadband.hu] has joined #scheme 12:45:23 jmo- [n=jmo-@83.233.243.59] has joined #scheme 12:45:36 luz [n=davids@201.29.244.29] has joined #scheme 12:45:59 -!- luz [n=davids@201.29.244.29] has quit [Client Quit] 13:00:05 luz [n=davids@201.29.244.29] has joined #scheme 13:00:23 -!- charmless_ [n=charmles@207-47-213-135.sktn.hsdb.sasknet.sk.ca] has quit [] 13:08:53 banisterfiend [n=john@203-97-217-154.cable.telstraclear.net] has joined #scheme 13:09:01 hey can someone here please explain lisp macros to me? 13:10:36 sqrt [n=roden@port1015.ds1-ry.adsl.cybercity.dk] has joined #scheme 13:11:27 Hi. 13:13:31 I am trying to figure out how to use scheme to make it easier to do some lilypond typing. :) Does anyone have a link to some examples of this? 13:16:00 tr3 [n=tr3@host28-43-dynamic.183-80-r.retail.telecomitalia.it] has joined #scheme 13:16:35 sqrt: http://lilypond.org/doc/v2.9/Documentation/user/lilypond/Scheme-tutorial 13:16:43 That was a second on google =P 13:18:13 nothingHappens_ [n=nothingH@12-226-78-3.client.mchsi.com] has joined #scheme 13:22:03 Yes, I had already read that. What I was looking for was some examples. 13:23:49 Never mind, I guess. 13:24:56 *kraant* has no clue about scheme use in lilypond 13:25:31 But the impression I get from the tute is that it's really not any more complicated than what you see in the tute assuming scheme knowledge 13:27:26 banisterfiend: http://www.defmacro.org/ramblings/lisp.html gives some nice hints 13:29:20 Thanks, hkBst. 13:29:22 sqrt: This /might/ be useful... http://lilypondwiki.tuxfamily.org/index.php?title=Tutorials_and_examples 13:29:39 Thanks, kraant. :) 13:29:55 thanks 13:30:01 sqrt: do you have "the little schemer"? 13:30:13 it's full of examples 13:30:30 heh, sqrt don't thank me until you've checked the examples listed and found whether they use scheme in any of them or not 13:30:53 they don't. 13:31:17 They have this example: pattern = #(define-music-function (parser location x y) (ly:music? ly:music?) 13:31:20 #{ $x e8 a b $y b a e #}) 13:31:49 sqrt: Aha! http://lsr.dsi.unimi.it/LSR/Search?q=scheme 13:31:56 which is a function that takes two pieces of music and puts them in between some other notes and then spits that out. 13:32:08 Nshag [i=user@Mix-Orleans-105-4-206.w193-250.abo.wanadoo.fr] has joined #scheme 13:32:16 lol unimi.it 13:32:43 Now I'm thinking: What does (ly:music? ly:music?) mean? 13:33:03 is that (input-datatype output-datatype)? 13:33:44 sqrt: Where specifically is the example? I'll need context 13:33:53 kraant: ooh, that looks like what I was looking for! 13:34:08 So far I don't think we have anyone who uses lilypond who's piped up 13:34:13 sqrt: aaah cool 13:35:13 kraant: http://lilypond.org/doc/v2.12/Documentation/user/lilypond-learning/Tweaking-with-Scheme#Tweaking-with-Scheme ... but I think I can take it from here. 13:35:15 -rudybot:#scheme- http://tinyurl.com/ajqqgn 13:37:42 ooh! That link was just so cool. Even if I don't solve my problem, there are things here I can use! 13:37:47 sqrt: is there a definition of define-music-function? 13:37:53 sqrt: cool, 'cos the scheme isn't too bad, but the lilypond code is breaking my brain ;) 13:37:56 good luck 13:38:45 hkBst: I haven't found it, but then, I haven't read the (f'ing) source code either :) 13:41:03 Oh! It looks like, the argument called ly:music? is really a data type. 13:41:14 sqrt: weird way to spell "fine" ;P 13:42:37 hkBst: I never was good at spelling. 13:42:38 hehe 13:43:21 sqrt: and yes looking at the context I /think/ ly:music? is a datatype 13:45:38 it is. other data types include (number?) The question mark might mean that we are now defining a datatype. 13:46:58 reverse engineering for teh woot, eh? Haha. 13:48:53 use the source luke 13:52:56 Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has joined #scheme 13:55:24 Hmm, I didn't know I studied composition to become a jedi. ;) But you have a point. And I will if I have to. 13:56:46 arcfide [n=arcfide@adsl-99-137-203-69.dsl.bltnin.sbcglobal.net] has joined #scheme 13:59:27 If you can handle composition you can definitely handle computer code 13:59:38 they excercise the same sections of the brain etc 14:00:10 If it came down to it I'd say composition was harder 14:00:12 Does someone know of a library or reasonably portable code that deals with IEEE floating point conversion to and from bytevectors or the equivalent? 14:05:21 Kumool [n=Amarante@24.139.152.73] has joined #scheme 14:08:36 Daemmerung [n=goetter@1133sae.mazama.net] has joined #scheme 14:09:25 -!- jewel [n=jewel@dsl-242-151-10.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 14:10:44 jewel [n=jewel@dsl-242-151-10.telkomadsl.co.za] has joined #scheme 14:12:38 -!- Judofyr_ is now known as Judofyr 14:15:22 kraant: Oh, I know. I speak java and ML already. :) Thanks for all the help. 14:15:59 sqrt: nps, I'm glad I've helped even though I'm no guru 14:16:17 *kraant* is just a padawan 14:16:25 -!- pchrist [n=spirit@gentoo/developer/pchrist] has quit ["leaving"] 14:16:35 arcfide: Oleg posted a code fragment to comp.lang.scheme many years ago: search for "Reading IEEE binary floats in R5RS Scheme." I cannot vouch for its correctness. 14:16:54 pizza__ [n=pizza@66.152.246.202] has joined #scheme 14:18:23 It is correct. A better version, including 64-bit support, is included in the SRFI-56 reference implementation. 14:18:27 -!- luz [n=davids@201.29.244.29] has quit ["Client exiting"] 14:19:10 Aaah. 14:20:19 Oleg was correct!? Why, imagine that! 14:20:32 (Thank you foof. I had forgotten that SRFI.) 14:20:58 -!- schmalbe [n=bernhard@p549A06D0.dip0.t-ipconnect.de] has quit [Remote closed the connection] 14:22:23 bweaver [n=bweaver@c-67-161-236-94.hsd1.tn.comcast.net] has joined #scheme 14:22:43 -!- ejs1 [n=eugen@nat.ironport.com] has quit ["This computer has gone to sleep"] 14:23:28 higepon707 [n=taro@FLH1Aig081.tky.mesh.ad.jp] has joined #scheme 14:24:22 pchrist [n=spirit@gentoo/developer/pchrist] has joined #scheme 14:26:13 hemulen [n=hemulen@cpe-069-134-114-252.nc.res.rr.com] has joined #scheme 14:34:33 in ((lambda () a)) vs (force (delay a)), is the latter as inefficient and hard to introspect as (eval a)? 14:34:39 Or are they about equivalent? 14:34:48 'Introspect'? 14:35:04 Yeah, pull apart and divine the nature of 14:35:22 Like how drscheme can trace into a lambda. 14:35:38 -!- pizza__ is now known as pizza_ 14:36:06 -!- nothingHappens_ [n=nothingH@12-226-78-3.client.mchsi.com] has quit [Remote closed the connection] 14:40:27 langmartin [n=user@75.148.111.133] has joined #scheme 14:40:52 '# isn't bad syntax, but (eval '#) is. (lambda () #) is bad syntax without being called, and hm... (delay #) is bad syntax without being forced... 14:41:32 alaricsp [n=alaricsp@88-105-133-163.dynamic.dsl.as9105.com] has joined #scheme 14:42:20 well I won't worry about it. 14:44:14 ? 14:44:34 -!- jewel [n=jewel@dsl-242-151-10.telkomadsl.co.za] has quit [Connection timed out] 14:45:56 jewel [n=jewel@dsl-242-151-10.telkomadsl.co.za] has joined #scheme 14:46:15 -!- exexex [n=chatzill@88.235.179.86] has quit [Read error: 104 (Connection reset by peer)] 14:50:05 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 14:50:30 drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 14:54:21 drdo` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 14:56:29 -!- higepon707 [n=taro@FLH1Aig081.tky.mesh.ad.jp] has quit [Remote closed the connection] 14:57:10 higepon568 [n=taro@FLH1Aig081.tky.mesh.ad.jp] has joined #scheme 15:00:19 Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has joined #scheme 15:06:31 drdo`` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 15:06:41 -!- bweaver [n=bweaver@c-67-161-236-94.hsd1.tn.comcast.net] has quit [] 15:07:08 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 15:08:25 -!- drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Read error: 110 (Connection timed out)] 15:10:39 drdo``` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 15:11:08 schmalbe [n=bernhard@p549A1B68.dip0.t-ipconnect.de] has joined #scheme 15:11:32 -!- athos [n=philipp@84.184.113.25] has quit ["leaving"] 15:17:53 mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 15:23:09 -!- drdo` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Read error: 110 (Connection timed out)] 15:25:27 -!- arcfide [n=arcfide@adsl-99-137-203-69.dsl.bltnin.sbcglobal.net] has quit ["School!"] 15:27:03 -!- drdo`` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Read error: 110 (Connection timed out)] 15:27:08 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 15:41:24 -!- kraant [i=7d3fc3d9@gateway/web/ajax/mibbit.com/x-e76ef02524f51cbf] has quit ["http://www.mibbit.com ajax IRC Client"] 15:42:09 -!- pizza_ [n=pizza@poipu/supporter/pizza-milkshake] has quit [Read error: 145 (Connection timed out)] 15:42:14 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 15:43:12 I've got a nice database table and no clue how to load it into scheme... 15:44:34 does anyone have 'practical common lisp' as a pdf file? 15:44:43 or a scheme book as a pdf file, like little schemer etc? 15:45:47 banisterfiend: SICP in PDF: http://therobert.org/stuff/sicp.pdf ? 15:46:09 nah i dont want sicp in pdf, i already have that, thx :D 15:46:28 methinks sqlalchemy has spoiled me 15:47:04 why not use that then, banisterfiend, if you already have it? 15:47:30 because it's a bit too technical for me 15:47:32 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 15:47:37 i just want one about scheme/lisp 15:47:42 offby1: ping 15:47:45 dont get me wrong sicp is a great book 15:47:50 but i also want a more lightweight one 15:48:28 why does it have to be PDF? 15:48:42 offby1: ping 15:48:44 newrudybot: help 15:48:45 eli: help [], version, quote, source, seen , uptime, init [], eval <...>, give <...>, join 15:48:56 newrudybot: init r5rs 15:48:57 eli: your sandbox is ready 15:48:58 waow! a brand new one ? 15:49:14 (It will be the same one, only knows new tricks) 15:49:22 newrudybot: eval (define x 123) 15:49:25 newrudybot: eval X 15:49:25 eli: ; Value: 123 15:49:37 newrudybot: eval (set! X (cons X x)) 15:49:47 newrudybot: eval (set-car! x 111) 15:49:52 newrudybot: eval x 15:49:53 eli: ; Value: {111 . 123} 15:50:17 newrudybot: help init 15:50:18 eli: init []: initialize a sandbox 15:50:32 newrudybot: init 15:50:32 eli: your sandbox is ready 15:50:37 newrudybot: eval x 15:50:37 eli: error: reference to undefined identifier: x 15:50:46 newrudybot: eval (exit) 15:50:46 eli: error: evaluator: terminated (exited) 15:50:48 eli: nais 15:50:52 newrudybot: eval 2323 15:50:52 eli: ; Value: 2323 15:51:25 does anyone use persistent data in scheme here? 15:51:32 Yes. 15:51:53 offby1: JFYI, see the above. 15:52:56 bweaver [n=bweaver@75.148.111.133] has joined #scheme 15:53:04 what method do you use, eli? 15:53:28 Text files, usually; containing sexprs, mostly. 15:53:45 -!- bweaver [n=bweaver@75.148.111.133] has quit [Read error: 104 (Connection reset by peer)] 15:53:48 bweaver_ [n=bweaver@75.148.111.133] has joined #scheme 15:53:52 athos [n=philipp@92.250.204.223] has joined #scheme 15:53:56 is this a true statement about lisp macros: "they are functions, but delayed one eval." 15:54:06 How do you handle multiple accesses of that data? 15:54:23 Like if one process writes the file while another is reading. 15:54:34 pizza_ [n=pizza@66.152.246.202] has joined #scheme 16:01:56 synx: I almost never have a need for that, and if I do, there's a function in mzscheme that can do that -- or I could use something like `lockfile' 16:02:23 hmm, so no concurrent access 16:02:57 I assume you do indexing yourself too? 16:03:10 Indexing is overrated. 16:03:38 synx, exactly what are you trying to accomplish? 16:03:47 -!- higepon568 [n=taro@FLH1Aig081.tky.mesh.ad.jp] has quit [Read error: 113 (No route to host)] 16:06:01 I'm making a set of name:address relations along with the time they were established, and when they last responded. So you can look up an address by name, change an address's name, or eliminate older addresses that are no longer responding. 16:06:23 How many addresses? 16:07:02 About 1000, I dunno really. 16:07:33 In that case, like I said, indexing is overrated: you don't need it. 16:07:35 And you're looking to checkpoint this list to disk every so often? 16:08:09 I would like for it to be scalable to many addresses though... 16:08:28 reprore [n=reprore@ntkngw560169.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:08:31 This is why I asked "how many". 16:08:36 gnomon: Only when it changes. 16:08:52 eli: And that's why I said I dunno really. 16:09:03 Can you guess at a range? 16:09:10 If it's always going to be used for a single person, or a small group, then you're almost guaranteed not go over 1000. 16:09:32 And even slow schemes will do fine with probably 10k or more. 16:09:34 Well, most people visit more than 1000 Internet sites for instance... 16:09:35 (because if you don't know what you're going to program, and if capacity is a significant component of the program, how are you going to write it?) 16:10:21 I don't want capacity to be a significant component of any algorithm I end up relying on. 16:10:41 That tends to come back at you rather nastily just when you start succeeding. 16:10:46 My opinion about this is very strong: write code that is as simple as possible. 16:11:07 Focus on good design and invest time in making it do the features you want it to have. 16:11:32 Right. Create your infrastructure so that you can easily slot in new solutions without disturbing what's currently running, then tackle your scaling problem as gradually as it arrives. 16:11:41 A good design, in this case, is one that will allow you to easily switch to a more sophisticated storage backend -- all the way up to using a proper database. 16:12:04 jlongster [n=user@75.148.111.133] has joined #scheme 16:12:16 Right, thus why I was looking for some kind of abstraction above just typing in raw SQL strings. 16:12:37 In almost all cases, your code is not going to need scaling to that level, and you'd save a huge uninteresting headache. 16:12:47 Not that I'm above programming in SQL 16:13:05 for varying degrees of uninteresting! 16:13:09 Even if you want to make "this" a commercial product -- features are more important in getting it to sell. 16:15:25 If I make it an association list in memory that I synchronize once a second, that already makes it hard to switch to more sophisticated, since I'll have to eliminate the synchronization and use guesswork to tell when too much memory is too much, or how many screams I should endure before fixing that 1 second race condition. 16:16:00 I also have to waste time figuring out how to serialize this list, which may contain binary data as the address. base64 I suppose, but it's still not something I want to deal with. 16:16:33 sounds like you wanna do it in .NET or Java ;P 16:16:40 This is why I said *good* design. 16:16:45 If everyone programmed that way we'd be all mucked up in wasted disk accesses 16:16:46 What's wrong with using number of the enormous number of hash table implementations out there? I've heard that some even include their own serialization procedures. 16:17:33 vixey [n=vicky@amcant.demon.co.uk] has joined #scheme 16:17:52 gnomon: That's great if you only ever need to access your records by one field. 16:18:23 I've tried using multiple hash table "indexes" but it always got ugly on me... 16:18:40 you might as use a databse then 16:19:27 Seriously, why not? If your use case explicitly includes relational data operations, why not just use a relational database? 16:19:35 yeah... just not sure how to access a database in scheme. 16:20:12 There's that sqlid thing in plt's planet package, but its home page is a 404 on a German language site, and its docs only say "look at the homepage" 16:20:13 -!- ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has quit [Read error: 104 (Connection reset by peer)] 16:21:08 I found something called "snooze" but it can't do BLOBs or unique constraints. 16:21:29 a-s [n=user@85.9.55.98] has joined #scheme 16:21:48 drdo```` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 16:21:49 eli: fan-effing-tastic 16:22:47 *offby1* excitedly hops from foot to foot 16:22:47 offby1: Just one or two more things... 16:22:57 offby1: Try to use `invite'. 16:24:54 newrudybot: invite Michelle Pfeiffer 16:25:04 *offby1* drums fingers 16:25:11 *offby1* looks out his front window 16:25:19 offby1: sorry, I meant `join' 16:25:29 newrudybot: join ##SICP 16:25:29 offby1: only if eli wants me to 16:25:31 heh 16:25:33 (You could have used `help' to see that there's nothing there...) 16:25:39 eli: was just gonna 16:25:49 newrudybot: help invite 16:25:50 eli: help [], version, quote, source, seen , uptime, init [], eval <...>, give <...>, join 16:25:55 newrudybot: help join 16:25:55 eli: join : ask me to join a channel 16:26:12 some of what you've done is stuff I'd have done too if I weren't so lazy. But some I doubt I'd have figured out. I'm eager to see how you've done "help". 16:26:51 (defverb (join ?channel) "ask me ..." ...code...) 16:27:03 Which would soon change to: 16:27:09 (defverb #:master (join ?channel) "ask me ..." ...code...) 16:27:24 So it won't spit that out in `help' for other people. 16:29:05 oooh ... "defverb" 16:29:27 I need to get more comfier with syntax. 16:29:46 There's not that much new syntax. 16:30:07 defverb? Not define-verbosely? 16:30:09 sure, but still 16:30:10 ffx` [n=ffx@60-241-74-240.static.tpgi.com.au] has joined #scheme 16:30:11 Basically `defverb' for these verbs, and `defmatcher' which is a way to split the other big part into seperate pieces. 16:30:18 yay yay 16:30:21 define-verb 16:30:25 *offby1* excitedly hops from foot to foot some more 16:30:32 Daemmerung: No -- it defines a verb... 16:30:37 define-verbiage 16:31:07 define-verbbination 16:31:16 -!- newrudybot [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 16:31:28 define-actionification-auxiliary-with-syntax-and-stuffs 16:31:42 usu. abbrev;d to def/cc 16:32:12 annodomini [n=lambda@130.189.179.215] has joined #scheme 16:33:15 y'all are _so_ irreverent 16:33:45 speaking of irreverent 16:33:46 No, but I suspect eli of impurity of thought. 16:35:18 __name__ [n=name@sburn/devel/name] has joined #scheme 16:35:51 but not impurity of function 16:36:04 vixey: did you see? He added a "join" function 16:36:21 if that'd been there yesterday I cudda had him join ##SICP without rebooting 16:36:42 you could not 16:36:52 well, not without being eli, true 16:36:53 eli, hey you have some thing to do witt PLT right? 16:37:04 naw, it's a filthy lie 16:37:11 -!- name [n=name@sburn/devel/name] has quit [Nick collision from services.] 16:37:13 -!- __name__ is now known as name 16:37:48 It is a vile slander even to suggest such. 16:37:56 drdo````` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 16:38:22 -!- drdo``` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Read error: 110 (Connection timed out)] 16:38:36 -!- a-s [n=user@85.9.55.98] has quit [Remote closed the connection] 16:40:58 -!- hyperboreean [n=none@unaffiliated/hyperboreean] has quit [Read error: 101 (Network is unreachable)] 16:44:33 eli ok I guess you just don't want to hear it 16:45:18 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 16:45:25 vixey: huh? 16:45:59 vixey: huh? 16:46:20 offby1: see this? 16:46:24 fucks sake 16:46:25 Daemmerung: huh? 16:46:58 ooh, the old "sock-puppet" feature 16:47:00 vixey: if it wasn't clear, I don't know what is it that you're referring to that I'm supposed to not want to hear. 16:47:01 back again 16:47:10 newrudybot: watch your mouth, sir 16:47:13 It goes like this: 16:47:28 newrudybot: top-eval (pm "#scheme" "offby1: yo?") 16:47:28 offby1: yo? 16:47:28 eli: # 16:47:44 I assume that's a protected verb, like "join" 16:47:57 Yes: 16:48:00 newrudybot: help 16:48:01 eli: help [], version, quote, source, seen , uptime, init [], eval <...>, give <...>, join , system <...>, top-eval <...> 16:48:19 (Ooh, <...> should be ... there) 16:48:19 now just add the ability to reload modules without rebooting, and I can die happy 16:48:29 I thought you didn't want that... 16:48:35 sure I do 16:48:42 I'm obsessed with uptime for no good reason 16:48:49 comes from working at a Web 2.0 company I guess 16:49:00 ok, I'll see if it's quickly-doable. 16:49:04 hooray 16:49:06 -!- vixey [n=vicky@amcant.demon.co.uk] has left #scheme 16:49:10 BTW, try help too. 16:49:18 offby1: huh? 16:49:24 newrudybot, help init 16:49:24 Fulax: init []: initialize a sandbox 16:49:24 I know you outlined a method for me earlier but I never really understood it. That might have been back in v37x days. 16:49:30 Daemmerung: eh? 16:49:52 Can someone tell him `help'? 16:50:02 Daemmerung: well, ya see, we run these machines called "web servers", and when they run we make "money", and when they don't run, we don't make "money". And we like "money". In fact, everyone liks money: it's why they call it "money". 16:50:03 newrudybot, help 16:50:03 Fulax: help [], version, quote, source, seen , uptime, init [], eval <...>, give <...> 16:50:10 Thanks. 16:50:14 newrudybot, system uname 16:50:25 Fulax: as if. 16:50:36 I see 16:50:37 incubot: we make money 16:50:39 Like having money... 16:50:43 It doesn't know that command, in your case, and according to offby1's rules it says nothing. 16:50:52 newrudybot: system uname 16:50:53 eli: Linux 16:51:07 eli: you're joking, right? 16:51:13 newrudybot: you're joking. 16:51:26 *offby1* checks the log 16:51:34 *Daemmerung* stops calling newrudybot "Shirley" 16:51:34 offby1: No... 16:51:42 newrudybot: system uname -a 16:51:42 eli: Linux winooski.ccs.neu.edu 2.6.23.15-80.fc7 #1 SMP Sun Feb 10 16:52:18 EST 2008 x86_64 x86_64 x86_64 GNU/Linux 16:51:54 newrudybot: system whoami 16:51:54 eli: eli 16:51:55 eli, the bot's master is identified by his full host ? 16:52:00 offby1: It's my machine. 16:52:19 Fulax: not right now. 16:52:21 newrudybot: top-eval (exit) 16:52:22 you added that feature? Huh 16:52:22 -!- newrudybot [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 16:52:41 peter_12 [n=peter@S010600119506b129.gv.shawcable.net] has joined #scheme 16:52:42 That evaluates something not in a sandbox, but straight inside the bot's code... 16:53:44 boy, Winooski is a pretty small town, given that I'd actually heard of it 16:53:55 The place? 16:53:59 rudybot, source 16:53:59 Fulax: http://github.com/offby1/rudybot/tree/5a808bfc5c7a1fb6021566815bd6ae4e7f64c3b8 16:54:07 rudybot, thanks 16:54:24 -!- drdo```` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Read error: 110 (Connection timed out)] 16:54:52 Fulax: that's just my boring old source, I haven't yet merged in eli's groovy changes 16:55:29 offby1, I know that, I was just looking for the irc output message parsing 16:55:43 and the sandbox stuff also 16:56:03 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 16:56:13 newrudybot: help 16:56:14 eli: help [], version, quote, source, seen , uptime, init [], eval ..., give ..., join , system ..., top-eval ... 16:56:20 newrudybot: system uname -a 16:56:20 eli: Linux winooski.ccs.neu.edu 2.6.23.15-80.fc7 #1 SMP Sun Feb 10 16:52:18 EST 2008 x86_64 x86_64 x86_64 GNU/Linux 16:56:26 I started wrote a bot several years ago... but I didn't knew scheme then... 16:56:28 OK, those are fixed. 16:57:00 eli, I think help init should list the languages available 16:57:02 Let's see if this works... 16:57:15 for those who are not very familiar to mzscheme 16:57:17 rudybot: top-eval (defverb (thanks) (reply "You're welcome")) 16:57:24 rudybot: thanks 16:57:27 new? 16:57:35 newrudybot: top-eval (defverb (thanks) (reply "You're welcome")) 16:57:36 eli: error: loop.ss:329:5: *defverb: bad syntax in: (*defverb verbs verb-lines (thanks) (reply "You're welcome")) 16:57:46 newrudybot: top-eval (defverb (thanks) "be polite" (reply "You're welcome")) 16:57:47 eli: # 16:57:50 newrudybot, thanks 16:57:50 Fulax: You're welcome 16:57:56 Ha! 16:58:06 offby1: see above. 16:58:31 newrudybot, help 16:58:31 Fulax: help [], version, quote, source, seen , uptime, init [], eval ..., give ..., thanks 16:58:57 I do like that dynamic programming :) 16:59:09 newrudybot: system ls 16:59:10 eli: README README.irc-servers TODO analyze-quotes.ss big-log clearenv.ss echolalia freenode-main.ss get-big-log.sh git-version.ss log-parser.ss log.ss loop.ss main.ss quotes quotes.ss sandbox-log sandboxes.ss sighting-server.ss sighting-test.ss sighti 16:59:29 newrudybot, source 16:59:29 Fulax: http://github.com/offby1/rudybot/tree/6c42fdbc83ef6b72baa93ca806c2888a6663b158 16:59:31 -rudybot:#scheme- http://tinyurl.com/d2nxrn 17:01:34 samth [n=samth@punge.ccs.neu.edu] has joined #scheme 17:01:44 newrudybot: top-eval (current-command-line-arguments) 17:01:44 eli: #() 17:02:20 newrudybot: top-eval (require mzlib/restart) 17:02:20 eli: # 17:02:32 newrudybot: top-eval (restart-mzscheme) 17:02:33 eli: error: procedure restart-mzscheme: expects 4 arguments, given 0 17:03:03 newrudybot: top-eval (restart-mzscheme #() values #() void) 17:03:17 eli: #t 17:03:31 -!- newrudybot [n=luser@winooski.ccs.neu.edu] has quit [Remote closed the connection] 17:05:07 Gorgoroth_afk [i=Gorgorot@195-132-141-240.rev.numericable.fr] has joined #scheme 17:10:23 Fulax: I wouldn't recommend that you use my "parsing" as a model; it's an awful kludge 17:10:40 -!- rdd [n=user@c83-250-142-219.bredband.comhem.se] has quit [Read error: 54 (Connection reset by peer)] 17:10:58 rdd [n=rdd@c83-250-142-219.bredband.comhem.se] has joined #scheme 17:11:09 eli: ooooh. (top-eval + defverb) 17:11:11 the power 17:12:48 restart-mzscheme, huh 17:12:58 offby1: Nah, the restart is not working right. 17:13:07 what's the point of that? 17:13:20 Some old thing. I don't think it was ever useful. 17:13:29 so it's not like hitting "Run" in DrScheme? 17:15:24 no, that's more like the sandbox. 17:16:53 -!- name [n=name@sburn/devel/name] has quit [Read error: 60 (Operation timed out)] 17:19:53 Fulax: I wrote the "parsing" by reading the RFC, failing to understand it, and then slapping stuff together more or less at random until it seemed to kinda work. (I suspect most IRC clients are written exactly that way) 17:20:04 we call this process "software engineering". 17:21:38 -!- Gorgoroth [i=Gorgorot@195-132-141-240.rev.numericable.fr] has quit [Connection timed out] 17:23:21 -!- drdo````` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Read error: 110 (Connection timed out)] 17:24:39 tizoc_ [n=user@r190-133-134-135.dialup.adsl.anteldata.net.uy] has joined #scheme 17:28:57 ecraven [n=nex@140.78.42.103] has joined #scheme 17:29:38 yes offby1 that's the exact signification my teachers gave me :) 17:29:42 jah [n=jah@63.55.198-77.rev.gaoland.net] has joined #scheme 17:29:48 see, I could be a teacher. 17:29:56 why not ? 17:30:01 why not indeed! 17:30:29 actually, you teach me some stuff already ! 17:31:49 offby1, I saw you didn't try to be exhaustive with the RFC 17:32:56 you got that right. 17:33:02 my eyes glazed over very soon. 17:33:16 I have always wanted to improve the parser, but ... laziness. 17:33:27 -!- tizoc [n=user@r190-133-135-102.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 17:34:36 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Read error: 104 (Connection reset by peer)] 17:34:51 laziness have some advantages, the number lines of code stays low 17:34:55 yep 17:35:08 you should have seen the bot's previous incarnation -- bigger, messier, awfuler. 17:35:35 the file names aren't very helpful to find which functionality is coded behind 17:36:47 and and there a "search the source" functionality missing at github 17:39:36 tizoc [n=user@r190-133-143-159.dialup.adsl.anteldata.net.uy] has joined #scheme 17:40:00 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 17:40:43 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [] 17:41:12 peter_12_ [n=peter@S010600119506b129.gv.shawcable.net] has joined #scheme 17:41:28 -!- hark [n=strider@hark.slew.org] has quit [Read error: 104 (Connection reset by peer)] 17:41:33 hark [n=strider@hark.slew.org] has joined #scheme 17:43:21 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 17:44:30 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 17:46:31 -!- pjb3 [n=pjb3@c-76-100-98-185.hsd1.md.comcast.net] has quit [] 17:48:32 -!- tizoc_ [n=user@r190-133-134-135.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 17:49:43 Adamant [n=Adamant@c-71-226-66-93.hsd1.ga.comcast.net] has joined #scheme 17:58:10 -!- peter_12 [n=peter@S010600119506b129.gv.shawcable.net] has quit [Read error: 110 (Connection timed out)] 17:59:46 johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has joined #scheme 18:12:44 -!- incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has quit [Remote closed the connection] 18:17:33 incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has joined #scheme 18:26:00 -!- schmalbe [n=bernhard@p549A1B68.dip0.t-ipconnect.de] has quit [Remote closed the connection] 18:27:21 chupish [n=sedwards@waffle.aip.org] has joined #scheme 18:28:36 tizoc_ [n=user@r190-133-147-236.dialup.adsl.anteldata.net.uy] has joined #scheme 18:31:31 rudybot, eval (eof-object? (peek-char (open-input-string ""))) 18:31:31 Fulax: ; Value: #t 18:36:36 rudybot, I know I should thank you but I also know you won't do anything with it but letting the GC eat it. 18:37:40 or maybe not 18:37:50 *Fulax* should read again the sources 18:38:04 -!- tizoc [n=user@r190-133-143-159.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 18:46:18 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 18:48:53 tizoc [n=user@r190-133-134-136.dialup.adsl.anteldata.net.uy] has joined #scheme 18:50:26 segun [n=segun@62.173.50.60] has joined #scheme 18:50:56 hello all, 18:56:13 -!- Ragnaroek [i=54a66ffd@gateway/web/ajax/mibbit.com/x-e78758b7739d669a] has quit ["http://www.mibbit.com ajax IRC Client"] 18:57:22 -!- segun [n=segun@62.173.50.60] has left #scheme 19:00:08 -!- tizoc_ [n=user@r190-133-147-236.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 19:03:42 wastrel [n=wastrel@nylug/member/wastrel] has joined #scheme 19:09:00 -!- bweaver_ is now known as bweaver 19:09:50 yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has joined #scheme 19:10:28 how do i return a variable from a function? 19:11:03 (define (myfunc) (let* myvar 1)(myvar)) 19:11:28 or somesuch? 19:11:30 what's that supposed to do? 19:11:51 do you want a value, or a "variable" , yates? 19:11:55 initialize the variable myvar to 1 and then return it? 19:12:04 a value 19:12:11 your let* syntax is wrong, for starters 19:12:28 also, myvar is not a procedure 19:12:32 this is the dialect of scheme used in gimp 19:12:52 I doubt the gimp has a different let* 19:12:58 -!- langmartin [n=user@75.148.111.133] has quit ["ERC Version 5.3 (devel) (IRC client for Emacs)"] 19:13:06 You're applying myvar as if it were a procedure 19:13:21 (foo) is a procedure call (or a special form like let*, define etc) 19:13:27 uh, GIMP's is either Tiny-fu or Script-fu, both of which are R5RS-ish; it shouldn't be different 19:14:20 yates: (let ((myvar 1)) myvar) 19:14:36 and lrn2scheme plz 19:14:47 lrn2scheme? 19:14:51 http://www.gimp.org/tutorials/Basic_Scheme/ has a let* example 19:15:34 There's help, and then there's stuff you should know just from reading the introduction page of anywhere. 19:15:41 yates: In scheme, every expression has a value. A procedure's "return value" is just the value of the last expression that's evaluated in that procedure 19:16:07 sjamaan: yes, i knew this... (needed reminding) 19:16:16 ... 19:16:43 thanks 19:16:48 yw 19:18:06 whenever I do persistence it's always hard to figure out construction of objects... 19:18:07 Ragnaroek [i=54a65a15@gateway/web/ajax/mibbit.com/x-8c7eac8555f82a03] has joined #scheme 19:18:30 bpalmer: nice to see you 19:18:32 -!- Gorgoroth_afk is now known as Gorgoroth 19:18:56 -!- peter_12_ [n=peter@S010600119506b129.gv.shawcable.net] has quit [] 19:19:46 synx: you used "let" and not "let*" - what's the difference? 19:20:00 r5rs let* 19:20:00 http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-7.html#%_idx_128 19:20:02 -rudybot:#scheme- http://tinyurl.com/6d5gul 19:20:14 ^ you can look it up in the official language spec 19:20:15 order of binding 19:20:20 (really, it's very readable) 19:20:27 yates, in short, LET binds all of its positions in an unspecified order, whereas LET* binds them in sequential order, left-to-right. 19:20:34 yates: one assignes variables in parallel, the other serially 19:20:56 decker [n=chatzill@71-93-181-7.static.rvsd.ca.charter.com] has joined #scheme 19:21:22 -!- Kumool [n=Amarante@24.139.152.73] has quit ["Leaving"] 19:21:28 howdy 19:21:36 hi decker 19:21:41 synx, one *may* bind in parallel, the other *must* bind serially. 19:21:58 ok i see - thx 19:23:12 (let ((a 2) (b 3)) (+ a b)) -> ((lambda (b a) (+ a b)) 3 2) :: (let* ((a 2) (b a)) (+ a b)) -> ((lambda (a) ((lambda (b) (+ a b) a)) 2) 19:23:47 it must be as if the binding happens in parallel, though ("the s are evaluated in the current environment ") 19:23:50 I think you got cut off synx :) 19:23:51 for let 19:24:07 synx: sorry, you didn't 19:24:09 ...))))) 19:24:24 kbai 19:24:27 :) 19:24:43 ni'o ni'o ni'o 19:25:41 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 19:25:43 gpyx gryx 19:29:00 choas [n=lars@p5B0DDA83.dip.t-dialin.net] has joined #scheme 19:29:38 langmartin [n=user@75.148.111.133] has joined #scheme 19:30:33 -!- jah [n=jah@63.55.198-77.rev.gaoland.net] has quit [Remote closed the connection] 19:30:44 hey, how do I stop execution in edwin? 19:36:07 anyone? or just scheme in general? 19:36:15 ctrl-c 19:36:54 MattM [n=matt@99-156-81-22.lightspeed.austtx.sbcglobal.net] has joined #scheme 19:37:10 hmm, ctrl c ctrl c actually it seems. anyhow, thanks. 19:37:23 what is the scheme equivalent of printf? 19:37:49 yates: which scheme? 19:37:57 i think it's tiny scheme 19:38:06 gimp's 19:38:56 hm, not sure 19:40:22 If you're not interested in formatting values but just in printing strings, you can use display 19:40:26 (display "foo") 19:40:42 Depends on which Fu you're using for Gimp, but display & newline should be universal 19:40:42 tizoc_ [n=user@r190-133-132-68.dialup.adsl.anteldata.net.uy] has joined #scheme 19:40:58 SRFI-28 should be portable though (have to look up impl.) 19:41:07 script-fu 19:41:20 Script-Fu is SIOD-fork, Tiny-Fu is TinyScheme 19:42:03 the output of display goes to stdout? 19:42:06 ah, as of 2.4 it's TinyScheme 19:42:14 yes, 2.4.7 19:43:07 can someone please help jumpstart me: http://galois.digitalsignallabs.com/image 19:43:56 i get "execution error" when running with make - just let GIMPOPTS = -d -f -s -b 19:44:54 the error is happening in the (gimp-display-new...) line 19:46:34 can't seem to get to step one - all i want to do is create a new image and show it interactively on a canvas 19:47:15 shouldn't it be (gimp-display-new (car (waterfall-shuttle-button)))? 19:47:30 I mean, I've no real idea, I'm just looking at what gimp-display-new expects, & it's not a lambda 19:47:44 -!- jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 19:48:09 but i thought i already pulled "image" out of the return list with the (car...) inside the function definition. 19:48:41 you're passing waterfall... to gimp-display-new, not actually calling waterfall... 19:49:14 so just (gimp-display-new (waterfall-shuttle-button)) 19:49:25 sweet. check this one out: http://www.cs.ucr.edu/~gkaukola/gosper22.png 19:49:28 -!- tizoc [n=user@r190-133-134-136.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 19:49:36 ah 19:50:02 "(f)" is the function f, "f" is the variable f? 19:50:28 hot damn 19:50:34 (f) is application of the lambda pointed to by "f", sort of 19:51:00 (Isn't there a #gimp channel or something?) 19:51:05 -!- dzhus [n=sphinx@95-24-15-54.broadband.corbina.ru] has quit [Remote closed the connection] 19:51:19 probably, but it is at least somewhat scheme-y 19:51:31 it works 19:51:39 Last I knew the GIMP's extension language only vaguely cosmetically resembled Scheme. 19:51:59 no, it's TinyScheme now, so it should be relatively R5RS-ish 19:52:26 it is tiny scheme 19:52:28 the extension used to be Tiny-Fu, but it became the default as of 2.4 it seems (via WP, I've no "bodied" idea) 19:52:58 chupish: yes, that is what i understand too 19:53:33 besides, someone at Grinnell spent alot of time attempting to make ScriptFu R5RS http://www.cs.grinnell.edu/~rebelsky/Courses/CS302/2007S/HOG/gimp.scm 19:53:52 jgracin [n=jgracin@82.193.210.126] has joined #scheme 19:54:18 what is R5RS? 19:54:35 googled 19:54:44 r5rs 19:54:50 incubot ! 19:54:56 it's the scheme spec, more or less? 19:55:08 yep it is 19:55:25 saccade_ [n=saccade@MCNAIR-ONE-THIRTY-THREE.MIT.EDU] has joined #scheme 19:55:25 the 5th revision precisly 19:56:03 are r5rs and common lisp fairly similar? why did we need another dialect when clisp has been around, what, decades? 19:56:13 No, and no. 19:56:30 there are similar by the syntax, but not semantics 19:56:30 and furthermore, no? 19:56:40 yes, and futhermore no. 19:57:06 I believe CLISP has been around for no more than two decades, and Common Lisp has been around only for two and a half, while Scheme has been around for more than three. 19:57:19 oh 19:57:22 -!- aquanaut [n=user@static-141-157-25-210.balt.east.verizon.net] has quit [Remote closed the connection] 19:57:31 clisp != common lisp? 19:57:39 Indeed not. 19:57:39 well, CL is basically InterLisp-D + ZetaLisp + FranzLisp + Coating + Commitee 19:57:39 note ansi common lisp was only formally inished in 1994 19:57:48 finished 19:57:51 The abbreviation for Common Lisp is `CL'. 19:57:51 clisp in one implementation of Common Lisp 19:58:01 ah 19:58:02 yates, there is #lisp if you want to learn more also 19:58:07 GNU CLISP is software that implements Common Lisp. 19:58:10 SBCL, ACL, ABCL, LispWorks &c &c 19:58:26 chupish: now you're just showing off... :) 19:58:32 heh 19:59:19 SBCL is very popular, since it has some interesting extensions the others lack or have differently (grey streams comes to mind off hand) 19:59:45 wow 19:59:50 The R5RS and the specification of Common Lisp are very different. One is fifty pages; the other is over a thousand, with an index of over fifty pages. (Derive what mirth you will from that.) There are many substantial differences in the design of Scheme and Common Lisp. For example, Common Lisp codifies a bug for a macro system, and mitigates this by a development impediment called `packages'; Scheme has neither the bug nor p 20:00:03 cut off at 'bug nor p' 20:00:04 -!- saccade_ [n=saccade@MCNAIR-ONE-THIRTY-THREE.MIT.EDU] has quit [Client Quit] 20:00:06 ...packages. 20:00:48 Gray streams are supported by more CL systems than just SBCL. They arose, I believe, as a proposal for the ANSI Common Lisp specification, but were not included in it. 20:00:56 Well, that & CL has N namespaces, many forms are macros (lambda -> #'lambda), CLOS by default, &c 20:01:03 oh, certainly 20:01:25 tizoc [n=user@r190-133-133-249.dialup.adsl.anteldata.net.uy] has joined #scheme 20:01:27 but its a "big deal" for SBCL, from what I gather reading reddit & the like 20:01:41 Why do you try to gather information by reading reddit? That sounds like a bad idea to me! 20:02:01 I don't actually, hence my lack of knowledge on what SBCL are doing 20:02:13 SBCL & the like... 20:02:58 hey using PLaneT, is there any way to install a package that every user can use? 20:03:25 synx, do you mean `every user on your local Unixoid system'? 20:03:48 hey i want to use it too 20:04:03 Riastradh: Yeah, sure 20:04:05 synx, or do you really mean `every user', universally quantified? 20:04:22 If the latter, talk to zbigniew; he sounds enthusiastic. 20:04:31 I mean so I don't have to download it from the central repository when I use it twice on the same computer. 20:06:03 Mirror PLaneT maybe? ._. 20:06:54 -!- rdd [n=rdd@c83-250-142-219.bredband.comhem.se] has quit [] 20:06:56 AtnNn [n=welcome@modemcable230.56-56-74.mc.videotron.ca] has joined #scheme 20:08:24 *Riastradh* vanishes. 20:09:19 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 20:09:26 -!- tizoc_ [n=user@r190-133-132-68.dialup.adsl.anteldata.net.uy] has quit [Connection timed out] 20:09:40 newrudybot [n=luser@winooski.ccs.neu.edu] has joined #scheme 20:09:56 jonrafkind [n=jon@wireless342.wireless.utah.edu] has joined #scheme 20:10:00 rdd [n=user@c83-250-142-219.bredband.comhem.se] has joined #scheme 20:10:29 -!- johnnowak [n=johnnowa@207-38-171-48.c3-0.wsd-ubr1.qens-wsd.ny.cable.rcn.com] has quit [] 20:13:19 Kumool [n=Amarante@24.139.152.73] has joined #scheme 20:13:28 offby1: It's done now. 20:14:00 offby1: Most of the "loop.ss" code moved to a new file, this is so it can be reloaded when it changes. The actual IRC loop can't be reloaded for obvious reasons. 20:14:15 tizoc_ [n=user@r190-133-136-238.dialup.adsl.anteldata.net.uy] has joined #scheme 20:14:32 offby1: Also, I'll leave my version here for now, in case you want to play with it to see what it does. 20:14:49 offby1: Patches are in the same place, http://tmp.barzilay.org/rudybot/ 20:17:10 Glances around nervously 20:17:21 heh 20:17:22 *newrudybot* Glances around nervously 20:17:28 Much better. 20:22:32 -!- jonrafkind [n=jon@wireless342.wireless.utah.edu] has quit [Read error: 60 (Operation timed out)] 20:23:59 -!- tizoc [n=user@r190-133-133-249.dialup.adsl.anteldata.net.uy] has quit [Success] 20:25:03 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 20:26:59 yeah :) 20:27:18 newrudybot, help 20:27:19 Fulax: help [], version, quote, source, seen , uptime, init [], eval ..., give ... 20:27:43 eli, thanks for the improvement of help init :) 20:28:03 That was easy... 20:28:45 maybe not for lazy people, as offby1 defines itself 20:30:39 Well, fixing such things would be much easier now that I made the reload feature work. 20:31:00 All he needs to do is change a file, no need to restart it and lose precious uptime. 20:31:42 next feature : add a persistent per-user based environment ? 20:33:06 Not possible. 20:33:41 At least not with a *lot* of effort, since it requires writing out closures etc to a file somehow. 20:35:12 sure 20:38:58 *Daemmerung* loosens his collar with an index finger 20:40:22 s/an/his/ 20:40:35 *newrudybot* Glances around nervously again 20:41:24 No, man. I just found this spare index finger, and figured I'd use it to loosen my collar.... 20:41:43 *Daemmerung* belatedly wonders where that index finger has been 20:41:50 maybe you should consider to not use caps after an action message 20:43:57 eli, in fact, my question that I didn't expose was are the user sandboxes/environments destroyed when reloading the loop ? 20:44:52 Fulax: The loop is not reloaded -- only the file that has the irc-line processing thing. (But all that is new.) 20:45:06 yes, that's what i meant 20:45:26 And since the sandboxes are hooked on a variable that is defined elsewhere, they will stick around. 20:45:46 But again, all that is the new stuff, so you won't see it in rudybot's sources. 20:45:58 I can put the new version up, in case you want to see it. 20:46:51 that's not urgent, I can download the actual sources and apply the patches too, can't I ? 20:48:35 It's easy to put up. 20:48:46 http://tmp.barzilay.org/rudybot/src/ 20:49:34 (but it's funnier to play with the bot rather than reading the sources :p) 20:49:39 thanks 20:58:43 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 20:58:49 arcfide [n=arcfide@adsl-99-137-203-69.dsl.bltnin.sbcglobal.net] has joined #scheme 21:00:03 Arelius [n=Indy@209.77.67.98] has joined #scheme 21:01:43 -!- reprore [n=reprore@ntkngw560169.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 54 (Connection reset by peer)] 21:05:46 hotblack23 [n=jh@p5B055A26.dip.t-dialin.net] has joined #scheme 21:06:56 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 104 (Connection reset by peer)] 21:07:39 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 21:10:43 mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm 21:10:49 nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnooooooooooooooooooooooooooooooooooooooooooooooooooo / 21:11:04 indeed 21:11:08 *arcfide* shakes leppie. 21:11:11 Snap out of it kid! 21:11:12 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has left #scheme 21:12:11 does that the noise made by a lambda getting GCed ? 21:12:12 I just want to tell you both, good luck; we're all counting on you. 21:13:46 dzhus [n=sphinx@93-80-209-12.broadband.corbina.ru] has joined #scheme 21:18:11 lambda getting GCed on a LispM... 21:37:34 chturne [n=charlie@host86-139-71-1.range86-139.btcentralplus.com] has joined #scheme 21:40:59 my function consumes a list of posns, and my task is to add the first posn in the list to the end returning this modified list. im a beginner and my list armory consits of FIRST, SECOND and so on plus REST. I also have a function LAST that returns the last posn in my list -> http://paste.lisp.org/display/74298 can someone give me a pointer, im stuck :( 21:45:44 your code work fine, given definitions of first, rest & empty? 21:46:34 chupish: its an example of my LAST function, sorry for being vauge, im looking for help with the function i described to add the first posn in a list to the end of it 21:46:46 ah 21:47:08 (append (rest L) (list (last L)) is that ? 21:47:14 ejs [n=eugen@94-248-11-94.dynamic.peoplenet.ua] has joined #scheme 21:47:17 drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 21:47:18 euh first instead of last 21:47:21 yeah what fulax said 21:48:18 but it will return a new list, not a modified one 21:48:35 ah, thank you. :) 21:49:03 Fulax: that is ok, it does what i wanted it to 21:49:08 -!- bweaver [n=bweaver@75.148.111.133] has quit [] 21:49:23 just set! it ;) 21:50:07 I don't like using append, because it's time consuming, but I don't other way to do that, and primitive may be optimized 21:50:26 -!- Ragnaroek [i=54a65a15@gateway/web/ajax/mibbit.com/x-8c7eac8555f82a03] has quit ["http://www.mibbit.com ajax IRC Client"] 21:50:26 primitives* 21:50:45 I don't see other way to do that* 21:50:51 *Fulax* feels tired 21:51:03 -!- jgracin [n=jgracin@82.193.210.126] has quit [Remote closed the connection] 21:53:48 and my cat wants me to shut down my computer 21:55:21 Listen to it 21:55:28 Your cat is smart 21:55:55 yes, but cats are evil. 21:55:55 -!- dzhus [n=sphinx@93-80-209-12.broadband.corbina.ru] has quit ["-_O"] 21:57:39 http://icanhascheezburger.files.wordpress.com/2007/10/lolcat-funny-picture-moderator1.jpg 21:57:41 -newrudybot:#scheme- http://tinyurl.com/2qln7q 21:57:42 -rudybot:#scheme- http://tinyurl.com/2qln7q 21:58:58 So I will 21:59:03 have a nice end of day 21:59:05 -!- chturne [n=charlie@host86-139-71-1.range86-139.btcentralplus.com] has quit [Remote closed the connection] 21:59:10 cya Fulax 21:59:18 have a good one 21:59:48 -!- jmo- [n=jmo-@83.233.243.59] has quit [Remote closed the connection] 21:59:52 it's already night here, in France ;), so time to go to bed :) 21:59:56 bye 22:00:00 -!- Fulax [n=cyprien@pdpc/supporter/student/cnicolas] has quit ["Leaving"] 22:05:34 -!- tizoc_ [n=user@r190-133-136-238.dialup.adsl.anteldata.net.uy] has quit [Read error: 104 (Connection reset by peer)] 22:11:06 is there a unicode character for lambda? 22:11:29 tizoc [n=user@r190-133-131-255.dialup.adsl.anteldata.net.uy] has joined #scheme 22:12:06 ah, λ 22:16:27 -!- bpalmer [n=user@unaffiliated/bpalmer] has quit ["ERC Version 5.0 (CVS) $Revision: 1.776 $ (IRC client for Emacs)"] 22:18:00 dmoerner [n=dmr@ppp-71-139-45-71.dsl.snfc21.pacbell.net] has joined #scheme 22:22:03 drdo` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 22:23:23 -!- incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has quit [Remote closed the connection] 22:25:01 -!- proq [n=user@unaffiliated/proqesi] has quit [Read error: 104 (Connection reset by peer)] 22:25:03 -!- MattM [n=matt@99-156-81-22.lightspeed.austtx.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 22:26:45 -!- ejs [n=eugen@94-248-11-94.dynamic.peoplenet.ua] has quit [Read error: 60 (Operation timed out)] 22:28:11 drdo`` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 22:28:12 incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has joined #scheme 22:28:49 -!- jewel [n=jewel@dsl-242-151-10.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 22:28:53 λ should work too btw jonrafkind 22:29:43 -!- langmartin [n=user@75.148.111.133] has quit ["ERC Version 5.3 (devel) (IRC client for Emacs)"] 22:31:31 night all 22:31:33 -!- chupish [n=sedwards@waffle.aip.org] has quit ["leaving"] 22:34:47 tizoc_ [n=user@r190-133-140-187.dialup.adsl.anteldata.net.uy] has joined #scheme 22:36:46 -!- drdo [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Connection timed out] 22:41:45 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 22:43:34 -!- tizoc [n=user@r190-133-131-255.dialup.adsl.anteldata.net.uy] has quit [Read error: 110 (Connection timed out)] 22:44:32 -!- drdo` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Connection timed out] 22:45:23 proq [n=user@unaffiliated/proqesi] has joined #scheme 22:47:13 rtra [n=rtra@89.181.31.15] has joined #scheme 22:50:14 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 22:56:52 -!- choas [n=lars@p5B0DDA83.dip.t-dialin.net] has quit ["leaving"] 22:57:22 -!- incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has quit [Read error: 110 (Connection timed out)] 23:02:31 incubot [n=incubot@66-215-93-47.dhcp.psdn.ca.charter.com] has joined #scheme 23:05:11 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:07:12 Woohooo! 23:07:24 I think I have my sockets code working now! 23:07:41 dum de dum 23:08:52 arcfide pasted "Example of Chez Scheme Sockets " at http://paste.lisp.org/display/74315 23:09:06 What do you all think. Terrible as a base sockets library? 23:09:38 I would like feedback on the design. 23:10:05 do i see global variables? ;P 23:10:12 Of course, there are bind-socket, accept-socket, listen-socket, and such. 23:10:17 leppie: Where, what? 23:10:30 in create-socket 23:10:53 leppie: Those are constants. 23:10:59 ah k 23:11:35 They're each of a discreet type, and they can't be modified. They are exported by the code, but there is no facility to create new ones at the moment. 23:12:53 All told, the whole thing is only about 600 - 700 lines of code. 23:13:06 That might be too much though. 23:14:44 What do you think of the explicit use of string->ip-address and host->network? 23:14:56 arcfide: you might be interested in http://stud3.tuwien.ac.at/~e9926584/SchemeNetworkAPI.html (sorry for the fucked-up formatting, I need to correct the markup to work with muse) 23:15:02 Excessively light wrapping? Should I put a little glue on top of things? 23:15:04 -!- yates [n=yates@cpe-071-070-224-093.nc.res.rr.com] has left #scheme 23:15:49 -!- orgy` [n=ratm_@pD9FFE363.dip.t-dialin.net] has quit [Remote closed the connection] 23:17:33 rotty: I don't think I will implement that. 23:18:16 rotty: the goals here are to make as reasonably convenient light wrapping on BSD Sockets as I can. I don't want to throw needless extra sugar on top of the BSD sockets api, especially since this library won't be just for TCP, UDP, or the like. 23:18:20 -!- tizoc_ is now known as tizoc 23:18:36 drdo``` [n=psykon@167.111.54.77.rev.vodafone.pt] has joined #scheme 23:18:51 I'd like this library to be at a level where writing nice abstract interfaces on top of it is easy, but not at the level where you lose the generality of the BSD sockets API. 23:19:07 arcfide: the raw markup is at http://rottyforge.yi.org/~rotty/tmp/SchemeNetworkAPI.muse, FWIW 23:19:36 However, I see no reason that someone could not implement your proposal on top of what I have already made available in my library. 23:20:11 yeah sure, my API is intended to gloss over the BSD socket API 23:21:58 but what you definitly should look out to support are proper condition types (or an equivalent mechanism), so network errors can be handled properly 23:22:13 Yeah, I haven't implemented any of that yet. 23:22:35 but you will, right ;-)? 23:22:54 hehe, of course. 23:23:25 This is being written for incorporation (if possible) into Chez Scheme, so it will likely use R6RS conditions. 23:24:04 Fade [i=fade@outrider.deepsky.com] has joined #scheme 23:24:16 bweaver [n=bweaver@c-67-161-236-94.hsd1.tn.comcast.net] has joined #scheme 23:26:57 arfide: does chez implement separate binary and textual ports? 23:27:05 -!- rdd [n=user@c83-250-142-219.bredband.comhem.se] has quit [Success] 23:27:33 raikov [n=igr@203.181.243.11] has joined #scheme 23:28:48 In the development version it does, since it implements R6RS, however, it doesn't implement them in 7.4 which is the current release. 23:29:40 But that doesn't matter in the current release, since characters are all bytes anyways. 23:31:52 ok. nice to see another r6rs implementation coming up, even if it's not free software :-) 23:32:10 does chez sport a Scheme-level FFI? 23:33:29 I am not sure what you mean by a Scheme-level FFI. 23:33:56 I'm not so excited about the R6RS-ness, but I'll deal. 23:34:08 Mayb.e 23:35:04 -!- drdo`` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Connection timed out] 23:36:09 -!- bweaver [n=bweaver@c-67-161-236-94.hsd1.tn.comcast.net] has quit [] 23:40:16 -!- hotblack23 [n=jh@p5B055A26.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 23:42:23 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [Read error: 104 (Connection reset by peer)] 23:43:10 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 23:55:35 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 54 (Connection reset by peer)] 23:55:55 -!- pizza_ [n=pizza@66.152.246.202] has quit [Nick collision from services.] 23:59:04 -!- drdo``` [n=psykon@167.111.54.77.rev.vodafone.pt] has quit [Remote closed the connection]