00:02:37 reprore__ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has joined #scheme 00:03:59 -!- reprore__ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has quit [Connection reset by peer] 00:04:08 -!- daedra [n=simon@unaffiliated/daedra] has quit ["Lost terminal"] 00:04:26 reprore__ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has joined #scheme 00:05:16 -!- reprore [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has quit [Connection reset by peer] 00:08:48 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 00:15:09 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 00:18:46 annodomini [n=lambda@pool-141-154-245-43.bos.east.verizon.net] has joined #scheme 00:23:31 -!- sanguinev [n=sanguine@116.197.145.49] has quit [Read error: 113 (No route to host)] 00:27:46 -!- blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has quit [] 00:28:22 alexey23 [n=alexey23@93.180.19.135] has joined #scheme 00:31:24 -!- elias` [n=me@unaffiliated/elias/x-342423] has quit [Read error: 145 (Connection timed out)] 00:33:23 Hi! How do I use UTF8? I have a file foo.scm encoded in UTF8 and I need to load some strings from it. It contains (define foo "Some weird Unicode stuff") and (load "foo.scm") fails in my Scheme implementation --- I can't see the correct string by typing foo. 00:34:28 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 00:36:41 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 00:46:22 -!- alexey23 [n=alexey23@93.180.19.135] has quit ["Leaving"] 00:51:45 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 00:53:22 Riastradh: I was hoping that someone will bring the initialization issue -- it sharpens my point. Initialization that needs to be done (eg, pop-up the emacs window) still needs to be done with a dump (and tricker to get right: eg, you shouldn't dump *after* popping up the window); initialization that builds values like (defconst foo (cons 1 2)) should be constant-folded by the compiler; and initialization that the u 00:53:22 ser builds, like (defvar foo nil) (setq foo (cons 1 2)) points at bad code and/or bad language. 01:02:29 _JFT_ [n=_JFT_@modemcable183.11-202-24.mc.videotron.ca] has joined #scheme 01:04:31 -!- _JFT_ [n=_JFT_@modemcable183.11-202-24.mc.videotron.ca] has quit [Client Quit] 01:11:56 johnnowak [n=irchon@ool-45747314.dyn.optonline.net] has joined #scheme 01:12:22 -!- johnnowak [n=irchon@ool-45747314.dyn.optonline.net] has quit [Remote closed the connection] 01:18:01 -!- underspecified_ [n=eric@softbank220043052007.bbtec.net] has quit [] 01:19:38 -!- sepult [n=sepult@xdsl-87-78-30-105.netcologne.de] has quit [Read error: 60 (Operation timed out)] 01:24:44 reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 01:29:26 raikov [i=3c207f2b@gateway/web/ajax/mibbit.com/x-912f42d49a20e02e] has joined #scheme 01:35:26 -!- mejja [n=user@c-a3b3e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 01:40:51 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 01:47:28 -!- reprore__ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has quit [Read error: 110 (Connection timed out)] 01:52:21 reprore__ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has joined #scheme 01:52:32 bombshelter13_ [n=bombshel@209-161-237-248.dsl.look.ca] has joined #scheme 01:53:55 -!- Axioplase_ [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has quit ["brb"] 01:54:02 -!- bombshelter13_ [n=bombshel@209-161-237-248.dsl.look.ca] has quit [Client Quit] 01:54:14 bombshelter13_ [n=bombshel@209-161-237-248.dsl.look.ca] has joined #scheme 01:55:47 repro____ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 01:57:05 -!- reprore_ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 01:57:08 Axioplase [n=Axioplas@fortigate.kb.ecei.tohoku.ac.jp] has joined #scheme 02:03:10 -!- nothingHappens [n=nothingh@173-25-176-111.client.mchsi.com] has quit ["Ex-Chat"] 02:04:22 -!- reprore__ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has quit [Read error: 60 (Operation timed out)] 02:14:30 reprore_ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has joined #scheme 02:19:26 -!- xwl_ [n=user@147.243.236.60] has left #scheme 02:19:49 bombshelter13__ [n=bombshel@209-161-237-128.dsl.look.ca] has joined #scheme 02:20:00 xwl_ [n=user@147.243.236.60] has joined #scheme 02:29:14 subversus [i=elliot@loveturtle.net] has joined #scheme 02:31:09 repror___ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 02:31:32 araujo [n=araujo@gentoo/developer/araujo] has joined #scheme 02:31:49 -!- repro____ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 02:34:34 -!- bombshelter13_ [n=bombshel@209-161-237-248.dsl.look.ca] has quit [Read error: 110 (Connection timed out)] 02:48:40 -!- reprore_ [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has quit [Read error: 110 (Connection timed out)] 02:51:02 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 02:52:20 tjafk2 [n=timj@e176193224.adsl.alicedsl.de] has joined #scheme 02:52:39 gottesmm [n=gottesmm@c121h014.wless.reed.edu] has joined #scheme 02:55:07 -!- gottesmm [n=gottesmm@c121h014.wless.reed.edu] has quit [Client Quit] 03:08:26 -!- tjafk1 [n=timj@e176212066.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:18:17 -!- luz [n=davids@189.122.121.232] has quit ["Client exiting"] 03:19:51 -!- dmoerner [n=dmr@ppp-71-139-37-78.dsl.snfc21.pacbell.net] has quit [Read error: 54 (Connection reset by peer)] 03:25:57 -!- foof [n=user@dn157-046.naist.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 03:33:06 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 03:36:50 dmoerner [n=dmr@ppp-71-139-48-246.dsl.snfc21.pacbell.net] has joined #scheme 03:38:24 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has left #scheme 03:41:46 -!- ssttss [i=stepnem@173-19-7-99.client.mchsi.com] has quit [Remote closed the connection] 03:42:18 ssttss [n=sissy@173-19-7-99.client.mchsi.com] has joined #scheme 03:45:40 reprore [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has joined #scheme 03:50:36 repr_____ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 03:50:39 -!- repror___ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 04:04:00 -!- jedc [n=jed1@c-98-232-225-102.hsd1.or.comcast.net] has left #scheme 04:08:04 Does anyone know how in the plt GUI to get text to pop up when you hover over a widget? 04:09:41 -!- reprore [n=reprore@i121-114-159-208.s04.a014.ap.plala.or.jp] has quit [Read error: 110 (Connection timed out)] 04:12:07 -!- arcfide [n=arcfide@adsl-99-14-211-128.dsl.bltnin.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 04:21:35 foof [n=user@dn157-046.naist.jp] has joined #scheme 04:27:02 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:38:31 -!- halfcore [i=support@ip136-63-210-87.adsl2.static.versatel.nl] has quit [Read error: 104 (Connection reset by peer)] 04:40:59 -!- meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has quit [Read error: 104 (Connection reset by peer)] 04:41:24 halfcore [i=support@ip136-63-210-87.adsl2.static.versatel.nl] has joined #scheme 04:42:10 -!- newerspeak [n=newerspe@cpe-098-026-093-235.nc.res.rr.com] has quit [] 04:52:56 xwl_ [n=user@147.243.236.60] has joined #scheme 05:05:58 FareWell [n=Fare@c-98-216-111-110.hsd1.ma.comcast.net] has joined #scheme 05:07:45 -!- pumpkin [n=pumpkin@dhcp-210-194.cs.dartmouth.edu] has quit ["Leaving..."] 05:11:12 ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has joined #scheme 05:17:32 pumpkin [n=pumpkin@Aeropuerto.Kiewit.Dartmouth.EDU] has joined #scheme 05:17:39 -!- bombshelter13__ [n=bombshel@209-161-237-128.dsl.look.ca] has quit ["If only your veins were filled with oil, the world would rush to your rescue!"] 05:17:42 newerspeak [n=newerspe@cpe-098-026-093-235.nc.res.rr.com] has joined #scheme 05:22:59 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 05:25:40 -!- ASau [n=user@193.138.70.52] has quit ["Off"] 05:27:27 ykphuah [i=dd85268a@gateway/web/ajax/mibbit.com/x-add956c8851c41ee] has joined #scheme 05:28:46 -!- FareWell [n=Fare@c-98-216-111-110.hsd1.ma.comcast.net] has quit ["Leaving"] 05:32:07 -!- ASau` [n=user@193.138.70.52] has quit ["off"] 05:34:50 -!- dmoerner [n=dmr@ppp-71-139-48-246.dsl.snfc21.pacbell.net] has quit ["Leaving"] 05:43:27 -!- repr_____ [n=reprore@ntkngw261071.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Read error: 113 (No route to host)] 05:50:42 arcfide [n=arcfide@adsl-99-137-203-119.dsl.bltnin.sbcglobal.net] has joined #scheme 05:51:39 man... they have plenty ways to get XML to an xexpr, but no advice as to how to filter useful stuff out of xexprs 05:52:05 I mean a simple "always search through the cdr since the car is the name of the element" would be nice. 05:52:36 cddr actually, the cadr is the not-an-alist attribute list. 05:55:22 You want a little utility, since the attrs may or may not be present. 06:01:33 An element with no attrs will have () as the attr list... 06:01:41 OKAY THAT'S THE OTHER THING 06:01:50 that xexprs don't even have a standard format. 06:02:52 But even assuming the format that plt's xml library spits out, I end up with things like... 06:03:08 (let ((link (cadr (findf ( (pair) (eq? (car pair) 'href)) (cadr (findf entry ( (item) (and (list? item) (eq? (car item) 'link))))))))) ...) 06:03:53 They're just a mess to try and search through. Nothing like foof's parser that's for sure. 06:11:27 synx: Lookup `xexpr?', `validate-xexpr', `correct-xexpr?', and finally `match'. 06:12:38 oh heh... forgot about match 06:12:53 -!- ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 06:12:56 probably would be a lot cleaner looking for those kinds of nested searches. 06:14:49 synx: also, sxpath: 06:14:56 synx: (define (node-children node) ((sxpath '((*not* @))) node)) 06:15:16 synx: (define (node-attributes node) ((sxpath '(@)) node)) 06:15:30 Never heard of sxpath 06:15:38 Sounds like xpath though. 06:15:43 http://www196.pair.com/lisovsky/query/sxpath/ 06:15:46 it is 06:15:53 but schemely 06:16:04 quite handy, actually 06:16:29 hotblack23 [n=jh@p5B057B3F.dip.t-dialin.net] has joined #scheme 06:16:33 I tend to be wary of mixing different languages together in the same module. 06:16:55 different languages? it's been schemified, man; hence the s- in sxpath 06:17:03 -!- ykphuah [i=dd85268a@gateway/web/ajax/mibbit.com/x-add956c8851c41ee] has left #scheme 06:17:06 much like the s- in sxml 06:17:22 It has been turned into s-expressions, but I hardly think it implements the r5rs. 06:17:26 do you see anything but scheme in my definitions above? 06:17:31 It does look nifty admittedly. 06:17:50 "implements the r5rs"? 06:17:52 scheme is more than just putting everything in parentheses. 06:18:21 I'm even wary of using quasiquote so don't mind me. 06:18:33 sxpath doesn't implement scheme; it translates xpath into sexprs for easy access from scheme 06:18:45 who said anything about implementing r5rs? we're talking about a library, here 06:20:11 It's a language based on s-expressions, but for instance in 'scheme' the first member of a list is a procedure to which the other members are applied. 06:20:38 not necessarily 06:20:43 incubot: '(1 2 3) 06:20:43 (1 2 3) 06:20:48 lists are also data structures! 06:21:06 Yes quote is a special syntax though. 06:21:32 what does this have to do with sxpath? 06:21:33 syntaxes, such as let lambda and define don't follow along that general rule I notice... 06:21:47 (sxpath '(@)) creates a function that selects attributes 06:21:48 But they're syntaxes, not a special formatted s-expression. 06:22:01 ((sxpath '(@)) node) applies it to the given node 06:22:14 I'm really just making a mountain out of a molehill. Don't mind me. 06:23:05 i can deal with molehills; but you're talking about implementing r5rs in sxpath, which i find totally surreal ;) 06:23:22 in a parallel universe sense 06:24:25 Sometimes it's hard to say when something is a mix of two languages, or a third superset language of the two. 06:27:57 Hehe sorry 06:28:34 Mostly my biggest issue is mixing HTML and PHP, when it comes to multiple languages in one file. 06:28:39 templating bleh... 06:29:11 what about php that gnerates javascript? 06:29:41 At least MVC models somewhat isolate that stuff into the V, but it's still just hard to prove such a template isn't nonsensical in one language or another. 06:30:06 ASau [n=user@host126-231-msk.microtest.ru] has joined #scheme 06:31:01 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 06:31:29 dmoerner [n=dmr@ppp-71-139-48-246.dsl.snfc21.pacbell.net] has joined #scheme 06:31:38 amoe [n=amoe@cpc1-brig3-0-0-cust512.brig.cable.ntl.com] has joined #scheme 06:32:24 hard for even a human to parse... or whatever it is I happen to be 06:34:08 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 06:35:39 [bjoern] [n=bjoern@dslb-094-222-139-002.pools.arcor-ip.net] has joined #scheme 06:36:55 <[bjoern]> In MzScheme "((curry cons) 1)" works as intended, in DrScheme it says the identifier curry is undefined. I think I tried all available languages. Is there a simple way to make it work in DrScheme? 06:41:17 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 06:41:40 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 06:42:09 [bjoern]: Use only the module language, and have a `#lang scheme' as the first line. (It will do so automatically.) 06:43:19 xwl_ [n=user@147.243.236.60] has joined #scheme 06:56:08 -!- hotblack23 [n=jh@p5B057B3F.dip.t-dialin.net] has quit ["Leaving."] 06:58:08 geckosen1tor [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has joined #scheme 07:01:08 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 07:03:40 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 07:04:05 jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has joined #scheme 07:05:12 hydo_ [n=hydo@98.232.32.50] has joined #scheme 07:08:46 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 07:08:55 athos [n=philipp@92.250.250.68] has joined #scheme 07:10:53 <[bjoern]> Thanks 07:12:54 -!- geckosenator [n=sean@71.237.94.78] has quit [Read error: 110 (Connection timed out)] 07:21:52 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 07:35:26 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 07:37:45 > If v is forced again before the original call to force returns, then the exn:fail exception is raised. 07:38:57 -!- [bjoern] [n=bjoern@dslb-094-222-139-002.pools.arcor-ip.net] has left #scheme 07:45:09 jedc [n=jed1@c-98-232-225-102.hsd1.or.comcast.net] has joined #scheme 07:45:12 -!- synthase [n=synthase@adsl-0-186-216.mob.bellsouth.net] has quit [Read error: 60 (Operation timed out)] 07:51:14 neilv: Yes? 07:51:35 eli: why are my ffi finalizers never called? 07:53:11 maybe the objects just aren't getting gc'd even though they're eligible for gc? 07:54:10 -!- hydo_ [n=hydo@98.232.32.50] has quit [] 07:54:13 npe [n=npe@195.207.5.2] has joined #scheme 07:54:47 neilv: I have no way to know that, but if they're GCed, they should be called. 07:55:10 (The finalizer thing is a simple piece of code that you can use for anything, not just foreign values.) 07:55:59 MrFahrenheit [n=RageOfTh@92.36.186.31] has joined #scheme 07:56:15 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 08:01:17 ejs [n=eugen@nat.ironport.com] has joined #scheme 08:04:08 Mr_Awesome [n=eric@pool-72-69-246-23.chi01.dsl-w.verizon.net] has joined #scheme 08:10:01 -!- 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:15:38 rmrfchik [n=paul@relay2.jet.msk.su] has joined #scheme 08:16:11 hmm, I wonder, why in typed scheme function has type (X -> Y) not (-> X Y)? 08:19:07 -!- |jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 08:22:22 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 104 (Connection reset by peer)] 08:23:12 ah, there we go. i just had to manually invoke gc 08:25:40 -!- npe [n=npe@195.207.5.2] has quit [Remote closed the connection] 08:28:38 npe [n=npe@195.207.5.2] has joined #scheme 08:28:50 alaricsp [n=alaricsp@88-202-206-145.rdns.as8401.net] has joined #scheme 08:28:56 -!- MrFahrenheit [n=RageOfTh@92.36.186.31] has quit [Read error: 110 (Connection timed out)] 08:30:30 elias` [n=me@resnet-pat-254.ucs.ed.ac.uk] has joined #scheme 08:32:54 neilv: to see it, I hope -- it should work on all GCs. 08:34:55 now i fixed a bug and the finalizer is no longer being called when i do (collect-garbage) 08:36:28 jeremiah [n=jeremiah@31.Red-213-98-123.staticIP.rima-tde.net] has joined #scheme 08:37:36 you might need to call it twice, if there are weak pointers involved. 08:38:18 *eli* retires for the night... 08:38:42 i called it a dozen times. it only started doing the finalizers again after i restarted drscheme 08:39:53 interesting. it only runs the finalizers the first time i run the program in drscheme. if i hit the Run button and do a second run, the finalizers don't get called, no matter how many times i invoke gc 08:40:29 -!- arcfide [n=arcfide@adsl-99-137-203-119.dsl.bltnin.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 08:40:57 -!- geckosen1tor [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has quit [Read error: 110 (Connection timed out)] 08:51:10 Nshag [i=user@Mix-Orleans-106-2-60.w193-248.abo.wanadoo.fr] has joined #scheme 08:58:33 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 08:59:30 -!- Axioplase is now known as Axioplase_ 09:15:06 -!- xwl_ [n=user@147.243.236.60] has quit [Remote closed the connection] 09:15:23 ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has joined #scheme 09:17:24 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 09:21:44 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 09:22:06 -!- newerspeak [n=newerspe@cpe-098-026-093-235.nc.res.rr.com] has quit [] 09:29:19 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:31:10 -!- ken [n=ken-p@84.92.70.37] has quit [Read error: 110 (Connection timed out)] 09:32:41 -!- borism_ [n=boris@195-50-197-143-dsl.krw.estpak.ee] has quit [Read error: 145 (Connection timed out)] 09:34:46 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 09:34:59 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:35:05 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 09:35:24 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:35:50 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has left #scheme 09:36:27 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 09:50:02 thehcdreamer_ [n=thehcdre@81-174-51-17.dynamic.ngi.it] has joined #scheme 09:51:31 thehcdreamer__ [n=thehcdre@88-149-231-6.dynamic.ngi.it] has joined #scheme 09:54:02 thehcdreamer___ [n=thehcdre@81-174-50-10.dynamic.ngi.it] has joined #scheme 09:54:12 -!- thehcdreamer___ [n=thehcdre@81-174-50-10.dynamic.ngi.it] has quit [Remote closed the connection] 09:55:31 -!- rmrfchik [n=paul@relay2.jet.msk.su] has quit ["Client exiting"] 09:57:36 -!- thehcdreamer__ [n=thehcdre@88-149-231-6.dynamic.ngi.it] has quit [Read error: 60 (Operation timed out)] 10:04:36 HG` [n=wells@xdslgl013.osnanet.de] has joined #scheme 10:07:15 -!- thehcdreamer_ [n=thehcdre@81-174-51-17.dynamic.ngi.it] has quit [Read error: 113 (No route to host)] 10:16:59 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 10:17:14 rmrfchik [n=paul@relay2.jet.msk.su] has joined #scheme 10:18:29 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 60 (Operation timed out)] 10:20:00 ejs [n=eugen@nat.ironport.com] has joined #scheme 10:29:03 dzhus [n=sphinx@95-24-172-186.broadband.corbina.ru] has joined #scheme 10:29:52 -!- raikov [i=3c207f2b@gateway/web/ajax/mibbit.com/x-912f42d49a20e02e] has quit [Remote closed the connection] 10:32:52 HG`` [n=wells@89.166.174.24] has joined #scheme 10:41:24 -!- HG` [n=wells@xdslgl013.osnanet.de] has quit [Read error: 110 (Connection timed out)] 10:48:44 Prestoco [n=user@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 11:14:12 -!- mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has quit ["leaving"] 11:15:46 -!- jmccrack__ [n=jmccrack@student312-1.psc.edu] has quit ["Leaving"] 11:21:21 -!- incubot [i=incubot@klutometis.wikitex.org] has quit [Remote closed the connection] 11:22:19 mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has joined #scheme 11:26:19 synthase [n=synthase@adsl-0-186-216.mob.bellsouth.net] has joined #scheme 11:26:25 incubot [i=incubot@klutometis.wikitex.org] has joined #scheme 11:39:14 incubot: welcome back. 11:39:17 No...that would be tricky. But I'd welcome it, just like WAKE? in my text proposal! 11:39:44 *sladegen* goes back to sleep. 11:39:51 Modius_ [n=Modius@adsl-70-240-12-151.dsl.austtx.swbell.net] has joined #scheme 11:45:59 -!- Modius__ [n=Modius@adsl-70-240-12-151.dsl.austtx.swbell.net] has quit [Read error: 60 (Operation timed out)] 11:46:54 cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has joined #scheme 11:47:23 Modius__ [n=Modius@70.240.12.151] has joined #scheme 11:47:28 Tankado [n=Woodruff@bzq-84-110-171-172.red.bezeqint.net] has joined #scheme 11:48:10 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 11:50:24 -!- rstandy [n=rastandy@net-93-144-64-40.t2.dsl.vodafone.it] has quit [Read error: 110 (Connection timed out)] 11:52:52 blackened` [n=blackene@ip-89-102-208-138.karneval.cz] has joined #scheme 12:01:51 -!- alaricsp [n=alaricsp@88-202-206-145.rdns.as8401.net] has quit [Read error: 104 (Connection reset by peer)] 12:02:43 bombshelter13_ [n=bombshel@209-161-230-44.dsl.look.ca] has joined #scheme 12:02:54 -!- bombshelter13_ [n=bombshel@209-161-230-44.dsl.look.ca] has quit [Remote closed the connection] 12:04:21 -!- Modius_ [n=Modius@adsl-70-240-12-151.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 12:08:19 -!- Tankado [n=Woodruff@bzq-84-110-171-172.red.bezeqint.net] has quit [] 12:08:30 alaricsp [n=alaricsp@88-202-206-145.rdns.as8401.net] has joined #scheme 12:11:03 Modius [n=Modius@69.150.58.132] has joined #scheme 12:16:12 attila_lendvai [n=ati@adsl-89-134-2-120.monradsl.monornet.hu] has joined #scheme 12:19:15 -!- mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has quit ["leaving"] 12:21:25 -!- Modius__ [n=Modius@70.240.12.151] has quit [Read error: 110 (Connection timed out)] 12:21:46 mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has joined #scheme 12:29:35 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 12:32:13 newerspeak [n=newerspe@cpe-098-026-093-235.nc.res.rr.com] has joined #scheme 12:32:38 Edico [n=Edico@unaffiliated/edico] has joined #scheme 12:34:33 sjamaan: Felix replied that the announcement of tinyclos' finishing was premature. :-) 12:46:34 eli, there are legitimate reasons for initialization code, such as adding methods to generic procedures, or creating and initializing tables used by a module (in a format defined by another module not available until it is loaded, so that it is not something trivially constant-foldable by a compiler). 12:51:01 m811: alright :) 12:51:48 -!- cracki [n=cracki@sglty.kawo2.RWTH-Aachen.DE] has quit ["The funniest things in my life are truth and absurdity."] 12:58:47 annodomini [n=lambda@130.189.179.215] has joined #scheme 12:59:11 The Intermediate Student Language with Lambda specification (http://docs.plt-scheme.org/htdp-langs/intermediate-lam.html) claims to contain the procedure "explode" However, when this procedure is entered into the REPL of DrScheme in ISLw/L the REPL claims "reference to an identifier before its definition: explode". Does anyone know why this is? 13:02:39 npe_ [n=npe@195.207.5.2] has joined #scheme 13:03:05 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 13:04:28 -!- npe_ [n=npe@195.207.5.2] has quit [Client Quit] 13:08:46 mejja [n=user@c-a3b3e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 13:10:11 benny99 [n=benny@p5486EB15.dip.t-dialin.net] has joined #scheme 13:14:44 Mr-Cat [n=Miranda@hermes.lanit.ru] has joined #scheme 13:18:24 -!- npe [n=npe@195.207.5.2] has quit [Read error: 113 (No route to host)] 13:18:48 sepult [n=sepult@xdsl-87-78-26-27.netcologne.de] has joined #scheme 13:21:42 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 13:25:41 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 13:27:56 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 13:29:22 Modius_ [n=Modius@69.150.58.132] has joined #scheme 13:35:56 bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has joined #scheme 13:36:46 -!- Modius_ [n=Modius@69.150.58.132] has quit [Read error: 60 (Operation timed out)] 13:39:05 Modius_ [n=Modius@adsl-70-240-12-212.dsl.austtx.swbell.net] has joined #scheme 13:43:37 Modius__ [n=Modius@99.179.98.206] has joined #scheme 13:43:52 -!- Modius_ [n=Modius@adsl-70-240-12-212.dsl.austtx.swbell.net] has quit [Read error: 104 (Connection reset by peer)] 13:44:13 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit ["Leaving"] 13:46:40 luz [n=davids@189.122.121.232] has joined #scheme 13:52:16 -!- Modius [n=Modius@69.150.58.132] has quit [Read error: 110 (Connection timed out)] 13:53:56 -!- projections [n=projecti@88.235.101.2] has left #scheme 13:55:08 cracki [n=cracki@134.130.183.101] has joined #scheme 13:56:07 -!- Deformati [n=joe@c-71-238-45-45.hsd1.mi.comcast.net] has quit [Remote closed the connection] 13:57:19 X-Scale2 [i=email@89.180.181.250] has joined #scheme 13:57:20 mrscheme [n=user@67.110.140.180.ptr.us.xo.net] has joined #scheme 13:57:46 -!- sepult [n=sepult@xdsl-87-78-26-27.netcologne.de] has quit [Read error: 104 (Connection reset by peer)] 14:03:34 sepult [n=sepult@xdsl-87-78-130-205.netcologne.de] has joined #scheme 14:04:05 -!- attila_lendvai [n=ati@adsl-89-134-2-120.monradsl.monornet.hu] has quit ["..."] 14:12:23 Modius_ [n=Modius@99.179.98.206] has joined #scheme 14:13:25 higepon50 [n=taro@FLH1Aip247.tky.mesh.ad.jp] has joined #scheme 14:14:40 -!- Modius__ [n=Modius@99.179.98.206] has quit [Read error: 60 (Operation timed out)] 14:15:17 -!- higepon50 [n=taro@FLH1Aip247.tky.mesh.ad.jp] has quit [Remote closed the connection] 14:16:23 higepon290 [n=taro@125.193.51.247] has joined #scheme 14:16:31 -!- X-Scale [i=email@89.180.201.248] has quit [Success] 14:29:11 -!- Mr-Cat [n=Miranda@hermes.lanit.ru] has quit [Read error: 104 (Connection reset by peer)] 14:30:20 ejs1 [n=eugen@77.222.151.102] has joined #scheme 14:33:57 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 104 (Connection reset by peer)] 14:41:29 npe [n=npe@195.207.5.2] has joined #scheme 14:49:21 saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 14:51:41 -!- saccade_ [n=saccade@65-78-24-47.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Client Quit] 14:51:50 -!- langmartin [n=user@exeuntcha.tva.gov] has quit [Read error: 104 (Connection reset by peer)] 14:52:01 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 14:52:19 jlongster [n=user@75.148.111.133] has joined #scheme 14:53:22 If any of you are apart of Chicken scheme, http://www.call-with-current-continuation.org/chicken4-low.png is a nice logo. :> 14:53:24 -!- Modius_ [n=Modius@99.179.98.206] has quit [Read error: 104 (Connection reset by peer)] 14:53:58 Modius_ [n=Modius@99.179.98.206] has joined #scheme 14:56:01 -!- amoe [n=amoe@cpc1-brig3-0-0-cust512.brig.cable.ntl.com] has quit [Read error: 110 (Connection timed out)] 15:01:55 Modius__ [n=Modius@99.179.98.206] has joined #scheme 15:04:22 -!- Modius_ [n=Modius@99.179.98.206] has quit [Read error: 60 (Operation timed out)] 15:08:59 -!- dzhus [n=sphinx@95-24-172-186.broadband.corbina.ru] has quit [Remote closed the connection] 15:12:22 -!- ASau [n=user@host126-231-msk.microtest.ru] has quit [Remote closed the connection] 15:15:01 -!- synthase [n=synthase@adsl-0-186-216.mob.bellsouth.net] has quit [Read error: 110 (Connection timed out)] 15:15:36 -!- X-Scale2 is now known as X-Scale 15:17:03 underspecified_ [n=eric@softbank220043052007.bbtec.net] has joined #scheme 15:18:35 -!- benny99 [n=benny@p5486EB15.dip.t-dialin.net] has quit ["Leaving"] 15:20:46 Modius [n=Modius@66.143.167.85] has joined #scheme 15:21:49 eno__ [n=eno@adsl-70-137-156-160.dsl.snfc21.sbcglobal.net] has joined #scheme 15:27:55 pitui [n=pitui@135.207.174.197] has joined #scheme 15:33:01 -!- Modius__ [n=Modius@99.179.98.206] has quit [Success] 15:33:37 -!- eno [n=eno@nslu2-linux/eno] has quit [Connection timed out] 15:34:33 saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has joined #scheme 15:56:37 -!- saccade_ [n=saccade@dhcp-18-188-74-28.dyn.mit.edu] has quit ["This computer has gone to sleep"] 16:02:51 incubot: pidgeon me chicken! 16:02:54 I think it would be Really Really Hard to make chicken run with OS-level threads. 16:03:22 incubot: But maybe you could make it fly! 16:03:25 you can probably make sarahbot use minion as an Y-combinator 16:03:32 incubot: it's a brush, not threads. 16:03:35 for debugging, a for errors in all threads signal an error, and r for a repl when an error occurs. 16:15:44 -!- mmc [n=mima@esprx01x.nokia.com] has quit ["Leaving."] 16:17:36 -!- jonrafkind [n=jon@c-98-202-86-149.hsd1.ut.comcast.net] has quit [Connection timed out] 16:19:29 athos [n=philipp@92.250.250.68] has joined #scheme 16:24:56 mngbd [n=user@vie-nas-ge-0-2.onenet.at] has joined #scheme 16:29:28 according to inotify, Firefox creates the file opens it, closes it, opens it, modifies it a bunch of times, then closes it. 16:29:45 mv in contrast creates it, opens it, modifies it, then closes it. 16:29:53 How to reconcile these two things? 16:30:20 besides patching Firefox lol 16:30:26 IE! 16:30:40 lynx!? 16:31:29 I haven't tested those. 16:31:40 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:32:07 But the only thing I can think is when a file is closed, set some kind of timer that only processes the file if it isn't opened again. 16:32:52 But canceling a timer is tricky, because it might fire while you are in the process of cancelling it... 16:33:44 *leppie* feels lucky 16:35:29 almost... 16:36:32 um... why lucky? 16:36:54 What are you trying to accomplish, synx? 16:37:12 im trying to swap out my old reader with a new one in my bootstrap 16:37:49 -!- ejs1 [n=eugen@77.222.151.102] has quit ["This computer has gone to sleep"] 16:38:08 Riastradh: I'm trying to import images I find on the Internets into my database. 16:39:11 pr0n! 16:40:23 if i was you synx, I would just use a proxy 16:40:51 -!- higepon290 [n=taro@125.193.51.247] has quit [Read error: 113 (No route to host)] 16:41:10 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Remote closed the connection] 16:41:48 -!- mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has quit ["leaving"] 16:42:30 it built! 16:42:52 it runs! 16:46:21 foof: https://synx.us.to/noart/comics/dosage/DMFA/pr0n.jpeg 16:47:38 leppie: That's what I used before, but some people here were whining on about blah blah just make a directory queue them up so i did. Really I've found proxies are terribly difficult to implement. 16:47:42 ESPECIALLY HTTP/1.1 proxies. 16:48:34 ken` [n=ken-p@84.92.70.37] has joined #scheme 16:50:26 Modius_ [n=Modius@adsl-66-143-167-85.dsl.austtx.swbell.net] has joined #scheme 16:52:25 I had an HTTP/1.1 proxy working pretty good... but then I noticed it was losing/corrupting pieces right in the middle of the file, when chunking was /NOT/ happening. 16:53:20 All it was, was a socket that only one thread read from, and piped to the client directly. Connection: close even. I kind of gave up at that point. 16:55:58 Modius__ [n=Modius@adsl-66-143-167-85.dsl.austtx.swbell.net] has joined #scheme 16:59:03 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 17:07:36 `Antonio` [n=kvirc@92.6.187.78] has joined #scheme 17:07:42 -!- Modius [n=Modius@66.143.167.85] has quit [Connection timed out] 17:13:40 -!- Modius_ [n=Modius@adsl-66-143-167-85.dsl.austtx.swbell.net] has quit [Read error: 110 (Connection timed out)] 17:14:58 -!- Modius__ [n=Modius@adsl-66-143-167-85.dsl.austtx.swbell.net] has quit [Read error: 60 (Operation timed out)] 17:18:52 korvin [n=korvin@host-105-145-66-217.spbmts.ru] has joined #scheme 17:19:33 projections [n=projecti@88.235.101.2] has joined #scheme 17:19:37 -!- mngbd [n=user@vie-nas-ge-0-2.onenet.at] has quit [Remote closed the connection] 17:21:48 AtnNn [n=welcome@modemcable087.62-56-74.mc.videotron.ca] has joined #scheme 17:23:35 acarrico1 [n=acarrico@pppoe-68-142-42-148.gmavt.net] has joined #scheme 17:24:04 re all. I'm trying to compile scheme source to binary-executable file, it compiles without error messages, but when I runs binary file, I gets an "Error: call of non-procedure: #f". Same result when compiling example from chicken documentation. Chicken v4.4.0, gcc v4.3.1. How to solve this problem? 17:24:52 Well, I'd recommend tracking back to the source of the error, fixing the error, recompiling, and testing it again. 17:27:31 melgray [n=melgray@70.99.250.82] has joined #scheme 17:28:05 acarrico2 [n=acarrico@pppoe-68-142-42-148.gmavt.net] has joined #scheme 17:28:38 gnomon . can you say me how to do it? 17:29:15 *could 17:29:57 Not without knowing more about your program, I couldn't, no. 17:30:16 khm 17:31:20 korvin: one of your variables in your program is set to #f, when it should be set to a procedure. 17:31:39 synx, not necessarily. It could be a literal, not a variable. 17:31:40 korvin, you just have a bug, and they arent checked at compile time because that function might not get used 17:33:17 Yeah gnomon it could be korvin is trying to start a list with #f but forgetting to quote it. (let ((a (#f 3 4 5))) ...) or something 17:33:24 gnomon . example from documentation: bar.scm: (declare (unit bar)) (define (fac n) (if (zero? n) 1 (* n (fac (- n 1))))) ; foo.scm: (declare (uses bar)) (write (fac 10)) (newline) ; compiling: csc -c bar.scm ; csc -c foo.scm ; csc bar.o foo.o -o foo 17:34:04 gnomon . but this simple example doesn't work to =/ 17:34:54 synx . interpreter evals code without errors =/ 17:35:14 wat 17:35:18 yeah that is pretty strange then korvin 17:36:05 A trivial, easily testable case is fouling up an old and heavily tested native code compiler? 17:36:46 There's a bug somewhere, either in the compiler or in the seatmeat that is prodding bytes into it. 17:36:54 http://synthcode.com/blog/ <- I thought that would be a fun post, but the results were disappointing :( 17:37:20 No offense, korvin, but I strongly suggest that you read over your code again to make sure that all your parentheses are in the places that you think they are. 17:37:41 Alternatively, if you'd like to put you code up at http://paste.lisp.org for the rest of us to inspect, we can help you with that task. 17:39:16 ok, I'l paste it. gnomon, but why documentation example may not work? 17:39:49 Did you cut and paste it from the documentation, or did you retype it? 17:40:58 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 17:41:08 mrscheme` [n=user@67.110.140.180.ptr.us.xo.net] has joined #scheme 17:42:10 -!- acarrico [n=acarrico@pppoe-68-142-42-148.gmavt.net] has quit [Read error: 110 (Connection timed out)] 17:43:01 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 17:44:24 novelli [n=novelli@151.60.91.209] has joined #scheme 17:44:35 -!- acarrico1 [n=acarrico@pppoe-68-142-42-148.gmavt.net] has quit [Read error: 110 (Connection timed out)] 17:46:43 -!- mrscheme [n=user@67.110.140.180.ptr.us.xo.net] has quit [Read error: 60 (Operation timed out)] 17:47:19 gnomon . retype 17:47:30 -!- projections [n=projecti@88.235.101.2] has quit [Read error: 104 (Connection reset by peer)] 17:47:46 projections [n=projecti@88.235.101.2] has joined #scheme 17:47:47 korvin, executing your exact procedure above yielded an executable which functions as expected. 17:48:37 Ah, so you retyped the code. This strengthens my belief that there is a transcription error in the code you retyped. Could you please pastebin your exact file so we can help each other get to the bottom of this? 17:48:48 JoelMcCracken [n=jmccrack@student312-1.psc.edu] has joined #scheme 17:49:25 "PLT Scheme supports contracts only at module boundries." 17:49:38 is there any way to achieve similar functionality within a module? 17:49:48 gnomon . yep, one moment 17:50:03 (for the record, I duplicated my test with Chicken 3.2.7 and GCC 4.3.2 under Debian Lenny on an x86-32 machine) 17:50:51 -!- CaptainMorgan [n=CaptainM@75.68.42.94] has quit [Read error: 110 (Connection timed out)] 17:55:25 strange, but I can't see captcha on paste.lisp.org 17:55:45 gnomon . http://openpaste.org/14455/ -- my code 17:56:05 gnomon . quotation from doc: http://openpaste.org/14456/ 18:08:45 arcfide [n=arcfide@adsl-99-137-202-105.dsl.bltnin.sbcglobal.net] has joined #scheme 18:09:27 gottesmm [n=gottesmm@c023h065.dorm.reed.edu] has joined #scheme 18:11:14 -!- mrscheme` [n=user@67.110.140.180.ptr.us.xo.net] has quit [Read error: 110 (Connection timed out)] 18:12:10 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 18:15:23 -!- ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 18:20:36 barney [n=bernhard@p549A014A.dip0.t-ipconnect.de] has joined #scheme 18:29:39 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 18:38:04 -!- pants1 [n=hkarau@76-10-154-69.dsl.teksavvy.com] has quit [Read error: 113 (No route to host)] 18:39:11 pants1 [n=hkarau@69-196-155-218.dsl.teksavvy.com] has joined #scheme 18:39:26 -!- npe [n=npe@195.207.5.2] has quit [No route to host] 18:39:36 korvin, is the assignment specification online anywhere? 18:40:59 pants2 [n=hkarau@76-10-156-217.dsl.teksavvy.com] has joined #scheme 18:46:15 gnomon . I don't know =/ 18:46:31 or not quite understand you =) 18:47:08 Good afternoon, y'all. 18:47:35 wingo [n=wingo@169.Red-88-17-129.dynamicIP.rima-tde.net] has joined #scheme 18:48:19 -!- HG`` [n=wells@89.166.174.24] has quit [Client Quit] 18:50:20 sjamaan: I already made that same fix locally :) 18:56:12 -!- pants1 [n=hkarau@69-196-155-218.dsl.teksavvy.com] has quit [Read error: 113 (No route to host)] 19:01:32 wingo_ [n=wingo@123.Red-83-44-191.dynamicIP.rima-tde.net] has joined #scheme 19:02:17 -!- jedc [n=jed1@c-98-232-225-102.hsd1.or.comcast.net] has quit [Read error: 110 (Connection timed out)] 19:03:06 -!- gottesmm [n=gottesmm@c023h065.dorm.reed.edu] has quit ["Ex-Chat"] 19:04:34 -!- wingo [n=wingo@169.Red-88-17-129.dynamicIP.rima-tde.net] has quit [Nick collision from services.] 19:04:36 -!- wingo_ is now known as wingo 19:05:50 dysinger [n=tim@32.177.19.88] has joined #scheme 19:09:06 hey eli 19:09:16 i was thinking, regarding images 19:09:26 if you have a program made of 100 modules, or something like that 19:09:45 if the modules are separate fasls on disk, you end up seeking a lot to load and search for them, etc 19:09:58 The first time you do it, yes. 19:10:14 images -- or at least compiling a bunch of independent modules into one unit -- solve the back-and-forth-to-the-kernel problem 19:10:26 Riastradh: cold starts are important too :) 19:10:46 Modius [n=Modius@ppp-70-244-123-142.dsl.austtx.swbell.net] has joined #scheme 19:10:59 -!- novelli [n=novelli@151.60.91.209] has quit [] 19:11:24 You could call that one unit a "filesystem" and have a sort of "directory structure" by which the program accesses modules within it. 19:11:34 ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has joined #scheme 19:11:47 sure 19:12:13 many systems that have this slew-of-itty-bitty-files structure maintain some sort of cache 19:12:19 like gtk's icon cache 19:12:23 or fontconfig's cache 19:12:31 scheme systems could do the same 19:13:09 -!- underspecified [n=eric-n@leopard175.naist.jp] has quit [] 19:13:28 wrldpc [n=worldpea@pool-173-48-214-204.bstnma.fios.verizon.net] has joined #scheme 19:13:37 i read some quote recently claiming that all optimization boiled down to memoization 19:13:53 not sure if i believe it, but in this case it would seem to apply 19:14:23 foof: your blog seems to have mangled your code. res, with trailing 's at the end of the paragraph 19:14:43 -!- `Antonio` is now known as `Antonio-annoyed 19:15:30 where is foof's blog? 19:16:11 MrFahrenheit [n=RageOfTh@92.36.174.63] has joined #scheme 19:16:17 http://synthcode.com/blog/ 19:17:29 "read more"-- 19:17:34 i want to see all text at once :) 19:17:58 -!- m811 [n=user@106.250.35.213.dyn.estpak.ee] has quit [""If you put a million monkeys at a million keyboards, one of them will eventually write a Java program. The rest of them will] 19:19:47 hotblack23 [n=jh@p5B057B3F.dip.t-dialin.net] has joined #scheme 19:21:08 wow magic algorithms 19:21:32 -!- ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 19:22:13 http://synthcode.com/blog/2009/05/Unicode_String_Representations_-_Part_1 is interesting 19:22:13 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 19:22:25 ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has joined #scheme 19:22:45 -!- barney [n=bernhard@p549A014A.dip0.t-ipconnect.de] has quit [Read error: 104 (Connection reset by peer)] 19:23:29 -!- JoelMcCracken [n=jmccrack@student312-1.psc.edu] has quit ["Leaving"] 19:23:31 hm. it seems to me that the benchmark is the best possible case for UTF-8, and that something more non-trivial involving non-linear access to a character string would show the significant downsides of the UTF-8 representation 19:24:01 barney [n=bernhard@p549A014A.dip0.t-ipconnect.de] has joined #scheme 19:25:03 also, I'd like to see a benchmark of a Unicode string implementation which uses 24 bits for characters. It seems to me that the extra overhead in unaligned word access would be mitigated by the 25% less memory usage 19:26:09 most implementations for *characters* would allocate 24 bits for the char... and 8 for the tag ;) 19:26:12 but i see what you mean. 19:26:43 Yes, I mean packed in the array. 19:27:51 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:27:54 m811 [n=user@106.250.35.213.dyn.estpak.ee] has joined #scheme 19:29:25 rdd [n=user@c83-250-157-93.bredband.comhem.se] has joined #scheme 19:30:11 The other issue with UTF-8 is that replacing an individual character in a string is O(n) worst case as well. 19:30:41 I understand why it's useful as a transfer encoding, but for an in-memory representation it really sucks unless you can deal with strings as opaque byte arrays. 19:31:52 chandler, you're assuming that the string modification operation is O(n), which needn't be the case. 19:32:32 I'm not sure I understand what you're saying. 19:32:43 fishey [n=fisheyss@ool-4573344b.dyn.optonline.net] has joined #scheme 19:33:03 How do I replace a character with a 1-byte UTF-8 representation with a character with a 3-byte UTF-8 representation? 19:33:26 ASau [n=user@193.138.70.52] has joined #scheme 19:33:49 mmc [n=mima@cs142048.pp.htv.fi] has joined #scheme 19:33:50 chandler, again, you're assuming that a string is a C-style array of bytes, yes? One which, in order to be extended in the middle, must be copied forward from the insertion point? 19:34:04 Ropes and other tree-structured string representations sidestep that problem. 19:34:08 Unless you represent strings in a way that allows you to partially displace into an older string, but in the worse case your string will eventually be N fragments of 1 characters. 19:34:23 They each have their own O(n) black holes, no? 19:34:33 You could also hack something ugly together with simple skip tables, or a bare string with an associated edit list. 19:35:11 like gap buffers 19:35:29 No, they don't. If you're allocating buffer space, you already know the worst-case size for both a Unicode code point and for a UTF-8 glyph, and you can factor those constants into your data structure format. 19:35:37 -!- `Antonio-annoyed is now known as `Antonio-work` 19:36:03 Does that actually result in a space win over 32-bit characters? 19:36:33 If you're talking about replacing N characters in a string made up of N code points, and you specifically choose each codepoint so as to require a UTF-8 glyph (or whatever the name is) with a multibyte representation, sure, you could trigger some bad performance. 19:36:49 chandler, that depends on the text you're representing, doesn't it? 19:37:21 ejs [n=eugen@156-225-178-94.pool.ukrtel.net] has joined #scheme 19:38:56 If you're dealing with a UTF-8 representation of a bunch of ASCII text, then yes, it's a win. If you're dealing with a string that interleaves classical Chinese, Korean, Japanese, Arabic, Thai, Canadian Syllabics, cuneiform and others, then yes, you may well benefit by using raw 32-bit codepoints instead. 19:39:10 It's ye olde space/speed tradeoff. 19:39:11 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 19:39:21 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 19:39:42 Yeah. It also depends on what system you're using, too. The representation you use will probably be a lot different on a system with 8MB of RAM than one with 8GB :-) 19:40:26 wingo: That's a point too, but one that is easy to overcome. For example, try concatenating a few .elc files into a single one and load the result into Emacs. 19:40:28 it seems guile's strings will be either latin-1 or utf-32. 19:40:54 eli: emacs is too important to me to try that ;-) it works? 19:42:30 Yes. (And I don't get the "too important" reason -- start a new Emacs.) 19:42:53 chandler, of course, and that's actually a very interesting point. My portable audio player, for example - a Sansa Fuze - recently received a firmware update from SanDisk to add support for UTF-8 filenames and metadata. The update also included a font able to display that text. It uses a chipset with a very small amount of RAM - somewhere around 8MiB, I think. 19:43:10 It would be neat to know how the decided to tackle the problem! Mind you, they also don't ever need to deal with mutable strings. 19:43:44 -!- dysinger [n=tim@32.177.19.88] has quit [Connection timed out] 19:43:58 eli: indeed. 19:45:06 -!- m811 [n=user@106.250.35.213.dyn.estpak.ee] has quit [""If you put a million monkeys at a million keyboards, one of them will eventually write a Java program. The rest of them will] 19:46:38 -!- barney [n=bernhard@p549A014A.dip0.t-ipconnect.de] has quit [Remote closed the connection] 19:51:14 -!- ejs [n=eugen@156-225-178-94.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 19:53:03 -!- korvin [n=korvin@host-105-145-66-217.spbmts.ru] has quit ["(quit *servers* 'x_X)"] 19:54:26 -!- ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 19:55:02 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Read error: 104 (Connection reset by peer)] 19:56:45 pants1 [n=hkarau@69-196-130-232.dsl.teksavvy.com] has joined #scheme 19:57:28 ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has joined #scheme 19:58:12 -!- pants2 [n=hkarau@76-10-156-217.dsl.teksavvy.com] has quit [Read error: 60 (Operation timed out)] 19:58:16 npe [n=npe@91.180.54.252] has joined #scheme 20:00:07 -!- ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has quit [Client Quit] 20:01:12 -!- cky [n=cky@cpe-024-211-255-155.nc.res.rr.com] has quit [Read error: 110 (Connection timed out)] 20:01:37 m811 [n=user@106.250.35.213.dyn.estpak.ee] has joined #scheme 20:02:42 -!- mmc [n=mima@cs142048.pp.htv.fi] has quit ["Leaving."] 20:05:02 ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has joined #scheme 20:05:34 HG` [n=wells@89.166.181.129] has joined #scheme 20:10:44 mreggen [n=mreggen@cm-84.215.50.79.getinternet.no] has joined #scheme 20:17:46 cky [n=cky@cpe-024-211-255-155.nc.res.rr.com] has joined #scheme 20:18:01 -!- alaricsp [n=alaricsp@88-202-206-145.rdns.as8401.net] has quit [Read error: 104 (Connection reset by peer)] 20:18:09 alaricsp [n=alaricsp@88-202-206-145.rdns.as8401.net] has joined #scheme 20:21:29 -!- cky [n=cky@cpe-024-211-255-155.nc.res.rr.com] has quit [Client Quit] 20:23:45 ejs [n=eugen@156-225-178-94.pool.ukrtel.net] has joined #scheme 20:24:34 cky [n=cky@cpe-024-211-255-155.nc.res.rr.com] has joined #scheme 20:24:42 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 20:25:42 chandler, so what operations do you want to perform on immutable strings that require random access to code points by their numeric indices? 20:26:06 *leppie* gets dejavu 20:38:22 -!- pumpkin [n=pumpkin@Aeropuerto.Kiewit.Dartmouth.EDU] has quit [] 20:38:48 Riastradh: I would say that it depends on what is provided by the immutable strings. If displaced strings were supported (and the garbage collecter was smart enough to copy the displaced substring when the original string became mostly garbage), and some kind of "point" abstraction were supplied that allowed me to move forward and back by code points efficiently, it doesn't seem like O(n) random access would be an issue. 20:42:29 vorpal [n=rhunter@pdpc/supporter/student/vorpal] has joined #scheme 20:44:11 However, I'd still be strongly disinclined to choose that representation as a default in a programming language implementation. If random access to characters is O(1), it's possible to build O(1) abstractions for functions that e.g. move a point forward by a whole glyph in a string. 20:44:13 Say, the operations listed in . 20:44:33 Fancy that! 20:45:03 I think the best possible situation would be one where the programmer has the ability to choose what kind of string representation is desired. 20:45:54 chandler, why would the time needed to move by glyphs (or, more likely, default grapheme clusters) be any different whether code points are indexed by consecutive numbers or by opaque positions? 20:46:28 I don't think it is, if you have opaque positions. I wasn't clear enough. 20:46:30 (I assume that in both cases, moving by code point runs in constant time.) 20:46:37 OK. 20:48:46 holy crap 20:48:51 emacs lisp is crazy! 20:48:54 (defun bar () (foo 10 20)) 20:48:54 (defmacro foo (x y) `(* ,x ,y)) 20:48:54 (bar) ;; => 200 20:48:54 (defmacro foo (x y) `(/ ,x ,y)) 20:48:54 (bar) ;; => 0 20:48:57 -!- newerspeak [n=newerspe@cpe-098-026-093-235.nc.res.rr.com] has quit [] 20:49:04 Now compile that code instead. 20:49:07 a redefined macro affects functions!!! 20:49:27 wingo: isn't that as it *should* be ;) 20:49:58 ecraven: possibly 20:49:59 The macro behavior I understand. The (/ 10 20) -> 0 thing is plainly unforgivable. 20:50:02 but it is crazy 20:50:11 heh 20:51:13 chandler pasted "Common Lisp is crazy!!!" at http://paste.lisp.org/+1QEB 20:51:32 *Riastradh* blinks. 20:51:38 That's a funny-looking lisppaste URI! 20:52:11 It *is*. What's up with that? Does it work? 20:52:12 *gnomon* tests 20:52:18 Yes, it does work. 20:52:25 Goodness gracious! 20:52:26 Pretty much everyone I'm aware of except for PLT Scheme and Scheme48 are nuts in some way or another concerning this. 20:52:31 ...er, `is nuts'. 20:52:54 wow. 20:53:04 i didn't think sbcl had an interpreter 20:53:04 (Further apologies for the nonsensical anthropomorphificizationism of Lisp systems.) 20:53:10 heh 20:53:18 It's worse than that. Nuts aren't people, either. 20:53:19 Fortunately http://paste.lisp.org/display/80867 also works. 20:53:38 gnomon: Is there a reason why the new URLs are unfortunate? 20:54:07 Any particular reason for them, chandler? 20:54:11 chandler, they used to communicate information about the sequence position of the paste. Now, not so much, or at least that information is less immediately visible. 20:54:15 -!- HG` [n=wells@89.166.181.129] has quit [Client Quit] 20:54:30 gnomon: You can't decode base 36 in your head? 20:54:38 Is that what that is? 20:54:45 Yes, it is. 20:55:12 For heaven's sake, *why*? 20:55:34 shortening urls, probably 20:55:51 but i would like to punch my curmudgeon card too 20:55:56 goddamn changes 20:57:03 wingo, how do you compare the length of the string "+1QEB" with that of "80867"? 20:57:15 Sorry, I'm back. 20:57:25 gnomon: yes. erm, uh huh 20:57:27 Both IRC and *cough* Twitter are afflicted with unfortunate, arbitrary message length limits. 20:57:41 gnomon: Now compare /display/80867 to /+1QEB 20:57:59 Though I suppose it would be fairly easy to make /80867 work... 20:57:59 *Riastradh* coughs too. 20:58:26 Was Twittification of lisppaste in popular demand? 20:58:31 chandler, I will claim that IRC message length restrictions are fortunately less onerous than those imposed by Twitter. 20:58:36 Also, Get Off My Lawn(tm). 20:59:09 so how the hell is elisp compilation supposed to work if macros can be redefined at any time. 20:59:19 Riastradh: I saw a few people using it, and figured it would be handy. In any event, it's easy enough to change the IRC notification back to the traditional URL. 20:59:23 ah maybe that doesn't work with compilation 20:59:35 wingo, you get different semantics depending on whether you interpret or compile your code. 20:59:44 Just like you got in Maclisp thirty years ago. 21:01:03 Riastradh: yes, you seem to be right 21:01:17 surprising stuff 21:01:20 chandler pasted "are you curmudgeons happy now?" at http://paste.lisp.org/display/80868 21:01:25 That compilation wibblery is tragic, that is. 21:01:26 though i guess released versions of guile do that too :P 21:01:31 chandler, yay! 21:01:46 Riastradh: by the nuts part, are you referring to the fact that the REPL in most Scheme systems can result in different semantics than the compiled code, or are you saying that evaluating code like the above which redefines a macro in a Scheme REPL other than PLT or Scheme48's would result in a similar change? 21:02:04 So you see why eli calls Guile something like `completely broken', wingo. 21:02:12 arcfide, `REPL' is a red herring. 21:02:36 *gnomon* summons an ichtyologist 21:02:41 Er 21:02:44 *gnomon* checks the spelling, there 21:03:48 looking good 21:03:52 Riastradh: sure, though it smarts ;) 21:04:13 -!- araujo [n=araujo@gentoo/developer/araujo] has quit ["Leaving"] 21:04:30 ecraven, naw, I dropped an 'h'. So I summoned a cockney ichthyologist, then. 21:04:42 Riastradh: To what are you referring then? 21:05:14 -!- ejs [n=eugen@156-225-178-94.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 21:05:47 ah, good point, there's a theta there 21:07:12 wingo: Riastradh took my punchline... (wrt you being involved with guile and being puzzled with elisp's behavior.) 21:07:13 I am a bit embarassed by the chuckle you just induced, sir. 21:07:50 Hey, how do we get a freenode logbot in #awk? 21:07:56 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:07:56 arcfide, put it into a file and load it all together. 21:07:58 Or is that a third-party kind of thing? 21:08:03 I'm not sure there is such a thing as a "freenode logbot". 21:08:03 *Riastradh* vanishes. 21:08:06 eli: iirc, you could redefine functions in self that were inlined 21:08:14 and the compiler would recompile the affected functions 21:08:37 on the face of it, it sounds like "the best of both worlds" 21:08:48 chandler, which bot(s) log #scheme? 21:09:41 ccl-logbot, which is run by the Clozure CL folks and is kind of a stretch here 21:09:51 clog, which I really have no idea who runs 21:10:16 and I think there's one more, but I don't remember much about it other than that it was written in Scheme. 21:10:29 For the record, in this case, loading a top-level program in Chez Scheme from a file or entering all the forms into a single session such as the REPL manually doesn't result in different semantics, in this case. 21:11:46 clog is the bot that makes the logs at tunes.org 21:12:07 Yes, but I don't know who's responsible for it. 21:12:34 Neither do I. I do know that those logs keep ticking over like clockwork while all the other #scheme log to which it points keep disappearing. 21:12:45 wingo: That can't be the best of both worlds without a substantial analysis of what needs to recompile -- one that involves also results of functions that were redefined. 21:13:01 chandler: Fare, I think. 21:13:33 I know Fare is involved with tunes.org, but I didn't think he ran the bot. Certainly he'd know who, if he didn't run it. 21:13:49 Yes. 21:13:56 eli: With respect to inlined functions only, I'm not sure what further analysis is required. 21:14:06 Whatever happened to meme.b9.com? It claims to be deprecated in favour of ircbrowse.com, but now neither one works. 21:14:21 kmr is apparently not interested in running it any longer. 21:14:23 What I do know is that when it disappeared for a substantial time Fare knew the technical details of the failure -- so I think he maintains the relevant hardware too. 21:14:39 I don't think the person who's signed on as kmr is the same kmr, either. 21:14:43 eli: sure, you need a whole load of weak associations. 21:14:59 chandler: something like: 21:15:01 (define (foo x) (lambda () 1)) 21:15:02 ejs [n=eugen@156-225-178-94.pool.ukrtel.net] has joined #scheme 21:15:10 (define bar (foo 2)) 21:15:13 (define (foo x) (lambda () x)) 21:15:25 and now `bar' should evaluate to 2. 21:15:37 ... it should? 21:15:48 Yes, of course. 21:15:52 what system implements those semantics? :) 21:15:58 lazy languages 21:16:02 elisp :) 21:16:02 Sorry, I couldn't find anything for :). 21:16:08 heh. 21:16:11 you stay quiet, specbot 21:17:04 chandler: I attribute the fact that people respond with "it should?" as lisp-induced coma. 21:17:40 I'm afraid I still don't follow. 21:18:19 *arcfide* does not follow either. 21:18:28 eli: In what language is the above sequence valid? 21:18:53 If `bar' was a function that calls `foo', you'd expect it (`bar') to be modified indirectly when `foo' is modified. 21:19:09 Why shouldn't the same hold for any value? 21:19:17 `bar' is not a function which calls `foo', though. 21:19:54 arcfide: Nothing that I know of -- a proper solution would be somewhere in the neighborhood of reactive programming. 21:20:13 chandler: Yes, but why should there be a difference? 21:20:17 eli: You think the above should happen? I'm inclined to think I'm misunderstanding you. 21:20:56 Scheme, like other modern functional language, blurs the distinction between a function and a value -- some "values" are really functions, or they hold functions, etc. 21:21:38 arcfide: If there was a way to make what I wrote happen, then there wouldn't be any issue with DrScheme restarting the world on every click of "run". 21:21:55 -!- ejs [n=eugen@156-225-178-94.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 21:22:22 *arcfide* is lost. 21:22:22 (let* ((foo (lambda (x) (lambda () 1))) (bar (foo 2)) (set! foo (lambda (x) (lambda () x)) (bar)) -> ? 21:22:32 I futzed the parens there, but I'm sure you get the idea. 21:23:03 eli: I prefer that when i evaluate a function, that value doesn't retroactively change after I have retreived its value. 21:23:11 It's been years since I looked at this, but doesn't FrTime implement semantics like this? 21:24:41 chandler: Yes, I get the idea -- and what you're referring to is the distinction between a redefinition (my case), and mutation (your case). And yes, FrTime is related to this, but it's impractical to always use it. (At least in its current form.) 21:24:49 -!- npe [n=npe@91.180.54.252] has quit [] 21:25:04 arcfide: In that case, don't redefine functions! 21:26:09 that's like breaking your drill and then having your house fall apart ;) 21:26:41 eli: Are you suggesting that the evaluation of all expressions be handled like that? 21:27:44 That if the value of one of the subterms of that expression changes in the future, that all previous values obtained by an expression that used this subterm should also change? 21:28:19 *wingo* imagines eli's brow, furrowed in consternation 21:29:54 eli: I'm not sure when these semantics *wouldn't* be impractical to use. 21:32:14 wingo: Since redefinition happens when you fix some code, then the correct analogy is: you find that your drill had a bug that made your house fall apart, you fix the drill, and your house comes back together. But analogies aside, the core of this is side-effects: `set!' is a declared side-effect, `define' is not. 21:32:33 arcfide: If there was a practical reason to do that, then yes -- definitely. 21:33:33 gottesmm [n=gottesmm@c023h065.dorm.reed.edu] has joined #scheme 21:33:36 arcfide: Debugging an application while it is running is a pleasure that is hard to describe in words -- something like this would make it robust to do so rather than the hackish state of repls (where sometimes it works, and often you just restart). 21:33:43 define at top-level certainly seems like a declared side-effect to me. 21:33:58 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 21:34:17 -!- gottesmm [n=gottesmm@c023h065.dorm.reed.edu] has quit [Client Quit] 21:34:17 chandler: me too 21:34:24 but perhaps that is the lisp-induced coma 21:34:25 eli: This would break any code wherein any value needs to be reliably retained after side-effecting the expression that produced said value. 21:34:29 gottesmm [n=gottesmm@c023h065.dorm.reed.edu] has joined #scheme 21:34:42 Sorry, side-effecting some structure that was used in deriving some value. 21:34:58 Why is DEFINE not a side-effect? 21:35:09 -!- bombshelter13_ [n=bombshel@toronto-gw.adsl.erx01.mtlcnds.ext.distributel.net] has quit [] 21:35:12 Sure seems like it to me. 21:35:21 Yes, I'm not sure how to systemically differentiate what is important to remember from what isn't important, especially in the case where the uses of `foo' are accompanied by side-effects. 21:36:00 And it isn't like we can't change random values of running applications when we need to right now in current Scheme systems. 21:36:04 chandler: `define' at the top level is a hack in R?RS -- which *is* the hack. It leaves out a bunch of stuff like `define-syntax' for an identifier that was previously `define'd, etc. 21:36:28 This is a problem that is of some importance in industry and is, as far as I can tell, under-studied. The ability to cleanly upgrade from version N to version N+1 is often required in mission-critical systems, and the implementation is often very hackish. 21:36:37 arcfide: Only if you're allowed to use `define' as a form for mutation. 21:37:27 clinger claims that define == set! 21:37:32 eli: Chez Scheme has DEFINE as an effect. 21:37:35 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Leaving"] 21:37:42 dysinger [n=tim@166.129.205.255] has joined #scheme 21:37:53 wingo: That can't possibly be true, since it's not permitted to set! an unbound variable. 21:38:00 er, undefined. 21:38:10 (or maybe I was correct the first time around?) 21:38:12 In Chez Scheme, SET! is permitted to define an unbound variable. 21:38:20 `define' is a form used for creating a defintion -- you can guess that by the similarity of the two words. 21:38:36 eli: What is a definition? 21:38:38 chandler: it is permitted to view all possible bindings as initially bound to nothing, afaik. 21:38:59 even according to r6rs 21:39:17 If `define' is *only* doing a side effect, then (a) your language should permit `set!' on undefined names too, (b) you should get rid of the semantic difference between internal defines and toplevel defines in the same way. 21:40:12 eli: in Chez Scheme, SET! can operate on undefined names, and I'm not sure what you mean by B. 21:40:25 arcfide: And a `definition' is the creation of a *new* binding. The Scheme REPL is hopeless in trying to blur the distinction. 21:40:53 lexical scoping of a value bound to nothing at the toplevel to me sounds a lot like ... lexical scoping 21:40:57 arcfide: That's Chez's choice to be broken, and by (b) I'm referring to the unfortunate difference between a toplevel and an internal define. 21:41:11 Unfortunate in a way that any scheme newbie will agree with. 21:41:30 *eli* runs off 21:41:48 ciao :) 21:41:54 wingo: It works the same way in Chez Scheme in internal contexts as well. 21:42:43 arcfide: i assume you get warnings on set! in a lexical context where the var is unbound? 21:43:04 However, Chez Scheme does behave strangely in that it catches uses of DEFINE in an internal context after an expression (vs. definition), but doesn't catch a SET!. 21:43:24 strange == according to spec 21:43:33 yay for following the letter of specs 21:44:08 So: (LET () 5 (DEFINE B 'A) B) signals an error while (LET () 5 (SET! B 'A) B) => A. 21:44:37 However, they differ here in that the SET! actually defines the Top-Level binding, and not the internal one. 21:44:46 right 21:44:50 and no warning? 21:44:57 No. 21:45:00 wow 21:45:42 So, at the top-level, DEFINE is the same as SET! and expands to SET! in Chez Scheme, but internally, DEFINE expands to a LETREC*. 21:47:49 -!- hotblack23 [n=jh@p5B057B3F.dip.t-dialin.net] has quit ["Leaving."] 21:49:44 I'm still not quite sure what eli was getting at. 21:50:37 i can dig it on a mathematical level 21:50:54 where you define things in the platonic ether 21:51:34 annodomini [n=lambda@64.30.3.122] has joined #scheme 21:53:26 wingo: But there, no side-effects exist, generally. 21:54:24 arcfide: no! and lo, our white garments stain not 21:54:35 Say we were to write a file: (WRITE (FOO X) OP), and then redefine FOO? Suddenly we would require that ALL logs ever written by that expression would have to be rewritten. 21:55:01 And if we don't allow any redefinitions, then what's the point anyways? 21:55:09 Is that so wrong, arcfide? 21:55:14 As a Scheme newbie, can I ask what's unfortunate about the difference between toplevel and internal defines? 21:56:05 dudleyf: I'm not sure what the unfortunate thing is that eli mentioned, but for myself, if you have a top-level set of defines and then wrap them in a LET to make them internal, they may not behave the same way. This may not be true of all Schemes, though, and I speak only from my experience with MIT and Chez Scheme. 21:56:06 dudleyf: actually, to take it from the other side... 21:56:11 dudleyf, the top level in general is not as strictly defined by the Scheme specification as it ought to be, and there are finicky little details with long-reaching consequences which differ across basically every implementation. 21:56:17 gnomon: Yes, that's very wrong, IMO. 21:56:34 dudleyf: it's nice to have the same abstractive capabilities at all levels -- the local and the global 21:56:57 when you define syntax and functions at the local level, it should just work -- and be restricted to the local level. 21:57:06 Say that we changed a logging feature in order to enable debugging on a web server, then we might be forced to put debugging output in all the logs ever written, which may or may not exist now. 21:57:13 so "no difference" == good, more or less. 21:57:30 arcfide, yup. Wouldn't it be nice to be able to choose to do that? 21:57:47 gnomon: No. 21:57:57 wingo: So sometimes local definitions aren't restricted to the local level? 21:57:58 gnomon: Unless you have a way of very selectively choosing to do this. 21:58:09 gnomon: But as a language feature? No, because there's no way to turn it off. 21:58:17 dudleyf: well. if set! at a local level introduces a binding at the toplevel, then no 21:58:32 some schemes are like that. 21:58:51 dudleyf: For example, in many Schemes, it is possible to redefine functions at the top level. However, this is not possible with internal DEFINEs. 21:59:47 gnomon: And what about algorithms that side-effect some vector and then retreive values from it later on? We suddenly assume that all the values must map to the latest ones? That seems insane. 22:00:24 wingo: I was only talking about DEFINE 22:00:42 -!- dysinger [n=tim@166.129.205.255] has quit [Read error: 110 (Connection timed out)] 22:01:16 dudleyf: No, wingo was saying that in some Schemes, Chez Scheme, particularly, DEFINE == SET! in the top-level, with SET! being an extended version of what's in any spec, however, this is not the case in internal DEFINEs. 22:01:59 Ah. Got it, thanks. 22:02:40 But regardless of whether DEFINE can side-effect already defined names, it is still a side-effecting form, because it changes the environment, whether local or global. 22:03:04 Introducing a new binding for a name is a side-effect in my book. 22:04:16 arcfide: on the local level, if it's a letrec, that's no side effect for me. 22:04:38 geckosenator [n=sean@c-71-237-94-78.hsd1.co.comcast.net] has joined #scheme 22:06:24 wingo: it has the behavior of a LETREC*, but it is still affecting the environment of the internal scope, not, IIUC, introducing a new scope. 22:10:24 arcfide: (let () (define foo bar) x) == (let () (letrec ((foo bar)) x)) 22:10:30 no side effect there. 22:11:01 unless you consider affecting the set of letrec'd bindings as a side effect :) 22:11:03 -!- sepult [n=sepult@xdsl-87-78-130-205.netcologne.de] has quit ["leaving"] 22:12:09 wingo: However, you can fold both of those scopes into one, so another way of thinking about it would be: 22:12:42 sepult [n=sepult@xdsl-87-78-130-205.netcologne.de] has joined #scheme 22:12:48 (LET () (DEFINE B A) B) => ((LAMBDA (B) (SET! B A) B) (VOID)). 22:13:36 synthase [n=synthase@adsl-0-160-251.mob.bellsouth.net] has joined #scheme 22:14:08 heh, hadn't thought of that 22:15:33 Of course, you have to guarantee that the environment in which you evaluate the LET bindings happens before the binding of the DEFINEd values internally, but still, you can think of it as introducing new bindings into the scope, rather than wrapping the entire body in a LETREC. 22:15:40 meanburrito920_ [n=John@76-217-6-100.lightspeed.irvnca.sbcglobal.net] has joined #scheme 22:17:40 did anyone understand aziz's in-foo stuff on the ikarus lists, btw? 22:18:06 http://article.gmane.org/gmane.lisp.scheme.ikarus.user/767 22:18:34 -!- ikaros [n=ikaros@f051167225.adsl.alicedsl.de] has quit ["Leave the magic to Houdini"] 22:20:04 -!- kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has quit [Read error: 110 (Connection timed out)] 22:21:39 wingo: yeah, what did you have questions about? 22:22:07 arcfide: i did not think that private bindings actually had to exist 22:22:11 according to r6. 22:22:38 wingo: They don't, but it is always possible to use code which uses private bindings, so if the bindings are reachable, then they'd better exist. 22:23:06 arcfide: but precisely with the in-foo case, you have /no idea/ what will exist 22:23:13 with separate compilation 22:23:41 They don't. What Aziz wrote is called a `bug'. 22:23:55 At the very least, what he needs to do is list A and B as indirect exports of the (FOO) library. 22:24:33 indirect exports? 22:25:22 wingo: In R6RS, all defined values are implicitly exported by a LIBRARY, so when exporting a macro, you don't have to list the indirect exports. 22:25:49 *Riastradh* blinks. 22:25:52 ? 22:26:01 chapter&verse? 22:26:12 wingo: In something like Chez's module system, you couldn't export IN-FOO and expect it to work with A and B if you didn't export it with a form like (in-foo a b), but I believe in R6RS that is possible. 22:26:32 wingo: Let me find it. 22:26:39 *wingo* very curious :-) 22:27:00 Gosh, the R6RS is even more broken than I thought. 22:28:09 -!- rdd [n=user@c83-250-157-93.bredband.comhem.se] has quit [Remote closed the connection] 22:29:19 Okay, Chapter 7.1, page 25 of r6rs.pdf, fourth paragraph from section 7.2. 22:29:45 "An exported macro may, however, /implicitly export/ an otherwise unexported identifier defined within or imported into the library." 22:30:00 Well, that's pretty brain-damaged. 22:30:11 "That is, it may insert a reference to that identifier into the output code it produces." 22:31:09 So, without performing serious static analysis of every macro defined in any library, a compiler cannot make useful assumptions about non-exported bindings. 22:31:18 Riastradh: I think they did that because they wanted people to be able to ignore on what procedure a macro may depend. 22:31:28 Riastradh: Yes. :-) 22:31:48 in the presence or datum->syntax, that is quite a barn door 22:31:53 *of 22:31:54 So most compilers are going to just export everything, and it will make it difficult to eliminate portions of the unexported library definitions. 22:32:26 wingo: exactly, this means that everything in a library is visible, and its hard to know what isn't visible, so eliminating it from the end result is difficult at best. 22:32:33 wow. 22:32:38 -!- cel [n=cel@38.Red-83-38-82.dynamicIP.rima-tde.net] has quit [] 22:33:18 This was brought up in Aziz's Thesis defense, as well as in the class I took with Kent Dybvig. 22:33:45 those guys are smart and/byt devious 22:33:47 *but 22:33:48 pumpkin [n=pumpkin@pat9.border1-cfw.dartmouth.edu] has joined #scheme 22:34:09 wingo: I don't know if this is smart, and I'm not sure either one of them thought it was a great thing, but I can't speak for them on that regard. 22:34:16 This is not smart. 22:34:53 However, it hopefully won't affect the speed of executing other code, too much, but only affect load times and code size. It is a problem. 22:35:21 It is a serious problem. 22:35:35 It is especially a problem in the work I'm trying to do with Descot, because it's hard to automatically populate the graphs with enough information to make porting to other module systems simple. It requires nasty nasty code analysis that I don't want to do. 22:35:43 Riastradh: i am inclined to agree 22:35:54 This is BRAIN-DAMAGED and NITWITTED. 22:36:04 i like dynamic systems 22:36:09 Riastradh: Do you know of any other module system that does this? I know Chez's doesn't. 22:36:17 but this appears to be a dynamic system clothed in staticisms 22:36:18 No. 22:36:41 I really wonder why it came out like this and whose idea it was, because I also can't recall any module system that does this. 22:36:48 I find it hard to believe that this issue didn't come up. 22:36:56 i cannot imagine that it was intentional 22:37:06 wingo: I find it hard to believe that it wasn't. 22:37:50 The only argument I can find for it was that someone was trying to simplify the LIBRARY form down and so they took out the indirect exports because they could, and this resulted in the need to implicitly export things. 22:37:56 -!- dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has quit [Read error: 110 (Connection timed out)] 22:38:17 i can imagine a hidden var, like a closure variable -- extended to syntax definitions 22:38:23 the idea seems sound 22:38:37 but not in the presence of datum->syntax. 22:39:05 wingo: One of the problems here is that a large library of code that is imported may then have to be stored with the compiled program, even though the program uses only one of the procedures defined in that library. 22:48:37 -!- melgray [n=melgray@70.99.250.82] has quit [] 22:50:26 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 22:51:11 dudleyf [n=dudleyf@ip70-178-212-238.ks.ks.cox.net] has joined #scheme 22:53:34 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 22:55:29 -!- athos [n=philipp@92.250.250.68] has quit ["leaving"] 23:02:12 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Connection timed out] 23:02:31 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 23:05:24 -!- Nshag [i=user@Mix-Orleans-106-2-60.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 23:16:47 grnman_ [i=grnman@shell.thehostbusters.com] has joined #scheme 23:17:35 -!- mejja [n=user@c-a3b3e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 23:19:23 _JFT_ [n=_JFT_@modemcable183.11-202-24.mc.videotron.ca] has joined #scheme 23:22:15 -!- wingo [n=wingo@123.Red-83-44-191.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 23:23:00 -!- MrFahrenheit [n=RageOfTh@92.36.174.63] has quit [Read error: 101 (Network is unreachable)] 23:23:18 -!- _JFT_ [n=_JFT_@modemcable183.11-202-24.mc.videotron.ca] has quit [Client Quit] 23:28:29 -!- vorpal [n=rhunter@pdpc/supporter/student/vorpal] has quit ["The incensed priests...continued to raise their voices, vituperating each other in bad Latin"] 23:30:09 -!- grnman [i=grnman@66.252.12.130] has quit [Read error: 110 (Connection timed out)] 23:30:17 kniu [n=kniu@pool-71-107-56-85.lsanca.dsl-w.verizon.net] has joined #scheme 23:48:55 -!- pumpkin is now known as Thwog 23:52:33 -!- Thwog is now known as pumpkin 23:57:47 -!- jlongster [n=user@75.148.111.133] has quit [Read error: 113 (No route to host)] 23:58:56 *`Antonio-work`* good night ! 23:59:19 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:59:30 -!- `Antonio-work` [n=kvirc@92.6.187.78] has quit ["'(#g #o #o #d #space # #i #g #h # ))"]