00:00:42 -!- neilv2 [n=nvandyke@fpos-xp.csail.mit.edu] has left #scheme 00:03:30 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 00:07:28 mads- [n=mads@pdpc/supporter/active/mads-] has joined #scheme 00:10:40 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 00:17:31 -!- RageOfThou [n=RageOfTh@users-38-184.vinet.ba] has quit [Read error: 110 (Connection timed out)] 00:18:51 -!- mario-goulart [n=user@67.205.85.241] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 00:20:48 -!- Baconizer [n=baconize@unaffiliated/baconizer] has quit [Remote closed the connection] 00:24:51 patmaddox [n=patmaddo@68.111.70.47] has joined #scheme 00:25:25 -!- arcfide [n=arcfide@adsl-99-57-2-12.dsl.bltnin.sbcglobal.net] has left #scheme 00:27:10 emma [n=em@unaffiliated/emma] has joined #scheme 00:30:02 -!- seamus_android [n=alistair@212.183.134.130] has left #scheme 00:32:38 -!- samth is now known as samth_away 00:42:54 -!- jonrafkind [n=jon@eng-5-144.hotspot.utah.edu] has quit [Read error: 110 (Connection timed out)] 00:49:28 EleminoP [n=EleminoP@iub-vpn-194-12.noc.indiana.edu] has joined #scheme 00:50:11 Summermute: The `$' would be trivial. IIRC, it was pretty close to `lazy', which PLT has in the core. (See srfi 45 for details on why it's needed, and for comments on how we use it in Lazy Scheme.) 00:54:57 rudybot: seen jcowan 00:54:57 *offby1: jcowan was seen in/on #scheme two hours, fifty-two minutes ago, saying "Ask away. Dens of vice are as good a place as any to discuss nefarious schemes.", and then jcowan was seen in/on #scheme two hours, fifty minutes ago, saying ""Mos Eisley spaceport. You will never see a more wretched hive of scum and villainy --unless you watch the Jerry Springer Show." --georgettesworld.com" 00:55:55 can someone show me how to write a procedure that searchs through a binary tree for a specific item then returns that tnode 00:57:08 jeapostrophe [n=jay@69.169.141.110] has joined #scheme 00:57:40 How do you tell leaves from nodes in your tree? Are all the nodes pairs, and the leaves non-pairs? 00:58:24 are the leaves cluttering the sidewalk? If so, mark and sweep 'em away 00:58:41 the leaves are just empty trees i believe 00:59:09 That doesn't make sense to me. 00:59:20 neilv2 [n=nvandyke@fpos-xp.csail.mit.edu] has joined #scheme 00:59:25 hm 00:59:42 -!- jeapostrophe [n=jay@69.169.141.110] has quit [Client Quit] 01:00:44 does it matter what the leaves are? 01:02:18 only in that you need to compare the leaf you're currently looking at, with the value you're searching for. 01:02:42 krikat [i=real@SR4-151.aircanopy.net] has joined #scheme 01:03:04 so if they're number, you'll be using <; but if they're stirng, you'll use string<. (For example.) 01:03:11 *numbers 01:03:11 oh, i'm starting to understand 01:03:16 *string 01:03:29 *offby1* is stealing WiFi so the connection is kinda flaky 01:04:38 *offby1* ponders changing his nick to QueueAreEsty 01:05:02 mdg [n=mdg@unaffiliated/mgroman] has joined #scheme 01:05:37 seamus_android [n=alistair@212.183.134.130] has joined #scheme 01:06:20 -!- mmc [n=mima@89.27.122.78] has quit [Read error: 145 (Connection timed out)] 01:06:28 given the state of your connectivity, you might want to change it to QueueAreEm. 01:06:48 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 01:07:27 Baconizer [n=baconize@unaffiliated/baconizer] has joined #scheme 01:07:57 alright chandler 01:08:01 or offby1 01:08:17 i'm not getting this 01:09:07 emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 01:09:30 i think i should take a break, i am currently emotionally distraught, not concentrating well 01:10:22 -!- jrtayloriv [n=jrt4@cpe-69-205-162-163.stny.res.rr.com] has quit ["Leaving"] 01:10:37 I find close parentheses to be calming in times of stress, they impart a sense of finality 01:13:54 lol 01:13:56 -!- EleminoP [n=EleminoP@iub-vpn-194-12.noc.indiana.edu] has left #scheme 01:15:03 Any of you ever worked through SICP ? 01:16:29 -!- emma [n=em@unaffiliated/emma] has quit [Connection timed out] 01:16:36 -!- emmy is now known as emma 01:20:47 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit ["ChatZilla 0.9.85 [Firefox 3.5.3/20090824101458]"] 01:21:34 jcowan: dev head of chibi has an initial module system w/ a srfi-1 example 01:25:20 -!- peter_12_ [n=peter_12@S01060024016bb36c.gv.shawcable.net] has quit [Read error: 113 (No route to host)] 01:29:17 -!- foof` is now known as foof 01:37:27 -!- metasyntax` [n=metasynt@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["quitting"] 01:39:08 zbigniew: (((( 01:39:50 why is zbigniew so sad? 01:40:54 He doesn't have enough close parens. 01:41:22 As a result, all of his close fell off the line before they were dry. 01:43:09 peter_12 [n=peter_12@S01060024016bb36c.gv.shawcable.net] has joined #scheme 01:44:22 oh dear :( 01:52:41 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:56:52 -!- mdg [n=mdg@unaffiliated/mgroman] has quit [] 01:59:32 does drscheme work on windows? 02:01:24 Yes. 02:01:50 In fact, 71.31% of the downloads are for the windows version. 02:10:20 eli: what's mac? 02:10:23 oh my 02:10:56 eli, did you know that in the Ubuntu version of DrScheme the copy-paste does not happen the way a person expects it to? 02:12:01 neilv2: OSX has 14.78% 02:12:09 Linux is 13.51% 02:12:20 And solaris 0.41% 02:12:47 When you right click to bring up the menu for copy and paste options, the menu does not stay there, unless you continue holding the right mouse button, and then drag over to the word 'copy' or 'paste' and then *release* the right mouse button to execute that option. 02:13:45 that's not the way such menus work in any other ap. It's not impossible to use or anything, but I didn't know if that counted as a bug or not. 02:14:01 emma: that expectation is not typical unix desktop 02:14:13 oh? 02:14:16 neilv2: there's around 308 downloads/day (counting from 2008-05) 02:14:33 I've used Ubuntu only you see, and in gnome and kde those menus 'stay there' like they do in windows I guess. 02:15:12 emma: Yes, that's likely one of these conventions that changed. 02:15:22 (in linux, that is.) 02:15:36 emma: in that case, there's an argument for making right-click menus hang around, since drscheme has been moving to look a bit like gtk on unix/x 02:15:39 so in a typical true unix environment the expectation is that when you right click to bring up the options, you should drag to your option and then release? 02:16:33 historically, on unix guis (and on smalltalk), you hold down for context menus, not click 02:17:03 hm, well that's interesting. 02:17:10 and then execute by releasing 02:17:16 file a bug report or post on the plt-scheme email list 02:17:48 to someone like me who only uses ubuntu (or debian) it felt like a bug but i guess it isn't. 02:18:04 it's an enhancement request 02:18:10 All other apps I ever use, you click to bring up the menu, then click to execute an option. 02:18:10 Yes. 02:18:33 it doesn't really hurt anything this way 02:18:37 Though these days you might get a response that this will work more like you expect when it will all migrate to GTK. 02:18:56 the only problem with these click menus is that then they have to delay for the click/drag delay, so suddenly the menus are slower for people who like the old way 02:19:08 emma: You're probably not using emacs. 02:19:24 No i'm not using emacs. Why would I? 02:19:37 Just an observation. 02:19:40 eli: is there talk of moving drscheme/mred to gtk? 02:19:50 I did install it in order to use SLIME but then I only used the keyboard 02:20:07 neilv2: Yes -- and some code has already been there for a while. 02:20:16 nice 02:20:19 eli, i think that will be great. 02:20:29 The idea is to have it all through the foreign interface. 02:24:33 -!- seamus_android [n=alistair@212.183.134.130] has quit ["Leaving"] 02:26:53 jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has joined #scheme 02:31:34 -!- sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has quit [] 02:32:30 sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has joined #scheme 02:41:35 -!- Axioplase_ is now known as Axioplase 02:47:45 in drscheme key bindings, is there a mnemonic for why ^T is Run? 02:48:15 Trot? 02:50:31 QinGW [n=wangqing@203.86.89.226] has joined #scheme 02:58:14 -!- Dawgmatix [n=user@c-68-32-44-191.hsd1.nj.comcast.net] has quit [Remote closed the connection] 03:04:31 why you guys stole all my closepins 03:08:51 -!- tjafk [n=timj@e176221188.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:09:02 tjafk [n=timj@e176193140.adsl.alicedsl.de] has joined #scheme 03:10:02 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:13:30 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 03:14:10 -!- zanes [n=zane@c-76-24-24-236.hsd1.ma.comcast.net] has quit [] 03:15:42 QinGW [n=wangqing@203.86.89.226] has joined #scheme 03:20:07 neilv2: ping 03:20:33 hm? 03:21:14 Googling shows two generic applications that minimize stuff to the tray. 03:21:30 ah. i didn't see it in google 03:21:43 I tried "how to minimize to system tray". 03:21:59 yeah, i must've had a bad query before 03:22:06 thank you 03:22:27 But also, if you run a mred application that sets the right flags, you don't get any window at all. 03:22:49 i think i want to just be running the normal drscheme 03:23:34 Ah, in that case you'll need some generic thing like that. 03:24:21 windows software is funny 03:24:49 someone wants to sell me a *product* for $19.95 to minimize my app to the system tray 03:24:59 Oh, there is is -- if you use '(float) for the frame, it shows with one of those narrow title, and no entry in the taskbar. 03:25:55 The ones that I've seen look free. 03:27:20 there's at least 7. now to find a reputable free one 03:27:20 http://www.teamcti.com/trayit/trayit.htm and http://www.actualtools.com/titlebuttons/minimize_to_system_tray_any_program.shtml 03:27:22 -rudybot:#scheme- http://tinyurl.com/3bjgz 03:27:35 The latter one looks like a 60-day free thing. 03:28:37 And the first looks like a proper free thing. (For some value of "proper", at least.) 03:29:59 oo, powermenu did exactly what i need. and i think it's the tool i used 10 years ago, too 03:32:23 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 03:35:26 -!- peter_12 [n=peter_12@S01060024016bb36c.gv.shawcable.net] has quit [] 03:36:47 lemonade` [n=lemonade@pool-70-108-15-193.res.east.verizon.net] has joined #scheme 03:36:57 syntropy|desktop [n=who@unaffiliated/syntropy] has joined #scheme 03:37:31 syntropy|desktop: so what happened with r6rs? 03:37:41 exe [n=exe@unaffiliated/exe] has joined #scheme 03:37:47 hi 03:37:50 hey 03:37:53 lolz 03:38:20 lemonade`, heyya! 03:38:31 lemonade`, you little Schemer you 03:38:32 mdg [n=mdg@unaffiliated/mgroman] has joined #scheme 03:38:41 exe: I barely know any scheme 03:38:51 meh i don't have the motivation to get worked up tonight about r6rs 03:39:06 (define (* a b)(if (= b 0)0(+ a (* a (- b 1))))) 03:39:12 yay 03:39:13 "i don't like it." should suffice 03:39:17 exe: fail. 03:39:22 syntropy|desktop: r6rs is the best ever and nothing you can ever say will change my mind! 03:39:24 lemonade`, read SICP 03:39:26 syntropy|desktop, :( 03:39:33 *lemonade`* waits for the reverse psychology to work 03:39:51 heh 03:39:53 exe: I tried... I don't really like it 03:40:04 lemonade`, It'll teach you many good things 03:40:13 How processes are abstract machines, etc 03:40:14 exe: too up tight 03:40:16 lol 03:40:42 -!- mdg [n=mdg@unaffiliated/mgroman] has quit [Client Quit] 03:40:57 CLisp is slackened 03:41:02 or hs. 03:41:22 hs looks like an abbrev for herpes 03:42:22 haskell, dummy 03:42:25 what do you mean by "is slackened"? 03:42:37 exe: so herpes 03:42:47 less up tight than scheme is 03:43:02 lemonade`, Meh, I don't code much in either, so don't trust me. 03:43:05 no, I didn't mean scheme, I meant SICP. 03:43:10 syntropy|desktop, herpes is in the eye of the beholder 03:43:25 oh 03:43:25 well, two different things 03:44:08 lemonade`, SICP is just a book that teaches a lot of cool programming practices, I think it still has its own channel :p 03:44:21 lemonade`, You might want to read it for the sake of learning 03:44:37 exe: yeah I tried. 03:44:52 I'm reading stuff like all the time though. 03:45:32 exe: do you know scheme? 03:45:51 lemonade`, I started reading SICP but I stopped because I had other things I had to learn instead 03:45:53 priorities 03:46:02 So, I'd say not. 03:46:44 hmm 03:46:55 how far did you get in SICP? 03:47:15 jeapostrophe_ [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 03:48:57 lemonade`, finished the first chapter 03:49:00 about 70 pages 03:50:32 jeapostrophe__ [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 03:56:30 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 03:56:43 -!- jeapostrophe_ [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Read error: 60 (Operation timed out)] 04:01:44 -!- foof [n=user@FL1-118-110-45-189.osk.mesh.ad.jp] has quit ["ERC Version 5.2 (IRC client for Emacs)"] 04:02:08 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Read error: 113 (No route to host)] 04:04:16 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Read error: 113 (No route to host)] 04:04:16 -!- jeapostrophe__ is now known as jeapostrophe 04:07:58 -!- QinGW [n=wangqing@203.86.89.226] has quit [Success] 04:08:51 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 04:09:28 QinGW [n=wangqing@203.86.89.226] has joined #scheme 04:21:22 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 04:23:03 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:27:58 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 04:28:53 jonrafkind [n=jon@98.202.86.149] has joined #scheme 04:28:59 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 04:35:55 -!- exe [n=exe@unaffiliated/exe] has quit ["Leaving"] 04:36:08 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 04:37:13 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 04:37:56 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 04:41:08 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 05:03:17 Dawgmatix [n=user@c-68-32-44-191.hsd1.nj.comcast.net] has joined #scheme 05:05:52 QinGW [n=wangqing@203.86.89.226] has joined #scheme 05:10:34 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 05:16:14 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 05:17:19 QinGW [n=wangqing@203.86.89.226] has joined #scheme 05:20:17 -!- Adamant [n=Adamant@unaffiliated/adamant] has quit [] 05:21:59 -!- jlilly [n=jlilly@67.207.141.169] has left #scheme 05:22:34 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 05:23:53 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 05:32:43 QinGW [n=wangqing@203.86.89.226] has joined #scheme 05:34:53 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 05:38:46 attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has joined #scheme 05:39:39 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 05:43:28 -!- eno [n=eno@nslu2-linux/eno] has quit [Read error: 60 (Operation timed out)] 05:46:03 schemer999_ [n=schemer9@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 05:46:32 eno [n=eno@nslu2-linux/eno] has joined #scheme 05:54:17 -!- schemer999 [n=schemer9@cpe-76-90-137-46.socal.res.rr.com] has quit [Read error: 110 (Connection timed out)] 05:54:17 -!- schemer999_ is now known as schemer999 06:27:57 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 06:28:35 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit [Remote closed the connection] 06:32:22 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit [Client Quit] 06:38:06 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 06:45:27 kenjin [n=kenjin@163.152.180.207] has joined #scheme 06:45:53 -!- kenjin is now known as Guest79302 06:46:51 -!- Guest79302 is now known as kenjin2 06:46:57 -!- a-s [n=user@nat-240.ro.66.com] has quit [Connection reset by peer] 06:53:37 -!- Dawgmatix [n=user@c-68-32-44-191.hsd1.nj.comcast.net] has quit [Remote closed the connection] 06:58:50 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 07:00:22 -!- Fufie [n=innocent@80.203.225.86] has quit ["Leaving"] 07:02:55 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 07:07:42 foof [n=user@isa7-dhcp-116-229.naist.jp] has joined #scheme 07:09:31 -!- kenjin2 [n=kenjin@163.152.180.207] has quit [Read error: 113 (No route to host)] 07:15:48 -!- attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has quit [Read error: 104 (Connection reset by peer)] 07:17:01 -!- jlongster [n=user@c-68-59-187-95.hsd1.tn.comcast.net] has quit [Read error: 113 (No route to host)] 07:17:53 -!- untouchable [i=untoucha@dhcp-129-64-166-32.dorm.brandeis.edu] has quit [Read error: 104 (Connection reset by peer)] 07:18:33 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit ["Leaving"] 07:21:43 Fufie [n=innocent@80.203.225.86] has joined #scheme 07:21:59 attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has joined #scheme 07:31:04 -!- jao [n=jao@2.Red-83-42-211.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 07:36:36 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 07:36:51 borism [n=boris@195.50.205.198] has joined #scheme 07:37:26 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 07:45:42 schmir [n=schmir@mail.brainbot.com] has joined #scheme 07:45:59 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:55:25 jao [n=jao@22.Red-213-98-198.dynamicIP.rima-tde.net] has joined #scheme 07:56:46 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 07:57:35 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:57:56 kenjin2 [n=kenjin@163.152.180.207] has joined #scheme 07:58:46 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:02:56 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:07:44 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection reset by peer] 08:07:54 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 08:18:36 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:18:54 ejs [n=eugen@91.124.236.87] has joined #scheme 08:23:41 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:33:42 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:37:19 Edico [n=Edico@unaffiliated/edico] has joined #scheme 08:37:53 QinGW3 [n=wangqing@203.86.89.226] has joined #scheme 08:37:55 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 145 (Connection timed out)] 08:38:24 -!- lemonade` [n=lemonade@pool-70-108-15-193.res.east.verizon.net] has quit [Read error: 60 (Operation timed out)] 08:39:41 -!- QinGW3 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 08:39:49 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Connection timed out] 08:40:24 QinGW [n=wangqing@203.86.89.226] has joined #scheme 08:41:13 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 08:41:19 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Read error: 54 (Connection reset by peer)] 08:41:26 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 08:46:31 -!- xwl [n=user@125.34.171.60] has quit [Remote closed the connection] 08:54:40 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 08:55:28 -!- patmaddox [n=patmaddo@68.111.70.47] has quit [Remote closed the connection] 09:03:18 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 09:07:49 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 09:10:11 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 09:14:45 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 09:20:05 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 09:27:12 xwl [n=user@125.34.171.60] has joined #scheme 09:29:27 -!- xwl [n=user@125.34.171.60] has quit [Remote closed the connection] 09:31:53 -!- dmoerner [n=dmr@134.173.91.168] has quit [Read error: 110 (Connection timed out)] 09:37:42 -!- rdd [n=user@c83-250-145-223.bredband.comhem.se] has quit [Remote closed the connection] 09:55:21 dmoerner [n=dmr@134.173.98.192] has joined #scheme 09:56:43 -!- peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 09:57:02 peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has joined #scheme 10:00:42 xwl [n=user@125.34.171.60] has joined #scheme 10:06:03 QinGW [n=wangqing@203.86.89.226] has joined #scheme 10:11:32 mmc [n=mima@esprx02x.nokia.com] has joined #scheme 10:13:40 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 10:14:27 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:14:28 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 10:16:05 dmoerner_ [n=dmr@134.173.91.168] has joined #scheme 10:16:08 -!- dmoerner [n=dmr@134.173.98.192] has quit [Read error: 113 (No route to host)] 10:25:31 QinGW [n=wangqing@203.86.89.226] has joined #scheme 10:30:29 masm [n=masm@bl7-207-185.dsl.telepac.pt] has joined #scheme 10:41:13 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 10:41:19 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 110 (Connection timed out)] 10:45:09 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 10:45:31 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 10:47:41 a-s [n=user@nat-240.ro.66.com] has joined #scheme 10:48:35 -!- foof [n=user@isa7-dhcp-116-229.naist.jp] has quit [Read error: 113 (No route to host)] 10:48:48 -!- kenjin2 [n=kenjin@163.152.180.207] has quit [Remote closed the connection] 11:06:10 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 11:15:36 luz [n=davids@189.122.90.116] has joined #scheme 11:24:18 -!- mm_freak [n=milch@2a01:198:2d4:0:dead:affe:dead:affe] has left #scheme 11:36:47 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 11:38:27 -!- cornbread [n=max@mendotasoft.com] has quit [verne.freenode.net irc.freenode.net] 11:38:27 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [verne.freenode.net irc.freenode.net] 11:38:27 -!- Chani [n=chani@twinsen.warpedgames.com] has quit [verne.freenode.net irc.freenode.net] 11:38:27 -!- docgnome [n=docgnome@65.101.144.42] has quit [verne.freenode.net irc.freenode.net] 11:39:32 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 11:39:56 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 11:40:19 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [Killed by douglas.freenode.net (Nick collision)] 11:40:23 docgnome [n=docgnome@65.101.144.42] has joined #scheme 11:40:23 Chani [n=chani@twinsen.warpedgames.com] has joined #scheme 11:40:23 Adrinael [i=adrinael@rib4.kyla.fi] has joined #scheme 11:40:26 cornbread [n=max@mendotasoft.com] has joined #scheme 11:40:27 Adrinael_ [n=adrinael@barrel.rolli.org] has joined #scheme 11:40:46 Chanika [n=chani@twinsen.warpedgames.com] has joined #scheme 11:41:17 -!- Adrinael [i=adrinael@rib4.kyla.fi] has quit [Nick collision from services.] 11:41:51 -!- Chani [n=chani@twinsen.warpedgames.com] has quit [Connection reset by peer] 11:42:10 -!- Adrinael_ is now known as Adrinael 11:43:02 luz [n=davids@189.122.90.116] has joined #scheme 11:43:02 -!- Adrinael is now known as Adrinael_ 11:43:19 -!- Adrinael_ is now known as Adrinael 11:53:18 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 11:53:42 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 11:55:37 -!- emma [n=em@unaffiliated/emma] has quit [Read error: 60 (Operation timed out)] 12:07:14 -!- a-s [n=user@nat-240.ro.66.com] has quit [Remote closed the connection] 12:09:49 -!- Adrinael [n=adrinael@barrel.rolli.org] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- schemer999 [n=schemer9@cpe-76-90-137-46.socal.res.rr.com] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- tjafk [n=timj@e176193140.adsl.alicedsl.de] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- charleyb_ [n=charleyb@c-67-162-157-218.hsd1.co.comcast.net] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- tabe`` [n=user@adel.fixedpoint.jp] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- klutometis [i=klutomet@pdpc/supporter/active/klutometis] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- clog [n=nef@bespin.org] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- erg [n=erg@li13-154.members.linode.com] has quit [verne.freenode.net irc.freenode.net] 12:09:49 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [verne.freenode.net irc.freenode.net] 12:10:18 Adrinael [n=adrinael@barrel.rolli.org] has joined #scheme 12:10:18 peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has joined #scheme 12:10:18 schemer999 [n=schemer9@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 12:10:18 tjafk [n=timj@e176193140.adsl.alicedsl.de] has joined #scheme 12:10:18 nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has joined #scheme 12:10:18 pfo [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 12:10:18 charleyb_ [n=charleyb@c-67-162-157-218.hsd1.co.comcast.net] has joined #scheme 12:10:18 erg [n=erg@li13-154.members.linode.com] has joined #scheme 12:10:18 offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 12:10:18 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 12:10:18 clog [n=nef@bespin.org] has joined #scheme 12:10:18 klutometis [i=klutomet@pdpc/supporter/active/klutometis] has joined #scheme 12:10:18 tabe`` [n=user@adel.fixedpoint.jp] has joined #scheme 12:10:22 mario-goulart [n=user@67.205.85.241] has joined #scheme 12:13:57 a-s [n=user@nat-240.ro.66.com] has joined #scheme 12:14:30 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 12:34:32 -!- mads- [n=mads@pdpc/supporter/active/mads-] has quit ["Leaving"] 12:52:46 -!- schemer999 [n=schemer9@cpe-76-90-137-46.socal.res.rr.com] has quit [] 12:54:10 -!- Axioplase is now known as Axioplase_ 12:55:11 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 12:58:01 -!- nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 110 (Connection timed out)] 13:02:18 -!- sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has quit [] 13:13:45 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 13:24:41 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 13:24:53 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:26:38 schmir [n=schmir@mail.brainbot.com] has joined #scheme 13:31:56 phoenixi [n=tuomosa@a85-156-197-4.elisa-laajakaista.fi] has joined #scheme 13:43:30 -!- leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has quit [] 13:46:07 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 13:48:09 -!- thesnowdog [i=thesnowd@122.110.13.170] has quit ["Leaving"] 13:50:56 leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 14:02:27 seamus_android [n=alistair@212.183.134.128] has joined #scheme 14:04:13 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 14:07:06 saccade [n=saccade@65-116-131-218.dia.static.qwest.net] has joined #scheme 14:08:11 -!- saccade [n=saccade@65-116-131-218.dia.static.qwest.net] has quit [Client Quit] 14:11:53 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 14:13:14 -!- masm [n=masm@bl7-207-185.dsl.telepac.pt] has quit [Remote closed the connection] 14:13:45 masm [n=masm@bl7-207-185.dsl.telepac.pt] has joined #scheme 14:19:51 -!- a-s [n=user@nat-240.ro.66.com] has quit [Read error: 104 (Connection reset by peer)] 14:32:44 sstrickl [n=sstrickl@nomad.ccs.neu.edu] has joined #scheme 14:46:45 borism_ [n=boris@195.50.215.32] has joined #scheme 14:49:57 npe [n=npe@195.207.5.2] has joined #scheme 14:50:51 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 14:52:11 -!- borism [n=boris@195.50.205.198] has quit [Read error: 145 (Connection timed out)] 14:56:52 -!- m811_ [n=user@180.180.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] 15:00:05 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 15:01:43 patmaddox [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has joined #scheme 15:08:02 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:09:53 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 104 (Connection reset by peer)] 15:10:04 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 15:17:47 offby1` [n=user@q-static-138-125.avvanta.com] has joined #scheme 15:19:40 -!- poe [n=poe@unaffiliated/poe] has quit ["leaving"] 15:19:45 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 15:20:24 rudybot_ [n=luser@q-static-138-125.avvanta.com] has joined #scheme 15:30:22 lemonade` [n=lemonade@pool-70-108-15-193.res.east.verizon.net] has joined #scheme 15:32:28 -!- rudybot [n=luser@q-static-138-125.avvanta.com] has quit [Read error: 113 (No route to host)] 15:33:08 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 110 (Connection timed out)] 15:47:08 mrsolo [n=mrsolo@nat/yahoo/x-wyhzioifekoioeyg] has joined #scheme 15:47:59 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 110 (Connection timed out)] 15:53:17 Fare [n=Fare@ita4fw1.itasoftware.com] has joined #scheme 15:59:02 -!- lemonade` [n=lemonade@pool-70-108-15-193.res.east.verizon.net] has left #scheme 15:59:30 -!- haesbaert [n=haesbaer@c925a8c5.virtua.com.br] has quit [Remote closed the connection] 16:01:27 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 16:03:03 -!- patmaddox [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has quit [Remote closed the connection] 16:09:49 reprore [n=reprore@116.82.73.92] has joined #scheme 16:11:09 -!- leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 16:12:43 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 16:14:49 leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 16:18:19 -!- npe [n=npe@195.207.5.2] has quit [] 16:23:28 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Remote closed the connection] 16:23:38 -!- dmoerner_ [n=dmr@134.173.91.168] has quit [Remote closed the connection] 16:29:18 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 16:31:58 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 16:34:11 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 16:35:18 SvekloB [n=sveklo@213.243.181.131] has joined #scheme 16:36:10 -!- gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Read error: 60 (Operation timed out)] 16:36:21 gnomon [n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 16:46:50 -!- samth_away is now known as samth 16:55:59 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit [Remote closed the connection] 16:59:23 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 17:01:01 choas [n=lars@p5B0DCB9D.dip.t-dialin.net] has joined #scheme 17:01:19 bluestorm [n=scherer@ulminfo.aulo.in] has joined #scheme 17:01:30 hello 17:01:44 I'm looking for the SchemeSQL website (or a link to the paper) 17:01:57 do you know where it might be ? Google can't find anything 17:07:21 -!- mreggen_ [n=mreggen@84.215.28.167] has quit ["leaving"] 17:08:32 saccade [n=saccade@dhcp-18-188-73-161.dyn.mit.edu] has joined #scheme 17:09:06 here it is : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.11.4048 17:09:17 chturne [n=charles@host86-128-42-143.range86-128.btcentralplus.com] has joined #scheme 17:12:51 -!- docgnome [n=docgnome@65.101.144.42] has left #scheme 17:15:00 MrFahrenheit [n=RageOfTh@users-42-212.vinet.ba] has joined #scheme 17:19:53 -!- Chanika is now known as Chani 17:24:44 -!- mmc [n=mima@esprx02x.nokia.com] has quit [Remote closed the connection] 17:24:47 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 104 (Connection reset by peer)] 17:25:16 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:26:59 Nshag [i=user@Mix-Orleans-106-2-116.w193-248.abo.wanadoo.fr] has joined #scheme 17:27:32 -!- SvekloB [n=sveklo@unaffiliated/sveklo] has quit [Read error: 145 (Connection timed out)] 17:30:03 SvekloB [n=sveklo@unaffiliated/sveklo] has joined #scheme 17:42:10 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 104 (Connection reset by peer)] 17:42:41 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:43:22 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 17:44:14 Narrenschiff [n=ritchie@80.229.216.34] has joined #scheme 17:44:48 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 17:44:57 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 17:50:20 -!- saccade [n=saccade@dhcp-18-188-73-161.dyn.mit.edu] has quit ["This computer has gone to sleep"] 17:51:53 SICP is a pretty groovy book - at work one of my employees wripped off my copy (that good), but it seems free for download these days. 17:52:51 whoops, for lemonade: 17:54:05 Just curious: If just 1-2 libraries were available for you favorite scheme, what would they be? 17:56:09 That nifty one they had at Alexandria for a while, until Caesar got a bit eager at setting fire to his toys. 17:56:41 Summermute: planet :) 17:57:02 :) 17:57:40 Riastradh, if we're allowed to fantasized, Borges described an interesting library in Babylon... 17:58:05 Mmmh. There are a lot of fantasies described by Borges that I don't think I want to be involved in. 17:58:07 How about Widener library? 17:59:09 Karl Marx got lots of work done at the British Museum library ;-0 18:00:21 "work"? 18:00:30 Apropos of Borges, I'm reminded of another interesting library described by one Eco that burned down in 1326. 18:01:32 On a more prosaic note: A super good "universal" SQL DB integration and a snappy performance feature-up-to-date GUI library. I have more but that's my two. 18:01:45 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 18:01:49 -!- bluestorm [n=scherer@ulminfo.aulo.in] has quit ["Lost terminal"] 18:02:17 Fare: Trust me, writing Das Kapilal is alot of work :-) 18:02:29 sorry for sp? 18:03:01 I thought there was at least a `t' somewhere in there. 18:03:21 Definitely 18:03:35 Summermute, I suppose a lot of manual work. Intellectual probably not. 18:03:48 albacker [n=eni@unaffiliated/enyx] has joined #scheme 18:04:09 Let's avoid politics :-) 18:04:21 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 18:04:24 If only politics could avoid me! 18:04:28 Fare, are you talking about Marx or about SQL and GUI libraries? 18:05:10 I'm definitely focused on good old boring (slick and hopefully forthcoming) SQL and GUI libraries 18:05:55 Summermute, that said, if you wanna work on a library, I'd say: a portable C FFI. 18:06:02 -!- krikat [i=real@SR4-151.aircanopy.net] has left #scheme 18:06:09 To be honest, just tossed out there fore relatively universal appeal (more or less) 18:06:11 so that all the C libraries are cheaper to use. 18:06:36 taking example on the CL CFFI would be good, too. 18:06:46 Ok, i'm intrigued. A kind of Swig binding? 18:07:19 Seems more than functional on lots of other dynamic languages 18:07:51 Summermute, whatever it is -- as long as it makes it easy to replace perl with scheme. 18:08:12 any time there's a C library out there, it's trivial to make it work with Perl, Python, etc. 18:08:23 but a hell to make it work with most Scheme implementations. 18:08:51 even stupid posix calls. 18:08:51 perl, python - smells like Swig 18:08:51 Swig is a possibility 18:09:17 doesn't have to be swig -- but has to have backends for several major Scheme implementations 18:09:36 (say, PLT, Chicken, Gambit, Ikarus...) 18:09:49 My own (true) wishlist is a CPS data type and an a whole bunch of optimizaton algorithms on the datatype :-) 18:09:51 Pepe__ [n=ppjet@mna75-4-82-225-76-148.fbx.proxad.net] has joined #scheme 18:10:06 Summermute, an open compiler? 18:10:30 Hmmm, bunch of other schemes - seems to go beyond the intent of the initial inquiry 18:10:56 Well, a kind of open CPS based back end 18:11:01 I'd like for a C FFI to Scheme to treat Scheme as a coroutine of C, rather than assuming that it's possible to map a C procedure call to a Scheme procedure call. 18:11:25 Summermute: You might want to look at T. It probably doesn't run on any systems you have, but that's just a small matter of programming! 18:12:08 chandler, I'd like a C FFI that allows to easily go from one view to the other. 18:12:14 Traffic must be slow, I though we'd here a cacaphony of XML api and various RPC oriented requests :-) 18:12:29 chandler, does it run on any system that qemu emulates? 18:12:48 Fare: what's a "view" (seems like 3rd time I've asked that in last 24 hours) 18:12:51 It runs on some processors that qemu emulates. The OS is a different matter. 18:12:54 Narrenschiff_ [n=ritchie@80.229.216.34] has joined #scheme 18:13:22 The OS should be straightforward. I haven't tried it on OpenSolaris/Solaris 10, but it runs happily on Solaris 9. 18:13:41 -!- Narrenschiff_ [n=ritchie@80.229.216.34] has quit [Client Quit] 18:13:42 I don't think qemu emulates Solaris correctly yet. 18:13:53 How about a nice library for x86 assembler (now covers Windoze, Mac and most Linux) 18:13:57 Solaris/SPARC that is. 18:14:11 Ah. 18:14:18 Summermute, in this case, easily provide a Scheme-call interface to computations in a co-routine, or a co-routine interface to computation within Scheme calls. 18:14:33 Solaris is runing on some x86 hardward too if i'm not mistaken, yes? 18:14:39 The SPARC processor emulation is a bit flakey as it is, though it's good enough for target-1, target-2, and target-contrib of SBCL. 18:14:47 Summermute: That wouldn't help; there's no x86 backend for T. 18:14:57 Summermute, your library isn't nice at all unless you build the rest of the compiler. 18:15:16 Do you mean the old T scheme dialect? 18:15:21 Also, you can run T on Solaris, but you can't rebuild it. (Correct me if I'm wrong here, Riastradh.) 18:15:23 Summermute, if you're going that route, I propose an open Scheme compiler with a LLVM and/or GCC-internals backend 18:15:24 Yes. 18:15:53 maybe port T to LLVM. 18:16:04 If it's the Yale project as i think it might be, that's something of a relic these days 18:16:28 chandler, didn't you work on reviving T at some point? 18:16:32 -!- peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has quit ["leaving"] 18:16:32 You can rebuild it, chandler. The live image dumper doesn't work, though. 18:16:44 peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has joined #scheme 18:16:57 Did you ever finish the ELF object output support that you were working on? 18:17:17 Fare: Riastradh and I looked at it for a while, but I never made any significant headway. 18:17:19 The static linker works (last I recall); the live image dumper doesn't. 18:17:27 OK. 18:17:32 (or, in T terms, the linker works; the suspender doesn't) 18:17:35 I'm not interested in new dialects so much as "useful" libs for existing dialects: useful for end users first, implementors second 18:18:08 Summermute: This is to do with your request for a CPS-based optimization facility, which is exactly what ORBIT is. 18:18:09 Summermute, then a C FFI could be great. 18:18:24 C FFI is often more hassle than it's worth for getting libraries. 18:18:29 That was a parenthetical aside :-) 18:18:35 patmaddox [n=patmaddo@dsl081-087-111.lax1.dsl.speakeasy.net] has joined #scheme 18:18:38 A little more to the point: Orbit (sort of) supports user-defined transformations on the CPS representation. 18:18:40 weren't there interesting CPS-based partial evaluators from O Danvy? 18:18:49 Yes, a really good C ffi would be fantastic 18:19:28 Ideally, I'd like a (bin ...) dialect to frob C datastructures from within the hosting scheme 18:19:49 -!- peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has quit [Client Quit] 18:20:00 peddie [n=peddie@c-67-180-249-125.hsd1.ca.comcast.net] has joined #scheme 18:20:32 -!- Narrenschiff [n=ritchie@80.229.216.34] has quit [Read error: 145 (Connection timed out)] 18:20:47 Maybe a primitive or two and otherwise some uber (bin-from) macro :-) 18:21:13 Riastradh pasted "dealing with C resources is non-trivial" at http://paste.lisp.org/display/88683 18:21:15 (whoops bin-frob) 18:21:43 Yeah, but how about 80/20 18:22:05 There are many important conceptual impedence mismatches between Scheme and C that make it extremely difficult to interface to C libraries correctly. 18:22:07 Write FFI of ones for oneself for the rest? 18:22:24 Those are English words, but I can't extract meaning from them. 18:22:32 a C FFI requires creating a C stack, which in my mind is the most difficult to implement about it. 18:22:51 How big of a stack do you allocate, and how do you know when to clean it up? 18:22:53 Sorry, I'm pretty heavily sedated again (legally, unfortunately) 18:23:12 OK. I'd like to hear what synx's excuse is at some point, too. 18:23:14 chandler, maybe we can have a side conversation about what I just pasted, which I think is much more interesting than this pseudo-English that has suddenly filled #scheme. 18:23:29 Oops, did I say that aloud? 18:23:35 Um, with markers or a nice outline stack map, there's not need for a 2nd stack 18:24:10 I think I'm going to go back to working. If others want to babble, so be it. 18:24:16 "out of line" 18:24:34 ada2358 [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 18:24:49 C calling convention has always bothered me. It only allows one return value and doesn't indicate how long the argument list is. You can't call a variadic function with a va_list. 18:25:01 Riastradh, Scheme already introduces "this continuation can only be called once" restrictions with letrec 18:25:14 Riastradh, a C FFI would have similar restrictions. 18:25:17 Fare, hmm? 18:25:24 (That's not true in the R5RS, by the way.) 18:25:37 (Maybe it is in the R6RS; I don't know.) 18:25:40 Fare: I think you're quite wrong about `letrec'. 18:25:52 Riastradh, so in R5RS you can portably expose the set! implicit in letrec? 18:25:53 Yeah, and not to mention a nice bitflag describing passed keyword args - C calling conventions suchs 18:25:56 Yes, Fare. 18:26:04 (But I still don't know why you addressed that to me.) 18:26:07 And aside from that, figuring out what size integers it requires can be a challenge, since technically you have to use the same C compiler that the library used, to be sure of what their sizes are. 18:26:13 good old typedefs and the like 18:26:21 emulating 32 bit on a 64 bit system 18:26:56 "Another restriction is that the continuation of each should not be invoked more than once." (quoth the R6RS) 18:27:08 Hmm. `Should not'? 18:27:33 should that not be must? 18:27:33 I believe this grants R6RS implementations the leeway to detect and report an error in this case, without requiring them to do so. 18:27:57 chandler, the CL CFFI is not too bad. The one main thing about a Scheme version would be Scheme continuations vs C stack. 18:28:09 Oh and C functions when compiled have no meta-information beyond their name, so you can't introspect how many arguments they take, or what they return. So you have to either parse .h files or just manually write it yourself. 18:28:27 -!- SvekloB [n=sveklo@unaffiliated/sveklo] has quit [Connection timed out] 18:28:35 CFFI is not too bad for what it is, but the inherent issues involved in interfacing to C remain regardless. Scheme just adds another set of inherent issues. 18:28:40 or which arguments for that matter 18:28:50 Fare, sure. That's already reasonably well worked out: see . 18:29:00 Instead of raising an exception or a contract violation, it just segfaults (hopefully). 18:29:07 chandler, some issues you can't gloss over. Some gratuitous cross-Scheme issues you can. 18:29:15 SvekloB [n=sveklo@unaffiliated/sveklo] has joined #scheme 18:29:41 Um, why not just put the burden on Scheme? it's the "foreign traveler" as it were? just eat the limitations for this specific occasion? 18:30:32 Riastradh, s48's restrictions sound reasonable to me. 18:30:35 i don't believe "seemless" is a legitimate goal here. Why not just move on? 18:30:37 Summermute: well sure, and most scheme programmers manually work out all that stuff, most laborously, hoping that the C API doesn't change any time soon. 18:30:43 Different implementation strategies could have different restrictions. 18:31:00 But you still can't just abstract away the limitations of the C stack. 18:31:08 With some ways to go from one to the other (e.g. via C threads or forks) 18:31:27 gosh, what might we have to do if interfacing with APL or Forth or Prolog? 18:31:31 (e.g. you could spawn one C thread per "C worker".) 18:31:34 As Riastradh pointed out, you can't capture a continuation if the C stack gets collected. 18:31:42 I don't like the Scheme48 strategy. I would rather that the implementation support returning to C multiple times. If C only expects to be returned to once, then it should destroy whatever return continuation object it holds, which would cause the Scheme side to error on the next return to that point. 18:32:10 But, gosh, all this about continuations isn't important for 99% of C libraries out there, which will never call back into Scheme. 18:32:11 synx: You can if you treat C and Scheme as coroutines. 18:32:20 Riastradh, indeed. 18:32:29 The code I pasted about file descriptors is much more interesting, because that actually is related to referring to C data. 18:33:01 chandler: huh, so for instance instead of returning from C, the C function instead calls scheme_return_maybe_come_back() to 'return'? 18:33:14 I believe that that code is free of race conditions, although it has been several months since I wrote it, and I might be misremembering my confidence. 18:34:17 synx: No; I'd expect the C single-return convention to be respected, but when calling Scheme procedures, you need to expect multiple returns. 18:34:42 Riastradh, I see two separate issues here -- one, portably accessing the C functions and data. 18:34:53 two, building portable abstractions on top of the below 18:35:23 Oh, okay chandler... so the scheme procedure would return some kind of context that you call a returning function on, until it stops returning? 18:35:30 the two are important, but the second cannot be built without the first. 18:35:47 i think of it as manna from heaven that it's relatively easy to call into C routines at all. 18:35:52 -!- ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 18:35:56 like context = scheme_callback(...); while (context) { context = scheme_return(context); } 18:36:07 Maybe you could have a little bit more of your, ah, manna from heaven, Summermute, and perhaps turn it into a nap! 18:36:25 (Isn't that what sedation is supposed to do?) 18:37:12 don't confuse sedation and sedition - be awake when the latter happens! 18:37:36 Fare, actually, I was hoping that somebody would take a look at the code and ask `Gee, why is your code so complicated? Why does it do this or that, and what does this part here mean?'. 18:37:49 -!- ejs [n=eugen@91.124.236.87] has quit [Read error: 131 (Connection reset by peer)] 18:38:22 Riastradh, I guess a lot of your code is about working despite crazy multiple-entries that may happen. 18:38:45 I hardly consider myself qualified to do that, Riastradh. 18:38:47 No, not really. If you try to tell Scheme to take responsibility for the same file descriptor twice, it will barf. 18:39:04 You're trying to enforce system-required invariants on the scheme side. 18:39:06 (See the call to ERROR (which should probably happen outside the mutex-locked region) in INITIALIZE-FILE-DESCRIPTOR!.) 18:39:10 Not sure what "renumber-file-descriptor" is supposed to do though. 18:39:15 synx: dup2 18:39:27 synx, model dup, etc. 18:39:42 ohh gotcha. 18:39:55 so it's a lambda that dups the descriptor... yeah 18:40:01 Riastradh, I wonder what happens if I open /proc/self/fd/6 with your thing... 18:40:31 Fare, well, if you wrap open(2) the obvious way using this file descriptor scheme, then it will barf on itself. 18:41:04 Does that thing share flags (like O_ASYNC) with the original? 18:41:14 Huh? 18:41:26 barf on itself? 18:41:35 Sorry, what? 18:41:39 Eww. 18:42:07 call-with-file-descriptor-number doesn't make sense either... is it just trying to keep scheme from optimizing file-descriptor out from being collected too early? 18:42:15 Yes, synx. 18:42:53 Seems an odd way to do it. I'd at least abstract that out to something like (with-protected-thingy file-descriptor ...) 18:42:56 It guarantees that, for the dynamic extent of RECEIVER, Scheme will not close the file descriptor, even if its record in Scheme ceases to be otherwise referenced. 18:43:26 That is, Scheme will not automatically close the file descriptor. 18:43:41 Still seems like you could parameterize that or something, dynamic wind messes up tail recursion and all... 18:43:51 Why are you concerned with that? 18:44:02 DYNAMIC-WIND doesn't `mess up' tail recursion; it just performs a non-tail call. 18:44:05 saccade [n=saccade@65-116-131-218.dia.static.qwest.net] has joined #scheme 18:45:03 If I want to iterate through a bunch of file descriptors and do something with their number, that's less efficient because it'd put them all onto the stack. I suppose it would never become an issue though, since those things are just a few integers... 18:45:51 Riastradh, uh, couldn't dynamic-wind perform tail calls, with appropriate continuation marks? 18:46:10 If you're really concerned about that, you could lift it to an operation on a list of file descriptors that maps it to a list of file descriptor numbers. 18:46:16 Fare, not really, no. 18:47:08 I suppose it only makes sense if you knew somehow how to combine and merge the init/final functions. 18:47:27 (as you know if it's only about updating some parameter) 18:47:56 What good would that do? Instead of two frames, each with two procedures apiece, you have one frame, each with two pairs of procedures (composed) apiece. 18:48:08 well, if the composition yields simplification, it's a win 18:48:34 but in general it won't -- unless the composer understands what it's composing. 18:49:02 Anyway, that issue (if it is an issue at all) is peripheral to the point of the code. 18:49:03 might be an interesting thing to hack -- a specializable composer. 18:49:46 it is -- the point is that enforcing through proper language abstraction the invariants that the OS requires is darn hard. 18:50:18 I'm not sure that it is required, though. In other languages, you're on your own if you break the system-required invariants. 18:50:26 and people can still be productive. 18:50:37 and not have to pay the cost of enforcement. 18:50:39 But other languages don't have REPLs. 18:50:50 C has a REPL, for gossake 18:51:17 I want to be in the middle of a horrible hairy computation which stumbles across a bug, and I want to say `Darn! ^G, get me back to the top level!' -- and I want Scheme not to leak file descriptors (database connections, malloced memory, &c.) when I do that. 18:51:38 Riastradh, I'm not saying what you want is bad -- I want it too. 18:51:48 And the code I wrote to deal with file descriptors implements that. 18:51:52 I'm just saying it's not NECESSARY to get the ball rolling. 18:52:16 just darn useful to have afterwards. 18:52:23 Sure -- the ball began to roll with all the other stuff I wrote to make DEFINE-C work. 18:52:34 Riastradh, is it portable? 18:53:32 I won't claim that it is easy to make this code run on Scheme systems other than Scheme48. I will claim, however, that the *concept* is portable, so that, although it would take a good deal of external work, porting this system to most other Scheme systems would not require changing them internally if they already have anything remotely resembling an FFI. 18:54:54 I agree. Though your FFI looks like it relies heavily on being able to generate C code that will be linked dynamically into the application. 18:54:57 (The current implementation is also a bit of a mess and needs to be cleaned up a great deal -- but I think the concept and the language is sound.) 18:55:04 Linked dynamically? No, not necessarily. 18:55:34 -!- ve [n=a@94-193-95-252.zone7.bethere.co.uk] has quit [Read error: 60 (Operation timed out)] 18:55:47 ve [n=a@94-193-95-252.zone7.bethere.co.uk] has joined #scheme 18:56:02 It does require having a C compiler handy, and being able to link against C libraries -- just like writing any C program using those libraries requires. 18:57:39 Whether the linking happens statically or dynamically, or whether the libraries are dynamically loaded when the Scheme code is loaded, is up to the implementation. 18:58:28 -!- TR2N [i=email@89-180-200-220.net.novis.pt] has quit [Read error: 60 (Operation timed out)] 18:58:36 TR2N [i=email@89-180-183-180.net.novis.pt] has joined #scheme 18:59:06 -!- leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has quit [] 18:59:27 makes sense. 19:03:28 -!- ve [n=a@94-193-95-252.zone7.bethere.co.uk] has quit [Operation timed out] 19:03:45 CFFI has the advantage of trying to do just one job: allowing Lisp to call vanilla C code that knows nothing of Lisp. 19:03:52 That makes it, comparatively speaking, simple. 19:04:19 I don't think CFFI is any more or less simple than the system that my recent paste is an example of. 19:04:26 SRFI-50, OTOH, mostly tries to allow you to write portable C code that looks like Scheme to a Scheme implementation 19:04:29 ...which does that too. 19:05:14 But I am glad to see you are using the BSD license now. 19:05:26 CFFI also uses strictly less information, and is strictly less C-wise portable, than my system, because it doesn't use the C compiler (except for grovelling); instead it makes, or relies on the Lisp system to make, many more assumptions about how C code works internally. 19:05:49 Just so. 19:06:02 Ergo, such glue is not portable from one C environment to another. 19:06:24 And it's also non-trivial to implement atop, say, a Scheme system with a SRFI-50-style FFI. 19:06:36 `It' being CFFI, that is. 19:07:06 As the manual puts it, the fence around the unsafe code is extended outward into Lisp code, rather than being entirely in C. 19:08:06 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 19:10:26 emma [n=a59bcafe@gateway/web/flash/eris.tuxhacker.org/x-czyqgnngjlzmoywe] has joined #scheme 19:14:15 jcowan, this is not really escapable 19:14:26 if you call C code, bad things may happen. 19:14:39 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 19:15:41 like, race conditions, writing at the wrong place in memory, double-free, weird signal behaviour, etc. 19:15:54 you can't magically make the bad things disappear. 19:15:58 Yes, I'm not explaining clearly. 19:16:04 Race conditions happen in Scheme too, whether or not C is involved... 19:16:22 At some point, the programmer has to write his program correctly. 19:16:35 You can't shield the programmer from himself 19:16:59 (as do writing to the wrong place in memory -- (SET-CDR! (VECTOR ...) ...) --, interacting with the bogosity of signals, bugs in object finalization procedures, &c.) 19:18:45 -!- Pepe__ [n=ppjet@mna75-4-82-225-76-148.fbx.proxad.net] has quit [Read error: 113 (No route to host)] 19:19:13 -!- saccade [n=saccade@65-116-131-218.dia.static.qwest.net] has quit ["This computer has gone to sleep"] 19:21:06 Yes, of course you can't escape *all* bugs. But when you write your glue in C (as SWIG does), the glue layer is being counted on to provide a safe interface to the unsafe stuff below. 19:21:57 hotblack23 [n=jh@p5B055FFB.dip.t-dialin.net] has joined #scheme 19:21:59 If you call yn() from the HLL, the glue layer is expected to accept the HLL definition of numbers and arrange to pass the first arg as a C double and the second as a C int. 19:22:36 But in a CFFI environment, getting the translation right is up to the Lisp programmer (or some Lisp programmer), because it's all done on the Lisp side. 19:23:00 I have math.h on the brain now 19:23:38 an arbitrary lisp programmer! 19:23:40 jcowan, someone somewhere has to do the conversion 19:24:08 whichever "side" of the FFI it is, it better be on the other side of the wrapped library API indeed. 19:24:36 but making that side "Lisp" or "C" is irrelevant to whoever uses the exported API 19:24:38 Yes. But it's a fundamental choice that leads to very different kinds of FFIs. 19:25:27 Only once the work is done. If you have a shiny new C library that you want your Lisp code to interface with, it matters very much whether you can just write some stylized Lisp, or whether you have to embark on the adventure of C programming. 19:25:38 -!- reprore [n=reprore@116.82.73.92] has quit [Remote closed the connection] 19:25:48 jcowan, sure -- what do you propose? 19:26:13 abstracting that away with another layer of pre-scheme? 19:26:18 I think the CFFI style is much superior and easier to interface to random Schemes, though if they are committed to the other style it will have to be in parallel rather than on top of. 19:26:50 SWIG exists because C glue is so hard and boring to write by hand. Lisp glue is still boring, but not nearly as hard. 19:27:14 s/on top of/on top of it 19:27:15 If there's an irreconciliable difference, I'd still rather have 2 CFFIs, one for each style, than N CFFIs, one per implementation. 19:27:23 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 19:27:30 especially since Lisp glue can be macro'ed away. 19:27:51 Sure. I gather that CFFI is mostly on top of existing FFIs, though I haven't looked at its implementation. 19:28:08 -!- SvekloB [n=sveklo@unaffiliated/sveklo] has quit [Read error: 145 (Connection timed out)] 19:28:10 it is on top of each CL's existing FFI. 19:28:15 I also think that it will be much easier to standardize a CFFI-style system than a SRFI-50 one. There are reasons that SRFI-50 failed. 19:28:16 The interface that my paste demonstrates doesn't require any knowledge of any ABIs, by the way. 19:28:26 Not so of CFFI. 19:28:29 True. 19:28:31 though it's been seen that CL implementations have modified/fixed their FFI for CFFI 19:28:37 As I say, I haven't looked at it yet. 19:28:50 Riastradh: Your paste seems to make certain assumptions about the Scheme side of things, though. 19:28:57 What assumptions, chandler? 19:29:05 And I think it's possible to implement CFFI through something like LLVM. 19:29:35 Oh, I think I missed the `c-alien-pointer' thing the first time through. 19:29:58 When I last looked at the LLVM, it appeared to be useless for calling from programs, rather than invoking in separate processes. 19:30:26 It's quite possible to have it JIT a generated program at runtime, and call the result. 19:30:38 It's been possible for quite some time, as a matter of fact. 19:30:38 SvekloB [n=sveklo@unaffiliated/sveklo] has joined #scheme 19:30:45 Riastradh, is it a guarantee that no-op won't be optimized? 19:30:49 Anyway, the LLVM is *hardly* anything I'd want to mention in a standard! 19:31:00 Fare, that's the point of NO-OP. 19:31:22 I wouldn't want to mention it either, but my point is that the Lisp/Scheme itself does not need to know layout information itself; there are ways of outsourcing that, just as you're doing by relying on the presence of a C compiler. 19:31:53 chandler, moreover, the LLVM is a much more indirect way to get at the information. My goal is to make it possible for a Scheme programmer to get at C libraries just like a C programmer would, except in Scheme. 19:32:33 To really do that right, you *need* something like Swig's C parser. 19:32:43 What? 19:32:47 No C compiler will preserve important information that is eaten by cpp. 19:32:56 Sure it will. 19:33:03 In what way? 19:33:12 In compiling C code that uses that information. 19:33:22 Ah, I think I see. 19:33:34 *jcowan* goes off to try to read Riastradh's paste before wasting more time discussing the unread. 19:34:02 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:34:17 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 19:34:20 Riastradh, ECL and Chicken have FFIs in style similar to yours, I believe. 19:34:32 Yes, Fare, only, if I may say so myself, not as good. 19:35:29 what about Goo? 19:35:39 Wl, Wt abt G? 19:35:40 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit ["Verlassend"] 19:36:04 I dn knw mc abt G; 'v nvr lkd mc nt t. 19:37:05 -!- Fare [n=Fare@ita4fw1.itasoftware.com] has quit ["Leaving"] 19:37:05 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:37:24 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 19:37:25 Riastradh: LLVM is not necessarily an indirect way of getting at the information, if you use it to generate accessor methods with a fixed number of signatures. The advantage of this approach is that you can use it to build an interface to a foreign library without assuming that a C compiler is available, header files for the library are available, you can even correctly figure out how to call the compiler at all, etc. 19:37:35 It also works much more smoothly for interpreted code. 19:37:45 What do you mean `without assuming that a C compiler is available'? What is the LLVM serving as, then? 19:38:52 It replaces the functionality you're getting from the C compiler, but it's not a C compiler. 19:41:33 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:44:02 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 19:44:59 -!- sstrickl [n=sstrickl@nomad.ccs.neu.edu] has quit [] 19:46:00 mmc [n=mima@89.27.122.78] has joined #scheme 19:49:02 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:49:17 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 19:50:20 jcowan, by the way, if you read the codeand have questions, please don't hesitate to ask -- a lot of it is not obvious at all. 19:50:24 `code and' 19:50:25 *jcowan* nods. 19:51:33 OT: all Gnome-specific programs (like evince, gedit, file-roller) have stopped working on my Ubuntu system -- they hang at startup. A reboot cures this briefly, but only briefly. KDE analogues work fine. Any guesses, anyone? 19:51:52 dbus failure? 19:51:56 Demons of the nasal variety. 19:52:18 Reboot, log in on console, nuke /tmp, reboot again. 19:52:26 gconf maybe 19:53:20 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:53:55 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 19:53:57 Three instances of dbus-daemon are running, one with --system, two with --fork --print-address K --print-pid J --session, with different J and K 19:53:59 jcowan: what about gtk specific? 19:54:08 Firefox works, fwtw 19:55:05 gconf not installed 19:55:13 for what the win? 19:55:13 I'll try chandler's method 19:55:28 for what that's worth 19:55:29 -!- jcowan [n=jcowan@72.14.228.129] has quit [Remote closed the connection] 19:55:39 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 19:55:39 Be glad I gave you that spell, and not the one involving goat blood. 19:56:06 mabes [n=mabes@66.236.74.194] has joined #scheme 19:57:01 Come, now, isn't anyone thoroughly confused by that file descriptor code, or is it actually clearer than I thought? 19:58:07 ASau [n=user@83.237.167.118] has joined #scheme 20:00:37 -!- emma [n=a59bcafe@gateway/web/flash/eris.tuxhacker.org/x-czyqgnngjlzmoywe] has quit [Remote closed the connection] 20:02:22 jcowan [n=jcowan@72.14.228.129] has joined #scheme 20:04:23 -!- ASau [n=user@83.237.167.118] has quit [Read error: 131 (Connection reset by peer)] 20:04:24 I would have expected `guarantee-file-descriptor-number' to actually test that the fd was an open descriptor. The calls to `dup' and `dup2' also seem to be missing some validation. 20:05:07 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:05:50 Test by doing something like fcntl with an effect-free command, you mean? 20:05:56 Yes. 20:06:19 By validation, I mean that it doesn't look like anything good will happen if `dup' or `dup2' returns -1 right now. 20:06:41 What happens if dup or dup2 returns -1 is that an error will be signalled if appropriate. 20:07:04 Where does that happen? 20:07:17 It may not be appropriate: dup or dup2 might be returning EINTR, in which case it may be more appropriate to deliver Scheme interrupts and restart the system call. 20:07:42 That happens in DEFINE-UNIX-VOID-SYSCALL[*]. 20:07:52 Ah. 20:08:37 Quite a lot happens in those, for a particular reason: different Scheme systems want to handle interrupted system calls in different ways. 20:08:52 That makes sense. 20:09:21 That's actually one of the few parts of this system that I have written any documentation about. 20:09:24 What is a tail-weak-integer-hash-map? 20:09:24 -!- mmc [n=mima@89.27.122.78] has quit [Read error: 145 (Connection timed out)] 20:10:02 I expect it to be what it says on the tin: a tail-weak map between integers and some other kind of objects. 20:10:10 jcowan, it is a hash map keyed by integers in which associations have only weak references to the keys' associated data. 20:10:21 In this case, the keys are file descriptor numbers, and the data are file descriptor records. 20:11:22 Ah, so "tail-weak" means that the value is weakly referenced? 20:11:29 I assume that when the value is reaped, the assocation itself is reaped as well? 20:11:44 Yes, jcowan. And `Head-weak' means that the key is weakly referenced. 20:11:53 That's typical of weak hash tables. 20:12:06 chandler, well, that's the intent. In the current implementation for Scheme48, that's not the case, but that's a minor bug. 20:12:11 mmc [n=mima@89.27.122.78] has joined #scheme 20:12:43 jcowan: It is, but Riastradh's careful phrasing led me to believe that it might not be the case. 20:13:14 Riastradh: There aren't any race conditions here that jump out at me. 20:13:49 (In the current implementation, though, you can't distinguish in a (non-abstraction-violating) program the difference between a key whose associated datum has been destroyed, and a key with no association datum.) 20:14:04 (So the bug is just a minor space leak.) 20:14:18 For that matter, a weak array would suffice, given the constraints on fds. 20:14:30 *jcowan* hopes Schemes have soft references eventually. 20:14:39 Sure. I didn't have a convenient weak array data structure handy, though. 20:14:46 (It is possible to distinguish if the space leak becomes fatal, in just the same way that it's possible to distinguish an implementation whose closures incorrectly retains the value of non-closed-over variables.) 20:15:10 Yes, chandler, but at that point, you have much greater concerns, because you have far more file descriptors open than most operating systems are willing to handle. 20:15:37 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 20:15:41 For that matter, it's possible to distinguish Chicken tail recursion from *proper* tail recursion. 20:15:46 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:15:48 What? 20:15:51 How so? 20:16:11 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 20:16:19 By creating a Scheme procedure that binds a honking number of variables. 20:16:25 I would like to believe that operating systems will eventually lift the absurdly low limit on the number of open file descriptors per process, but my hopes are not high. 20:16:25 If there is a way, that's a bug in Chicken. 20:16:48 jcowan, how does that break proper tail recursion? 20:17:00 jcowan: Where "honking" is enough to cause C stack exhaustion? 20:17:15 Yes. 20:17:37 It's a bug, but I'm not sure it's specifically a proper tail recursion bug. 20:17:42 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:17:49 That's only because Chicken has a somewhat poor stack overflow heuristic. 20:17:52 Or rather, more than half that size, so that when the procedure calls itself, it breaks. 20:17:56 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:18:43 In any case, that doesn't break proper tail recursion. If that happens, you simply exceeded an implementation limit, just like allocating a vector too large to fit in memory. 20:19:50 chandler, by the way, when you said that you saw no race conditions, what processes were you considering races between? I think I may have forgotten to mention that. 20:20:39 BTW, I have abandoned the notion of feature groups: I find that modules can do the work, given a magic "root module". 20:21:57 Riastradh: Between Scheme processes. My understanding of the intent of the API is that Scheme takes ownership of the file descriptor; thus, I was not considering cases where C interrupts Scheme and closes a file descriptor that Scheme had decided to own. 20:23:07 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 20:23:08 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:23:13 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:24:54 -!- attila_lendvai [n=ati@catv-89-134-66-153.catv.broadband.hu] has quit [Read error: 110 (Connection timed out)] 20:26:19 leppie [n=lolcow@196-210-146-156-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 20:26:28 Interesting. 20:26:58 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:27:18 Yes, you correctly ascertained the intent of the API. It occurred to me, though, that hash maps need to be interrupt-safe for this to be any good. 20:27:20 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:28:41 Well, that's not too onerous a burden. 20:29:55 -!- SvekloB [n=sveklo@unaffiliated/sveklo] has quit [Connection timed out] 20:30:13 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:30:33 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:31:31 The races that I'm really concerned about, by the way, are between the *user*, interrupting Scheme to return to the top-level REPL, and the program trying to do work with file descriptors. 20:32:00 SvekloB [n=sveklo@unaffiliated/sveklo] has joined #scheme 20:33:00 That's a hard problem in general; you need to make sure that you can't get interrupted between when the `dup' system call returns, and when the C function returns its value to the user. 20:33:07 Otherwise, you might leak a file descriptor. 20:33:15 Almost. 20:33:50 You need to make sure that the write to the alien holding the file descriptor (an alien is a Scheme object with storage reserved for a C object) happens before control returns to Scheme. 20:34:10 Are interrupts masked during the foreign call? 20:35:09 Signal handlers can't do anything interesting during the C code -- which is the case in C anyway. 20:35:14 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:36:33 So the path from `new_fd = (dup (fd))' to `(*fd_pointer) = new_fd' (provided that new_fd be a file descriptor, not -1) is atomic, and, by fiat of the interface language for any of its implementations, so is the path from `(*fd_pointer) = new_fd' to whatever updates the actual alien itself, if there is any indirection. 20:36:34 The law that POSIX makes is not necessarily the law that everyone follows. How does Scheme48 handle non-local control transfers resulting from interrupts, anyway? 20:36:47 Scheme48's signal handlers don't do anything interesting. 20:37:08 Interrupt processing happens outside of signal handlers. 20:37:40 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:37:56 For implementations that do anything interesting in signal handlers (in violation of the C and POSIX standards), they will have to block whatever signals they have interesting handlers for, during the foreign C code in DEFINE-C or DEFINE-UNIX-UINT-SYSCALL &c. 20:39:32 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:39:44 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:44:38 Scheme48's signal handlers just bump counters and set flags, which the virtual machine periodically polls along with its stack checks. Pretty much the same is true in, e.g., MIT Scheme. Of course, if a system call is interrupted, it tells you so; at that point you can poll too... 20:44:46 ...which is part of what DEFINE-UNIX-UINT-SYSCALL[*] &c. do. 20:45:52 I'm adding a cond-expand flag that says "Except in the transcendental functions, operations on exact arguments always produce exact results." 20:46:43 Tentatively I call this EXACTNESS-PRESERVING, but this is rather verbose. Anyone have a shorter/better idea? 20:47:47 -!- SvekloB [n=sveklo@unaffiliated/sveklo] has quit [Remote closed the connection] 20:48:10 jcowan, incidentally, in this file descriptor code, `finalizers' are head-weak maps. 20:50:20 SvekloB [n=sveklo@213.243.181.131] has joined #scheme 20:52:55 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 131 (Connection reset by peer)] 20:57:03 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 20:57:22 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 20:58:51 -!- chturne [n=charles@host86-128-42-143.range86-128.btcentralplus.com] has quit [Remote closed the connection] 20:59:56 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 21:01:02 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 21:03:35 -!- patmaddox [n=patmaddo@dsl081-087-111.lax1.dsl.speakeasy.net] has quit [Remote closed the connection] 21:08:08 arcfide [n=arcfide@adsl-99-137-202-225.dsl.bltnin.sbcglobal.net] has joined #scheme 21:09:35 haesbaert [n=haesbaer@201.54.129.16] has joined #scheme 21:09:56 -!- haesbaert [n=haesbaer@201.54.129.16] has quit [Client Quit] 21:13:03 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:13:09 So does CL actually lack the phasing problem, or does it just sweep it under the rug like the hygiene problem ("can't happen here, to us") 21:13:13 ? 21:13:17 Ha! 21:13:23 It is thoroughly afflicted by phases. 21:13:38 The affliction is spelled E-V-A-L-hyphen-W-H-E-N. 21:14:15 But that only reveals a finite number of phases, whereas the number is in fact unbounded. 21:14:26 Yes. 21:14:29 (functions called by macros appearing in functions called by macros)* 21:18:02 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 21:18:22 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 21:20:00 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:22:29 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 21:24:04 *jcowan* wonders why R6RS has string-for-each but not string-map. 21:25:26 -!- choas [n=lars@p5B0DCB9D.dip.t-dialin.net] has quit ["leaving"] 21:26:58 I doubt whether there's any particular reason. 21:28:53 Consistency is good. 21:29:14 That must mean it's time to pour the batter into the cake tin and bung it in the oven! 21:29:34 I don't want you to bing any of my cake, gnomon. I like my cake; I don't want it binged! 21:30:56 Okay, so the idea with this is that (in simplest terms) the definitions that have c-* forms are translated to C and compiled, whereas the others aren't. The begin-c-stub and end-c-stub specify the limits of the C file being produced. 21:31:20 Sure. 21:31:43 -!- arcfide [n=arcfide@adsl-99-137-202-225.dsl.bltnin.sbcglobal.net] has left #scheme 21:33:17 Here is what I began to write for an introduction to it: < 21:33:22 ...yikes. 21:33:43 Thanks, irssi. I don't know what five lines you thought I was about to paste, but I certainly didn't want to paste them. 21:33:51 -!- SvekloB [n=sveklo@unaffiliated/sveklo] has quit ["Leaving..."] 21:34:10 , so named because what it presently contains was meant to be the introduction section of a reference manual. 21:38:26 -!- borism_ [n=boris@195.50.215.32] has quit [Read error: 145 (Connection timed out)] 21:41:08 arcfide [n=arcfide@adsl-99-137-202-225.dsl.bltnin.sbcglobal.net] has joined #scheme 21:41:45 *jcowan* grumbles that Riastradh should have shown him that first. 21:42:28 incubot: press Ctrl-K to paste 21:42:32 pasted "building mzscheme 370" at http://paste.lisp.org/display/44590 21:42:43 I didn't show you that first because I forgot that I had it. 21:45:11 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:45:30 *Riastradh* puts a warning notice at the top. 21:45:37 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 21:49:02 *jcowan* magnanimously forgives Riastradh. 21:49:28 *jcowan* writes his reply to arcfide's lengthy screed. 21:53:13 jcowan: Screed? 21:54:11 peter_12 [n=peter_12@S01060024016bb36c.gv.shawcable.net] has joined #scheme 21:55:03 which mailing list is used to discuss r7rs? 21:55:19 i.e. where do I sign up? 21:55:32 r6rs-discuss@r6rs.org at present. 21:56:07 arcfide: SCREED n. sense 2a (in part) lengthy discourse or harangue --OED 21:56:08 peter_12: Beware. Best you read the archives first. If you can survive that, then maybe you can survive it. 21:56:18 Skim the archives, rather. 21:56:36 If you can tolerate discourse of that style, then go for it. 21:56:43 jcowan: Skim? I don't think the impressions will be had with just a skimming. 21:56:54 Reading them all is a painful punishment, even though I've imposed it on myself. 21:56:55 jcowan: The useless, largely hot air type discourses? 21:57:00 *jcowan* , Penitente 21:57:30 jcowan: thanks 21:57:39 Well, Messrs. Bear and Harvey have convinced me between them that conditional import is necessary in some cases, and I wouldn't have expected any enlightenment from them. 21:58:12 Ack!! 21:58:24 jcowan: Conditional import? You mean, the ability to import a library only some times? 21:58:29 Yes. 21:58:35 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 21:58:40 Presumably depending on some such feature or another? 21:58:43 Yes. 21:58:57 Or anything, really, given low-level macros. 21:59:11 *arcfide* grumbles something about syntactic modules.... 21:59:11 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 21:59:26 What's your grumble? That in this point, at least, I now agree with you? 21:59:40 dmoerner [n=dmr@134.173.91.168] has joined #scheme 21:59:58 I'm a simple fellow; I like concrete examples, not IWBNIs. 22:00:41 jcowan: Hahah, no, just that these types of issues wouldn't come up if it were already possible to do this for most systems....On the other hand, conditional include is possible in most systems right now, I think. 22:00:53 jcowan: That was badly worded. 22:01:15 I'm getting the impression lately that the Scheme community makes things way to complicated for itself 22:01:16 So: Are you folks trying to innovate up a new language, or are you trying to formalize something to make it possible to write useful code usable on multiple Scheme systems? 22:01:41 From what I have seen on the mailing list, innovating up a new language appears to be the sole point. 22:02:06 I wish that this would be more clearly acknowledged, though. 22:02:13 arcfide: I thought conditional include was enough, but I was persuaded it wasn't by the example "If we have Posix, we can use the database module, otherwise we must work around it (but only need to bypass the tiny bit of its interface that we need). 22:02:18 Riastradh: If you take the mailing list, most of the voices seem to think that way, yes. I hope that neither Jcown or I have moved that direction. Though, depending on who is speaking, we're the crazies. 22:02:19 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 22:02:29 arcfide, both you and jcowan appear to be thoroughly focussed on innovating up a new language. 22:02:47 Well, I focus on innovation because that's the hard part. 22:03:01 jcowan: Innovation and standardization don't go together. 22:03:03 I start with R5RS, discard a tiny bit, add some SRFIs, and the rest of the work is figuring out what else is needed. 22:03:13 Riastradh: I haven't suggested anything that isn't already implemented in existing Scheme systems. 22:03:15 I don't see any discussion of `Here's how foo would work on multiple existing Scheme systems, and how it would be useful to people using those Scheme systems.' 22:03:17 arcfide: In general I agree absolutely. But since the SC wants modules, they must have them. 22:03:36 Riastradh: "Existing code matters. Existing implementations do not." --the ANSI C committee 22:03:39 arcfide, you are taking the *union* of what is implemented, not anything remotely resembling an intersection. 22:04:52 Riastradh: From what I can see, intersection of many of these things is essentially the empty set. 22:05:04 That's why I said `remotely resembling an intersection'. 22:05:50 `There exists at least one Scheme system that provides this feature' (e.g., syntactic modules) is nothing close to `Here is an approach that works well with *multiple* different implementations that are wildly different.' 22:06:14 -!- albacker [n=eni@unaffiliated/enyx] has quit ["Leaving"] 22:06:48 But you also entirely discount R6RS Scheme implementations. The proposal I made does in fact have both syntactic compatibility with existing systems, and the code already written using the old system would work as well. 22:07:12 The r6rs mailing list archive indicates a very small group of people contributing to the list but very active. Is the future of Scheme really in the hands of just a few people? 22:07:14 jcowan, well, this isn't C, and existing implementations do very much matter, as well as existing code. The existing implementations are not going to fall over and forget their module systems in favour of whatever the next Scheme report describes. 22:07:59 Riastradh: Indeed, but that's probably true for just about any module system you can devise. 22:08:09 arcfide, you can turn `one' into `two' in my above sentence, in the first quotation, or even `three', but you've still ignored my second quotation. 22:08:09 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 54 (Connection reset by peer)] 22:08:35 ASau [n=user@83.237.167.118] has joined #scheme 22:08:37 arcfide, then clearly you haven't spent much time devising module systems. 22:09:06 peter_12: The future of Scheme is not in the hands of any of those people, unless they apply for membership on a WG and grant it. And even then, that is only the future of the Scheme standard, not of Scheme itself. 22:09:39 jcowan: that seems terrible 22:09:39 What frustrates me is the attitude that existing implementations don't matter, as if it the thorough rejection of the R6RS by all but three existing Scheme systems (to my knowledge) doesn't matter, as if this process *weren't* actually a reaction to that catastrophe and an attempt to do better. 22:10:01 Riastradh: What module system do you have in mind that you think all existing Schemes would implement and would use instead of their other module systems? The latter is important, in my opinion, because other wise, it doesn't serve its purpose. 22:10:13 And as if the diversity of approaches weren't a worthwhile strength of Scheme. 22:10:19 arcfide, a subset of Scheme48's. 22:10:29 ...sorry, I didn't read carefully enough. 22:10:38 I don't expect any Scheme system to *replace* their module system! 22:13:01 Any links available to what it means to be "a scheme"? I'd think complying to one of the RnRS standards would not be the only way to deserve the name "Scheme" as even SICP has "lazy Scheme". 22:13:40 I have a fairly simple idea: If I write some portable Scheme code, I ought to be able to write a description of what this Scheme code needs and provides, so that I can throw it at any Scheme system that satisfies its needs and run it there -- and use it there, and call it from code peculiar to that Scheme system, and otherwise do useful things with it, even beyond just isolating it into a portable world like the mistakes of SLIB 22:14:20 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 22:15:27 "mistakes of SLI"... 22:15:31 ...of SLIB and Snow. 22:15:40 Riastradh: was that directed at me? 22:16:14 Mostly at arcfide, peter_12, but more generally to anyone who is discussing a module system for Scheme. 22:16:22 ahh ok 22:16:24 (or discussing the next Scheme report, or whatever) 22:16:37 peter_12: "Scheme" is a fuzzy category, like "worm"; generally we know one when we see one. 22:17:04 seems like for marketing avoiding the name "Scheme" would be a good idea these days 22:17:43 Heck, if I have to write that description in RDF Turtle, I'd be happy (if somewhat grumpy about not being able to edit it in paredit). What I'm not happy about is attempts to render `portable code' nonportable by decorating it with R6RS-specific (or R7RS-specific) library annotations, or attempts to integrate it more deeply into the language so that it fails to work in several existing Scheme systems which already have legitimat 22:18:09 "legitima"... 22:18:17 ...legitimate and useful module systems. 22:18:30 Riastradh: So, either you are targeting Schemes that will load this automatically, in which case, R6RS libraries are sufficient to do this, or, you want to somehow also target Scheme's that may not nativelly support the module language, in which case this need not be anything remotely tied to the Scheme system, such as Descot. 22:18:48 Riastradh: Then what's wrong with Descot? 22:18:51 Sorry, what is `this', and what do you mean by `targeting'? 22:19:14 -!- peter_12 [n=peter_12@S01060024016bb36c.gv.shawcable.net] has quit [] 22:19:37 By "this" I mean the Scheme code you want to describe, and by targeting, I mean, that you aim this to be useful to. 22:19:56 I am targeting ANYONE who wants to write portable Scheme code to run on ANY Scheme system! 22:20:12 Riastradh: Descot is essentially a meta language about Scheme code, how to get it, where to find it, &c. 22:20:42 And you don't have to use RDF Turtle. 22:21:08 If I've written some source code in some files in a directory, and I can add another file that says `the FOO component provides bindings for the names FROB, GROVEL, and ZOT, and syntactic bindings for QUUX, and is in the R256RS source file foo.scm and uses bindings from BAR; and the BAR component, &c.', then sure, perhaps Descot is an adequate language for the goal I want. 22:21:39 arcfide: Screed posted to the list. Do you want it as a blog comment too? 22:21:47 Riastradh: Yes, this is exactly what you can do. 22:21:56 jcowan: Your choice. 22:21:58 I Googled `Descot' and found a fairly empty-looking web page with a broken `Info' link to . 22:22:20 Riastradh: Yes, I am in the process of updating it with more information and real, useful source code. 22:22:37 Riastradh: School hit right about the time I was going to fix all the numerous problems there. 22:22:45 The Schema should still be there. 22:22:54 A bad thing, school. It ought to be abolished. 22:23:08 And I can send you the report that explains the SRDF format, so you can write the description using Paredit. 22:23:10 -!- zeroish [n=zeroish@135.207.174.50] has quit [Read error: 131 (Connection reset by peer)] 22:23:49 I have a Beta Version 1 of the code, but the Schema and the SRDF is all you need to write the Description files. 22:23:50 I don't really want it to be RDF, of course. For example, I want the names of components to be scoped, not global, so that there is the possibility of parametrization of some fashion. 22:25:09 So, can I just point Scheme48 at a Descot description, say `Load me up that Scheme stuff!', and then type `,open foo' at the REPL to get the bindings exported by the FOO component, as described in Descot? 22:25:14 Well, if you have suggestions for it, feel free to tell me, as I'm very willing to make it useful for this purpose. 22:26:06 Riastradh: I haven't written anything to do that with Scheme48, but you should be able to do this, the information is there, I think, if not, it should be. 22:26:43 OK, can I do it with Chez Scheme, then? 22:26:45 Or PLT Scheme? 22:27:18 I have been focusing on other parts of it, I haven't bothered with the machine loadability side yet. I could if you would be interested. 22:27:33 You could, of course, do this for all of them, though. 22:27:45 For instance, could you add a descot-chez.ttl file to in order to make it available to Chez? 22:28:01 Or at least a descot.ttl file, which then a chez.scm file could use to make it available to Chez? 22:28:10 (a descot.ttl file describing the portable components, that is) 22:28:39 More or less, yes, you could get that functionality. 22:28:59 Well, gosh! That sounds like it might just be useful, then, unlike a proposal to add syntactic modules to the next Scheme report. 22:29:45 Well, this is why I created Descot, to make it easier to share meta information about Scheme libraries, but I have been focusing on the interfaces between repositories sharing this information, not in what the client does with it once it has the package information. 22:29:46 -!- ASau [n=user@83.237.167.118] has quit [Read error: 131 (Connection reset by peer)] 22:30:07 We could add fexprs and first-class environments instead, per the latest r6rs-discuss posting. That would be the "conservative, incremental" thing to do. 22:30:17 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 22:30:25 jcowan: Indeed, and it would cure cancer, too! 22:32:05 Riastradh: Actually, though I might have to adjust some things, it should be fairly trivial to build appropriate module declarations, or load sequences, or whatever, from a descot file, for any given Scheme implementation. You idenitfy the Implementation for which the library is written in the meta-information, so you can just have a few different definitions for the implementation specific libraries you need for each Scheme 22:32:05 file. 22:32:50 arcfide: Blargh. Sorry for posting twice to your blog. 22:32:52 Loading up a TTL file into the Scheme48 system to get a FOO module might be a little more difficult, depending on whether I can produce modules on the fly, but you could certainly get the code available to you. 22:33:23 I don't care if it takes a little more work as long as it can be done nicely. 22:33:57 arcfide: Much of my response should be taken in the spirit of "I'm trying to improve your counterproposal to make it the best counterproposal possible." 22:33:57 Hah. fexprs and 1ces are now "conservative"! 22:34:16 Oh, I see jcowan has already boggled at that. 22:34:19 And I'm happy if I have to write `,load-descot http://mumble.net/~campbell/descot/scheme-cml' first, possibly with a pathname pointing at the Turtle or SRDF file or whatnot. 22:34:47 Depending on how that works, I see no reason that Scheme48 couldn't do that. 22:35:06 ...provided that there can be some similar operation in Chez Scheme, and PLT Scheme, &c. For example, in PLT Scheme, I'll want to be able to write (require (descot "http://mumble.net/~campbell/descot/scheme-cml")), maybe with a fragment of `plt' or something if necessary. 22:35:11 Yes. 22:35:37 I know this could be done for Chez Scheme, and I'm fairly sure that PLT wouldn't have any problems with it. 22:35:42 Now suppose you had done that for PLT Scheme and Chez Scheme, and I wanted to do it for Scheme48 myself. How do I do that? 22:35:55 Do what in particular? 22:36:17 Learn how to implement the Descot part of `,load-descot ...', provided that I know how to implement the Scheme48 part of that. 22:36:27 That is, I know how to hack Scheme48; how do I hack Descot? Where do I find it? 22:37:03 I can't find anything useful at . 22:37:08 chandler: They certainly are, if by "conservative" you mean "reactionary". 22:37:23 Basically, the process would be to create or generate the modules that Scheme48 would need based on the information provided by the Descot files. So, this would usually be a pretty straightforward mapping of the dependencies and the exports. 22:37:24 I figured out that it's supposed to be `about.xhtml', not `about.html', but that doesn't help me. 22:37:27 Where's the source code? 22:37:40 I can send you the current stuff that I have. 22:37:47 Is it publishable? 22:37:57 An old heavily commented version is on that site, but it's wrong. 22:38:02 Publishable? 22:38:16 Can it be exposed to the public? 22:38:17 sstrickl [n=sstrickl@pool-129-44-182-54.bos.east.verizon.net] has joined #scheme 22:38:22 jcowan: Sure. 22:38:30 Then it is publishable. 22:38:32 Are you comfortable putting it in a public place on the web, where someone other than yourself can download it and use it? 22:39:09 (A lot of my code is not publishable; for example, the stubber is not publishable yet, even though it works, for instance to run the file descriptor code I pasted a little while ago.) 22:39:31 Yes, I had intended to do this anyways, but I haven't had time to redo the website and make a really useable package. There are still some bugs with make files and the like. 22:40:12 It's a Beta, basically, but I want people to use it, play with it, break it, and such, so that it can really work in large scale. 22:40:29 Well, the prerequisite to that is publishing it so that people can do anything with it. 22:40:44 Yes. :-) 22:40:51 On that note, I have to go. 22:40:55 Do you want me to send it to you? 22:41:03 Why not just publish it? 22:41:07 If you want it up now, I can try to make a publishing of it. 22:41:16 Trying, honest! 22:41:31 There are now 14 standard modules, named bilbo, gandalf, balin, dwalin, ... 22:41:32 Anyways, I'll try to publish it. 22:42:07 All I mean by `publish' is `put on the web in a place to which the public has access'. E.g., I might upload a tarball to . 22:42:42 EleminoP [n=EleminoP@iub-vpn-193-136.noc.indiana.edu] has joined #scheme 22:45:54 I have finally caught up with all r6rs-discuss messages I wanted to respond to. 22:46:03 I can read quickly, but writing still takes an inordinate amount of time. 22:46:13 Time to stir the pot again. 22:49:06 -!- mabes [n=mabes@66.236.74.194] has quit [Remote closed the connection] 22:49:36 -!- phoenixi [n=tuomosa@a85-156-197-4.elisa-laajakaista.fi] has quit [] 22:51:35 -!- EleminoP [n=EleminoP@iub-vpn-193-136.noc.indiana.edu] has left #scheme 22:53:32 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 22:53:38 peter_12 [n=peter_12@24.69.39.114] has joined #scheme 22:53:56 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 22:55:08 Crud. Why must complex?, ..., integer? accept arbitrary arguments? 22:55:19 Because they're type predicates? 22:55:34 What would you prefer? 22:57:03 -!- hotblack23 [n=jh@p5B055FFB.dip.t-dialin.net] has quit ["Leaving."] 22:57:30 -!- Nshag [i=user@Mix-Orleans-106-2-116.w193-248.abo.wanadoo.fr] has quit ["Quitte"] 22:58:12 That number? accept any object, but that the rest accept any number. 22:58:33 But that's because I'm thinking like an implementer at the moment, not like a user. 22:59:47 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 23:00:49 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:02:42 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 23:05:10 patmaddox [n=patmaddo@64.81.87.111] has joined #scheme 23:10:31 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 23:13:36 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 23:14:56 RageOfThou [n=RageOfTh@users-38-209.vinet.ba] has joined #scheme 23:15:24 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)] 23:15:35 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 23:16:23 Riastradh: I'll see what I can get put together. Of course, you do have access to it publically already in the form of the Monotone VCS server. 23:20:06 -!- Baconizer [n=baconize@unaffiliated/baconizer] has quit [Read error: 110 (Connection timed out)] 23:20:09 -!- MrFahrenheit [n=RageOfTh@users-42-212.vinet.ba] has quit [Read error: 60 (Operation timed out)] 23:21:04 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Remote closed the connection] 23:21:22 ASau [n=user@83.237.167.118] has joined #scheme 23:22:09 I can't figure out how to do the following with a macro (it should either be easy or trivial): I want a special syntax for defining lambda expressions that automatically binds certain names to values with that lambda. Thus, (define-special (a) b ...) would become (define (a) (let ((foo 1) (bar 2)) b ...) where references to foo and bar in the b ... statements resolve to the ones bound in the define-special. Any help is appreciated. 23:22:21 (I meant easy or impossible, not easy or trivial) 23:31:16 zeroish [n=zeroish@135.207.174.50] has joined #scheme 23:32:13 -!- mmc [n=mima@89.27.122.78] has left #scheme 23:33:46 You cannot do that with standard R5RS syntax-rules macros, so you need either a non-standard (but widely available) low-level macro system, or else an R6RS system. 23:34:10 -!- jcowan [n=jcowan@72.14.228.129] has left #scheme 23:34:26 -!- RageOfThou [n=RageOfTh@users-38-209.vinet.ba] has quit [Read error: 104 (Connection reset by peer)] 23:36:11 -!- samth is now known as samth_away 23:37:42 -!- ASau [n=user@83.237.167.118] has quit [Read error: 131 (Connection reset by peer)] 23:38:20 ASau [n=user@83.237.167.118] has joined #scheme 23:39:31 Baconizer [n=baconize@unaffiliated/baconizer] has joined #scheme 23:39:55 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 23:41:34 jcowan: Thanks. Can you point me to an example of a low-level macro system? 23:53:12 jcowan: (and (number? x) (complex? x)) 23:53:17 -!- patmaddox [n=patmaddo@64.81.87.111] has quit [Remote closed the connection] 23:53:34 -!- ASau [n=user@83.237.167.118] has quit [Read error: 131 (Connection reset by peer)] 23:54:03 ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has joined #scheme 23:54:19 or (define (complex x) (and (number? x) (%complex x))) 23:54:24 arcfide, where at is there a link to any Monotone repository? 23:59:04 mabes [n=mabes@166.70.220.118] has joined #scheme 23:59:36 -!- ASau [n=user@ppp83-237-167-118.pppoe.mtu-net.ru] has quit [Read error: 104 (Connection reset by peer)]