00:05:17 raikov [n=igr@203.181.243.11] has joined #scheme 00:15:14 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 00:15:54 *synx* puts on my robe and wizard hat. 00:18:35 *gnomon* moves away from synx on the bench, there 00:18:56 *Riastradh* calls the /me police. 00:19:03 *Riastradh* vanishes. 00:20:31 synx: third person only! 00:20:45 lol 00:20:51 *zbigniew* give me back my robe and wizard hat, synx 00:20:51 -!- hark [n=strider@hark.slew.org] has quit [Read error: 113 (No route to host)] 00:21:36 I cast Lvl. 3 Eroticism. 00:21:58 -!- Nshag [i=user@Mix-Orleans-106-4-7.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 00:22:20 breily [n=breily@173.15.192.254] has joined #scheme 00:22:58 it fizzles 00:23:52 -!- raikov [n=igr@203.181.243.11] has quit [Remote closed the connection] 00:24:10 -!- Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 00:24:18 Don't f*ck with me bitch, I'm the mightiest sorcerer of the lands. 00:27:39 -!- RageOfThou [n=RageOfTh@92.36.177.151] has quit [Connection timed out] 00:28:26 Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has joined #scheme 00:41:34 -!- deat [n=deat@fac34-8-88-172-174-215.fbx.proxad.net] has quit [] 00:43:32 raikov [n=igr@203.181.243.11] has joined #scheme 00:43:39 -!- bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has left #scheme 00:43:50 bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has joined #scheme 00:45:05 -!- geckosenator [n=sean@71.237.94.78] has quit [Read error: 60 (Operation timed out)] 00:46:44 -!- arcfide [n=arcfide@adsl-99-137-200-228.dsl.bltnin.sbcglobal.net] has quit ["Hacking time."] 00:48:19 -!- Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has quit [Remote closed the connection] 00:48:41 Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has joined #scheme 00:56:02 arcfide [n=arcfide@adsl-99-137-200-228.dsl.bltnin.sbcglobal.net] has joined #scheme 00:56:15 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 00:56:28 npe [i=npe@naist-wavenet126-102.naist.jp] has joined #scheme 01:00:27 -!- benny [n=benny@i577A06E2.versanet.de] has quit ["rcirc on GNU Emacs 23.0.91.1"] 01:00:53 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 01:01:07 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 01:01:09 -!- McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has quit ["leaving"] 01:08:16 benny [n=benny@i577A06E2.versanet.de] has joined #scheme 01:14:40 jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has joined #scheme 01:16:58 spork [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 01:17:25 -!- spork is now known as Guest64965 01:17:41 -!- Guest64965 [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit [Client Quit] 01:18:29 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 01:21:35 -!- bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has left #scheme 01:22:07 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 01:22:23 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 01:28:51 -!- davidad [n=me@dhcp-18-111-16-64.dyn.mit.edu] has quit [Read error: 110 (Connection timed out)] 01:30:31 morphir_ [n=morphir@217.168.81.9] has joined #scheme 01:33:00 McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has joined #scheme 01:34:17 -!- morphir [n=morphir@217.168.81.9] has quit [Read error: 110 (Connection timed out)] 01:34:30 -!- morphir_ is now known as morphir 01:38:19 gweiqi [n=greg@69.120.126.163] has joined #scheme 01:40:03 -!- breily [n=breily@173.15.192.254] has quit [Read error: 104 (Connection reset by peer)] 01:40:51 breily [n=breily@173.15.192.254] has joined #scheme 01:41:07 -!- Dawgmatix [n=deep@207-237-30-94.c3-0.avec-ubr11.nyr-avec.ny.cable.rcn.com] has quit ["Ex-Chat"] 01:42:14 jso [n=user@151.159.200.8] has joined #scheme 01:42:15 breily_ [n=breily@173.15.192.254] has joined #scheme 01:52:00 Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 01:54:31 *jcowan* unvanishes cautiously, seeing if that dratted offby1 is about. Seemingly not. 01:54:38 SugarGlider [n=stevie@dyn-203-143-164-139.qrl.nicta.com.au] has joined #scheme 01:57:17 -!- Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 01:57:32 Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 01:58:06 -!- breily [n=breily@173.15.192.254] has quit [Read error: 110 (Connection timed out)] 02:00:22 reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 02:02:16 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 02:04:38 :P damn that dratted offby1! 02:04:39 :P 02:06:01 v__ [n=v@220.202.62.2] has joined #scheme 02:10:04 If God has already rotted him, He hardly has any need to damn him also. *I* don't care what happens to his soul. 02:10:59 So you can't see at the moment? 02:11:00 Presuming it exists! 02:13:24 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 145 (Connection timed out)] 02:14:18 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 02:16:14 -!- melgray [n=melgray@70.99.250.82] has quit [] 02:17:36 brweber2 [n=brweber2@ip68-100-65-167.dc.dc.cox.net] has joined #scheme 02:19:06 Night guys! 02:19:28 -!- elderK [n=zk@122-57-255-204.jetstream.xtra.co.nz] has left #scheme 02:22:09 -!- mmmulani [n=mmmulani@nat/uwaterloo/x-f7a6d24af298bd4e] has quit [Read error: 60 (Operation timed out)] 02:22:55 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 02:22:58 mmmulani [n=mmmulani@nat/uwaterloo/x-22105490177c20ed] has joined #scheme 02:25:54 -!- bombshelter13_ [n=bombshel@209-161-225-159.dsl.look.ca] has quit [Client Quit] 02:33:12 -!- mejja [n=user@c-4bb5e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 02:39:00 jao [n=jao@cpe-75-84-114-170.socal.res.rr.com] has joined #scheme 02:42:11 -!- jao` [n=jao@obfw.oblong.net] has quit [Read error: 110 (Connection timed out)] 02:46:02 hey jao! 02:52:28 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 03:00:04 hey 03:04:36 davidad [n=me@NORTHWEST-THIRTYFIVE-TWO-SEVENTEEN.MIT.EDU] has joined #scheme 03:07:58 https://synx.us.to/code/scheme/unwind-protect.ss 03:08:22 I finally had a reason to continue out of a unwind-protected statement, so I made that. :p 03:08:44 It's not exactly unwind-protect, but otherwise is there anything terribly wrong with *cough*plt-only*cough* it? 03:10:15 -!- gweiqi [n=greg@69.120.126.163] has quit [Read error: 110 (Connection timed out)] 03:10:16 It'd be non-trivial but possible to implement (thread) on any scheme that handled continuations. And will-executors...jeez I dunno about those. 03:11:37 gweiqi [n=greg@69.120.126.163] has joined #scheme 03:12:33 foof: contra the irregex docs, $ is not supported as an alias for submatch 03:12:57 plt threads are preemptive too, so that'd be different than continuation based threads...meh... 03:16:57 npe_ [i=npe@isa7-dhcp-116-217.naist.jp] has joined #scheme 03:17:04 hmph, that unwind-protect deadlocks my semaphores because nothing's bothered to garbage collect. 03:18:48 Cale_ [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has joined #scheme 03:19:16 -!- Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has quit [Nick collision from services.] 03:19:22 -!- v__ [n=v@220.202.62.2] has quit ["Leaving"] 03:19:24 -!- Cale_ is now known as Cale 03:20:23 -!- npe [i=npe@naist-wavenet126-102.naist.jp] has quit [Read error: 60 (Operation timed out)] 03:23:34 Cale_ [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has joined #scheme 03:24:06 -!- Cale [n=Cale@CPE001c10c70239-CM000e5cdd834a.cpe.net.cable.rogers.com] has quit [Nick collision from services.] 03:24:12 -!- Cale_ is now known as Cale 03:24:38 ok NOW I'm confused about plt threads. 03:24:59 https://synx.us.to/code/scheme/thread-barrier.ss 03:25:24 In drscheme, that returns 23. In mzscheme, that says "continuation application: attempt to cross a continuation barrier" 03:25:39 Quadrescence [n=quad@unaffiliated/quadrescence] has joined #scheme 03:25:41 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 03:40:02 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 03:41:33 -!- brweber2 [n=brweber2@ip68-100-65-167.dc.dc.cox.net] has quit [] 03:50:36 -!- ambient [n=ambi@julma.lnet.fi] has quit [Read error: 110 (Connection timed out)] 03:55:13 -!- gweiqi [n=greg@69.120.126.163] has quit ["Leaving."] 04:09:59 tjafk1 [n=timj@e176222207.adsl.alicedsl.de] has joined #scheme 04:11:19 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 04:12:51 zbigniew: oops, you're right 04:13:12 Felix just copied the upstream docs, and I only casually glanced over to look for differences. 04:20:56 foof: how do you mean? is $ supposed to be supported? I'm looking at the supported SRE syntax on your page 04:21:58 ken` [n=unknown@84.92.70.37] has joined #scheme 04:22:14 -!- XTL [i=t6haha00@rhea.oamk.fi] has quit [Remote closed the connection] 04:23:20 foof: You have quite a nickname. 04:23:21 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Read error: 113 (No route to host)] 04:25:03 XTL [i=t6haha00@rhea.oamk.fi] has joined #scheme 04:26:12 -!- tjafk2 [n=timj@e176200023.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:27:28 hadronzoo [n=hadronzo@ppp-70-251-147-16.dsl.rcsntx.swbell.net] has joined #scheme 04:27:34 lowlycoder [n=x@unaffiliated/lowlycoder] has joined #scheme 04:30:43 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 04:33:42 -!- reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 04:34:45 Quadrescence: he was originally moof until he developing an abiding hatred and fear toward OS 9 04:34:52 zbigniew: $ is supported in 0.7.x. Chicken uses 0.6.x. 04:36:40 reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 04:37:47 Wny OS 9, and for that matter, which OS 9? 04:39:58 http://en.wikipedia.org/wiki/Dogcow 04:41:23 Oh yes. 04:42:22 oy... persistent HTTP connections are so annoying. If you start getting a response, you must get the whole response before sending another request. Or kill the connection. 04:42:33 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 04:43:42 So hard to say when to give up and kill the connection... 04:44:03 It's always arbitrary when to do that, just like for any other TCP connection. 04:44:19 -!- jcowan [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has left #scheme 04:46:05 faster RST packet, kill kill kill 04:47:02 -!- glogic [n=rm@5ess.net] has quit ["leaving"] 04:48:23 foof: I say that because I downloaded 0.7.2 from your website a few hours ago, and it doesn't support $ 04:48:50 -!- rtra [n=user@unaffiliated/rtra] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 04:50:05 -!- reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 04:50:21 That's odd.. it wasn't working before, but I was sure I had fixed that... 04:51:25 It's a tentative abbreviation anyway, I'm not sure I want to keep it. 04:52:43 That's fine, I'm just using submatch... nevertheless, there's no trace of it in the 0.7.2 code 04:53:21 Oh! Now I remember. Those docs were backported from my SRE SRFI draft. 04:55:14 ok. the undocumented @ seems to be implemented as well (glancing at the code), which seems to be the equivalent to the doc's => 04:55:43 @ I'm debating removing because it's not a valid symbol. 04:56:18 But I think it's more important for `submatch-named' to have an alias than `submatch' both because it's longer and because I think it should be used more. 04:57:22 ... which is why the docs say => but I hadn't switched the implementation over yet. 05:05:21 Perhaps, but named submatches don't appear to be very useful unless you use the irregex search API 05:07:26 All the more reason to change Chicken's regex API :) 05:07:54 -!- lowlycoder [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 05:08:13 I guess you've come up with a use case and rationale for named submatches despite Olin's recommendation against them--if so, I'd like to see a fleshed out example; otherwise, positional matching and match-let works fine for me 05:09:48 The use case is just composing complex regexps. With positional parameters, you have to keep adjusting the position numbers. I've done this, and it's a pain. 05:10:02 -!- breily_ [n=breily@173.15.192.254] has quit [] 05:11:34 I'm also considering non-positional named submatches for use in library regexps, so when you use (... http-url ...) inside a regexp, you can extract, say, 'domain from the result, without knowing the position or implementation details of the http-url regexp. 05:12:04 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 05:13:34 This makes sense. You'll need a more user-friendly API than grabbing submatches one-by-one with irregex-match-substring, though 05:13:47 -!- Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 05:14:13 I think that would be a killer feature. I suspect 50% of the time people use regexps is to match one of a few common patterns easily included in a library. 05:14:43 ... and for the more complex patterns like email and URL's, they get it wrong most of the time. 05:15:24 Sure, you want something like a `regexp-case' syntax. 05:16:23 Or just for extracting named submatches you could have something like 05:16:25 (irregex-with-matches match-result (name1 name2 ...) body ...) 05:16:27 true--although I hope your named parameters don't conflict when you include multiple patterns 05:16:45 Yes, that's a concern. 05:17:19 -!- meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit ["has been attacked by a grue"] 05:17:51 But with Olin's original design he went out of his way to make it difficult to compose regexps, which strikes me as bizarre. 05:17:55 foof: as long as named parameter lookup is fast enough, that is fine. 05:19:43 hmm, really? it was my impression that Olin's SREs compose -better- than irregex 05:19:53 despite being macro-based 05:20:00 huh? 05:20:09 What makes you say that? 05:20:31 Oh, you want to compose compiled regexps. 05:20:38 I already said I probably won't do that. 05:20:38 in olin's syntax, it is legal to say (let ((rx1 (rx ...))) (rx ... ,rx1 ...)) 05:21:21 It's bad style. It shows a confusion of the separation between constructing and compiling regexps, two very different tasks. 05:21:51 I understand your rationale 05:22:11 Wait, Olin's syntax allows recursive regexps? 05:23:11 Irregex used to have those but I threw them away because they were hideous and the surest sign that you want to be using a parser, not regexps. 05:23:32 foof: sure, according to sre.txt 05:24:03 I don't see how Olin's implementation can support that. It just compiles to posix strings. 05:24:04 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Read error: 113 (No route to host)] 05:25:23 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 05:25:36 I don't know the details; I'm just reading '** Dynamic regexps' 05:28:39 If SCSH actually compiled on OS X I could test it :/ 05:29:25 The only bad thing is that I have to keep around copies of both "x" and "(irregex x)" if I'd like to both use "x", and compose it in another regexp 05:30:19 Only because compilation is slow right now. If I speed that up, it's OK to just keep "x". 05:30:22 -!- SugarGlider [n=stevie@dyn-203-143-164-139.qrl.nicta.com.au] has quit ["Leaving."] 05:31:26 And I don't see where in the SRE docs he has a recursive regexp. I really think that will give you an error. Browsing the SCSH source, there's no way that could work. 05:31:48 yes, if you speed it up to be on par with a variable lookup, absolutely 05:32:04 Oh, I misread your example. 05:32:21 I thought you wrote (let ((rx1 (rx ... ,rx1 ...)))) 05:32:53 Oh no, it is simply an embedded regexp 05:33:02 Right, which irregex handles fine. 05:33:31 You just need to keep compiled re's separate from SREs. 05:34:01 That's what I said. You have two copies laying around. 05:35:20 You have two different completely things lying around, as opposed to keeping a full copy of the source code to a regexp for every single regexp in the entire runtime. 05:36:42 Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 05:36:43 C-p C-a C-u 4 M-f M-t 05:37:37 what that do? 05:38:11 s/different completely/completely different/ 05:45:20 zbigniew: In your code do you really find it common to want to both compose an SRE and use it as a stand-alone pattern? Almost all of my regexps fall into one category or the other, not both. 05:47:59 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 05:48:26 No, not often, although I am now prefixing things with sre: or re: to avoid confusion. 05:48:32 But, I suspect it would become much more common if you introduce your libraries of regexps. 05:49:15 For example, matching a standalone URL / email address, vs one embedded in a line 05:49:34 -!- jao [n=jao@cpe-75-84-114-170.socal.res.rr.com] has quit [Remote closed the connection] 05:50:15 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 05:50:23 jao [n=jao@cpe-75-84-114-170.socal.res.rr.com] has joined #scheme 05:50:33 Users might be confused that for best performance they need to manually compile these, and store a copy somewhere, when matching a standalone address 05:51:52 For best performance they need to compile all regexps they want to execute and store a copy somewhere. 05:52:28 The current "library" regexps are built into the syntax, not bound as Scheme variables. 05:55:15 Of course, but a user who is composing will know that; a user who is just -using- a standalone regexp may not realize it, if his matching API automatically compiles SREs for him. That is perhaps a contrived example 05:57:26 Essentially I've been spoiled by Perl's /o modifier, I suppose 05:58:25 Oh, well. It is a trivial issue in the end. 05:59:49 The thing is, when you're just using posix strings, or are using a naive backtracking regex algorithm, you imagine a straightforward relation between the regexp representation and implementation. 05:59:53 -!- raikov [n=igr@203.181.243.11] has quit [Remote closed the connection] 06:01:06 -!- vy [n=user@213.139.194.186] has quit [Read error: 110 (Connection timed out)] 06:01:16 But when you compile to a DFA, the states generated by the regexp are entirely determined by the context in which they occur. The compiled result has no relation to the individual components from which it was made. 06:02:19 Even less so than, say, compiling source code to machine code, which at least has a rough mapping and can be reverse engineered to a degree, you can't reverse engineer the DFA at all. 06:04:57 I understand. I think that if this ever becomes a problem in practice, where it is too annoying to keep compiled copies around and ensure they are compiled only once, I will implement a compiled regexp cache, and see if it provides any benefit 06:05:48 Right now, -I- don't have a use case for that approach :) 06:05:49 ecraven [n=nex@140.78.42.103] has joined #scheme 06:09:51 -!- Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has quit [Remote closed the connection] 06:09:58 -!- hadronzoo [n=hadronzo@ppp-70-251-147-16.dsl.rcsntx.swbell.net] has quit [] 06:10:12 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 06:14:00 raikov [n=igr@61.127.191.238] has joined #scheme 06:14:05 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Read error: 110 (Connection timed out)] 06:18:31 Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 06:19:00 fooflab [n=user@leopard172.naist.jp] has joined #scheme 06:34:45 Ragnaroek [i=8f5df9eb@gateway/web/ajax/mibbit.com/x-7ea634fe9128b0ad] has joined #scheme 06:35:57 -!- Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has quit [Remote closed the connection] 06:40:29 geckosenator [n=sean@71.237.94.78] has joined #scheme 06:40:29 -!- Daemmeru` [n=goetter@1133sae.mazama.net] has quit [Read error: 104 (Connection reset by peer)] 06:43:15 benny` [n=benny@i577A06E2.versanet.de] has joined #scheme 06:44:03 -!- benny [n=benny@i577A06E2.versanet.de] has quit [Read error: 113 (No route to host)] 06:47:33 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 06:52:44 -!- REPLeffect [n=REPLeffe@69.54.115.254] has quit [Read error: 113 (No route to host)] 06:59:17 REPLeffect [n=REPLeffe@69.54.115.254] has joined #scheme 07:00:39 -!- davidad [n=me@NORTHWEST-THIRTYFIVE-TWO-SEVENTEEN.MIT.EDU] has quit [Read error: 110 (Connection timed out)] 07:02:36 ejs [n=eugen@21-228-124-91.pool.ukrtel.net] has joined #scheme 07:07:20 i finally understand er-macro-transformer 07:13:21 -!- ejs [n=eugen@21-228-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 07:13:24 really? 07:18:23 maybe not fully 07:18:26 but I am using it 07:25:23 wow, I don't think I can write scheme without macros 07:26:56 -!- raikov [n=igr@61.127.191.238] has quit [Remote closed the connection] 07:31:55 RageOfThou [n=RageOfTh@92.36.182.95] has joined #scheme 07:36:12 raikov [n=igr@203.181.243.11] has joined #scheme 07:36:46 hotblack23 [n=jh@p5B054741.dip.t-dialin.net] has joined #scheme 07:37:29 Don't think you can, or don't think you want to? 07:46:57 -!- benny` [n=benny@i577A06E2.versanet.de] has quit [Read error: 113 (No route to host)] 07:50:27 tripwyre [n=sathya@117.193.163.245] has joined #scheme 07:54:21 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 07:55:19 benny [n=benny@i577A06E2.versanet.de] has joined #scheme 08:05:56 -!- jao [n=jao@cpe-75-84-114-170.socal.res.rr.com] has quit [Remote closed the connection] 08:08:03 ejs [n=eugen@77.222.151.102] has joined #scheme 08:08:22 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 08:13:40 -!- ejs [n=eugen@77.222.151.102] has quit [Read error: 60 (Operation timed out)] 08:14:01 ejs [n=eugen@nat.ironport.com] has joined #scheme 08:14:56 -!- raikov [n=igr@203.181.243.11] has quit [Remote closed the connection] 08:25:18 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 08:31:04 ambient [n=ambi@julma.lnet.fi] has joined #scheme 08:33:10 I'm less enamored with irregex now that I found it's ten times slower than PCRE. 08:33:57 Of course it is. 08:34:09 It's written in Scheme. Scheme is slow. 08:34:18 *sjamaan* giggles 08:34:19 It's also very young and entirely unoptimized. 08:34:22 Scheme is slow 08:34:24 Scheme is slow! 08:34:25 Scheme is slow! 08:34:51 *sjamaan* shoots himself in the face 08:35:02 Yes, and it's also the standard Chicken regex engine now 08:35:11 I didn't make that decision. 08:35:22 *zbigniew* sighs 08:35:29 (although since the old chicken pcre bindings didn't use a dfa conversion you can still find examples where the new chicken regexps are faster) 08:36:46 *sjamaan* bleeds for a bit 08:37:51 Seriously, the internals of the matching algorithm are a tight loop doing fast memory checks and table lookups. 10x slower than C is about what you'd expect for most Scheme compilers. 08:38:19 Nested, tight loops, actually. I have a speedup version tuned for Chicken but I don't want to maintain it yet. 08:40:24 You'd probably get about 100x slower for Python/Perl/Ruby. 08:41:06 Maybe 5x slower for the optimizing compilers like Gambit and Larceny. 08:43:23 and it would be 10000 times slower in BASIC! 08:44:40 If I recall, it was specifically security that people were concerned about with PCRE. PCRE is a huge, complex implementation that repeatedly has buffer overflow exploits. 08:45:33 But you have to pay a price for security and bounds checking. 08:49:16 Regardless, Chicken's now at a huge disadvantage over practically every other scripting language... damn, I cannot go back to Chicken 3.4.6 after using 4.0 08:49:45 It's the same reason Chicken hash tables are ridiculously slow compared to other scripting languages. 08:56:30 what has equivilance to (if #f #t) ? 08:56:50 (if #f #f) 08:56:54 I thought (begin) 08:57:01 but apparently they are different 08:57:22 geckosenator: I don't think that's defined at all 08:57:25 (letrec ((x x)) x) 08:57:38 (cond (#f #t)) 08:57:50 hkBst: well it works on some schemes 08:57:53 (void) mebbe 08:58:07 fooflab: nice 08:58:11 geckosenator: I'm sure it does 08:59:12 sjamaan: yeah 08:59:25 the (letrec ((x x)) x) one is confusing me 09:00:03 it's technically illegal 09:00:27 how come it works? 09:00:40 is chicken broken? 09:00:44 many scheme implementations treat that error situation as a letrec* 09:03:14 I'm going to stick to (void) 09:05:13 geckosenator: what do you need this for anyway? 09:05:57 I have a macro that expands to lambda 09:06:10 each definition is for an assembly opcode 09:06:19 and I needed a body for the nop instruction 09:08:13 jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has joined #scheme 09:11:04 geckosenator: how about 'nop ? 09:11:41 rudybot: eval (letrec ((x x)) x) 09:11:42 Mr-Cat: your sandbox is ready 09:11:42 Mr-Cat: ; Value: # 09:11:58 incubot: eval (void) 09:11:58 # 09:12:10 That's what void is for 09:12:19 You shouldn't abuse letrec for this 09:12:26 rudybot: eval (void) 09:12:28 sjamaan: your sandbox is ready 09:12:38 rudybot: eval (void) 09:12:49 Guess it shows no output on void? 09:13:12 rudybot: eval (write (letrec ((x x)) x)) 09:13:13 Mr-Cat: ; stdout: "#" 09:13:31 rudybot: eval # 09:13:31 Mr-Cat: error: eval:1:0: read: bad syntax `#<' 09:13:52 rudybot: eval (read (write (letrec ((x x)) x))) 09:13:52 Mr-Cat: error: read: expects argument of type ; given # 09:14:03 ops 09:14:05 rudybot: eval (write (void)) 09:14:05 sjamaan: ; stdout: "#" 09:14:08 right 09:14:14 thanks for the reminder :) 09:14:20 rudybot: eval x 09:14:20 geckosenator: your sandbox is ready 09:14:21 geckosenator: error: reference to undefined identifier: x 09:14:26 it should do that right? 09:14:34 I would think it would, too 09:14:42 deat [n=deat@fac34-8-88-172-174-215.fbx.proxad.net] has joined #scheme 09:14:42 or since it's letrec we aren't allowed? 09:14:49 since it's recursively defined to something unspecified 09:21:32 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Remote closed the connection] 09:21:44 rudybot [n=luser@q-static-138-125.avvanta.com] has joined #scheme 09:23:42 -!- AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has quit [Read error: 110 (Connection timed out)] 09:24:30 -!- errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has quit [Remote closed the connection] 09:24:48 errordeveloper [n=errordev@78-86-1-110.zone2.bethere.co.uk] has joined #scheme 09:29:04 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 09:33:37 thehcdreamer [n=thehcdre@94.198.78.26] has joined #scheme 09:34:02 -!- thehcdreamer [n=thehcdre@94.198.78.26] has quit [Client Quit] 09:36:39 alaricsp [n=alaricsp@88-202-205-114.rdns.as8401.net] has joined #scheme 10:02:52 -!- 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"] 10:13:10 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 10:29:08 orgy` [n=ratm_@pD9FFE447.dip.t-dialin.net] has joined #scheme 10:29:16 orgy_ [n=ratm_@pD9FFE447.dip.t-dialin.net] has joined #scheme 10:29:34 -!- orgy_ [n=ratm_@pD9FFE447.dip.t-dialin.net] has quit [Read error: 104 (Connection reset by peer)] 10:42:20 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 10:47:20 -!- jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has quit [No route to host] 10:51:58 -!- npe_ [i=npe@isa7-dhcp-116-217.naist.jp] has quit [] 10:58:58 forcer [n=forcer@e179199108.adsl.alicedsl.de] has joined #scheme 11:00:33 apgwoz [n=apgwoz@141.158.252.74] has joined #scheme 11:22:43 -!- Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [] 11:27:11 -!- Ragnaroek [i=8f5df9eb@gateway/web/ajax/mibbit.com/x-7ea634fe9128b0ad] has quit ["http://www.mibbit.com ajax IRC Client"] 11:37:01 jjong [n=user@203.246.179.177] has joined #scheme 11:39:30 -!- McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has quit ["leaving"] 11:43:12 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 11:54:53 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 11:58:41 bughunter2 [n=j@ip4da4427e.direct-adsl.nl] has joined #scheme 12:17:47 Edico [n=Edico@unaffiliated/edico] has joined #scheme 12:21:09 a-s` [n=user@85.9.55.98] has joined #scheme 12:23:23 jcowan_ [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has joined #scheme 12:26:57 breily [n=breily@173.15.192.254] has joined #scheme 12:30:35 dlt_ [n=dlt@201.80.181.75] has joined #scheme 12:37:12 -!- geckosenator [n=sean@71.237.94.78] has quit [Read error: 110 (Connection timed out)] 12:52:49 -!- fooflab [n=user@leopard172.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 12:53:03 -!- jso [n=user@151.159.200.8] has quit [Read error: 54 (Connection reset by peer)] 13:03:18 jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has joined #scheme 13:03:27 Khisanth [n=Khisanth@pool-151-204-133-128.ny325.east.verizon.net] has joined #scheme 13:04:19 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 13:05:12 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 13:08:09 -!- arcfide [n=arcfide@adsl-99-137-200-228.dsl.bltnin.sbcglobal.net] has quit ["Leaving"] 13:09:37 Nshag [i=user@Mix-Orleans-106-4-127.w193-248.abo.wanadoo.fr] has joined #scheme 13:12:35 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 13:15:31 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 13:17:35 jso [n=user@151.159.200.8] has joined #scheme 13:29:58 -!- Khisanth [n=Khisanth@pool-151-204-133-128.ny325.east.verizon.net] has quit [Read error: 101 (Network is unreachable)] 13:31:12 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:31:12 -!- incubot [n=incubot@klutometis.wikitex.org] has quit [Read error: 104 (Connection reset by peer)] 13:32:27 elderK [n=zk@122-57-255-204.jetstream.xtra.co.nz] has joined #scheme 13:34:28 incubot [n=incubot@klutometis.wikitex.org] has joined #scheme 13:35:01 -!- jso [n=user@151.159.200.8] has quit [Remote closed the connection] 13:35:31 jso [n=user@151.159.200.8] has joined #scheme 13:37:40 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 104 (Connection reset by peer)] 13:40:08 MichaelRaskin_ [n=raskin@213.171.48.239] has joined #scheme 13:40:31 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 13:43:05 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:44:56 -!- Mr-Cat [n=Miranda@hermes.lanit.ru] has quit [Read error: 54 (Connection reset by peer)] 13:49:17 :) I created a solution to my IO woes :) 13:51:16 -!- apgwoz [n=apgwoz@141.158.252.74] has quit [Read error: 110 (Connection timed out)] 13:51:22 -!- ambient [n=ambi@julma.lnet.fi] has quit ["Leaving"] 13:59:16 -!- MichaelRaskin_ [n=raskin@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 14:00:57 nome [n=nome@c-76-120-237-246.hsd1.va.comcast.net] has joined #scheme 14:01:35 samth [n=samth@punge.ccs.neu.edu] has joined #scheme 14:07:12 annodomini [n=lambda@130.189.179.215] has joined #scheme 14:12:04 McManiaC [n=nils@stud247045.studentenheim.uni-tuebingen.de] has joined #scheme 14:14:58 -!- Kusanagi [n=Lernaean@unaffiliated/kusanagi] has quit [Read error: 110 (Connection timed out)] 14:21:57 Kusanagi [n=Lernaean@68-184-239-20.dhcp.stls.mo.charter.com] has joined #scheme 14:26:21 synx, your definition of UNWIND-PROTECT is wrong. The CLEANUP procedure can run immediately after it is registered. 14:29:55 -!- samth [n=samth@punge.ccs.neu.edu] has quit ["Ex-Chat"] 14:30:26 ecraven [n=nex@140.78.42.103] has joined #scheme 14:31:24 foof, rather than kludging a way to write nested loops that induces Chicken's compiler to generate halfway decent code, why don't you make Chicken's compiler generate better code for normal Scheme programs? 14:31:44 :) Heya Riastradh! 14:34:48 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 14:39:20 Because the source to Chicken is ugly and painful to hack :( 14:39:26 -!- Mr_Awesome [n=eric@isr5452.urh.uiuc.edu] has quit [Read error: 60 (Operation timed out)] 14:40:39 mejja [n=user@c-f6b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 14:42:27 Edico [n=Edico@unaffiliated/edico] has joined #scheme 14:47:46 Hey guys! 14:47:57 :) Id appreciate feedback onthe last paste, about binary IO, found here: http://paste.lisp.org/display/77718#9 14:47:58 :) 14:50:50 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 14:53:28 elderK: How long have you been scheming? 15:00:01 only a week. 15:00:03 :) 15:00:09 I'm a newchmr :P 15:00:09 lol 15:00:33 arcfide [n=arcfide@iub-vpn-205-86.noc.indiana.edu] has joined #scheme 15:00:40 reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:00:46 Hello peeps. 15:01:01 :D hey arc! 15:01:25 elderK: My, you're on course to be the next regular with your attendance rate. 15:01:45 *arcfide* ponders a "Resident Newbie" status in his #scheme expoerts file. 15:03:01 :) I'm having fun scheming! 15:03:09 :P Right now, I'm reading all about Continuation passing style. 15:03:16 It seems interesting :) 15:03:25 How are you today, arc? 15:05:05 jlongster [n=user@75.148.111.133] has joined #scheme 15:07:09 Man, continuation style would be awesome in assembly, if the machine allowed you to read the PC. 15:07:24 then again, you could just use labels to the same effect. 15:07:26 *elderK* ponders 15:07:32 *elderK* strokes imaginary beard 15:08:27 I'm doing well enough. Lot's of code on the TODO list though. 15:13:06 :) What kind of stuff are you workign on man? 15:14:27 Decentralized Scheme Code Tracker (Descot), Scribbler Robots, Web Programming in Scheme, SMV Model Checking, .... 15:14:57 And of course, all of this, or most of it touches my Chez Scheme Library repository. 15:16:04 Sounds epic? 15:16:40 elderK: Hardly. :-) 15:18:05 -!- reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 15:18:07 :) 15:19:08 reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:20:33 -!- ejs [n=eugen@nat.ironport.com] has quit ["This computer has gone to sleep"] 15:25:27 *elderK* lays down to ponder 15:28:00 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 15:28:51 Khisanth [n=Khisanth@68.237.103.77] has joined #scheme 15:32:04 -!- offby1 [n=user@q-static-138-125.avvanta.com] has quit [Read error: 104 (Connection reset by peer)] 15:32:21 -!- a-s` [n=user@85.9.55.98] has quit [Remote closed the connection] 15:34:11 Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has joined #scheme 15:39:06 Mr-Cat [n=Mr-Cat@bahirkin1507.static.corbina.ru] has joined #scheme 15:39:17 offby1 [n=user@q-static-138-125.avvanta.com] has joined #scheme 15:39:38 hark [n=strider@hark.slew.org] has joined #scheme 15:46:28 Narrenschiff_ [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has joined #scheme 15:48:34 Daemmerung [n=goetter@1133sae.mazama.net] has joined #scheme 15:52:01 -!- Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has quit [Nick collision from services.] 15:52:13 -!- Narrenschiff_ is now known as Narrenschiff 15:54:46 are there any languages that are more syntax consistent than scheme? 15:56:17 morphir: Binary? 15:56:37 arcfide: true, must be the only one. 15:56:39 Lambda Calculus? 15:56:43 Forth. 15:56:59 Whitespace 15:57:06 me no forth. Superman no home. 15:57:07 Scheme doesn't try to be particularly consistent, I think, though it doens't introduce needless inconsistency, generally. 15:57:58 arcfide: well, I cant think of any language that has such beauty 15:58:51 brandelune [n=suzume@pl064.nas934.takamatsu.nttpc.ne.jp] has joined #scheme 15:58:52 when I started looking at scheme/lisp.. I cringed from all the "unnecessary" paranthesis 15:58:57 brainfuck 15:59:08 smalltalk and forth are rather consistent 15:59:32 morphir: Scheme has beautiful curves and lines. 15:59:51 Scheme even occassionally winks at you. 15:59:58 but now that I understand the notion of it, I even find python and c to be less sexy. Damn you sexy lisp! 16:00:58 s-expr = sexy expression? :) 16:01:47 -!- Khisanth [n=Khisanth@68.237.103.77] has quit [Read error: 101 (Network is unreachable)] 16:12:08 Forth is crazy. 16:12:56 forth crazy is 16:13:03 mmmm 16:13:03 :P 16:13:07 *elderK* wiggles green ears 16:13:09 (is! forth crazy) 16:13:19 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:13:40 :P 16:13:47 is! forth, crazy? mmmmmmm 16:13:47 :P 16:13:48 hahah 16:13:53 Scheme, the voice of Yoda. 16:14:02 How can we possibly not use it? 16:14:09 I mean, it's praised by the almighty green one. 16:14:10 :P 16:14:20 hehe 16:14:28 :) and hey, sjamaan, would you mind takign a little at something for me? I'd like some feedback :) 16:14:51 It's some issues I have found and, my ideas on how to rectify them. :) But, I may have msised something glaringly obvious - that perhaps you can allow me to see. :) 16:15:02 I can try 16:15:15 http://paste.lisp.org/display/77718#9 :) Last annotation :) "Binary IO" 16:15:36 I'm using the pastebin as a makeshift diary of my progress and ponderings :) 16:16:03 You should talk to alaricsp 16:16:13 He's been pondering a better binary I/O API 16:16:16 But I'm full of lies 16:16:21 -!- jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has quit [Read error: 60 (Operation timed out)] 16:16:22 Well, that too 16:16:23 ;) 16:16:30 :P 16:16:49 *elderK* dips hat to alaricsp 16:16:52 Greetings to you, good sir 16:16:52 :P 16:17:13 jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has joined #scheme 16:17:25 ;-) 16:17:31 Binary I/O, eh? 16:17:42 My personal feeling here, is that implementing my idea in raw scheme would probably be far less efficient than just, implementing some embedded C - that is accessible to Scheme and that, returns a Scheme type (that is managed by garbage collection), so that it integrates well into Scheme. 16:17:53 Yes 16:17:56 My thoughts exactly 16:18:16 I'd been using various third-party C libraries and was sick of having to copy the contents of buffers into chicken blobs then free the buffers 16:18:26 :) alaricsp, check out the annotation - tell me what you think of my points :) 16:18:32 *alaricsp* looks 16:19:09 paste.lisp.org is slow today (or is it my connection?) 16:19:36 Yep 16:20:26 athos [n=philipp@92.250.250.68] has joined #scheme 16:20:45 What I proposed was that the chicken blob type be extended so that it might be a heap-allocated blob, as is currently done, or it could be a pointer to some arbitrary C address and a pointer to a deallocation function (which is really a finaliser) - so we can wrap malloc()ed blocks, regardless of what kind of malloc it's from 16:20:48 the issue is, i'd rather not have to use C structures in Scheme to do this. 16:21:03 Aye/ 16:21:06 Ot 16:21:12 Itd be cool if we could say, do this : 16:21:20 Now, things like u8vectors and so on would then use one of these as 'backing store', with a given offset and length 16:21:30 Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has joined #scheme 16:21:40 c_read_function(scheme_vector, the_blob) <--- that we could read the blob as some definition states, and shove it all into the target vector. 16:21:41 -!- reprore [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 104 (Connection reset by peer)] 16:21:44 yeah 16:21:45 :D 16:21:55 just like blob->u8vector/shared does now/ 16:21:57 ? 16:22:05 reprore_ [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 16:22:05 Or you could just do "(extract-u8 blob offset)", "(extract-bigendian-u32 blob offset)", etc 16:22:21 yeah, that'd be hugely useful. 16:22:24 blob->u8vector/shared doesn't let you pull out an arbitrary slice, alas, so you're in trouble if your u32s aren't aligned right 16:22:25 What's the issue here? 16:22:38 arcfide: easily pulling apart binary things like packet headers 16:22:39 I mean that alone would solve all kinds of issues. 16:22:53 alaricsp: How does the FFI come into this? 16:23:01 efficiency, I'd figure. 16:23:12 The main thing is just to have a central single concept of "typeless memory region" (blob) that all these functions can then 'nucleate' around 16:23:15 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 16:23:23 Bytevectors? 16:23:38 arcfide: If you're using the FFI, you can do similar things with that macro that wraps a C struct into a chicken record 16:23:42 Yes, but being able to retrieve arbitrary fields from those bytevectors. 16:23:50 arcfide: but it sucks to go FFI just to read packet headers 16:23:57 exactly. 16:24:06 alaricsp: That's why you use bytevectors, you don't have to use the FFI. 16:24:07 and doing it natively in Scheme is just painful. 16:24:23 Yes, but arcfide - with Chicken at least, you have to create bindings to that bytevector. 16:24:29 arcfide: Ah, but reading a u32 from a bytevector is unpleasant 16:24:42 Even blob->u32vector/shared doesn't define what endianness it'll use 16:24:48 as the types you want to retrieve. I don't know how, yet, without doing it manually, to extract a long or something, from arbitrary offset in the bytevector 16:24:52 alaricsp: I assume that this would all be wrapped in a library just like anything else. 16:24:56 Yep 16:25:02 You would only ever write it once, and I think there is actually a SRfI out there on that. 16:25:20 Not to mention, blob->u32vector/shared doesnt allow you to start at soem offset IN the blob, and it only works with a blob that is a multiple of u32's size. 16:25:35 It'd also be nice to have a higher-level facility, as elderK points out, to do "pack/unpack" type operations (as found in Perl etc), although the way Perl does it is nasty. 16:25:41 Where are you getting these things that look like C structs? 16:25:53 srfi-4. 16:25:54 File formats, network protocols, that sort of thing 16:25:56 for the types. 16:25:58 and aye. 16:26:06 If you read in your binary data from say, a port, you should be able to do plenty with it and not end up with a nasty blob like that. 16:26:19 read-byte 16:26:19 :P 16:26:27 what about seeking? 16:26:30 There's not even a library to read a 32-bit integer of a given endianness from a port 16:26:45 alaricsp: I believe there is. 16:26:53 Well, not quite, but close. 16:26:55 exactly - it has to read four bytes, and do the shifting as necessary on the host to construct the long. 16:27:29 Where as in something like C, it is trivial to read X size and access it however you wish. 16:27:30 elderK: That's what any programming language has to do. The others may already have functions like this, though, so why not just write it yourself and then publish it as a library? 16:27:53 Okay arcfide, that's a good point. 16:27:59 But how about implementing seek? 16:28:00 in a port? 16:28:14 Alas, I have to run, and miss this fun discussion. But I'll be back! 16:28:17 elderK: Seeking? That's something that ports may or may not support. 16:28:29 elderK: Seeking is already supported in may Schemes. 16:28:38 exactly, and if the ports don't support it - we have to provide it. Now, we could do that - with caches mayhap. 16:28:41 elderK: What do you want to use seeking for? 16:28:43 :) Later alaricsp! 16:29:22 Take the ELF format for example. Depending on what I am doing with it - I want to load some things and ignore others. I don't want to load say, 16K when I only need to retrieve 4K from say, the middle of it. 16:29:43 I understand that deep in the bowels of the OS, or the runtimes, that 16K maybe loaded fully. 16:30:17 which is /why/ we can access it when we please. If that is so, why should I have to perform that kind of stuff, by hand, in Scheme? 16:30:19 elderK: Have you seen SRFI 74? 16:30:23 No. 16:30:25 But I will look it up now. 16:31:29 Aye. Chicken scheme doesn't have srfi-74 16:31:39 but this is precisely what I require, roughly 16:31:40 elderK: The point of SRFIs is that they should be portable, just use it. 16:31:44 Perhaps I will implement it for chicken. 16:32:24 -!- Narrenschiff [n=ritchie@mo-rsmitha21.op.umist.ac.uk] has quit [] 16:32:56 elderK: There should be a portable reference implementation that you can use. 16:33:09 -!- dysinger [n=tim@cpe-75-80-200-182.hawaii.res.rr.com] has quit [] 16:33:10 davidad [n=me@dhcp-18-111-16-64.dyn.mit.edu] has joined #scheme 16:34:42 arcfide: I do have to say though, it is awesome that, given any kind of beef with scheme, the answer is simply "You can fix it yourself". 16:34:44 :) 16:34:50 If I want X feature, I can simply build that in Scheme. 16:34:50 :) 16:34:59 elderk: Moreover, if your Scheme doesn't support seeking, though something like FILE-POSITION, well, that's just fooey. :-) 16:35:15 :P Meaning, tough shit? 16:35:16 :P 16:35:21 I mean, I could implement file-position myself by hand :P 16:35:29 It'd just be far less efficient than I'd wish. 16:40:35 arcfide: :) Also, I do not think that all programming languages create their fixed-number representations of the incoming bytestream, shifting manually. 16:41:17 The disk drive would return soem block to the kernel, as raw data, which the kernel would then forward to the library, which would cache it - the program would access that when they did stream operations, seeking, until they needed something that wasn't in that block. 16:41:30 the integers would simply be mapped to the patterns in the block. 16:41:38 Unless I am mistaken? 16:41:40 :D 16:41:43 :) Man I like talkign here! 16:41:48 :D It freaking /rules/ to talk to intelligent people. 16:42:00 It's like, finding nirvana after a million years stuck in a hamster cage. 16:42:00 :D 16:44:08 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 16:45:11 -!- Mr-Cat [n=Mr-Cat@bahirkin1507.static.corbina.ru] has quit [Remote closed the connection] 16:47:50 -!- hornbeck is now known as hornbeck_lunch 16:47:52 jonrafkind [n=jon@204.99.164.249] has joined #scheme 16:50:56 -!- reprore_ [n=reprore@ntkngw372060.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Client Quit] 16:51:22 Mr_Awesome [n=eric@isr5452.urh.uiuc.edu] has joined #scheme 16:58:29 I think most programming languages would have to do some shifting if the numbers do not map directly to something on the machine's hardware. 16:58:47 exactly. 16:58:52 ieee754, for example, sure. 16:58:57 Also, if you try to implement FILE-POSITION yourself, you're going to be in pain. 16:59:14 you can implement file-position very easily if you don't care about memory use. 16:59:14 :P 16:59:35 but no, if you do a proper file-position, you are in pain for sure. 16:59:35 :) 16:59:40 Better to just have a pass that reads the data you want in one single pass and passes back the values as you want them, either in a header record, if that's what you want, or as multiple values if they are more disjoint. 17:00:11 yes, but what if the data I want, is seperated by large regions? 17:00:14 -!- Jarvellis [n=jarv@dsl-217-155-101-22.zen.co.uk] has quit [Remote closed the connection] 17:00:19 if I cannot say "seek forward 16K" 17:00:25 I have to skuip that in some way, 17:00:39 and reading all those bytes just to be thrown away is pointless. 17:01:46 elderK: if you are implementing your own file-position, that's what you are going to do anyways. 17:02:07 I think my experience at the lower levels has corrupted how I see things. 17:02:08 *elderK* sighs 17:02:18 Unless you use Chicken's ability to create custom ports from File Descriptors and then use the standard C seek function from an FFI. 17:02:48 I found that chickens "posix" IO is broken, I think. 17:02:49 That should require about zero C code. 17:02:55 :/ file-position is busted there. 17:02:59 I'm surprised. 17:03:17 I would think that's important. If you want it, then fixing the bugs in Chicken might be the better way. 17:03:27 And FILE-POSITION is more portable than your own hacks. 17:03:35 Aye, that is true. 17:03:39 like, 17:03:40 say, 17:03:45 I open a port, using their system. 17:03:49 then I read something 17:03:51 say, 12 bytes. 17:03:56 then I get the file position 17:03:58 it reads as zero. 17:04:24 what type of port is it? not all ports supports or needs to support position 17:04:29 I don't know too much about Chicken, but there are more people here that do. Make sure that the POSIX interface works on regular ports. 17:05:03 leppie: It was a port built from a file descriptor. 17:05:12 ahh k 17:05:28 so a custom port? 17:05:32 (open-input-port (file-open "filename" (+ open/binary open/read))) 17:05:35 as the chicken docs state 17:05:57 elderK: Is there really no FILE-POSITION for normal file ports? 17:06:21 Checking :) 17:06:33 http://chicken.wiki.br/Unit%20posix 17:06:53 mmc [n=mima@cs137215.pp.htv.fi] has joined #scheme 17:10:41 try passing the file descriptor directly to the position proc 17:10:41 bweaver [n=user@75.148.111.133] has joined #scheme 17:12:32 does open-input-port not expect a string? 17:12:45 A string or a fileno. 17:16:22 and file-open returns a descriptor? 17:16:59 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 17:18:27 -!- jlongster [n=user@75.148.111.133] has quit [Remote closed the connection] 17:20:55 is open-input-file* the same as open-input-port? 17:23:27 -!- jcowan_ [n=jcowan@cpe-74-68-154-18.nyc.res.rr.com] has quit [Read error: 110 (Connection timed out)] 17:23:42 Hey, chicken folk! Where are you? 17:23:59 The bunch of Chickens. 17:24:11 i think it's just a type mismatch, not Chicken's fault 17:24:45 elderK: I would guess that you need to study the usage of the procedures a little more, because I would doubt that something like FILE-POSITION on Chicken with I/O would be broken so badly without someone touching it. 17:25:45 just remember in scheme, the training wheels are gone, the compiler does not 'help' you any more like in statically typed languages 17:26:15 The documentation says that file-position in Chicken can take either a descriptor or a file port. 17:26:42 -!- hornbeck_lunch is now known as hornbeck 17:26:50 Perhaps there's some sort of buffering going on, elderK? 17:27:12 file-open return a file descriptor, open-input-file* (which I assume is the same as open-input-port) accepts a FILENO 17:27:14 But in that case, the file position would be much higher than the amount of bytes read, by whatever block size they choose to buffer by... 17:27:29 an exact postive integer 17:28:35 Does open-input-port even exist? I'm not familiar with what it should do... 17:29:04 i couldnt find it, but open-input-file* had the same 'signature' as elderK described 17:31:39 barney [n=bernhard@p549A1AFB.dip0.t-ipconnect.de] has joined #scheme 17:32:35 So my HTTP 1.1 persistent connections client is working again...right about when I remember about HTTP pipelining. >.< 17:33:11 melgray [n=melgray@70.99.250.82] has joined #scheme 17:33:47 jlongster [n=user@75.148.111.133] has joined #scheme 17:35:32 -!- davidad [n=me@dhcp-18-111-16-64.dyn.mit.edu] has quit [Read error: 110 (Connection timed out)] 17:37:17 davidad [n=me@NORTHWEST-THIRTYFIVE-FOUR-TWENTY-TWO.MIT.EDU] has joined #scheme 17:37:22 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 17:44:12 Hehehe. 17:44:57 I'm debugging my sockets library at the same time that I am debugging a multi-threaded application that uses it, which requires, mostly, that I test it using Apache and a Web browser...:-D 17:49:05 ecraven [n=nex@140.78.42.103] has joined #scheme 17:50:28 doh! i rewrote my append proc in scheme (from C#) a few days back, but it wasnt working, but it sure looked right, then just now I realise that I had a sneaky dot in the params list of a proc :) Now it all works 17:50:59 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 17:55:13 jao [n=jao@obfw.oblong.net] has joined #scheme 17:57:37 -!- deat [n=deat@fac34-8-88-172-174-215.fbx.proxad.net] has quit [] 17:58:06 breily_ [n=breily@137.54.27.40] has joined #scheme 17:59:39 -!- breily [n=breily@173.15.192.254] has quit [Connection timed out] 18:02:28 -!- jonrafkind [n=jon@204.99.164.249] has quit [Connection timed out] 18:02:43 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 18:11:19 Prael [n=Enso@72.159.61.74] has joined #scheme 18:11:21 -!- tripwyre [n=sathya@117.193.163.245] has quit ["bye all"] 18:15:00 puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has joined #scheme 18:31:03 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 18:37:33 geckosenator [n=sean@71.237.94.78] has joined #scheme 18:41:35 oldtime-programm [n=chatzill@a88-115-216-44.elisa-laajakaista.fi] has joined #scheme 18:41:54 hello 18:46:03 -!- arcfide [n=arcfide@iub-vpn-205-86.noc.indiana.edu] has quit ["Leaving"] 18:48:57 leppie, you found the right function :) 18:50:11 -!- hornbeck is now known as hornbeck_afk 18:51:15 dysinger [n=tim@cpe-75-80-200-182.hawaii.res.rr.com] has joined #scheme 19:03:39 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 19:05:40 siloxid [n=user@rrcs-74-62-20-253.west.biz.rr.com] has joined #scheme 19:10:35 Ragnaroek [i=54a66519@gateway/web/ajax/mibbit.com/x-875e742b7c431fc2] has joined #scheme 19:12:29 hadronzoo [n=hadronzo@ppp-70-251-147-16.dsl.rcsntx.swbell.net] has joined #scheme 19:15:55 choas [n=lars@p5B0DDF37.dip.t-dialin.net] has joined #scheme 19:18:39 -!- 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"] 19:22:04 arcfide [n=arcfide@99.137.200.228] has joined #scheme 19:32:53 MrFahrenheit [n=RageOfTh@92.36.176.66] has joined #scheme 19:34:13 -!- breily_ [n=breily@137.54.27.40] has quit [Connection timed out] 19:35:47 -!- oldtime-programm [n=chatzill@a88-115-216-44.elisa-laajakaista.fi] has quit ["ChatZilla 0.9.84 [Firefox 3.0.8/2009032609]"] 19:35:55 breily [n=breily@173.15.192.254] has joined #scheme 19:38:05 -!- mmc [n=mima@cs137215.pp.htv.fi] has quit ["Leaving."] 19:39:33 aaco [n=aaco@unaffiliated/aaco] has joined #scheme 19:48:59 Adamant [n=Adamant@c-76-29-188-22.hsd1.ga.comcast.net] has joined #scheme 19:49:41 -!- RageOfThou [n=RageOfTh@92.36.182.95] has quit [Read error: 101 (Network is unreachable)] 19:49:43 ecraven [n=nex@140.78.42.103] has joined #scheme 19:51:58 -!- elderK [n=zk@122-57-255-204.jetstream.xtra.co.nz] has left #scheme 19:52:24 ejs [n=eugen@84-164-124-91.pool.ukrtel.net] has joined #scheme 19:56:17 Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 19:57:00 elderK [n=zk@122-57-255-204.jetstream.xtra.co.nz] has joined #scheme 19:57:07 I wonder how practical it would be to write a Linker in Scheme. 19:57:07 :P 19:57:27 incubot: have you written a linker in scheme? 19:57:30 Not really. It sounds like there's a lot more code involved than necessary, but the linker is actually about ten lines of code. 19:58:03 ? 19:58:10 *elderK* pokes incubot 19:58:14 Are you really a bot? 19:58:15 o_O 19:58:33 aren't we all bots at some level 19:58:40 heh 19:58:41 :) 19:59:38 I find it difficult to imagine writing a Linker in Scheme, without better ways to access u*vectors and the like. 19:59:44 well, better ways to manipulate binary data. 19:59:44 why would you bother? 19:59:50 for the experience :) 19:59:58 I would rather write a compiler 20:00:03 I've written linkers in C :) 20:00:09 I would like to do that too. 20:00:10 incubot: why don't you show elderK that we are in effect boyyyyyy 20:00:12 But it mitigates the effect of bashing to have a real sense of how difficult it is, not just technically, to produce something like R6RS. 20:00:14 I'm writing a superoptimizer in scheme right now 20:00:14 but the point stands. 20:00:55 Adamant, geckosenator: What advice can you give to me, for dealing with "unboxed" binary data? 20:01:07 elderK: in what respect? 20:01:17 you're trying to box it? 20:01:25 if I was in C, I'd just... set "this structure is mapped to this address in teh bytevector". 20:01:39 I'm not srue if the terminology I am using is correct, Adamant 20:01:40 :) 20:02:03 It's just I'm finding it quite difficult to use R5RS Scheme to do any kind of serious binary IO, without extending the crap out of it myself. 20:02:04 elderK: not much 20:02:11 well, unboxed ints are raw machine ints, boxed ints are Objectified ints or Lispified ints 20:02:32 Aye, the data is unboxed. 20:02:43 -!- benny [n=benny@i577A06E2.versanet.de] has quit [Read error: 104 (Connection reset by peer)] 20:02:49 but, structuring it into a form I can deal with in a higher level - is difficult in Scheme, at least, for me at this time. 20:02:58 from the unboxed data, that is. 20:02:59 ah. hmm. 20:03:15 I can read it all into a "blob" and say, convert that blob to a u*vector. 20:03:17 that's fine. 20:03:22 but those vectors are too inflexible. 20:03:28 do you want to box it to make it easier to deal with, or do you need to manipulate it in binary-type form? 20:03:54 with Scheme abstractions 20:04:11 hmm 20:04:22 I don't really care if I end up pulling it into a proper Lisplike object - as long as I can give that abstraction for the various tables inside the binary data. It's just, providing those abstracts - actually accessing the data I need, from the blob, is difficult. 20:04:31 because the vectors wont let me map them to arbitrary locations 20:04:44 and I really, really don't want to make seperate vectors from internals of the mother-blob :P 20:04:50 since that implies copying. 20:04:57 ah 20:05:34 have you looked at looping constructs supported in Scheme? 20:05:42 would that help at all? 20:05:44 In C, I can just throw a pointer somewhere - make sure the target is casted and read from it whatever is there ,represented as the pointer's type. 20:05:47 yes and, not really. 20:05:47 :) 20:05:52 elderK: I'm pretty sure you can do it with vectors fine 20:05:57 elderK: but it might be slower 20:06:04 Aye, geckosenator. 20:06:12 I can do it in Scheme, but it will take far more memory compared to C - and be far slower. 20:06:14 elderK: I'm writing my superoptimizer using vectors and lists for now 20:06:22 then I can optimize it later 20:06:24 ok, so you're updating it in place or trying to rip it out with zero copying? 20:06:32 benny [n=benny@i577A188E.versanet.de] has joined #scheme 20:07:02 elderK: I am finding a lot of stuff doesn't matter for speed.. only certain functions will benefit from optimizing 20:07:42 Well, I could extract the data I wanted - then create lispy structures to track it in a more tasty, easy to access form. It's just, doing that extraction seems pointless - when it will just serve to let me access those fields easier- there is no real need to copy the data fields. 20:07:58 ok, so you want zero copying 20:08:14 if possible. 20:08:17 basically you want a reference to a subarray 20:08:22 precisely. 20:08:22 ? 20:08:35 with the elements of said subarray to be sized what I want, regardless of alignment. 20:08:54 I mean, I could implement that myself in software. 20:09:14 but it would be convenient if there is a Scheme way of doing that, taht I am simply unaware of. 20:09:14 :) 20:09:15 you know? 20:10:07 I mean, I could use the FFI to achieve it quite easily. It's just, that doesn't feel at all in the spirit :) 20:10:12 right 20:10:20 So, I'm interested in how you guys would approach it :) 20:11:03 vector-ref 20:11:08 looks like it does what you want 20:11:21 well, yes and no? 20:11:33 if I want to read say, a byte. I can use u8vector-ref. 20:11:39 if I want a word or a long ,I can do those too 20:11:40 right 20:11:46 I can even use blob->u32vector/shared 20:11:48 the problem is 20:11:55 is that the blob I am mapping to, 20:12:04 must be a multiple of the vector's element size. 20:12:29 and it maps from the start of the blob - it would be useful if I could map it to an arbitrary offset within the blob.:) 20:12:51 So far, all the ways that I can see - involve me writing my own little library in Scheme to do this for me. 20:13:13 except, I'm unaware of how to actually map to something like that in Scheme, shared-like. 20:14:10 I was playing with Chicken's vectors - and using their pointer type - but that brings new problems - how much hidden data is inside the vectors? how many tags, etc ,are there, that I do not see? 20:14:38 (make-pointer (object->pointer (u8vector-ref ))) 20:14:44 gives me a pointer 20:14:46 yeah. 20:14:57 but dereferencing it yeilds the wrong data. 20:15:04 er, yield :) 20:16:16 -!- dudrenov [n=user@67.101.217.41] has quit [Remote closed the connection] 20:16:33 would updating it in place work? 20:16:49 say, (define a (u8vector #x5A #x21)) 20:16:51 (define &a (make-pointer (object->pointer (u8vector-ref a 0)))) 20:16:51 (print (pointer-u16-ref &a)) <--- displays not #x5A. It displays something like 2. 20:17:32 Yes, but updating it in place still means updating fields in the blob - that are say, longs. And since the u*vectors wont let me map wherever I Want, that updating would have to be done in software, with shifting and whatnot... 20:17:42 yeah. 20:17:58 Which is kind of... not ideal. 20:17:59 :) 20:18:07 honestly I've never used the array-ish features of Scheme a lot 20:18:33 I wonder if I am simply trying to use Scheme for the wrong kind of thing :) 20:18:44 and again, it probably would not be hard to write a small FFI binding to let me do this. 20:18:48 why not just allocate the buffer yourself ? 20:18:49 languages like Scheme and Haskell tend to not have great array support because it's less functionally 20:19:03 then use it like a pointer 20:19:12 how do you mean, leppie? 20:19:19 in scheme or via ffi? 20:19:24 in scheme 20:19:35 http://chicken.wiki.br/Unit%20lolevel#foreign-pointers 20:20:09 -!- hornbeck_afk is now known as hornbeck 20:20:12 so, manually alloc/release? 20:20:36 -!- barney [n=bernhard@p549A1AFB.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20:20:44 yeah 20:22:15 I want dynamic scoping 20:23:50 i want to go sleep :) 20:24:47 damn... the FastCGI protocol looks complicated... are there any scheme implementations already of a FastCGI server? 20:26:22 I think most use the fastcgi C library 20:26:54 ls 20:26:57 oops 20:27:43 Yeah, but that totally doesn't multiplex. 20:27:57 Not that I care at this point. I'll just use that then. 20:28:06 Alternatively, use scgi 20:28:15 It's simple and easy to implement 20:30:20 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 20:33:53 -!- hornbeck is now known as hornbeck_afk 20:35:07 Yeah, guess so... 20:37:40 -!- jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has quit [Connection timed out] 20:37:54 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 20:38:53 jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has joined #scheme 20:39:49 Arelius__ [n=Indy@netblock-68-183-230-28.dslextreme.com] has joined #scheme 20:40:43 breily_ [n=breily@173.15.192.254] has joined #scheme 20:43:05 -!- breily [n=breily@173.15.192.254] has quit [Read error: 110 (Connection timed out)] 20:43:48 MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has joined #scheme 20:44:10 -!- ken` [n=unknown@84.92.70.37] has quit [Read error: 110 (Connection timed out)] 20:52:03 neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has joined #scheme 20:52:31 elderK, you are correct that the R5RS provides nothing useful for binary I/O and working with structures in bits. However, even if the language does not provide what you need, you can readily build it -- much more flexibly than in most other languages because you can use macros. 20:53:03 -!- puchacz [n=puchacz@87-194-5-99.bethere.co.uk] has quit [Remote closed the connection] 20:54:07 the bassist for men at work was john rees, and their first recorded single was "keypunch operator" 20:56:15 -!- ecraven [n=nex@140.78.42.103] has quit ["bbl"] 20:56:40 -!- Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has quit [Read error: 110 (Connection timed out)] 20:57:07 Rounin [n=david@rounin.409.no] has joined #scheme 20:57:24 SharkBrain [n=user@210.48.104.34] has joined #scheme 20:59:07 -!- Arelius__ [n=Indy@netblock-68-183-230-28.dslextreme.com] has quit [Read error: 110 (Connection timed out)] 21:01:29 -!- Ragnaroek [i=54a66519@gateway/web/ajax/mibbit.com/x-875e742b7c431fc2] has quit ["http://www.mibbit.com ajax IRC Client"] 21:01:44 saccade_ [n=saccade@BRAIN-AND-COG-THREE-TWELVE.MIT.EDU] has joined #scheme 21:05:41 Riastradh: Aye, that is true. And that is what I am referring to, when I say I can do the bit-ripping in software. 21:06:09 It's just, that retrieving a long, say, by shifting/oring 4 bytes is quite a lot of pain for such a simple task. 21:06:14 But hey, that is the price of typesafety. 21:06:14 :) 21:06:24 What is a `long'? 21:06:29 unsigned long int. 21:06:32 32bit unsigned integer. 21:06:33 :) 21:06:36 32-bit? 21:06:45 on IA32 architecture, yes. 21:06:58 Whoa, wait -- where did IA32 enter into this? 21:06:58 on AMD64 too, depending on mode. 21:07:20 Well, you said waht is long? :) 21:07:23 then you said, 32bit? 21:07:30 :) 21:08:19 Furthermore, what about the IA32 implies that `long' means a sequence of thirty-two bits interpreted as an unsigned integer? 21:08:27 name the factors that constitutes a computer application. 21:08:39 I sure hope you aren't using any data formats that talk about `long' in general without defining it precisely. 21:08:49 good point. 21:08:49 :) 21:09:07 It is the native word size of the machine. 21:09:13 Even in C there's a better way to say what you called `long' -- uint32_t. 21:09:20 :) Yup. 21:09:22 You are right. 21:09:52 -!- alaricsp [n=alaricsp@88-202-205-114.rdns.as8401.net] has quit [] 21:11:31 -!- ejs [n=eugen@84-164-124-91.pool.ukrtel.net] has quit ["Leaving"] 21:11:33 but, my point still stands? fetching a uint32_t, 32bit unsigned integer, by manually manipulating the bytes, shifting them into the correct place - from an arbitrary offset within a bytevector - is painful? 21:11:53 or, am I overlooking something? 21:11:55 You need only write that once, however, if you have a better name for the operation. 21:12:08 that's true. 21:12:16 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 21:12:30 I don't even need to use a macro to do it. 21:12:35 Simple enough just to define the command :) 21:12:45 er, procedure. 21:12:46 :) 21:13:21 Was just making sure I didn't miss some obvious and nice command that would do it for me :) Because, to be honest, implementing it myself will be :D 21:13:23 er, be fun :) 21:13:27 *elderK* needs more coffee. 21:14:35 Here's something nifty that you can do with Scheme macros which is not really possible to do with C macros. Given operations on, say, u8vectors (or whatever your favourite name for similar objects is), you can construct a macro DEFINE-STRUCT that behaves like many people want C struct declarations to behave, or like C struct declarations with compiler-specific `packed' pragmas/attributes/qualifiers. This macro would generate de 21:15:35 Your message cut off, man? 21:15:40 This amcro would generate de... 21:15:57 This macro would generate definitions of procedures for reading from and writing to precise bit offsets in u8vectors. 21:16:14 -!- choas [n=lars@p5B0DDF37.dip.t-dialin.net] has quit ["leaving"] 21:17:40 I can define byte-accurate-sized structures in Scheme, without use of FFI? 21:17:47 and them still be taken care of by the GC? 21:17:50 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 21:17:55 wb synx 21:18:10 No. 21:18:11 damn fork bombs... 21:18:21 Daemmerung: :) Didn't think so. 21:18:21 is there no protection against them? 21:18:23 The GC doesn't care what you put inside u8vectors. 21:18:34 Yes, synx: process resource limits. 21:18:45 I have resource limits! 21:19:10 That's why I was complaining about drscheme unceremoniously dying, for instance. 21:19:26 "max user processes...250" 21:21:34 alaricsp [n=alaricsp@88-202-205-114.rdns.as8401.net] has joined #scheme 21:22:26 elderK, if the u8vector ceases to be referenced, it will not detract from the amount of memory available to Scheme. 21:22:44 Aye :) 21:22:57 Thanks for the help, Riastradh man! 21:23:07 Arcfide, Daemmerung and all the others, too :) 21:23:21 I've got to jet, yarrrrrr....bills to pay :/ 21:23:42 cya elderK 21:23:49 :D Later Synx dude :) 21:23:53 *elderK* waves 21:23:55 Keep cool, guys! :) 21:24:11 -!- elderK [n=zk@122-57-255-204.jetstream.xtra.co.nz] has left #scheme 21:24:15 The worst part about it is I can't debug this program now, because it kills my computer every time I run it. 21:25:23 what it's supposed to do is accept a connection, dispatch a thread to handle it, then accept another one. 21:25:53 but instead it accepts one connection, and then all processes grind to a halt. 21:26:06 Thread? 21:26:53 Yeah, one of plt's green threads. 21:26:56 -!- Rounin [n=david@rounin.409.no] has left #scheme 21:27:13 How are processes and forking involved? 21:34:39 That's what I would think! I can't really tell though. 21:35:46 My guess would be the thread is somehow invoking the routine that invokes it, aka fork bomb. But it'd all be in one process so... why doesn't it just die? 21:36:08 Do you have memory limits? 21:36:15 Yes. 21:36:40 Though I have to set them rather high for drscheme not to die just to spite me. 21:38:35 Yeah, it does pretty much just start taking up all the memory on my system. I managed to run it in a fashion that would auto-kill it. 21:39:07 It hits the 300MB limit, and keeps going beyond it, despite the fact that the resource limit has been set. 21:39:19 Is that a soft limit or a hard limit? 21:40:14 It defaults to soft limit but... 21:40:16 -!- dlt_ [n=dlt@201.80.181.75] has quit [Read error: 110 (Connection timed out)] 21:42:06 hmm, the stack size is unlimited according to the hard limit. Everything else is still limited though. 21:42:47 nope, limiting the hard limit on the stack doesn't stop the memory consumption either. 21:43:13 Ah, limiting the virtual memory more gets it killed. 21:43:39 I have like 3 gigabytes of swap though... 21:45:47 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 21:47:44 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 21:49:24 Arelius_ [n=Indy@netblock-68-183-230-134.dslextreme.com] has joined #scheme 21:53:51 -!- neilv [n=user@dsl092-071-029.bos1.dsl.speakeasy.net] has quit ["Leaving"] 21:54:05 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 21:54:14 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 21:55:13 annodomini [n=lambda@130.189.179.215] has joined #scheme 21:55:44 synx: For what do you want fastcgi? 21:58:29 Yeah it was just a memory eater after all, not a fork bomb. It wasn't a problem with thread. 21:59:00 synx: Are you finding the existing web application environments in Scheme to be lacking? 21:59:43 apache passes special information to fastcgi processes, that it does not pass to backend proxies. 21:59:54 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 22:00:33 plus since I'm already losing the benefit of things like pipelining and persistent connections, a backend HTTP server isn't as useful. 22:00:59 synx: Have you considered the existing Scheme implementations of scgi and mod_lisp? 22:01:15 Or is there something in particular about fastcgi you want? 22:01:57 I was told of no existing implemenation of scgi. As for mod_lisp, I don't particularly like not being able to anticipate whether I'm being preforked or in worker threads. 22:02:05 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 22:02:24 Whether your being preforked or in worker threads? 22:02:30 Sorry, what do you mean by this? 22:02:45 synx: There is an SCGI implementation written for Scheme48 as part of Magic. 22:02:54 mod_lisp operates in the context of apache. Using Guile if I recall. 22:03:34 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 22:04:03 synx: The implementation I am thinking of is written in MIT Scheme. 22:04:24 well, maybe I'll take a look. 22:04:36 synx: My understanding of it was just an Apache module that connects via TCP to a listening server. 22:04:50 It has a very simple protocol, which makes it appealing, if you like that sort of thing. 22:05:04 22:05:12 However, it doesn't have the exposure that mod_scgi does. 22:05:41 synx: I am writing an interface compatible version of MIT Scheme's mod_lisp API. 22:06:01 -!- aaco [n=aaco@unaffiliated/aaco] has quit [Read error: 110 (Connection timed out)] 22:07:05 Huh. The protocol isn't functionally much different from SCGI... just it's key\nvalue\n instead of key\0value\0 and no netstring length prefix. 22:07:15 -!- MichaelRaskin_ [n=raskin@gwh-1-177-mytn23k1.ln.rinet.ru] has quit [Remote closed the connection] 22:07:51 I like the part about how you can keep a connection open though! 22:08:15 Either that or I hate it I dunno. Haven't tried to wrangle with it yet. 22:09:54 Making modular web applications is hard... 22:11:22 synx: How so? 22:12:22 Well I don't want a kitchen sink process that has all my webapps smooshed together, in case one goes wrong. 22:12:40 synx: So don't. 22:12:50 But when they're serving on different ports it's inconvenient to identify each by a meaningless number. 22:12:55 Have multiple processes, possibly listening on different servers. 22:12:59 So it's much nicer to say /host/app/ 22:13:07 synx: That's why you identify it by name. 22:13:26 So the only way to do that is using a proxy. 22:13:31 synx: So, in mod_lisp, you can have many mod_lisp servers, you just give them each a name and an internal port. 22:13:49 mod_lisp, or apache's mod_proxy, or even squid. 22:13:59 You then could have lot's of mod_lisp servers running in the background, each with its own name, and you can have lot's of apaches that all serve them. 22:14:14 You can of course use load balancing. 22:14:20 Or SCGI or whatever. Something to pipe the data from the port you don't want your users to care about, into the path you do. 22:14:46 synx: I don't get what the problem is? 22:14:47 That's true of most of these things arcfide. But anyway... 22:15:18 So I would use mod_proxy, but it does something screwy that I can't figure out, and I think it's impossible to go from https->http. 22:15:46 squid is nice, but... I mean I'm running apache anyway, so squid adds on a layer of complexity. 22:16:39 Using mod_scgi is fine, except like any of these solutions it loses the benefit of persistent connections. mod_lisp doesn't seem to though, so maybe it's better coded... 22:17:24 I mean mod_lisp allows you to keep the connection open. Writing an interface for that though is a nightmare I've found. 22:17:40 synx: Writing an interface for a persistent connection? 22:17:53 annodomini [n=lambda@64.30.3.122] has joined #scheme 22:18:00 Yes, because you need a pool of connections then. 22:18:08 And you need to track state on each connection. 22:18:38 Whether they're available or in the middle of a response. And you have to clean up all that if they should die for some reason. 22:18:43 I haven't played with mod_lisp's persistent connection stuff, but to me it would seem as simple as just a read loop that grabs each request as it comes in and dispatches it to a thread. 22:19:10 Good way to end up with a bunch of hung threads IMO. 22:19:51 Well, I'll probably understand more of it once I finish with the basic implementation. 22:19:54 You can't dispatch each request to a thread either. You have to wait for the response to complete before dispatching another request. 22:20:00 Why? 22:20:34 Because mod_lisp is waiting for it? 22:20:40 It's not multiplexing... if you've sent 30 bytes of response to request A, and 60 bytes of response to request B, they'd both be mixed together into the response for A. 22:20:52 If you were reusing the connection that is. 22:21:08 Well, of course you would queue each of these up through the main handler, which is going to control the flow through that one port. 22:21:16 Or you use proper threading control. 22:22:06 Right, so a handler for each port... that's what I did when dinking around with a HTTP client library. 22:22:07 Also a second thread to clean up resource allocation sort of semaphores. 22:22:13 So I won't have too many requests going on at once. 22:23:50 The only thing I could see as troublesome is the handling of incoming requests, since a request that has a lot of data may take a long time to read, which would hold up future requests. 22:24:08 But again, I haven't read it through, so I don't know if I understand what it is doing well enough. 22:25:17 aack [n=user@s559195f7.adsl.wanadoo.nl] has joined #scheme 22:26:13 -!- hotblack23 [n=jh@p5B054741.dip.t-dialin.net] has quit [Read error: 110 (Connection timed out)] 22:33:02 gweiqi [n=greg@69.120.126.163] has joined #scheme 22:34:10 I'm just saying there's advantages to having to use a new connection for each request. 22:39:05 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 22:39:08 -!- breily_ [n=breily@173.15.192.254] has quit [Read error: 104 (Connection reset by peer)] 22:39:45 breily [n=breily@173.15.192.254] has joined #scheme 22:40:50 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 22:42:46 Well, if you get your mod_lisp client working I'll love to see if I can use it. 22:45:11 https://synx.us.to/tripcode anyway <.< 22:50:46 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 145 (Connection timed out)] 22:51:19 -!- jewel [n=jewel@dsl-242-188-120.telkomadsl.co.za] has quit [Read error: 113 (No route to host)] 22:54:39 synx: Yeah, well, I'll be glad to share the code. You can see what I have right now if you want to check ou my CVS Server. 22:56:08 synx: What's that URL? 22:58:06 Just an experiment I'm trying. 22:58:49 I'm taking the hash of a client certficate, as a unique identifier that people can use to be recognized when coming back. 23:00:42 Also that's a SCGI server I cooked up. 23:02:52 Narrenschiff [n=ritchie@xolotl.plus.com] has joined #scheme 23:03:27 -!- athos [n=philipp@92.250.250.68] has quit [Remote closed the connection] 23:05:09 synx: I see. 23:05:16 synx: Did you use the scgi server from Magic? 23:14:41 Wohoo! Got my first correct server response! 23:26:26 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:31:29 synx: If you are interested, I can get you the CVS information or just mail you a copy of the file. 23:31:37 -!- jlongster [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 23:33:41 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 23:37:41 So, a little poll for everyone. I am adding in errors to my Sockets library. That is, things like disconnections, and the like, in preparation for non-blocking IO. THe question is whether you would prefer for the error handling system to be used for signalling disconnections and such, or whether you would prefer to have some kind of special values returned from the functions? 23:38:34 s/and the like,// 23:39:01 either way 23:39:26 you can use a wrapper to make one way the other 23:39:33 -!- orgy` [n=ratm_@pD9FFE447.dip.t-dialin.net] has quit [Remote closed the connection] 23:41:13 raikov [n=igr@203.181.243.11] has joined #scheme 23:45:04 -!- Narrenschiff [n=ritchie@xolotl.plus.com] has quit [] 23:46:08 -!- alaricsp [n=alaricsp@88-202-205-114.rdns.as8401.net] has quit [] 23:48:51 error handling is preferable for me. It's always a mess when I have to wrap every possible call that could return an eof or whatever. 23:49:17 you can just use macros with conds in them 23:49:31 to hide it 23:49:36 synx: Even if the alternative is to wrap it in a condition check or handler parameterization? 23:50:06 you can use a couple of macros to make them interchangeable 23:50:29 Fare [n=Fare@c-98-216-111-110.hsd1.ma.comcast.net] has joined #scheme 23:52:30 how do I specify in a .ss file that it's using the beginner language? 23:53:02 #lang scheme/beginner maybe? 23:53:59 -!- siloxid [n=user@rrcs-74-62-20-253.west.biz.rr.com] has quit [Remote closed the connection] 23:54:06 what is a beginner language? 23:55:26 arcfide: That's the alternative I usually prefer. I/O has implicit side effects, so I can't reliably tell which function call is going to result in the IO failure. End up replacing every (read) with (let ((value (read port))) (when (eof-object? value) (raise "Couldn't read")) value). 23:55:59 That and there is more than one way for IO to fail. It just makes sense to catch that as an exception. 23:56:00 geckosenator: basic :) 23:57:09 -!- aack [n=user@s559195f7.adsl.wanadoo.nl] has quit [Remote closed the connection] 23:58:15 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)]