00:01:48 synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has joined #scheme 00:15:57 schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 00:20:27 MrFahrenheit [n=RageOfTh@users-38-93.vinet.ba] has joined #scheme 00:28:19 -!- masm [n=masm@bl7-92-58.dsl.telepac.pt] has quit ["Leaving."] 00:31:14 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 00:41:33 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 00:45:38 QinGW [n=wangqing@203.86.89.226] has joined #scheme 00:47:48 -!- funkenblatt [n=user@adsl-69-238-246-201.dsl.pltn13.pacbell.net] has left #scheme 00:48:44 -!- MrFahrenheit [n=RageOfTh@users-38-93.vinet.ba] has quit [Read error: 60 (Operation timed out)] 00:49:16 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 00:53:47 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 00:59:17 -!- blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has quit [] 01:03:14 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 01:07:23 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 01:09:59 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 01:10:37 -!- attila_lendvai [n=ati@adsl-89-134-1-46.monradsl.monornet.hu] has quit [Read error: 60 (Operation timed out)] 01:10:54 -!- mrsolo [n=mrsolo@nat/yahoo/x-qxhcccbohyktpsst] has quit ["Leaving"] 01:20:29 Adamant [n=Adamant@unaffiliated/adamant] has joined #scheme 01:22:53 -!- jedc [n=jedc@c-67-171-246-227.hsd1.or.comcast.net] has quit [Read error: 110 (Connection timed out)] 01:28:12 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 01:30:01 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [] 01:30:44 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:47:51 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Connection timed out] 01:50:52 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 01:50:55 copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 01:51:06 mabes [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 01:54:50 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Remote closed the connection] 02:00:13 -!- arcfide [n=arcfide@adsl-99-14-211-93.dsl.bltnin.sbcglobal.net] has quit [Remote closed the connection] 02:00:30 arcfide [n=arcfide@adsl-99-14-211-93.dsl.bltnin.sbcglobal.net] has joined #scheme 02:01:32 I was thinking - someone should write a book about the SRFI's - that's where the Scheme action is. 02:07:00 jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has joined #scheme 02:07:52 OK so PLT's client-cookie lets you mess with the internals. Makes sense I guess, just in a bit of a weird place. 02:11:55 -!- eno__ [n=eno@70.137.152.199] has quit [Read error: 131 (Connection reset by peer)] 02:17:11 eno [n=eno@nslu2-linux/eno] has joined #scheme 02:18:10 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [] 02:20:29 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 02:28:07 jedc [n=jedc@c-67-171-246-227.hsd1.or.comcast.net] has joined #scheme 02:32:27 It loos like foof's fmt library does not work with my version 4.2 of plt-scheme. :( 02:35:29 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 02:38:16 CaptainMorgan [n=CaptainM@24.62.183.102] has joined #scheme 02:47:50 -!- arcfide [n=arcfide@adsl-99-14-211-93.dsl.bltnin.sbcglobal.net] has left #scheme 02:48:32 bill-hager: what's busted? 02:50:18 I'm just running the examples in the SRFI on v4.2.1 and so far all looks well 02:51:04 pumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 02:52:12 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 02:52:32 tjafk1 [n=timj@e176209191.adsl.alicedsl.de] has joined #scheme 02:52:47 *offby1* dimly recalls problems with it 02:56:45 jonrafkind [n=jon@98.202.86.149] has joined #scheme 03:01:32 schemer999 [n=tmilford@76.90.137.46] has joined #scheme 03:04:13 Makoryu [n=vt920@pool-74-104-123-150.bstnma.fios.verizon.net] has joined #scheme 03:05:43 Summermute66: it uses set-cdr! in conjunction with mzscheme which mzscheme no longer supports: http://docs.plt-scheme.org/mzscheme/index.html 03:07:31 Ah 03:08:21 -!- copumpkin [n=pumpkin@c-24-63-67-154.hsd1.nh.comcast.net] has quit [Read error: 113 (No route to host)] 03:09:47 -!- tjafk [n=timj@e176215168.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 03:21:31 -!- schemer999 [n=tmilford@76.90.137.46] has quit [] 03:24:49 As a Googler, I may have lost my sense of perspective. Is 64 MB in memory still considered a Pretty Big Data Structure? 03:26:50 bill-hager: The set-cdr!s in fmt are internal only, switching it to use mcons and set-mcdr! should be straightforward. 03:27:14 jcowan: Depends on how many of the data structure you intend to have in memory. 03:27:30 -!- nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 110 (Connection timed out)] 03:27:59 -!- sepult` [n=levgue@xdsl-87-78-26-158.netcologne.de] has quit [Remote closed the connection] 03:28:08 -!- CaptainMorgan [n=CaptainM@24.62.183.102] has quit [Remote closed the connection] 03:28:22 foof: Even if there's just one, then? 03:29:49 -!- pumpkin is now known as copumpkin 03:30:54 Is there any standard macro in one of the srfis/standard that does something to the effect of (do X Y) --> (if X X Y) 03:31:09 If there's just one it's big but not necessarily the end of the world. 03:31:57 -!- MononcQc [n=mononcqc@modemcable062.225-20-96.mc.videotron.ca] has quit ["DOWNLOADING NEXT VERSION OF INTERNET"] 03:32:49 Arelius`: No, but it's easy to write one 03:32:57 jcowan: sure enough 03:33:03 Note that there is already a "do" that means something different. 03:33:03 What would you call it 03:33:12 schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 03:33:22 also, 64MB is a large datastructure 03:33:23 I'd call it "or2". 03:33:44 Even in game development I rarely encounter a single data structure that large 03:34:05 Hmmm... top says most of my processes are <20MB, with a second tier at 300-500MB. 03:35:01 IOW, 2^24 (* 4 bytes) is a reasonable upper bound on array indices. 03:35:11 jcowan: What are you trying to store that is 64MB and what do you mean by "data-structure" 03:35:41 I'm not. I'm trying to establish that 2^24 is a reasonable upper bound for an array index, and an array is the most compact kind of data structure. 03:35:54 Mmm 03:36:03 So an array with more than 2^28 bytes isn't normal. 03:36:09 not -normal- 03:36:18 And anything equally large that isn't an array will have some overhead and will be even bigger. 03:36:20 But may exist. 03:36:25 But I -have- seen uncompressed textures larger then that 03:36:54 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 03:37:03 If someone were trying to build an Image editor in that system, That may cause problems 03:37:27 or RAW image analysis 03:37:55 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 03:38:10 Stuff with video 03:38:29 Well, I'm not saying that implementations are forbidden to have arrays bigger than that. 03:38:44 What's the context 03:41:25 Bear says that the problem with fixnum-to-flonum overflow (as chicken does, and as R5RS allows) is that the resulting flonum cannot be used as an index. I don't think this is a problem in practice. 03:42:02 Hmm 03:42:04 By the time a 24-bit fixnum (which is smaller than any actual Scheme fixnum) overflows, you are already out of array-index territory, mostly. 03:43:13 Hmm 03:43:17 I 03:43:31 I'm not actually a huge fan of fixnum->flonum overflow 03:43:53 but I haven't encountered a problem *yet* 03:44:20 Well, it means that the Scheme does arithmetic expressions in essentially constant time. You never get one of those horrible speed/space blowups as with exact ratios. 03:45:00 Ohh, I see what you mean 03:45:53 do we only have a gaurenteed 24-bit fixnum? 03:48:13 R6RS does. 03:48:54 R6RS (imho wrongly) exposes the fixnum/bignum distinction, whereas R5RS just notes that some systems may have hard limits on the largest exact integer, whereas other systems only have soft limits. 03:49:26 I'd like small-R7RS to be like R5RS but specify that if there are hard limits, they must be at least 24 bits wide. 03:54:04 The flonum can never be needed as an index in Chicken, because Chicken has a hard 2^24 limit on both strings and vectors. 03:54:16 ... which is _really_ annoying sometimes. 03:56:00 And it's particularly odd, since Chicken fixnums are either 31 or 63 bits. 03:57:55 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 03:58:31 what's the r6rs way for a define-record-type to overwrite what happens when I do (display foo); where foo is an object of type define-record-type bar ... 03:59:01 That's not the reason, the point is fitting the length into 3 bytes (I forget what the extra byte is used for). 03:59:04 -!- dmoerner [n=dmr@89-65.res.pomona.edu] has quit ["Leaving"] 03:59:27 Actually, I could've sworn the previous limit was 2^16. 03:59:42 optimizer: I think there is none. 04:00:59 what? 04:01:04 that must not be 04:02:21 *jcowan* snickers. 04:02:39 Join WG2 and get it fixed. Or join WG1 and get it fixed -- I hope. 04:02:52 screw this; I'm just goign to patch ypsilon scheme 04:02:58 committees are for those who talk 04:03:06 on irc and complain instead of coding 04:03:11 .... like myself 04:08:13 CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has joined #scheme 04:10:40 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 04:21:08 choas [n=lars@91.13.212.175] has joined #scheme 04:25:51 -!- foof [n=user@FL1-118-110-11-115.osk.mesh.ad.jp] has quit [Remote closed the connection] 04:26:01 foof [n=user@FL1-118-110-11-115.osk.mesh.ad.jp] has joined #scheme 04:30:16 addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has joined #scheme 04:46:45 Baconizer [n=baconize@unaffiliated/baconizer] has joined #scheme 04:56:01 What Scheme do most of you folk use? 04:56:20 I'm looking at Chicken right now, and I have PLT loaded up. 04:56:50 plt 04:57:03 okayz 04:57:05 thank you 04:57:46 ypsilon 05:00:33 mabes_ [n=mabes@bmabey.fttp.xmission.com] has joined #scheme 05:03:33 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 05:03:43 Are they all really that terribly different? 05:05:05 (If this is the equivalent of going to a LUG and telling everyone `I think all Linux distributions are the same,' I apologize, I'm new :P 05:07:34 They have quite different vendor libraries included, to say the least 05:07:59 Also, some of them (PLT, for example) come with own IDE. 05:08:28 Some are optimized for embedding the interpreter into other applications 05:08:47 -!- eli [n=eli@winooski.ccs.neu.edu] has left #scheme 05:08:53 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 05:09:12 mmc [n=mima@192.100.124.219] has joined #scheme 05:09:37 Baconizer: It's worse than your LUG example. 05:09:45 oh dear D: 05:09:53 MichaelRaskin: thanks. 05:10:32 Baconizer, I forgot to say: some implementations are compilers 05:11:03 I thought almost all implementations had an interpreter/compiler :S 05:11:03 hi 05:11:23 Yes, it's more like coming to a Unix-like UG and saying that OpenSolaris and DesktopBSD are not that different 05:11:53 Right before adding "They are both so like Linux" 05:12:29 Some have only compiler, some have only interpreter, the bravest have both. 05:14:02 some implementations come with fries; some don't 05:14:18 I'm looking for an X11 or SDL library, does anyone know if I can find that ? 05:15:46 -!- mabes_ [n=mabes@bmabey.fttp.xmission.com] has quit [Remote closed the connection] 05:16:27 -!- mabes [n=mabes@bmabey.fttp.xmission.com] has quit [Read error: 110 (Connection timed out)] 05:16:30 dunno what SDL is 05:16:43 I assume you're looking for _scheme bindings_ to such a library 05:16:54 yep 05:17:52 I don't know of any, but that doesn't mean much. 05:18:14 Pepe_: What implementation? 05:18:38 (?) 05:18:51 Pepe_: What Scheme implementation are you asking about? 05:18:53 currently on plt, but doesn't matter 05:18:53 Pepe_: which scheme do you use? 05:19:51 Pepe_: It matters a lot, since there is no such thing as "portable among schemes". 05:20:42 Pepe_: And in PLT, there is a library that talks to opengl, there is mred for gui stuff, and there is a planet library for Allegro (which is similar to sdl). 05:22:52 hum, I would prefer an X11 library more than SDL 05:24:03 I'll have a look to theses libraries anyway 05:25:13 What do you need it for? 05:26:30 I want to write something like xlock 05:27:39 -!- ASau [n=user@83.69.227.32] has quit ["off"] 05:28:06 For that you'd need a low level X interface -- ask jonrafkind, he has some code. 05:30:19 http://planet.plt-scheme.org/display.ss?package=x11.plt&owner=kazzmir 05:31:13 thanks :) 05:31:43 -!- addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has quit [Remote closed the connection] 05:32:02 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 05:32:28 now, _that's_ service 05:34:19 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 05:45:39 -!- CaptainMorgan [n=CaptainM@c-24-62-183-102.hsd1.ma.comcast.net] has quit ["Leaving"] 05:49:09 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has quit ["Leaving"] 05:50:53 schemer999_ [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 05:55:53 -!- choas [n=lars@91.13.212.175] has quit ["leaving"] 05:56:01 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [Read error: 60 (Operation timed out)] 05:56:02 -!- schemer999_ is now known as schemer999 06:02:18 -!- saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 06:07:47 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 06:08:41 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 06:08:50 anyone know of a good scheme -> LaTeX system? 06:09:07 i.e. I want to type my notes in scheme (so easier to search & manipulate symbolically), but I want to output it to LaTeX 06:09:12 s/notes in scheme/notes in sexp/ 06:09:31 optimizer: Sure, I can write one in Haskell 06:09:47 *Makoryu* ducks 06:09:54 Makoryu: please do so 06:10:05 will 24 hours suffice? 06:10:12 But seriously, you've already got 'read 06:10:37 lixujia [n=lixujia@wuxi.asianux.net] has joined #scheme 06:11:30 help! Any one use MIT Scheme on windows? 06:11:37 Hello! 06:12:59 kenjin [n=kenjin@163.152.180.59] has joined #scheme 06:13:27 -!- kenjin is now known as Guest45070 06:15:18 lixujia: ¯\O_o/¯ 06:15:18 Makoryu hello 06:15:18 optimizer: An example of your notes? 06:15:57 i haven'te started writing them yet 06:16:16 optimizer: Yes, but if you did.... 06:16:57 Makoryu: instead; can you take TeXmacs and have it not depend on guile? that'd do :-) 06:17:31 optimizer: Yeah, I don't really feel like helping you anymore 06:17:41 No offense or anything 06:17:52 *Makoryu* puts on sunglasses and drives off into the night 06:17:55 np; out of courisity; why? 06:19:23 optimizer: http://docs.plt-scheme.org/scribble/ 06:19:39 But that's nowhere close to ypsilon. 06:20:03 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 110 (Connection timed out)] 06:20:07 does it render tex equaoitions in real time? 06:20:42 No, it renders *to* tex. 06:21:24 And no hook for equations currently, because it renders to both html and pdf (via pdflatex). 06:25:33 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 06:29:21 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 06:31:12 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Read error: 113 (No route to host)] 06:36:43 -!- Guest45070 [n=kenjin@163.152.180.59] has quit [Read error: 110 (Connection timed out)] 06:40:13 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 06:40:41 dfeuer [n=dfeuer@wikimedia/Dfeuer] has joined #scheme 06:41:45 -!- Foofie [n=innocent@86.80-203-225.nextgentel.com] has quit ["Leaving"] 06:41:56 -!- Makoryu [n=vt920@pool-74-104-123-150.bstnma.fios.verizon.net] has quit ["Absquatulandus sum"] 06:47:03 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 06:47:13 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 06:52:11 QinGW [n=wangqing@203.86.89.226] has joined #scheme 06:55:19 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Read error: 60 (Operation timed out)] 07:03:29 ASau [n=user@77.246.230.241] has joined #scheme 07:15:27 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 07:22:35 dmoerner [n=dmr@89-65.res.pomona.edu] has joined #scheme 07:24:23 Could someone use define-syntax and change the meaning of 'lambda'? 07:24:54 optimizer [n=x@redemption.Stanford.EDU] has joined #scheme 07:25:04 Fufie [n=poff@Gatekeeper.vizrt.com] has joined #scheme 07:25:08 is there a macro for: 07:25:13 (set! blah (+ blah 1)) ? 07:25:15 i find mself using it alot 07:25:56 That is, could someone make it so that (lambda (x) (+ x 1)) doesn't do what it does in default environment? 07:26:57 Or can my parser actions assume that if the identifier 'lambda' is the first element in a list, that it will always act the same way? 07:31:39 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 07:31:48 kenjin [n=kenjin@163.152.181.234] has joined #scheme 07:31:55 Wait, I see that it can. hmmmm 07:32:16 -!- kenjin is now known as Guest48369 07:35:32 saccade_ [n=saccade@65-78-24-131.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 07:39:35 -!- ASau [n=user@77.246.230.241] has quit [Read error: 104 (Connection reset by peer)] 07:39:50 ASau [n=user@77.246.230.241] has joined #scheme 07:40:29 QinGW [n=wangqing@203.86.89.226] has joined #scheme 07:41:20 ejs [n=eugen@77.222.151.102] has joined #scheme 07:44:59 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 07:50:27 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 07:51:05 thehcdreamer [n=thehcdre@81-174-51-191.dynamic.ngi.it] has joined #scheme 07:54:22 -!- snorble [n=none@s83-179-14-105.cust.tele2.se] has quit [Read error: 104 (Connection reset by peer)] 07:56:24 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Success] 07:57:28 -!- thehcdreamer [n=thehcdre@81-174-51-191.dynamic.ngi.it] has quit [] 07:57:34 -!- rootzlevel [n=hpd@91-66-191-155-dynip.superkabel.de] has quit [Read error: 110 (Connection timed out)] 07:57:56 -!- ejs [n=eugen@77.222.151.102] has quit [Connection timed out] 07:59:01 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 08:01:27 thehcdreamer [n=thehcdre@81-174-51-191.dynamic.ngi.it] has joined #scheme 08:01:35 -!- thehcdreamer [n=thehcdre@81-174-51-191.dynamic.ngi.it] has quit [Remote closed the connection] 08:05:31 antoszka [n=antoszka@unaffiliated/antoszka] has joined #scheme 08:06:03 jrtayloriv: anything that changes lambda eg a macro will end up not being called 'lambda' as in the primitive, it will likely be some gensym'd id 08:07:09 rootzlevel [n=hpd@91-66-191-155-dynip.superkabel.de] has joined #scheme 08:11:28 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 08:13:04 -!- ASau [n=user@77.246.230.241] has quit [Read error: 104 (Connection reset by peer)] 08:13:07 The more I use Ruby and realize how close it is to Lisp/Scheme, the more I yearn for the real thing. The only thing keeping me in Ruby is libraries. 08:13:19 ASau [n=user@77.246.230.241] has joined #scheme 08:13:21 nodding [i=43b907a2@gateway/web/freenode/x-fuizqmvupguzsfaj] has joined #scheme 08:13:37 I'm not sure I'd call it close 08:13:50 Well, compared to the rest of the bunch. 08:16:23 Sveklo1: What kind of libs? 08:19:38 sjaaman: All kinds, but especially the more esoteric ones. I'm aware of PLT's library offerings, where you can find a lot: web servers, parsers etc. But the Ruby offering is just vaster. (Sorry to not have any number to back up, but a user of both should know.) 08:20:13 Perl is the King of vast libraries 08:20:21 heh, indeed 08:20:30 But Ruby does have a lot to offer 08:20:35 As does python or Java 08:29:07 thehcdreamer [n=thehcdre@93.37.244.188] has joined #scheme 08:32:56 -!- dmoerner [n=dmr@89-65.res.pomona.edu] has quit [Read error: 110 (Connection timed out)] 08:39:52 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 08:43:14 -!- thehcdreamer [n=thehcdre@93.37.244.188] has quit [] 08:48:38 -!- kilimanjaro [n=kilimanj@70.116.95.163] has quit [Remote closed the connection] 08:50:39 Edico [n=Edico@unaffiliated/edico] has joined #scheme 09:07:38 I haven't really found ruby to compete with python for my uses 09:07:39 -!- ASau [n=user@77.246.230.241] has quit [Read error: 104 (Connection reset by peer)] 09:07:53 Python is more available and there's more (for me) libraries 09:08:16 And I feel just warm and fuzzy thinking how long it's been since I'd had to look at perl 09:08:24 :) 09:09:01 ruby has quite a few perlisms 09:30:49 -!- Guest48369 [n=kenjin@163.152.181.234] has quit [Remote closed the connection] 09:35:11 attila_lendvai [n=ati@adsl-89-134-1-46.monradsl.monornet.hu] has joined #scheme 09:38:24 ASau [n=user@77.246.230.241] has joined #scheme 09:40:33 QinGW1 [n=wangqing@203.86.89.226] has joined #scheme 09:47:54 QinGW2 [n=wangqing@203.86.89.226] has joined #scheme 09:56:33 -!- QinGW [n=wangqing@203.86.89.226] has quit [Connection timed out] 10:03:24 -!- QinGW2 [n=wangqing@203.86.89.226] has quit [Read error: 54 (Connection reset by peer)] 10:04:55 karme [n=user@kallisto.karme.de] has joined #scheme 10:05:30 -!- lixujia [n=lixujia@wuxi.asianux.net] has quit [""] 10:12:14 -!- QinGW1 [n=wangqing@203.86.89.226] has quit [Connection timed out] 10:12:45 -!- weinholt [i=weinholt@debian/emeritus/weinholt] has quit [Read error: 60 (Operation timed out)] 10:15:15 weinholt [i=weinholt@debian/emeritus/weinholt] has joined #scheme 10:19:29 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit [Remote closed the connection] 10:28:27 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 10:43:29 hotblack23 [n=jh@p5B057F63.dip.t-dialin.net] has joined #scheme 10:46:04 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 10:49:16 albacker [n=eni@unaffiliated/enyx] has joined #scheme 11:12:42 masm [n=masm@bl7-205-21.dsl.telepac.pt] has joined #scheme 11:41:10 proq` [n=user@38.100.211.40] has joined #scheme 11:41:49 -!- ski [n=slj@c-c110e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- thesnowdog [i=thesnowd@122.110.53.184] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- proq [n=user@unaffiliated/proqesi] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- saccade [n=saccade_@COMBINATOR.MIT.EDU] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- eli [n=eli@winooski.ccs.neu.edu] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- duncanm [n=duncan@a-chinaman.com] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- jyujin [n=mdeining@vs166245.vserver.de] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- guenthr [n=unknown@sahnehaschee.unix-ag.uni-kl.de] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- brx [i=brx@erxz.com] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- poucet [n=poucet@li23-146.members.linode.com] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- acieroid [n=acieroid@ks23738.kimsufi.com] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- Leonidas [n=Leonidas@unaffiliated/leonidas] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- clog [n=nef@bespin.org] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has quit [holmes.freenode.net irc.freenode.net] 11:41:49 -!- Pepe_ [n=ppjet@ram94-7-82-232-191-53.fbx.proxad.net] has quit [holmes.freenode.net irc.freenode.net] 11:43:48 ski [n=slj@c-c110e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 11:43:53 brx [i=brx@erxz.com] has joined #scheme 11:44:05 acieroid [n=acieroid@ks23738.kimsufi.com] has joined #scheme 11:44:09 duncanm [n=duncan@a-chinaman.com] has joined #scheme 11:44:09 guenthr [n=unknown@sahnehaschee.unix-ag.uni-kl.de] has joined #scheme 11:44:18 Pepe_ [n=ppjet@ram94-7-82-232-191-53.fbx.proxad.net] has joined #scheme 11:44:29 Leonidas [n=Leonidas@unaffiliated/leonidas] has joined #scheme 11:44:31 poucet [n=poucet@li23-146.members.linode.com] has joined #scheme 11:44:32 jyujin [n=mdeining@vs166245.vserver.de] has joined #scheme 11:45:10 ejs2 [n=eugen@77.222.151.102] has joined #scheme 11:45:40 thesnowdog [i=thesnowd@122.110.53.184] has joined #scheme 11:49:58 saccade [n=saccade_@COMBINATOR.MIT.EDU] has joined #scheme 11:51:46 -!- emma [n=em@unaffiliated/emma] has quit [Connection timed out] 11:55:02 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 11:57:25 kniu [n=kniu@ELMUNDO.RES.CMU.EDU] has joined #scheme 12:07:28 mario-goulart [n=user@67.205.85.241] has joined #scheme 12:10:45 -!- ejs2 [n=eugen@77.222.151.102] has quit [Read error: 60 (Operation timed out)] 12:13:48 ejs2 [n=eugen@nat.ironport.com] has joined #scheme 12:21:44 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [Client Quit] 12:24:56 foof: Thanks. I ended up just writing my own function last night since I wasn't 100% sure that changing the set-cdr!'s/etc would make the code work. 12:29:55 -!- jao [n=jao@57.Red-88-6-163.staticIP.rima-tde.net] has quit [Remote closed the connection] 12:33:28 thehcdreamer [n=thehcdre@93.37.244.188] has joined #scheme 12:40:06 addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has joined #scheme 12:41:10 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 12:47:21 -!- thehcdreamer [n=thehcdre@93.37.244.188] has quit [] 12:56:45 -!- elmex [i=elmex@ist.m8geil.de] has quit [Connection reset by peer] 12:57:03 ejs1 [n=eugen@77.222.151.102] has joined #scheme 12:57:19 elmex [i=elmex@89.144.17.55] has joined #scheme 13:00:42 Makoryu [n=vt920@pool-74-104-123-150.bstnma.fios.verizon.net] has joined #scheme 13:06:50 spam-a-lot... i hope i'll be excused. if anyone happens to be looking for web based time waster then visit smsw.rootnode.net and follow penultimate v/L, cheerio. 13:07:11 Nshag [i=user@Mix-Orleans-106-1-8.w193-248.abo.wanadoo.fr] has joined #scheme 13:08:07 -!- ejs2 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 13:09:38 ejs2 [n=eugen@nat.ironport.com] has joined #scheme 13:11:46 pancakes2 [n=peerless@71.192.175.78] has joined #scheme 13:11:55 In lambda calculus can someone explain what is meant by "alpha normal form" my best guess is you do alpha reduction until you cant on the lambda term? What I guess I dont get is that alpha reduction is just renaming bound variables. 13:13:25 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 13:18:37 -!- ejs1 [n=eugen@77.222.151.102] has quit [Read error: 110 (Connection timed out)] 13:18:58 offby1: actually, the not about dancer-ircd is not completely correct since freenode switched to hyperion some time ago :) 13:19:49 -!- ASau [n=user@77.246.230.241] has quit [Read error: 104 (Connection reset by peer)] 13:20:05 luz [n=davids@139.82.89.70] has joined #scheme 13:20:07 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 13:20:41 ASau [n=user@77.246.230.241] has joined #scheme 13:21:04 thehcdreamer [n=thehcdre@93.37.244.188] has joined #scheme 13:22:54 -!- eli [n=eli@winooski.ccs.neu.edu] has left #scheme 13:22:59 eli [n=eli@winooski.ccs.neu.edu] has joined #scheme 13:28:52 ANF != alpha renaming 13:29:59 and it's not 'alpha', its adminsstrative 13:30:00 http://en.wikipedia.org/wiki/Administrative_Normal_Form 13:30:19 pancakes2: i'm talking to you :) 13:30:39 sorry, let me check that out 13:35:36 -!- addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has quit [Remote closed the connection] 13:36:04 -!- rdd [n=user@c83-250-145-223.bredband.comhem.se] has quit [Remote closed the connection] 13:49:36 clog [n=nef@bespin.org] has joined #scheme 13:51:15 blackened` [n=blackene@ip-89-102-28-224.karneval.cz] has joined #scheme 13:53:41 reprore_ [n=reprore@116.82.73.92] has joined #scheme 14:00:01 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit [Read error: 104 (Connection reset by peer)] 14:00:06 -!- nodding [i=43b907a2@gateway/web/freenode/x-fuizqmvupguzsfaj] has quit ["Page closed"] 14:00:30 Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has joined #scheme 14:01:24 -!- Makoryu is now known as L`jnqxt 14:01:49 -!- sstrickl [n=sstrickl@pool-151-199-30-68.bos.east.verizon.net] has quit [] 14:18:14 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 14:18:43 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 14:19:49 -!- hotblack23 [n=jh@p5B057F63.dip.t-dialin.net] has quit [Remote closed the connection] 14:24:05 -!- ejs2 [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 14:29:17 -!- L`jnqxt is now known as Makoryu 14:29:19 -!- Makoryu is now known as Makoryu_ 14:30:27 pancakes2: I think ANF and CPS is quite similar 14:34:21 leppie: Hey, I never thought of it that way! 14:35:08 I read in some paper that they were proofed to be equivalent (or CPS slightly stronger) 14:36:20 What is the subseq equivalent for Scheme? 14:36:37 memv/ listtail ? 14:36:48 i dunno what subseq does ;p 14:37:26 -!- attila_lendvai [n=ati@adsl-89-134-1-46.monradsl.monornet.hu] has quit [Read error: 113 (No route to host)] 14:37:37 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 14:37:42 ok perhaps not, it needs to allocate a new list, so either of the ones I mentioned wont do 14:38:18 ebzzry: is it for a list, vector or string? or all? 14:39:27 list 14:40:30 (define (subseq lst k) (map values (list-tail lst k))) 14:40:54 -!- thehcdreamer [n=thehcdre@93.37.244.188] has quit [] 14:42:11 if you are not going to mutate the list, you can skip the map part 14:42:15 hotblack23 [n=jh@p5B057F63.dip.t-dialin.net] has joined #scheme 14:42:31 then subseq = list-tail 14:43:00 kk 14:43:24 -!- ASau [n=user@77.246.230.241] has quit ["off"] 14:43:36 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 14:48:01 -!- Makoryu_ is now known as Makoryu 14:49:48 -!- pancakes2 [n=peerless@71.192.175.78] has quit [] 14:49:59 addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has joined #scheme 14:53:54 ejs [n=eugen@23-193-124-91.pool.ukrtel.net] has joined #scheme 14:57:17 jrtayloriv, your *parser* should not be trying to interpret the meanings of names. 14:59:00 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 14:59:12 leppie, ANF is expressible in CPS; CPS is not expressible in ANF. 14:59:22 ah right :) 15:00:27 mabes [n=mabes@66.236.74.194] has joined #scheme 15:01:36 Riastradh, That's what I thought. I was asking earlier, because someone made me start doubting myself, and almost convinced my to have a check for the word 'lambda' in the section of the parser dealing with lists. I realize that this is not the proper way to do things, and am not going to do it. 15:01:59 s/convinced my/convinced me/ 15:04:49 annodomini [n=lambda@130.189.179.215] has joined #scheme 15:12:39 jao [n=jao@80.24.4.74] has joined #scheme 15:17:47 nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has joined #scheme 15:18:54 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 15:19:48 -!- Sveklo1 [n=sveklo1@a88-115-8-123.elisa-laajakaista.fi] has quit ["Leaving..."] 15:20:34 sstrickl [n=sstrickl@dublin.ccs.neu.edu] has joined #scheme 15:22:04 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 15:26:44 jlongster [n=user@75.148.111.133] has joined #scheme 15:49:17 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 15:49:55 ejs1 [n=eugen@23-193-124-91.pool.ukrtel.net] has joined #scheme 15:50:07 -!- Fufie [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 16:01:04 -!- mmc [n=mima@192.100.124.219] has quit [Remote closed the connection] 16:03:34 -!- pfo [n=pfo@chello084114049188.14.vie.surfer.at] has quit [Read error: 60 (Operation timed out)] 16:05:45 -!- leppie [n=lolcow@196-210-177-105-wblv-esr-3.dynamic.isadsl.co.za] has quit [Read error: 54 (Connection reset by peer)] 16:05:46 lolcow [n=lolcow@196-210-177-105-wblv-esr-3.dynamic.isadsl.co.za] has joined #scheme 16:05:47 pfo [n=pfo@85-124-0-178.static.xdsl-line.inode.at] has joined #scheme 16:06:34 -!- lolcow [n=lolcow@196-210-177-105-wblv-esr-3.dynamic.isadsl.co.za] has quit [Client Quit] 16:10:48 -!- ejs [n=eugen@23-193-124-91.pool.ukrtel.net] has quit [Read error: 110 (Connection timed out)] 16:11:15 leppie [n=lolcow@196-210-177-105-wblv-esr-3.dynamic.isadsl.co.za] has joined #scheme 16:19:40 -!- tltstc [n=tltstc@76.90.95.39] has quit [] 16:21:46 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Connection reset by peer] 16:23:57 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 16:29:30 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 16:29:44 -!- ejs1 [n=eugen@23-193-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 16:29:46 What should be the name of an operation that takes an associative collection and a key, and returns true if the key has an association in the collection or false if not? SRFI 69 calls this HASH-TABLE-EXISTS?, which is totally wrong (of course the hash table exists!); MIT Scheme's weight-balanced tree library, and Haskell's Edison library, calls this WT-TREE/MEMBER? or `member', which doesn't express that the object in question is 16:30:10 Some variation on CONTAINS? or IN? 16:30:45 IN works well as an infix operator in Python, but it's a bit short for a procedure name used as a prefix, my hunch says 16:31:23 SRFI 44's *-CONTAINS-KEY? just sounds wrong. No other similar operation (to find the datum or data associated with a key, to delete the association for a key, &c.) has the word `key' in it. 16:31:33 (collection-contains? coll key) or (in-collection? coll key)? 16:31:41 `In' does not work at all. It does not ask a question unless phrased in a way that renders badly into Scheme. 16:32:15 Yeah, English sort of begs for an infix rendering here... 16:32:58 If COLL is a collection of *associations*, then COLLECTION-CONTAINS? is not right either (ambiguity about element relation versus subset relation aside, with the words `include' vs `contain'), because that asks whether a particular association is in the collection. 16:33:18 Yes 16:33:28 -!- jao [n=jao@80.24.4.74] has quit [Read error: 145 (Connection timed out)] 16:33:40 maps from? 16:33:52 One could dive into maths a bit, and talk about ranges and domains of associations, and explicitly asking for membership of something in either set. 16:34:07 Not that I can ever remember which is the range and which is the domain ;-) 16:34:20 there also is char-set-contains? 16:34:39 and string-contains without ? 16:34:53 (member? (range coll) key) or (member? (domain coll) key), or go for Java nomenclature, with (member? (keys coll) key) vs. (member? (values coll) key) 16:35:10 (ah because it doesn't return #t or #f) 16:35:14 i-can-haz-bucket??!? 16:35:47 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 16:36:03 With suitable abstractions for sets, this need not involve enumerating the entire set of keys on the call to (keys coll), only to check for one key being a member of that set 16:36:30 another one: "find" 16:36:42 Ugh, imperative! 16:42:04 rcy [n=rcy@96.49.69.62] has joined #scheme 16:42:39 kilimanjaro [n=kilimanj@70.116.95.163] has joined #scheme 16:44:43 omg, my bignum math procs are dead slow... 16:45:19 im not actually sure about the slow part 16:45:44 gauche uses dict-exists? (like the hash-table-exists?) 16:45:55 chandler: that little snippet you posted, well its been running an odd 4 1/2 mintues so far 16:46:32 The one involving 2^2^25, or the one involving 2^2^15? 16:46:37 25 16:46:45 memory is constant though 16:46:52 You're using some CLR predefined type for this? 16:47:05 If so, we can point and laugh at the CLR. :-) 16:47:13 well the BigNum implementation from the DLR 16:47:23 OK, we can point and laugh at the DLR. 16:47:31 the same ones that was suppose to be in .NET 3.5 but was dropped 16:47:34 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit [Read error: 60 (Operation timed out)] 16:48:10 they have a much better one coming in .NET 4, done by statistic people 16:48:28 My guess is that they're using Karatsuba or similar for all large bignum multiplies, and that Gambit (at a guess) is using Schoenhage-Strassen or similar 16:49:23 i'll look into that, I know the expt 2 case is optimized (well I did that one myself) 16:49:39 8 minutes and counting :\ 16:50:39 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 16:50:41 yip Ctrl C told me it was 'stuck' in bignum.multiply 16:51:08 I have hated this implementation for a long time 16:51:39 -!- karme [n=user@kallisto.karme.de] has left #scheme 16:51:49 Yeah, in practice I don't actually care about numbers that large 16:52:22 The ability of even relatively naieve implementations to perform well on numbers up to 2^2^16 or so convinces me that 2^24 is an absurdly low limit for the smallest exact integer. 16:54:25 that is not a fixnum? 16:55:12 jcowan is proposing that the minimum upper bound for exact integer representations in Small Scheme should be 2^24. 16:55:29 alaricsp, the domain of a function is the set of values fit for input to it. `Range' is a bad term, because authors are inconsistent about whether it means the codomain (i.e. the set of values that could conceivably come out of the function) or whether it means the image (i.e. the actual set of values to which the function maps elements of its domain). 16:55:32 -!- addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has quit [Remote closed the connection] 16:55:57 I'm arguing that fixnums are an evil concept and should be banished. They are an implementor's concern only. 16:56:14 Riastradh: I will attempt to find a mnemonic trick to remember that, thanks for reminding me ;-) 16:56:15 ideally, yes 16:57:19 Someone mentioned STRING-CONTAINS earlier. Although I don't care for that name (and should prefer MIT Scheme's STRING-SEARCH-FORWARD and STRING-SEARCH-BACKWARD), it is not an operation that asks whether a string has a character at some index (if we view a string as a map from indices to characters), or even whether a string has some character at any index; instead, it asks whether a string is a substring (which behaves more like 16:57:20 Yeah, this fixnum/bignum distinction sucks. The real issue is: what should be the sort of upper bound on exact integers a programmer can expect of an implementation, and what happens if you exceed it. 16:57:23 In particular, it is false to assume that fixnum-ness has anything to do with boxing, as demonstrated by at least one implementation of That Other Language which can do unboxed arithmetic on some objects that are TYPEP BIGNUM. 16:57:55 Riastradh: more like <-- cut off 16:58:57 I also find it very interesting that jcowan has analogized immutable strings to integers, but is presumably not arguing for three-character strings as a reasonable minimum upper bound for an implementation restriction. 16:59:43 Yes, I see a valid case for (minimal) Scheme implementations that, say, only let you write exact integers up to 2^30. They'd be nice for embedded systems, and I'm not actually entirely fussed whether they get to call themselves "Scheme", or have to say "Scheme except with little integers, sorry, best we could do, is that OK?"... 17:00:01 Yes, the standard should say *something*, but it's just drawing a line in the sand, and isn't really a big issue. 17:00:02 ejs [n=eugen@23-193-124-91.pool.ukrtel.net] has joined #scheme 17:00:27 ...more like a subset than like an element) of another string. 17:01:34 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 17:02:20 chandler, Gambit uses naive multiplication for small bignums, Karatsuba for medium bignums, and Colin Percival's floating-point FFT-based algorithm for large bignums. 17:02:48 Heh, "large bignum" sounds rather redundant. "hugenums"? :-) 17:03:19 alaricsp: For what it's worth, I often use the full range of 32-bit integers on an embedded 8-bit processor with 256 bytes of memory. This system is really too small for any embedded implementation of Scheme. On a larger processor, why not work with numbers as large as the allowable size for vectors? 17:03:34 "vastnums" might be a sparse representation, aimed at numbers like 2^9999999999999999 + 1 ;-) 17:04:14 chandler: Indeed. I like the idea of allowing number-poor Schemes, but it's not something to get into too much of a fuss about, if it turns out to be a pain to standardise. 17:04:41 Why do you like the idea? 17:04:58 *alaricsp* waves his hands vaguely 17:05:01 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["Lost terminal"] 17:05:15 I like to not impose a restriction unless there's a good reason for it ;-) 17:05:26 Right. That's why I don't like number-poor Schemes. 17:05:48 Now, I'm fine if those Schemes have to say "We don't quite entirely support all of real Scheme, as we skimp on the number side, sorry", to be honest. So I wouldn't exactly cry if the spec demanded a full tower. 17:05:59 mario-goulart [n=user@67.205.85.241] has joined #scheme 17:07:40 I'm afraid I still don't understand why an implementation would allow vectors several orders of mangitude larger than the representation size of the largest allowed exact integer. 17:07:45 I think it's probably pragmatically fine to say "exact integers work up to some implementation-specific maximum, and if you exceed that, overflow conditions get signalled"; I guess the more contentious issue is whether the standard should say "...and that implementation-specific maximum must be at least 2^65536" or words to that effect. 17:08:03 chandler, what Scheme systems do that?? 17:08:25 mrsolo_ [n=mrsolo@nat/yahoo/x-zfasuqhevqbmrlvi] has joined #scheme 17:09:06 The only argument for that I can think of is that, although you clearly have the memory for those large integers, you might not have the code space / implementor effort to implement all those hairy bignum arithmetic operations :-) But with off-the-shelf libraries to do it lying around, this is really a "hypothetical embedded Scheme" argument, and IMHO embedded Schemes shouldn't be expected to implement the whole standard. 17:09:24 Riastradh: Chicken allows a vector of at least size 65536, which on a 32-bit system I would assume is about 256K in representation size. The representation size of the largest exact integer in Chicken is 4 bytes. 17:10:00 Oh, I see. 17:10:04 If four bytes is a reasonable size for the largest exact integer, then it's also a reasonable size for the largest allowed vector. We'll also have to throw out conses, too. 17:10:04 Unless you load the numbers egg, which gives you bignums... except the C FFI still converts ints > 2^30 into flonums *grumble* 17:10:30 (I thought you meant vectors whose length exceeds the largest representable exact integer.) 17:11:09 -!- mabes is now known as mabes|away 17:11:51 I hope Chicken's numbers will improve, as it's a wart on an implementation I otherwise enjoy greatly (especially now there's hygienic macros/modules at last). 17:12:59 alaricsp: This approach will seem pretty silly when 10PB disks are common, and you can no longer exactly represent the size of the disk in an IEEE double. This will take a few years, but I can guarantee you that Scheme48, Gambit, Gauche, etc. etc. etc. will have no trouble with this! 17:13:22 addamgc [n=addamgc@wireless-lsusecure-13.net.lsu.edu] has joined #scheme 17:13:58 Well, quite. I maintain a backup system in Chicken, and the fact that the port position procedure returns flonums for files >1GB in size is a right pain, I can tell you :-) 17:14:00 chandler: Does chicken have fixnums? 17:14:09 -!- zanes [n=zane@c-76-24-24-236.hsd1.ma.comcast.net] has quit [] 17:14:18 Summermute66: Yes, it does (is there any Scheme that doesn't?) 17:14:38 So it also has a pointer to 32bit int type? 17:15:01 17:15:37 Summermute66: Sort of. You can have a single-element srfi-4 u32vector, for example. Or various other forms of boxing tricks. 17:15:42 Summermute66: What exactly is a fixnum? Usually the answer involves some implementation magic about unboxed integers type-punned with pointers. The answer I'll give is that Chicken's largest exact integer is 2^30 - 1. 17:16:35 Yep. If you load the numbers egg then it lets you have larger exact integers and various other niceties such as rationals, but the interaction with existing code isn't always all that great... 17:17:25 On a 32 bit system with a 32 bit memory address, an integer < 32 bits distinguishable from a pointer. So typically, one can use anywhere from 1 to 8 bits depending on implementation, meaning a 31 to 24 bit "fixnum" 17:17:54 Yes 17:18:19 By that definition, SISC does not have fixnums. 17:18:28 chandler: I'm a "two low bits" man myself when it comes to a dynamic RTS. I use bit 2 to indicate other immediate values: bytes, chars, boolean, and so forth. 17:19:03 Don't mention fixed-width chars! The Unicode people will come and eat your face in the night! 17:19:16 ;-) 17:19:24 chandler: I recall a paper some years back with a few luminaries begging for fixnums and closures in the JMV 17:19:34 ASau [n=user@83.69.227.32] has joined #scheme 17:19:41 ;-) 17:19:57 Summermute66: All of this is fine from an implementor's perspective. 17:19:58 I'm embarrassed to say that I have yet to get a full handle on unicode :-( 17:20:15 Summermute66: Welcome to 99.999% of the human race, or thereabouts! You're in good company. 17:20:43 I don't know - there are alot of Chinese and Hindi speakers out there ! 17:20:52 *foof* eats Summermute66's face 17:21:03 From a user's perspective, a fixnum is either a pointless concept or the antonym to "brokennum", which we usually call "inexact". 17:21:07 JMV? The Junta of Motor Vehicles, as opposed to the Department of Motor Vehicles? 17:21:36 Whoops, JVM - too much caffeine 17:22:00 The JVM has fixnums, but IIRC lacks bignums 17:22:12 Is that what you meant? 17:22:26 Lacks bignums? 17:22:36 java.math.BigInteger is a bignum. 17:22:36 Only place where the fixnum can cause a user problem is the FFI where a full 32 bit integer might be required. 17:22:49 It does not have fixnums in the sense that there is no type punned immediate which can be used as a number or a pointer. 17:23:02 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Read error: 110 (Connection timed out)] 17:23:06 Ah-hah; is that new? ISTR having to deal with some third-party library last time I encountered a bignum in Java (almost a decade ago, mind( 17:23:22 No. It's not new at all. 17:23:31 Meh, I must be getting old, then, ignore me. 17:23:47 Google says it's been around since JVM 1.1. That's awfully old in Java terms. 17:24:11 I wonder what I'm confusing it with ;-) 17:24:19 I do recall that BigInteger performance used to be awful, so I think there were indeed some third party libraries. 17:24:55 java.math.BigDecimal is much newer. 17:25:39 -!- ejs [n=eugen@23-193-124-91.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 17:25:49 At the rate the Java folks cranked out libraries from the beginning, I'd be surprised not to find something relatively generic like BigInteger in the library 17:26:16 There should be a com.sun.knuth.* package of algorithms and data structures ;-) 17:26:47 :-) 17:28:14 Summermute66: I'm not sure what you mean by "Only place where the fixnum can cause a user problem is the FFI where a full 32 bit integer might be required." 17:28:33 Do you think that there are no reasons to have exact >32-bit integers? 17:30:14 chandler: I meant to make no such claim. I was just saying that 30/31 bit ints are good enough for government work *most* of the time. The need for bigints > 32 bits would be another case of the inadequacy of a limited sized fixnum. 17:31:22 excuse my ignorance what's the other bit used for? signedness? 17:31:24 chandler: Actually, the FFI issue was just drawn from personal memories of a RTS written long ago 17:31:33 Tag, C-Keen. 17:31:48 hi Riastradh! 17:31:53 Hi. 17:32:04 C-Keen, the tag bit allows the other 31 bits to either contain numeric information or some other data type. 17:32:43 Unless you're using MIT Scheme, in which case the other bits get to contain other tags instead. 17:32:52 I see 17:32:59 thanks for the explanation 17:33:11 Most Scheme systems use more than one tag bit. 17:33:36 well it's a bit....binary... :) 17:33:45 C-Keen: So if all addresses are aligned on 64 bit boundaries, then one has some low bits to play with, like a 0x01 in the low bit to distinguish "immediate data" from a "pointer address." So then you can cram data into where the pointer address would normally go. 17:41:58 -!- reprore_ [n=reprore@116.82.73.92] has quit [Remote closed the connection] 17:47:51 -!- sladegen [n=nemo@unaffiliated/sladegen] has quit [Nick collision from services.] 17:48:00 sladegen [n=nemo@unaffiliated/sladegen] has joined #scheme 17:55:30 extra byte in chicken vector length field is used for block subtype tag IIRC 17:56:42 32-bit processors... I remember the days... such nostalgia 17:58:19 -!- addamgc [n=addamgc@wireless-lsusecure-13.net.lsu.edu] has quit [Remote closed the connection] 17:58:42 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:58:50 ... because the main type tag just indicates "block object", not how the block data should be interpreted 17:59:41 forgive me if someone mentioned this in the ensuing melee 18:06:01 Not that I saw, zbigniew! :-) 18:07:03 mmc [n=mima@89.27.122.78] has joined #scheme 18:14:56 schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 18:25:17 sepult [n=levgue@xdsl-87-78-120-30.netcologne.de] has joined #scheme 18:41:35 zanes [n=zane@nomad.ccs.neu.edu] has joined #scheme 18:48:14 -!- schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has quit [Client Quit] 18:49:38 npe [n=npe@94-224-251-223.access.telenet.be] has joined #scheme 18:55:44 samth [n=samth@nomad.ccs.neu.edu] has joined #scheme 18:59:55 Fare [n=Fare@c-98-216-110-136.hsd1.ma.comcast.net] has joined #scheme 19:08:31 davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has joined #scheme 19:11:32 Sveklo [n=sveklo@213.243.181.131] has joined #scheme 19:15:13 -!- Sveklo [n=sveklo@213.243.181.131] has quit [Client Quit] 19:16:04 -!- zanes [n=zane@nomad.ccs.neu.edu] has quit [] 19:16:22 rdd [n=user@c83-250-145-223.bredband.comhem.se] has joined #scheme 19:16:29 MrFahrenheit [n=RageOfTh@users-42-117.vinet.ba] has joined #scheme 19:16:50 Sveklo [n=sveklo@213.243.181.131] has joined #scheme 19:18:46 sepult` [n=levgue@xdsl-87-78-173-246.netcologne.de] has joined #scheme 19:18:59 -!- sepult [n=levgue@xdsl-87-78-120-30.netcologne.de] has quit [Read error: 60 (Operation timed out)] 19:19:14 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Read error: 110 (Connection timed out)] 19:19:55 zanes [n=zane@nomad.ccs.neu.edu] has joined #scheme 19:24:38 -!- mrsolo_ [n=mrsolo@nat/yahoo/x-zfasuqhevqbmrlvi] has quit [Client Quit] 19:24:52 mrsolo_ [n=mrsolo@nat/yahoo/x-ilxapddgsuhlaity] has joined #scheme 19:27:25 jcowan: re interleaving buffered and unbuffered I/O, ever heard of flush? 19:27:40 (in this case, fflush(3)) 19:28:31 of course, you'd want something similar to be able to flush the input buffer. 19:30:24 -!- Sveklo [n=sveklo@213.243.181.131] has quit [Read error: 145 (Connection timed out)] 19:32:14 Oh, dear. C interfaces have come up on r6rs-discuss. 19:32:45 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 19:32:48 complex types on callbacks :( 19:35:20 Riastradh, YES! 19:35:48 there should be a standard C FFI, a standard JVM FFI, a standard CLR FFI, etc., for Scheme. 19:36:00 That's not what I'm worried about, Fare. 19:36:09 what are you worried about? 19:36:15 What I'm worried about is that a large collection of enthusiastic nutcases will define a *bad* standard C interface, &c. 19:36:49 why do you think they will screw up C interface more than the rest? 19:36:52 I don't. 19:37:08 oh. So it's the whole of r6rs-discuss that worries you 19:37:36 Well, yes. C interfaces are just a particularly immense morass in which to screw things up. 19:38:38 life is full of opportunities to screw up 19:39:31 In particular, I have never seen a C interface for Scheme that has even come close to what I want (except for one that I have built but not yet polished sufficiently to release). 19:39:47 And naturally what I want is the right thing for everyone else to want, too; they just don't realize it yet. 19:40:02 have you looked at CL's CFFI? 19:40:04 Yes. 19:40:08 Wrong wrong wrong wrong wrong. 19:40:17 how would YOU do it? 19:40:25 what's wrong with CFFI? 19:40:42 maybe you should publish a write up 19:41:09 I'm told MIT Scheme had an interesting one, but never bothered to look in detail 19:43:17 The brief summary is that many C interfaces, such as CFFI, are focussed too heavily on mapping between a Lisp ABI and a C ABI, rather than mapping between a Lisp API and a C API. A C interface for Lisp should reflect (1) how a C programmer would use a library, (2) how it will be invoked from Lisp, and (3) the mapping between C and Lisp data. 19:44:54 Part (3), furthermore, should be composable: it should not be restricted to a few primitive data types in Lisp or in C (as is the case in many C interfaces for Scheme), and it should not involve knowing how Lisp or C objects are represented in memory (beyond what a C programmer needs to know to use the library). 19:47:18 well, aren't these things to be layered on top of each other? 19:47:27 if you can't talk to the ABI, you can't talk to the API 19:47:40 The ABI is an implementation detail. 19:47:59 it's the first thing that you want to abstract away 19:48:02 How does what you want differ from CFFI's DEFINE-FOREIGN-TYPE and TRANSLATE-TO-FOREIGN / TRANSLATE-FROM-FOREIGN? 19:48:04 Of course the implementations will have to know how to talk to the ABI, but that shouldn't be the concern of a programmer trying to write an interface to a C library in Scheme. 19:48:28 The CFFI user-level API does not visibly conern itself with ABIs. It is concerned with the API, as you would use it from C, and translating that to something you would use from Lisp. 19:48:31 -!- sepult` [n=levgue@xdsl-87-78-173-246.netcologne.de] has quit [Client Quit] 19:48:44 CFFI-SYS is for implementors. 19:49:03 sepult [n=levgue@xdsl-87-78-173-246.netcologne.de] has joined #scheme 19:49:22 This discussion is much longer than I have time for now, sorry. That's why I said `brief summary'. 19:50:13 jrtayloriv pasted "Why does this work, but I get error aboutexpected procedure, given: # (no arguments) " at http://paste.lisp.org/display/87912 19:50:47 jrtayloriv, you tried to apply the value of (X) as if it were a procedure. When X is SAY-FOO, the value of (X) is void in PLT Scheme, since that's what DISPLAY returns. 19:51:10 ((X) (X)) means: `Please apply the value of (X) as a procedure to the single argument (X).' 19:52:03 Riastradh, oh. How would I say apply the procedure X with no args, and then apply the procedure x with no args again? 19:52:23 (begin (x) (x)) 19:52:26 Do you mean that you want to evaluate expressions in sequence, discarding the values of all but the last? If so, use BEGIN. 19:52:49 Thank you both -- yes, that's what I was looking for. 19:54:11 tltstc [n=tltstc@cpe-76-90-95-39.socal.res.rr.com] has joined #scheme 20:04:31 -!- sepult [n=levgue@xdsl-87-78-173-246.netcologne.de] has quit [Client Quit] 20:04:38 masm1 [n=masm@bl10-244-67.dsl.telepac.pt] has joined #scheme 20:06:15 sepult [n=levgue@87.78.173.246] has joined #scheme 20:11:34 -!- nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 104 (Connection reset by peer)] 20:12:15 -!- Nshag [i=user@Mix-Orleans-106-1-8.w193-248.abo.wanadoo.fr] has quit [Remote closed the connection] 20:14:42 Fufie [n=innocent@80.203.225.86] has joined #scheme 20:17:02 -!- rcy [n=rcy@96.49.69.62] has quit [Remote closed the connection] 20:17:56 -!- masm [n=masm@bl7-205-21.dsl.telepac.pt] has quit [Read error: 110 (Connection timed out)] 20:18:19 -!- ASau [n=user@83.69.227.32] has quit [Remote closed the connection] 20:18:28 ASau [n=user@83.69.227.32] has joined #scheme 20:21:54 optimizer [n=x@unaffiliated/lowlycoder] has joined #scheme 20:23:22 (define-macro (for var _start _end body) 20:23:22 (let ((start (gensym)) (end (gensy))) 20:23:22 `(do ((,start ,_start) (,end ,_end) (var ,start (+ var 1))) 20:23:22 ((= var ,end)) body))) 20:23:27 how can I rewrite this in syntax ules? 20:23:41 can someone walk me through the process (i.e. teach me how to syntax-rules rather than just give me syntax-rules) 20:25:09 First, describe what the input to your macro looks like. 20:25:11 sstrickl_ [n=sstrickl@nomad.ccs.neu.edu] has joined #scheme 20:25:20 actually, that should be (for var _start _end . body) 20:25:22 so somethig like 20:25:22 By the way, that macro has a bug. 20:25:28 and the last body should be ,body 20:25:52 I want to be able to write code like (for i (- 3 3) (* 10 2) (display i)(newline)) 20:26:02 and have the - 3 3, * 10 2 ops only happen once 20:26:04 -!- sstrickl [n=sstrickl@dublin.ccs.neu.edu] has quit [Read error: 104 (Connection reset by peer)] 20:26:05 -!- sstrickl_ is now known as sstrickl 20:26:07 (Does anyone ever actually use the LET-style DO clauses?) 20:26:17 (Does anyone actually use `do'?) 20:26:22 (Yes, I do.) 20:26:31 the lets are for gensymming ... 20:26:34 (In Scheme I mean, not in English.) 20:26:45 (...yep, even in Scheme, chandler!) 20:26:51 (That pun wasn't (entirely) intended.) 20:27:01 *snap* 20:27:04 back to topic :-) 20:27:16 (Hey, I just realized that we can use different brackets to thread different conversations in the channel without having to address everyone.) 20:27:26 [For instance, this is a different subject. Turns out square brackets are useful after all!] 20:27:50 {That's a great idea} 20:27:51 (Only until someone violently attacks you with a mismatched pair.] 20:27:55 Argh! 20:28:00 *Riastradh* twitches. 20:28:10 optimizer, so, what is the general pattern of the input to your macro? 20:28:21 Riastradh: I don't understand your question 20:28:26 what do you mean by "genral pattern" 20:28:27 ? 20:28:29 Can I write (FOR 5)? 20:28:32 no 20:28:33 on 20:28:35 oh 20:28:35 Why not? 20:28:42 it's (for var start end . body) 20:28:45 that's the general form 20:28:47 Very good. 20:28:54 Now, what does the output of the macro look like, given that input? 20:29:09 Reads a bit like The Intermediate Schemer ;) 20:29:13 (define-syntax for (syntax-rules () 20:29:13 (for var start end . body 20:29:13 ...))) 20:29:26 (define-syntax for (syntax-rules () 20:29:27 ((for var start end . body) 20:29:27 ...))) 20:29:31 hhhhwiat, twhat's what I have so far 20:29:34 That's a start. 20:29:45 But you haven't told me what the output of the macro is supposed to look like given that input. 20:30:02 (define-syntax for (syntax-rules () 20:30:02 ((for var start end . body) 20:30:02 (do ((var start (+ var 1))) 20:30:02 ((= var end)) 20:30:02 body)))) 20:30:07 (It is conventional to break the line between the name of the macro and (SYNTAX-RULES ...), if you are to break the line at all.) 20:30:10 but I have no idea how many times start & end are executed 20:30:19 i don't want to paste too many lines; i will use lisppaste 20:30:22 Let's worry about that in a bit. 20:30:31 schemer999 [n=tmilford@cpe-76-90-137-46.socal.res.rr.com] has joined #scheme 20:30:40 Suppose I write (for x 0 10 (write x)). What will the output be, with that definition? 20:30:58 Here VAR is X, START is 0, END is 10, and BODY is ((WRITE X)). 20:31:15 (do ((x 0 (+ x 1)) 20:31:23 ((= x 10)) 20:31:28 ((write x)) <- hmm, this is bad 20:31:36 Yes (and you forgot one closing round bracket). 20:31:37 is there an equiv to ,@ ? 20:31:52 unquote-splicing? 20:31:55 No, but you don't need one. 20:32:06 ((= var end)) 20:32:06 . body)))) 20:32:11 ? :-) 20:32:12 (fortunately not) 20:32:22 Scheme knows which parts of the template are pattern variables, because you told it what all the pattern variables were named in the pattern. So you can just write them, without decorations, in the template. 20:32:25 ) [ 20:32:26 Yes, that's right. 20:32:37 {just balancing out chandler's awfulness, there} 20:32:44 http://paste.lisp.org/+1VU3/1 20:32:47 we're now at this 20:32:48 Now, do you want to accept (for x 0 10 . fnord)? DO won't accept (do ((x 0 (+ x 1))) ((= x 10)) . fnord), by th eway. 20:32:51 The way, even. 20:33:59 no; but I promise to not write for loops like that :-) 20:34:03 however, how do I prevent that? 20:34:24 In that case, you should make sure that the body is a list, by writing a pattern of (FOR variable start end body ...). 20:34:48 If you wanted to force the body to have at least one element, then you could instead write a pattern of (FOR variable start end body0 body1+ ...). 20:34:55 What goes in the template looks the same. 20:35:16 That is, write `body ...' as the last elements of the list, rather than `body' as its last cdr. 20:35:24 http://paste.lisp.org/+1VU3/3 20:35:42 No, now you've written `body0' as the last element and `body1' as the last cdr. 20:35:54 http://paste.lisp.org/+1VU3/4 <-- like taht? 20:35:58 When I said `what goes in the template looks the same', I meant `the same as in the pattern. 20:36:04 ' 20:36:08 Not `the same as what you previously wrote'. 20:36:33 http://paste.lisp.org/+1VU3/5 <-- victory? 20:37:04 That looks better (although it is conventional to indent the body of DO with only two spaces, rather than with four). 20:37:24 Now, this macro exhibits the property that the END expression may be multiply evaluated. 20:37:35 indeed 20:37:49 how do we solve this? 20:38:20 To avoid this, just bind some variable (whose name is not that of a pattern variable) using LET outside the DO to the value of the END expression: (let ((e end)) [stuff] ((= var e)) [stuff]) 20:38:51 (You could also use a LET-style DO clause if you wanted: (do ([stuff] (e end)) ((= var e)) [stuff]).) 20:39:21 http://paste.lisp.org/+1VU3/6 ? 20:40:03 OK. Now test it. 20:40:27 Test it with some variable named E, for that matter, or with start and end expressions referring to a variable named E. 20:41:01 appears to work 20:41:12 so syntax-rules does gensy automatically ? 20:42:00 You can think of part of what it does that way. 20:42:25 ^ does not parse as english sentence 20:42:32 Yes it does. 20:42:34 part of (why) ? 20:42:42 You can think of (part of what it does) that way. 20:43:02 ah 20:43:03 thanks 20:43:44 More precisely, SYNTAX-RULES guarantees that in the output of a macro, those names that were written in the macro's definition mean what they meant when the macro was defined, and those names that were written in the macro's invocation mean what they meant when the macro was invoked. 20:47:12 emmy [n=em@cpe-98-14-154-71.nyc.res.rr.com] has joined #scheme 20:47:41 -!- ada2358_ [n=ada2358@login-linux.ccs.neu.edu] has quit [Remote closed the connection] 20:47:45 ada2358 [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 20:54:44 patmaddox [n=patmaddo@ip68-111-70-47.oc.oc.cox.net] has joined #scheme 20:57:58 -!- albacker [n=eni@unaffiliated/enyx] has quit ["_"] 20:59:06 isn't that hygiene in general? 21:00:36 Yes, and `syntax-rules' is hygienic, so... 21:01:07 Though I've been told that the second claim that Riastradh made is not part of hygiene per se. 21:01:48 arcfide [i=1000@140-182-224-144.dhcp-bl.indiana.edu] has joined #scheme 21:04:54 Some people distinguish `hygiene' from `referential transparency'. I forget which is which, and it doesn't really matter, because one without the other is silly. 21:07:25 jao [n=jao@57.Red-88-6-163.staticIP.rima-tde.net] has joined #scheme 21:11:53 pfo_ [n=pfo@chello084114049188.14.vie.surfer.at] has joined #scheme 21:13:22 choas [n=lars@p5B0DD4AF.dip.t-dialin.net] has joined #scheme 21:13:27 -!- pfo [n=pfo@85-124-0-178.static.xdsl-line.inode.at] has quit [Read error: 60 (Operation timed out)] 21:15:10 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 21:16:14 rbf_ [n=robby@adsl-75-22-196-79.dsl.chcgil.sbcglobal.net] has joined #scheme 21:17:23 -!- arcfide [i=1000@140-182-224-144.dhcp-bl.indiana.edu] has quit [Remote closed the connection] 21:17:53 arcfide [i=1000@140-182-224-144.dhcp-bl.indiana.edu] has joined #scheme 21:20:36 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 21:23:51 -!- mmc [n=mima@89.27.122.78] has quit [Read error: 145 (Connection timed out)] 21:24:44 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 21:26:51 -!- samth [n=samth@nomad.ccs.neu.edu] has quit [Read error: 60 (Operation timed out)] 21:31:59 -!- optimizer [n=x@unaffiliated/lowlycoder] has quit ["leaving"] 21:33:55 arcfide, did you ever write a test suite for skip lists? The other day I returned to that code to improve it substantially. 21:35:07 Hmm. That sounded as though I expected you to write one -- which is not the case, of course; rather, I dimly remember that you were using it for some reason or another, and even more dimly might remember something about tests. 21:35:29 Dark-Star [i=Darkstar@p57B5597A.dip.t-dialin.net] has joined #scheme 21:35:47 -!- davazp [n=user@56.Red-79-153-148.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 21:37:47 Riastradh: yes, I was writing something about it, and yes, I may have some tests lying around to do the comparison. Let me take a look. 21:38:14 The reason I was using it was because the implementation of RB-Trees and WB-Trees that I have are from MIT Scheme, which makes them GPL'd, and not suitable for some projects. 21:38:46 I see. 21:40:25 Riastradh: Unfortunately, it appears that any semblance of benchmarks that I had for the skip lists versus the other two has long been archived away where I think only Lawyers care to tread. 21:40:46 Actually, you may use them under the terms of the GPL or under the terms of another licence... 21:41:14 Riastradh: May I? I spoke with Chris about that I believe, via email, and he wasn't inclined to provide them under another license. 21:41:35 Riastradh: I do remember distinctly that in my benchmarks the MIT Scheme RB trees came out fastest, with the skip lists the slowest. 21:41:56 Both in terms of memory consumption and in retreival/insertion speed. 21:42:00 -!- luz [n=davids@139.82.89.70] has quit [Read error: 113 (No route to host)] 21:42:12 The licence changed ten years ago, but none of the code has. 21:42:22 Riastradh: Oh? 21:43:16 Riastradh: I remember that doing massive inlining efforts that lead to a very large (590K? 700K?) file did improve the speed of the skip lists, but not enough to outgun the RB Trees. 21:43:46 Grmble. Can't figure out the web-based Git repository viewer. Anyway: 21:43:48 -rudybot:#scheme- http://tinyurl.com/yaarlrx 21:44:29 Riastradh: Well what do you know... 21:44:31 Sorry, there has been one change to the code, to substitute N+ for (GET-LINK+ W D) in a place where the latter was already computed to be N+. 21:44:55 Riastradh: So...I'm guessing that you are not impressed by Git. ;-) 21:45:18 I couldn't find how to get the history on a particular file with the web-based Git repository viewer. 21:45:51 I don't see anything obvious at that would do so. 21:45:52 -rudybot:#scheme- http://tinyurl.com/y9ez4e4 21:47:00 The tabs at the top all lead to top-level pages, not to pages about this particular file. 21:47:53 Aha. Substituting `tree' for `log' there gets me...nothing useful from the history. 21:48:03 Excuse me: substituting `log' for `tree'. 21:48:59 -!- sepult [n=levgue@87.78.173.246] has quit [Remote closed the connection] 21:49:25 Riastradh: Well, I'm certainly not going to mess with a Web based Git. :-) 21:49:33 Don't they have an annotate? 21:49:53 There is a `git annotate' command; I don't know how to use it from the web-based repository viewer. 21:50:01 Ah well. 21:50:26 Anyways, I'm going ot move to a better location. 21:50:29 I'll be back, I hope. 21:50:33 -!- arcfide [i=1000@140-182-224-144.dhcp-bl.indiana.edu] has left #scheme 21:50:43 synx pasted "misleading" at http://paste.lisp.org/display/87921 21:50:58 oops, wrong channel 21:51:21 Yikes! I hope that that's not how someone is actually representing XML names and namespaces. 21:52:09 Guest28373 [n=levgue@87.78.173.246] has joined #scheme 21:52:42 -!- Guest28373 [n=levgue@87.78.173.246] has quit [Remote closed the connection] 21:54:24 sepult` [n=levgue@xdsl-87-78-173-246.netcologne.de] has joined #scheme 21:56:04 -!- sepult` [n=levgue@xdsl-87-78-173-246.netcologne.de] has quit [Remote closed the connection] 21:56:22 sepult` [n=levgue@xdsl-87-78-173-246.netcologne.de] has joined #scheme 21:56:45 -!- sepult` [n=levgue@xdsl-87-78-173-246.netcologne.de] has quit [Remote closed the connection] 21:57:11 sepult [n=levgue@xdsl-87-78-173-246.netcologne.de] has joined #scheme 21:57:54 annodomini [n=lambda@64.30.3.122] has joined #scheme 21:58:52 -!- sepult [n=levgue@xdsl-87-78-173-246.netcologne.de] has quit [Remote closed the connection] 22:00:39 sepult [n=levgue@xdsl-87-78-173-246.netcologne.de] has joined #scheme 22:00:55 arcfide [i=1000@140-182-224-144.dhcp-bl.indiana.edu] has joined #scheme 22:02:51 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:03:49 -!- mabes|away [n=mabes@66.236.74.194] has quit [Remote closed the connection] 22:04:01 -!- sstrickl [n=sstrickl@nomad.ccs.neu.edu] has quit [] 22:05:30 Which one, the top or the bottom? 22:05:45 The bottom. 22:06:36 Yeah... that's what SSAX gives me from a normal HTML document... not very nice. 22:06:53 Another strike against SSAX. Oh well. 22:07:18 I can manually specify that it abbreviate to certain namespaces in my code, but the parser cannot understand any xmlns:*= attributes, and the default namespace is totally screwed up. 22:08:10 This is not a matter of abbreviation. : is a valid character both in URIs and in XML names, so SSAX has lost information by producing that nonsense. 22:08:25 Ugh. 22:08:37 SSAX doing something bad again? 22:08:52 I wish I had time to write a proper XML library. 22:09:38 Is there something better than SSAX for handling XML in Scheme? 22:10:57 synx annotated #87921 "umm..." at http://paste.lisp.org/display/87921#1 22:11:55 I've just never quite understood how SSAX deals with namespaces. It's really heavy handed. 22:14:02 synx, what are you trying to do? 22:14:49 -!- ASau [n=user@83.69.227.32] has quit [Remote closed the connection] 22:14:57 mabes [n=mabes@66.236.74.194] has joined #scheme 22:15:07 I'm trying to substitute file URLs in my SVG document with data URIs. 22:15:18 RageOfThou [n=RageOfTh@users-38-130.vinet.ba] has joined #scheme 22:16:03 synx, do you have an example? 22:16:42 -!- proq` [n=user@38.100.211.40] has quit [Remote closed the connection] 22:16:57 ASau [n=user@83.69.227.32] has joined #scheme 22:21:41 synx: generally, I find that most HTML code doesn't have to deal with namespaces, and hence, it works alright with SSAX. 22:21:47 Um, not at the moment... it's just finding all the image tags whose href points at a file, and turning it into a data URI. But I can't figure out how to output XML, so... 22:22:52 I have a SVG document, but it refers to several on-disk files, so I couldn't just send it to you. 22:24:09 addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has joined #scheme 22:26:06 -!- mabes [n=mabes@66.236.74.194] has quit [Remote closed the connection] 22:27:24 synx: Just do the transformation using the SXML tools, and then write the SXML out as a file. 22:27:57 SVG needs to be in XML though, not in SXML format. 22:28:28 mabes [n=mabes@66.236.74.194] has joined #scheme 22:31:01 The html->sxml function (defined in (require (planet ashinn/html-parser/html-parser))) constructs odd sxml out of malformed HTML. As an example, (html->sxml "
") produces ((div (input (@ (name "foo")) (input (@ (name "bar")))) 22:31:05 (input (@ (name "bar")))))... does anyone know how to get around the duplication of the input element? 22:32:13 -!- RageOfThou [n=RageOfTh@users-38-130.vinet.ba] has quit [Read error: 54 (Connection reset by peer)] 22:32:24 RageOfThou [n=RageOfTh@91.191.38.130] has joined #scheme 22:32:47 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:32:55 no idea, sorry... 22:33:05 For HTML I use foof's parser. 22:33:20 -!- MrFahrenheit [n=RageOfTh@users-42-117.vinet.ba] has quit [Connection timed out] 22:33:24 synx: So write the SXML out as XML. 22:33:33 synx: that's what the sxml-to-html library is for. 22:33:54 I have a modified version that I use to generate nice empty tags with the /> form. 22:34:27 That writes out HTML, not XML in general? I'm trying to write out SVG. 22:34:30 Not HTML 22:34:55 synx: However, it comes pretty close and a few modifications suffice. 22:35:42 snorble [n=none@s83-179-14-105.cust.tele2.se] has joined #scheme 22:35:48 so which sxml-to-html library was it? 22:37:15 jao, MIT Scheme has an XML parser that is much better than SSAX in adherence to the specification (which is the only value there is in XML in the first place!), but it is not a SAX parser. 22:38:55 -!- Fare [n=Fare@c-98-216-110-136.hsd1.ma.comcast.net] has quit ["Leaving"] 22:39:00 Riastradh: Sorry, what is SAX? 22:39:29 synx: Oleg's ordinary sxml-to-html library can be modified easily to deal with empty elements properly in XML. 22:39:41 I don't know what other things need to be changed, but overall, you shouldn't have too much trouble. 22:39:45 Incremental, arcfide, versus whole-document. 22:39:59 Riastradh: Aaah, right. 22:40:06 MIT Scheme's parser takes in an input stream, consumes an XML document, and gives you a Scheme object representing the XML document. 22:40:31 SSAX reads the XML document incrementally, invoking callbacks for every chunk that it has read. 22:41:11 arcfide: http://okmij.org/ftp/Scheme/lib/SXML-to-HTML.scm ? 22:41:59 -!- Fufie [n=innocent@80.203.225.86] has quit ["Leaving"] 22:42:13 -!- npe [n=npe@94-224-251-223.access.telenet.be] has quit [] 22:43:28 synx: Yes, that's the one. If you download You can find a slightly different implementation that creates instead of . 22:44:46 -!- zanes [n=zane@nomad.ccs.neu.edu] has quit [] 22:45:11 Still won't work. My SXML has all that *TOP* and *NAMESPACE* stuff in it I have to deal with. I'm already pretty much doing what that code does currently, just trying to fix... 22:48:32 rcy [n=rcy@d64-180-71-78.bchsia.telus.net] has joined #scheme 22:49:59 synx: Why does it have that in it? 22:50:01 Oh... 22:50:10 well, no, why is that a problem? 22:50:18 Are you using namespaces? 22:50:42 If not, you can "assume" that everything is one namespace, and don't give xml->html any namespaces to work with, then it won't use them. 22:51:43 That is, from the paste you posted, you should not have specified the name space in the xml->sxml command. 22:52:14 -!- Summermute66 [n=scott@c-68-34-67-216.hsd1.dc.comcast.net] has quit [Read error: 110 (Connection timed out)] 22:52:32 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 22:55:20 I'm using namespaces. 22:55:36 SVG tends to float around about 5 namespaces... 22:56:20 -!- hotblack23 [n=jh@p5B057F63.dip.t-dialin.net] has quit ["Leaving."] 22:57:38 -!- Makoryu [n=vt920@pool-74-104-123-150.bstnma.fios.verizon.net] has quit ["Absquatulandus sum"] 22:58:48 synx: Well, if you use the xml->html generator, then it should respect the namespaces when it generates the XML. 22:59:37 -!- RageOfThou [n=RageOfTh@91.191.38.130] has quit [Read error: 131 (Connection reset by peer)] 22:59:46 RageOfThou [n=RageOfTh@users-38-130.vinet.ba] has joined #scheme 23:01:09 I'm pretty much just using the xml->html generator in the first place, just modified for all the extra stuff. The *NAMESPACES*->xmlns part is just difficult to manage though. 23:02:06 Aah, -> xmlns could be trouble. 23:03:21 rstandy [n=rastandy@net-93-144-15-87.t2.dsl.vodafone.it] has joined #scheme 23:03:41 It's impossible to say where you should stop appending namespace prefixes and start setting up an xmlns thing. 23:03:48 I can probably just stuff them all into the top tag though... 23:05:37 zanes [n=zane@nomad.ccs.neu.edu] has joined #scheme 23:06:09 dmoerner [n=dmr@134.173.89.65] has joined #scheme 23:07:26 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 23:15:21 -!- mabes [n=mabes@66.236.74.194] has quit [Remote closed the connection] 23:23:43 -!- RageOfThou [n=RageOfTh@users-38-130.vinet.ba] has quit [Read error: 110 (Connection timed out)] 23:31:06 -!- jlongster [n=user@75.148.111.133] has quit [Read error: 148 (No route to host)] 23:33:57 sstrickl [n=sstrickl@pool-151-199-30-68.bos.east.verizon.net] has joined #scheme 23:39:34 -!- choas [n=lars@p5B0DD4AF.dip.t-dialin.net] has quit [Read error: 113 (No route to host)] 23:54:00 -!- rbf_ [n=robby@adsl-75-22-196-79.dsl.chcgil.sbcglobal.net] has quit [Read error: 110 (Connection timed out)] 23:54:01 Makoryu [n=vt920@pool-74-104-123-150.bstnma.fios.verizon.net] has joined #scheme 23:55:32 -!- rdd [n=user@c83-250-145-223.bredband.comhem.se] has quit [Read error: 110 (Connection timed out)] 23:58:32 -!- zanes [n=zane@nomad.ccs.neu.edu] has quit []