00:02:10 -!- arabesca [n=arabesca@83.231.75.250] has quit [Read error: 104 (Connection reset by peer)] 00:06:02 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit ["Leaving."] 00:11:58 -!- ASau [n=user@83.69.227.32] has quit [Read error: 110 (Connection timed out)] 00:15:04 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 00:22:02 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 00:46:55 -!- davazp [n=user@16.Red-83-37-232.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 01:13:23 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 01:16:35 -!- samth is now known as samth_away 01:17:54 -!- kazzmir [n=kazzmir@98.202.86.149] has quit [Read error: 104 (Connection reset by peer)] 01:18:21 kazzmir [n=kazzmir@98.202.86.149] has joined #scheme 01:28:31 -!- masm [n=masm@bl7-199-242.dsl.telepac.pt] has quit ["Leaving."] 01:35:40 mrd` [n=matthew@shinobi.dempsky.org] has joined #scheme 01:42:12 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 01:46:57 -!- mrsolo [n=mrsolo@nat/yahoo/x-ewphmcohjqkrzcmd] has quit ["Leaving"] 02:03:12 -!- flonklebonkle [n=nobody@Wb6cc.w.pppool.de] has quit [Read error: 110 (Connection timed out)] 02:18:08 kilimanjaro [n=kilimanj@unaffiliated/kilimanjaro] has joined #scheme 02:18:27 samth [n=samth@c-71-192-54-143.hsd1.ma.comcast.net] has joined #scheme 02:20:03 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit ["Leaving."] 02:21:46 -!- blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has quit [] 02:22:49 Coffee0000 [n=coffee@gl09-112.gl09.cilas.net] has joined #scheme 02:23:09 -!- Coffee0000 [n=coffee@gl09-112.gl09.cilas.net] has quit [Client Quit] 02:28:04 jonrafkind [n=jon@98.202.86.149] has joined #scheme 02:46:02 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 02:54:37 bokr [n=eduska@95.154.102.124] has joined #scheme 02:56:48 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 02:57:52 http://thoughts.j-davis.com/2009/11/29/linux-oom-killer/ 03:00:12 I know a roundabout alias for "killall firefox" is to simply try compiling a 10kloc source file with Gambit. 03:00:32 -!- underspecified [n=eric@softbank220043052007.bbtec.net] has quit [] 03:01:36 It took me a while to comprehend why it could even happen that when process A allocates massive amounts of memory, and Linux runs out of memory, that Linux could ever choose to kill idle process B. 03:02:07 You can probably buffer firefox with SBCL, CCL, or another Lisp whose heap uses a few GB of non-memory-backed pages. 03:02:09 Clearly process A is the broken or malicious process! 03:02:24 bombshelter13b [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 03:02:36 -!- bombshelter13b [n=bombshel@76-10-149-209.dsl.teksavvy.com] has quit [Remote closed the connection] 03:02:52 -!- saccade_ [n=saccade@dhcp-18-111-70-156.dyn.mit.edu] has quit ["This computer has gone to sleep"] 03:03:10 Personally, I just choose to disable overcommit; I see a commenter has pointed that out as well. 03:03:13 But I guess what's happening is that Linux is just getting brk() from some process at some point, not necessarily A. It's not trivial to identify the bad process. 03:04:50 Yeah, I think I'll switch to disable overcommit. 03:08:22 I seem to recall that the oom-killer has some sorta heuristic when it chooses its victims. Of course, they said the same about Mengele 03:09:00 Well, it's classic serial-killer behavior. 03:10:46 The generalized algorithm is something along the lines of (a) kill the process which is actually using virtual memory sensibly for its use case, because kernel programmers don't understand this newfangled garbage collection / shared memory stuff, (b) kill X just for kicks (or better, something vital to the session, like the panel), (c) kill the badly-behaved process 03:11:33 sounds about right 03:12:03 it's so zen. 03:13:21 metasyntax` [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has joined #scheme 03:15:22 shortsightedsid_ [i=c0a314e8@gateway/web/freenode/x-nnlelagerdfcrcvi] has joined #scheme 03:18:24 -!- shortsightedsid_ [i=c0a314e8@gateway/web/freenode/x-nnlelagerdfcrcvi] has quit [Ping timeout: 180 seconds] 03:18:29 chandler: You use 90 for the overcommit_ratio? 03:22:33 80, typically. No idea how I picked that. 03:25:42 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 03:31:13 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 03:33:49 disabling overcommit reminds me of 90s-era HP-UX 03:35:09 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 03:37:16 Hm. It appears that I have one machine set up to always overcommit, and another set up to never overcommit. 03:45:15 flonklebonkle [n=nobody@p5B03ADE9.dip0.t-ipconnect.de] has joined #scheme 03:45:54 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 03:52:00 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 03:55:09 Why would you not want to be able to alloc 100% of the physical memory? 03:55:41 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 04:00:26 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 04:02:52 saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 04:06:51 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 04:09:33 -!- timj [n=timj@e176192024.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:09:47 timj [n=timj@e176201213.adsl.alicedsl.de] has joined #scheme 04:13:18 -!- Axioplase_ is now known as Axioplase 04:17:28 sepult` [n=levgue@xdsl-87-78-72-132.netcologne.de] has joined #scheme 04:17:29 -!- samth [n=samth@c-71-192-54-143.hsd1.ma.comcast.net] has quit [Read error: 113 (No route to host)] 04:18:35 -!- foof [n=user@FL1-122-131-144-165.osk.mesh.ad.jp] has quit [Read error: 110 (Connection timed out)] 04:22:16 veritos [i=4c68f9a7@gateway/web/freenode/x-qbnekkrvnzkcjzai] has joined #scheme 04:23:43 Hello folks. I'm using PLT and need to store key-value pairs. I'm currently using an association list to do this, but that is not ideal as it's O(n), i.e. slow, and wastes a lot of memory holding old values. Are there other dictionary-like structures that I would find useful? 04:25:00 hash? 04:25:15 (make-hash) 04:25:27 Looks promising 04:25:48 *veritos* asks the instructor whether I can (require scheme/dict) 04:32:44 -!- sepult [n=levgue@xdsl-78-35-199-195.netcologne.de] has quit [Success] 04:33:15 jonrafkind, what about disk-persistent data-structures? 04:33:51 I think you can serialize hashes to files 04:34:10 otherwise use a database 04:36:03 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:36:33 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 04:38:53 And now to determine why (make-hash) isn't being found, i.e. where PLT decided to put it. 04:39:17 works fine for me 04:39:20 what language level are you in 04:39:33 Pretty Big 04:39:40 (make-hash-table) works, though 04:39:49 oh you are using plt 3xx 04:39:55 can you upgrade to 4.x.x? 04:39:59 the latest is 4.2.2 04:40:04 No, 4.2.2 04:40:13 ??? 04:40:15 no what? 04:40:25 you are using 4.2.2? 04:40:26 I just looked. I'm in 4.2.2. 04:41:16 oh i thought they got rid of pretty big, well usually I use the module language 04:41:16 with #lang scheme 04:41:25 #lang scheme/gui is equivalent to pretty big I think 04:41:31 and you will get (make-hash) 04:43:50 underspecified [n=eric@walnut.naist.jp] has joined #scheme 04:45:11 ooh joy, get to fight with a TA for a different class 04:46:58 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:57:02 -!- veritos [i=4c68f9a7@gateway/web/freenode/x-qbnekkrvnzkcjzai] has quit ["Page closed"] 04:59:23 bombshelter13b [n=bombshel@76-10-149-209.dsl.teksavvy.com] has joined #scheme 05:10:44 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 05:18:20 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:24:45 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 05:25:42 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:43:21 -!- jonrafkind [n=jon@98.202.86.149] has quit [Read error: 60 (Operation timed out)] 05:48:24 -!- bokr [n=eduska@95.154.102.124] has quit ["Ex-Chat"] 05:52:03 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 05:57:34 TCO on the JVM (again): http://blogs.sun.com/jrose/entry/tailcalls_meet_invokedynamic 06:00:31 bokr [n=eduska@95.154.102.124] has joined #scheme 06:02:52 -!- bokr [n=eduska@95.154.102.124] has quit [Client Quit] 06:03:05 bokr [n=eduska@95.154.102.124] has joined #scheme 06:03:39 rcmp on the qt 06:04:07 offby1: royal canadian mounted police? 06:04:38 why, yes. 06:08:20 Arelius [n=Indy@66.218.55.101] has joined #scheme 06:16:17 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 06:16:37 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 06:28:15 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 06:32:02 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 06:39:12 -!- annodomini [n=lambda@wikipedia/lambda] has quit [] 06:45:59 -!- copumpkin [n=copumpki@dhcp-212-204.cs.dartmouth.edu] has quit [] 06:48:59 Fufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 06:55:18 -!- Arelius [n=Indy@66.218.55.101] has quit [] 06:58:33 mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 07:00:18 -!- nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has quit [Read error: 110 (Connection timed out)] 07:19:28 albacker [n=eni@unaffiliated/enyx] has joined #scheme 07:23:53 copumpkin [n=copumpki@c-24-63-67-154.hsd1.nh.comcast.net] has joined #scheme 07:26:35 ASau [n=user@host156-230-msk.microtest.ru] has joined #scheme 07:31:34 -!- antoszka [n=antoszka@unaffiliated/antoszka] has quit ["+++ killed by SIGSEGV +++"] 07:37:34 i suggested to some cat in #latex doing web programming in c++ that he check out fastcgi + scheme 07:37:38 i was summarily blackballed 07:38:39 appreciation appears to be unidirectional between scheme and latex 07:41:29 -!- rlarson`` [n=reid02@CPE00226b5e2074-CM000e5c6ebb22.cpe.net.cable.rogers.com] has quit ["Coyote finally caught me"] 07:42:37 rlarson`` [n=reid02@CPE00226b5e2074-CM000e5c6ebb22.cpe.net.cable.rogers.com] has joined #scheme 07:45:25 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 07:45:47 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 07:56:42 sjamaan: what do you think: too trivial for a SRFI? http://danenberg.name/srfi-105-alist-ref.html 07:58:31 morning 08:00:36 klutometis: How about adding alist-update[!] and alist-delete? 08:01:06 I think those two are quite imporant as well 08:01:24 sjamaan: that occurred to me, too; i suppose if people are using alists, they wouldn't care that update! and delete are linear time 08:01:33 alist-delete and alist-delete! are in srfi-1, i think 08:01:57 you're right 08:02:10 should we distinguish between alist-ref and alist-ref/default like srfi-69? 08:02:15 Why wouldn't they care about linear time? 08:02:16 also, can i list you as an author? 08:02:23 Not as an author 08:02:29 because otherwise they might use hash tables 08:02:33 if you want to add an acknowledgement, feel free to do so 08:02:35 ok 08:03:41 I don't know why hash-table-ref uses thunks 08:04:06 it seems like you could use the hash-table-ref/default semantics with a thunk if you really need a thunk 08:04:07 But if you want to distinguish between that and /default, I'd use the same semantics as srfi-69 08:04:14 Otherwise it's too confusing 08:04:52 i had originally planned to mirror srfi 69; then i realized that chicken already defines an alist-ref, and copied their semantics 08:05:03 i'm not sure which is the more important precedent 08:05:46 I think some extra research is warranted 08:05:47 if we add -ref, -ref/default and -update!; certainly srfi-69 08:05:50 How do other Schemes do it? 08:06:02 i tried to figure that out myself; google wasn't much help 08:06:07 might have to consult the local gurus 08:06:22 Or just check the manuals for various systems 08:07:42 http://okmij.org/ftp/Scheme/util.html#lookup-def might be interesting too 08:07:50 Oleg's code is in wide use 08:09:19 hm, scsh's alist-compress is useful too http://www.scsh.net/docu/html/man-Z-H-4.html#node_idx_710 08:12:06 Guile's approach is interesting in how it mirrors the RnRS procedures http://www.gnu.org/software/guile/manual/guile.html#Retrieving-Alist-Entries 08:12:08 -rudybot:#scheme- http://tinyurl.com/yzhp4ah 08:13:23 -!- mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has quit [Read error: 110 (Connection timed out)] 08:16:31 bryanzh [n=user@207.46.55.31] has joined #scheme 08:18:23 It's odd how few Schemes have such a procedure... 08:18:33 *sjamaan* uses it all the time! 08:19:17 I should use alists more often :) 08:19:51 klutometis: why not just use assp ? 08:21:05 im a hashtable person myself, but for small lists (< 20) they do fine :) 08:21:14 leppie|work: What Scheme has that? 08:21:15 they being alists 08:21:34 R6RS and who knows 08:22:13 from the snippet it does look like the SRFI 1 assoc is basically the same 08:22:46 s/basically/almost/ 08:23:02 the srfi1 assoc? 08:23:20 R5RS has alists too 08:23:41 yes, the assoc accepting an 'equal?' parameter 08:24:29 Also, personally, I would not use that 'let' for defaults. Eg default-equal? can just be eq? placed in the call. 08:24:33 ah, but that's not what klutometis is documenting 08:24:46 alist-ref returns only the cdr 08:25:25 yes, I do realise that 08:25:49 Did you read the rationale in klutometis' draft? 08:26:17 im just talking about the usage of assoc there, compared to what we got in R6RS, namely assp 08:26:36 R6RS needlessly reinvented existing procedures, giving them different names 08:26:43 I think it's fair to ignore that "standard" 08:26:49 SRFI-1 is more widespread 08:27:12 And much older, to boot 08:29:46 lisppaste: url 08:29:46 To use the lisppaste bot, visit http://paste.lisp.org/new/scheme and enter your paste. 08:30:06 leppie pasted "How I would do it" at http://paste.lisp.org/display/91332 08:31:58 sjamaan: that's why I said it is ALMOST the same :) there is no reinvention, just a generalization of assoc and friends 08:32:17 leppie|work: That's a cleaner implementation. Very nice 08:32:31 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 08:32:52 case-lambda makes the defaults that probably need to live in a closure, obsolete (in most cases) 08:32:57 pavelludiq [n=quassel@91.139.194.245] has joined #scheme 08:33:01 oops 08:33:09 there is a bug 08:33:40 ah, you're right; assp is slightly different 08:34:13 leppie annotated #91332 "Hmm" at http://paste.lisp.org/display/91332#1 08:34:18 In cases where assp is useful, I'd probably use find 08:35:52 we have find too in R6RS, but that is like you said, like assp 08:35:58 One could also use SRFI-89, that would make it even shorter I think 08:36:44 ah I didn't know about case-lambda, this is nice! 08:36:45 many of the list utility procedures in R6RS is just inverse of the others 08:37:20 (define* (alist-ref key alist (equal? eq?) (default #f)) (let ...)) 08:38:11 case-lambda is easier to read for my eyes atm 08:43:47 I prefer case-lambda too 08:46:23 really? 08:46:25 interesting 08:47:06 I guess I'm too used to chicken's DSSSL syntax, which srfi-89 is kinda similar to 08:52:56 leppie|work: do you mean assq instead of assp? 08:53:34 -!- bryanzh [n=user@207.46.55.31] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 08:53:35 nice rewrite, btw 08:53:46 nope, that's assp 08:56:41 FufieToo [n=poff@Gatekeeper.vizrt.com] has joined #scheme 08:57:41 sjamaan: that's the conclusion i came to, too; i couldn't find many equivalents to alist-ref 08:58:07 klutometis: Did you see the guile manual link? 08:58:10 And the scsh one? 09:02:39 sjamaan: {assq,assv,assoc}-ref was a good find; lookup-def, too 09:02:43 how is alist-compress useful? 09:04:20 If you use alist-cons, alists will only grow 09:04:36 If you use append to join together alists, same thing 09:04:57 interesting; so you're thinking towards a general alist-utils srfi? 09:05:12 yes, that might be a good thing to have 09:05:40 good point; i end up writing those things again and again 09:05:55 do you have any preference for the chicken, srfi-69 or guile methods for alist-ref? 09:07:03 I'm biased towards the Chicken one, obviously ;) 09:07:16 (it's also more consistent with alist-cons, alist-delete and alist-update) 09:07:41 right; and i still couldn't find any motivation for the -ref -ref/default approach of srfi-69 09:08:03 Did you search the mail archives? 09:08:17 i do like, however, how lookup-def explicitly distinguishes between (a . b) and (a b); but why wouldn't they just use cdr? 09:08:21 sjamaan: doing so now 09:08:53 http://srfi.schemers.org/srfi-69/mail-archive/msg00068.html 09:08:55 interesting 09:09:15 Indeed! 09:09:16 I think we need a file system SRFI 09:09:19 also, http://srfi.schemers.org/srfi-69/mail-archive/msg00073.html 09:10:12 this seems to be the winning argument: http://srfi.schemers.org/srfi-69/mail-archive/msg00031.html 09:11:23 A good point 09:16:36 bryanzh [n=user@207.46.55.31] has joined #scheme 09:41:24 luz [n=davids@189.122.90.116] has joined #scheme 09:42:48 schmir [n=schmir@mail.brainbot.com] has joined #scheme 09:55:53 -!- bryanzh [n=user@207.46.55.31] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 10:01:22 snearch_ [n=olaf@e179131103.adsl.alicedsl.de] has joined #scheme 10:04:54 -!- drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has quit ["Leaving"] 10:10:07 a-s [n=user@nat-240.ro.66.com] has joined #scheme 10:14:23 masm [n=masm@bl7-201-182.dsl.telepac.pt] has joined #scheme 10:18:30 Edico [n=Edico@unaffiliated/edico] has joined #scheme 10:24:46 -!- ASau [n=user@host156-230-msk.microtest.ru] has quit ["reboot"] 10:45:22 mmc [n=mima@esprx01x.nokia.com] has joined #scheme 10:50:40 -!- kilimanjaro [n=kilimanj@unaffiliated/kilimanjaro] has quit ["Leaving"] 10:55:56 mario-goulart [n=user@67.205.85.241] has joined #scheme 10:56:55 ASau [n=user@host156-230-msk.microtest.ru] has joined #scheme 11:08:35 -!- ASau [n=user@host156-230-msk.microtest.ru] has quit [Read error: 104 (Connection reset by peer)] 11:10:12 -!- masm [n=masm@bl7-201-182.dsl.telepac.pt] has quit ["Leaving."] 11:18:12 neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has joined #scheme 11:21:44 *neilv* starts PLT 4.2.3 build 11:24:09 ASau [n=user@host156-230-msk.microtest.ru] has joined #scheme 11:30:30 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 11:39:49 actually, there is a build problem 11:42:16 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 11:42:28 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 11:45:38 -!- Nshag [i=user@lns-bzn-37-82-253-36-195.adsl.proxad.net] has quit [Read error: 60 (Operation timed out)] 11:48:20 Would anyone kindly suggest a unit test framework for Scheme? 11:49:52 if you're using plt, take a look at schemeunit 11:50:27 Didn't Riastradh write a "portable" one? 11:52:22 dunno. i still use testeez 11:54:07 bryanzh [n=user@114.94.104.187] has joined #scheme 11:55:55 -!- bryanzh [n=user@114.94.104.187] has left #scheme 11:57:08 neilv: ah, that looks interesting ;) thanks 12:01:12 Nshag [i=user@lns-bzn-44-82-249-227-204.adsl.proxad.net] has joined #scheme 12:01:45 -!- ASau [n=user@host156-230-msk.microtest.ru] has quit [Read error: 104 (Connection reset by peer)] 12:05:35 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 12:10:01 -!- jmcphers [n=jmcphers@218.185.108.156] has quit [Remote closed the connection] 12:10:23 neilv: Is there a one-file downloadable version of testeez for use with any r5rs Scheme? 12:11:14 there used to be, but temporarily not, sorry. i'm in the middle of converting how i manage portability 12:12:05 i think you just have to comment out the plt "#lang" line in this library. hold on 12:12:33 msg me your email address, and i'll email a single r5rs file to you 12:13:15 -!- a-s [n=user@nat-240.ro.66.com] has quit [Remote closed the connection] 12:15:32 a-s [n=user@nat-240.ro.66.com] has joined #scheme 12:19:29 mreggen [n=mreggen@cm-84.215.28.167.getinternet.no] has joined #scheme 12:23:52 -!- underspecified [n=eric@walnut.naist.jp] has quit [] 12:26:51 ASau [n=user@host186-230-msk.microtest.ru] has joined #scheme 12:30:42 neilv: in case you want to know, there's an errant (void) in there (-> (values)) and the (provide testeez) at the end isn't portable either. otherwise it seems to work fine! 12:42:48 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [] 12:43:55 oh yeah, sorry 12:44:40 i'm migrating to having plt-scheme be my source format, and then doing translation to r5rs and other dialects, but haven't done the translator yet 12:45:05 developing in r5rs + srfis was painful once i wanted to use plt toys 12:45:13 no problem at all, easily fixed. works well and simple to use, just what i wanted ;) 12:46:17 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit ["Leaving."] 12:47:21 foof [n=user@FL1-122-131-144-165.osk.mesh.ad.jp] has joined #scheme 12:47:29 xwl [n=user@61.149.82.104] has joined #scheme 12:58:16 sigh. time to go do windows system programming 12:58:53 it could be done in plt with the ffi, but i haven't yet convinced my colleagues of how viable that is 13:00:25 i'm solving all kinds of C# .net problems with lambda expressions now, feels like a very limited Scheme sometimes ;) 13:01:53 c# is first and foremost a political language, because msft didn't want to embrace sun nor be at their mercy 13:02:26 msft at the time new all about the dynamic of one party being over a barrel, and was not into role-reversal 13:02:47 ack. gotta run 13:02:50 -!- neilv [n=user@dsl092-071-030.bos1.dsl.speakeasy.net] has quit ["Leaving"] 13:22:10 -!- snearch_ [n=olaf@e179131103.adsl.alicedsl.de] has quit ["Ex-Chat"] 13:27:44 annodomini [n=lambda@c-75-69-96-104.hsd1.nh.comcast.net] has joined #scheme 13:29:53 -!- annodomini [n=lambda@wikipedia/lambda] has quit [Client Quit] 13:30:34 blackened` [n=blackene@ip-89-102-22-70.karneval.cz] has joined #scheme 13:46:06 Narrenschiff [n=ritchie@vpn136.its.manchester.ac.uk] has joined #scheme 13:47:40 -!- sepult` [n=levgue@xdsl-87-78-72-132.netcologne.de] has quit [Client Quit] 13:49:25 sepult [n=levgue@xdsl-87-78-72-132.netcologne.de] has joined #scheme 13:49:36 samth [n=samth@c-71-192-54-143.hsd1.ma.comcast.net] has joined #scheme 13:52:03 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 14:09:37 jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has joined #scheme 14:11:03 -!- jeapostrophe [n=jay@69.169.141.110.provo.static.broadweavenetworks.net] has quit [Client Quit] 14:22:08 ecraven: i feel the same, the last 2 years of scheme made me a much better C# coder 14:22:34 intelligent would be a better word for better 14:40:50 -!- leppie [n=lolcow@196-210-146-155-tvwt-esr-2.dynamic.isadsl.co.za] has quit [] 14:44:55 masm [n=masm@bl7-201-182.dsl.telepac.pt] has joined #scheme 15:03:10 nothingHappens [n=nothingH@173-25-176-111.client.mchsi.com] has joined #scheme 15:20:01 -!- xwl [n=user@61.149.82.104] has quit [Read error: 110 (Connection timed out)] 15:27:30 -!- samth [n=samth@c-71-192-54-143.hsd1.ma.comcast.net] has quit [Read error: 110 (Connection timed out)] 15:36:46 langmartin [n=user@exeuntcha.tva.gov] has joined #scheme 15:44:06 -!- a-s [n=user@nat-240.ro.66.com] has quit [Remote closed the connection] 15:45:41 -!- samth_away is now known as samth 15:47:19 -!- FufieToo [n=poff@Gatekeeper.vizrt.com] has quit ["Leaving"] 15:51:56 -!- sstrickl [n=sstrickl@pool-151-199-54-60.bos.east.verizon.net] has quit [] 16:02:31 -!- Narrenschiff [n=ritchie@vpn136.its.manchester.ac.uk] has quit [Read error: 60 (Operation timed out)] 16:12:02 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 16:13:15 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 16:18:25 -!- bokr [n=eduska@95.154.102.124] has quit [Remote closed the connection] 16:26:09 Riastradh [n=riastrad@tissot.csail.mit.edu] has joined #scheme 16:26:55 klutometis, making alists convenient to use would encourage programmers to use them when they are almost always a mistake to use. Why bother? 16:28:20 Instead, hash tables could be implemented to be as compact as alists when they are small enough for alists to be faster. 16:28:49 Riastradh, have you seen any implementations of hash tables in which that is true? 16:30:23 Yes, Scheme48's. 16:31:15 sepult` [n=levgue@xdsl-87-78-171-30.netcologne.de] has joined #scheme 16:31:22 ravenex [n=raven@mm-198-239-84-93.leased.line.mgts.by] has joined #scheme 16:31:48 Up to a certain size, the internal representation is an alist; after that, it is `rehashed' (or, to be precise, hashed for the first time) to form a hash table structure. 16:33:18 There is always a constant overhead (about six words, I think, which could be reduced by a word or so), but that's all. 16:35:41 The rest of that hash table implementation is not very clever, and could stand substantial improvement (for example, it chooses array sizes that are not likely to be prime numbers, uses crummy hash functions by default, suffers domain contagion by denoting absence with #F, &c.), but in this one respect it is nice. 16:39:24 rbf_ [n=robby@ebc-3-63.hotspot.utah.edu] has joined #scheme 16:39:37 -!- rbf_ [n=robby@ebc-3-63.hotspot.utah.edu] has left #scheme 16:39:58 rbf_ [n=robby@ebc-3-63.hotspot.utah.edu] has joined #scheme 16:41:13 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 16:41:39 -!- rbf_ [n=robby@ebc-3-63.hotspot.utah.edu] has left #scheme 16:45:54 -!- sepult [n=levgue@xdsl-87-78-72-132.netcologne.de] has quit [Connection timed out] 16:52:32 jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 16:59:12 Riastradh, how does the performance compare? 17:00:22 Riastradh: What is the reason for that six-word constant overhead in the alist-representation case? 17:02:40 Do you guys use anything special to make emacs indent and-let*'s body decently? 17:02:46 I would imagine that the constant overhead could be reduced to a word or so on most systems, and the run-time penalty reduced to almost zero. The constant word would contain whatever kind of tag is necessary along with an index into a table of tables of operations which are specific to either the hash or the alist case. 17:04:12 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:09:07 mario-goulart: (put 'and-let* 'scheme-indent-function 1) 17:10:47 foof: eternally grateful 17:12:15 jimrees [n=jimrees@ita4fw1.itasoftware.com] has joined #scheme 17:18:20 leppie [n=lolcow@196-210-146-155-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 17:23:14 ASau` [n=user@83.69.227.32] has joined #scheme 17:24:49 What's the etymology behind "indent" in the context of source code? 17:25:40 lolcow [n=lolcow@196-210-146-155-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 17:25:40 -!- leppie [n=lolcow@196-210-146-155-tvwt-esr-2.dynamic.isadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 17:26:31 leppie [n=lolcow@196-210-146-155-tvwt-esr-2.dynamic.isadsl.co.za] has joined #scheme 17:26:31 -!- lolcow [n=lolcow@196-210-146-155-tvwt-esr-2.dynamic.isadsl.co.za] has quit [Read error: 104 (Connection reset by peer)] 17:26:46 -!- sepult` is now known as sepult 17:27:08 -!- elf [i=elf@antenora.aculei.net] has quit [Read error: 60 (Operation timed out)] 17:29:44 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit ["Ex-Chat"] 17:29:47 sstrickl [n=sstrickl@dublin.ccs.neu.edu] has joined #scheme 17:30:05 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:32:01 an "indentation" is a depression, or a region that's "pushed in" ... imagine something soft like clay, and you stick your finger in it, then take your finger away; that leaves a "dent" 17:32:12 what's the word in your language? 17:32:23 Portuguese? 17:32:25 Dawgmatix [n=dawgmati@c-76-124-8-39.hsd1.nj.comcast.net] has joined #scheme 17:32:54 in fact, I bet the original root of the word means "bite mark", or something, since "dent" is (roughly) Latin for "tooth" 17:33:28 offby1: I'd like to know in english because I don't know the right word in my language (portuguese). :-) 17:34:59 mario-goulart: mordida 17:35:16 which I'm sure also means "bite" 17:35:19 :-D 17:35:56 google says "recuo" 17:36:05 or "recorte dentado" 17:37:06 Actually there are two close ones: endentação and indentação. 17:37:20 endentação is more related to bite. 17:37:53 chandler, you could reduce the overhead further at the expense of some other operations. The current representation is: one word for a header indicating a record of length 5, one word for the record type descriptor, one word for the size of the table (usually a fixnum, hence immediate), one word for the descriptor for the alist object, one word for the lookup procedure, and one word for the update procedure. 17:38:06 I don't know if indentação is not one of those words "absorved" by the language due to its frequent recent use. 17:38:18 mario-goulart: I'd get all the lua source and see what they say -- there are probably Portuguese comments in there 17:38:55 samth, the performance has not been compared recently to my knowledge, but this cleverness was necessary fifteen years ago to make the hash table abstraction worth using over alists for much of Scheme48 (which had to fit in certain restrictive robotic environments). 17:39:56 offby1: it's english. 17:40:16 -!- Nshag [i=user@lns-bzn-44-82-249-227-204.adsl.proxad.net] has quit [Read error: 110 (Connection timed out)] 17:44:48 Riastradh, performance results from 15 years ago are unlikely to be useful today 17:45:51 wikipedia says it's indentação (http://pt.wikipedia.org/wiki/Indenta%C3%A7%C3%A3o) 17:46:20 samth, I don't mean to sound rude, but what is your point? You're right that systems and their performance have changed dramatically in 15 years. And..? 17:46:34 Although pt.wikipedia may be european portugues, IFAIK. 17:48:10 Nshag [i=user@lns-bzn-36-82-251-12-151.adsl.proxad.net] has joined #scheme 17:51:26 gnomon, i'm saying that i would want to see performance numbers for Riastradh's alist->hashtable strategy 17:51:39 and that performance numbers from 15 years ago aren't convincing 17:53:57 -!- samth [n=samth@punge.ccs.neu.edu] has quit ["Ex-Chat"] 17:54:06 samth, I think you mean scheme48's alist->hashtable strategy... 17:54:17 bah 17:55:04 mario-goulart: In Portugal we use "indentação". 17:55:15 samth [n=samth@punge.ccs.neu.edu] has joined #scheme 17:55:17 http://www.priberam.pt/dlpo/default.aspx?pal=indentar 17:55:53 shyam_k [n=user@unaffiliated/shyam-k/x-8459115] has joined #scheme 17:56:29 Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has joined #scheme 17:57:25 samth, I think you mean scheme48's alist->hashtable strategy. Why are you demanding performance numbers? When you say that performance numbers from 15 years ago "aren't convincing", of what are you trying to convince yourself? 17:59:22 gnomon, that's its a worthwhile performance optimization 17:59:53 masm: thanks. I'm gonna stick to indentação. 18:00:01 it is only a performance optimization to use alists, ever 18:00:17 and you shouldn't use performance optimizations that aren't measured to have value 18:06:30 snearch [n=olaf@g225063148.adsl.alicedsl.de] has joined #scheme 18:07:53 *gnomon* shrugs 18:08:14 samth, see question 2-2 in the c.l.l. FAQ: http://www.faqs.org/faqs/lisp-faq/part2/ 18:09:05 This is certainly worth measuring. I hope it didn't seem as though I was suggesting that everyone should adopt precisely this strategy. 18:09:10 As caching performance makes larger and larger memory blocks cost the same to pull in to L1/L2 from core, I expect the break-even point where hash tables beat alists will only continue to increase. 18:10:17 i changed from alists to hashtables then to a hybrid system in IronScheme's version of psyntax 18:10:36 I mentioned Scheme48's strategy as an example of a (once) successful case of making small hash tables approximately as cheap as alists, thereby encouraging programmers to use hash tables by default rather than alists. 18:11:19 And that's the real point: to encourage programmers to use hash tables by default rather than alists, because alists are almost always inappropriate. 18:11:40 except for data :) 18:13:18 alists are nice for config files and data transfer 18:13:34 Yes, but not for computation. 18:13:42 that's what I mean for data, the food for hashtables :) 18:13:43 Riastradh, wouldn't a hash table have to deal with alists anyhow, to manage collisions? 18:14:06 Yes...one approach to implementing hash tables is to use alists for buckets. 18:14:09 Right - using them as a general data structure is a good way to ensure that someday your program will explode :) 18:14:23 Riastradh, right, sorry, one possible technique. 18:14:36 -!- mmc [n=mima@esprx01x.nokia.com] has quit [Remote closed the connection] 18:14:45 is there any 'map' variant which returns false if any of its output becomes false (i already wrote one myself.. but just to use a library function is there is one).. 18:14:51 wouldnt alist be limiting? seeing you need constant index lookups 18:15:03 alists for buckets 18:15:19 Riastradh, I wonder how one might merge those two ideas? Short tables being alists, that is, and buckets also being alists? Could one make a small enough table fit into a single alist'd bucket? 18:15:23 Hmm. 18:16:19 gnomon, well, usually, you don't want the number of entries in the hash table to exceed the length of the vector of buckets -- that implies that there are collisions, which ought to be avoided. 18:16:20 leppie, I believe that Riastradh was active on the mailing list for a SRFI which would provide O(1) list indexing. Riastradh, I can't remember the number offhand... 18:16:36 Logarithmic-time, not linear-time, gnomon. 18:16:41 D'oh. 18:16:42 But that's irrelevant. 18:16:43 ahh ok I see what is meant, the buckets is a vector of alists 18:16:46 Yes, leppie. 18:16:57 Buckets don't ever require an indexing operation. 18:17:00 well just if there is a collision 18:17:27 leppie, no: if you have a collision, you have to scan the bucket list to find the correct entry. An index wouldn't help you. 18:17:59 but why would cant you just use a list? 18:18:18 leppie, because if all you've got is a list of values, how do you know which key points to which value? 18:18:39 oh, so you dump all collisions in an alist? 18:18:42 (ah, the O(log n) list-index SRFI is 101) 18:19:00 leppie, or into a vector, or something else, sure. 18:19:10 leppie, that's just one way of dealing with collisions. 18:19:20 that sounds like a very slow way :p 18:19:48 IIF you have collisions 18:20:35 What sounds like a very slow way? Handling collisions by putting keys whose hashes collide into an alist? 18:21:01 yes 18:21:52 The most common alternative, open addressing, generally uses much more space, and is more complicated to implement. 18:21:56 given an ultra naive implementation of the hashtable and the hash code provider, that will make lookups O(n) 18:22:48 space efficient though, like you said 18:22:53 Yes. You do realize that the constant average time lookup and update of hash tables depends on a good hash function, right? 18:23:13 yes 18:23:13 Choose a crummy hash function, and it doesn't matter how cleverly the hash table is laid out in memory. 18:23:52 Riastradh, choose an expensive hash function, and it doesn't matter either. 18:23:55 (lambda (obj bound) 0) 18:24:12 bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 18:30:02 Fare, even SHA1 or some other ridiculously expensive hash function would make some hash table data sets faster than linear lookups. 18:30:18 CPU time ain't gettin' any more 'spensive these days. 18:36:23 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 18:36:40 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 18:37:24 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 18:38:04 mrsolo [n=mrsolo@nat/yahoo/x-qtalxxuygkxaijtr] has joined #scheme 18:40:37 scottmcl [n=chatzill@98.204.67.114] has joined #scheme 18:41:20 just testing new client 18:41:27 -!- saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit ["This computer has gone to sleep"] 18:42:31 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 18:42:45 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 18:46:09 gnomon: a deforested co-hasher and walker could be great. And I suppose DES or something would be plenty good enough for the purpose 18:46:50 DES is not plenty good enough for any purpose :P 18:47:19 elly, it's better than the K&R bogohash! 18:47:28 yes, but slower 18:48:19 Still, you're right that being better than an even worse alternative doesn't make DES any better. 18:48:27 Of course, DES makes a pretty awful gzip replacement, too. 18:49:07 proq [n=user@unaffiliated/proqesi] has joined #scheme 18:52:50 Just curious, with quite a few Lisp machines designed and manufactured (not to mention the Smalltalk machines) - has anyone ever built a Scheme machine or other pieces of a Scheme machine architecture? 18:53:02 Yes. 18:53:32 Riastradh: Any info on the Web? 18:53:36 There have been at least two, the Scheme-79 and the Scheme-81. 18:56:21 the K-machine was also quite Scheme-friendly in its design 18:56:38 its continuation frames were heap-allocated. 18:57:02 see also various french Lisp Machines 18:59:17 *Fare* doesn't feel like updating his LispM page 18:59:29 but I will accept patches 18:59:30 French?! 19:00:14 I don't know whether any Scheme86 hardware was ever fabricated, but certainly the Scheme-79 and Scheme-81 were. 19:00:58 mejja: Lisp was popular in France during the 80s 19:01:21 So far the Scheme 79 chip seems interesting 19:01:37 wow just saw stallman's paper on scheme-81 :) 19:01:39 -!- scottmcl is now known as Summermute 19:01:50 http://www.limsi.fr/~jps/actions/m3l/m3l.htm 19:02:41 http://www.limsi.fr/~jps/actions/maia/maia.htm 19:04:17 -!- ravenex [n=raven@mm-198-239-84-93.leased.line.mgts.by] has quit [Read error: 110 (Connection timed out)] 19:05:05 Googled on Stallman and Scheme-81 and nothing obvious turned up 19:05:48 Any URL or citation? 19:06:05 (Hopefully free - not ACM, etc.) 19:07:37 Scheme, particularly with recent standardization efforts seems a perfect vehicle for returning to true systems research 19:08:53 agree @ summermute 19:09:19 wingo [n=wingo@81.Red-88-17-128.dynamicIP.rima-tde.net] has joined #scheme 19:09:43 Summermute: actually stallman is one of the co-authors of that paper and am yet to find the pdf though i have found it cited at many other papers and pages. 19:10:18 I'm thinking of stuff like: type inference; memory hierarchy supporting generational GC; attempts at liberation from the file system; standardization of application architecture (think pipes on Unix, just for example) to facilitate persistence, interoperability, data sharing 19:10:38 shyam_k: gotcha 19:10:57 Summermute: you got the paper? i am yet to get it:) link? 19:10:59 OK, Summermute. Go do that research and get lots of DARPA funding for it. 19:11:13 Maybe I'll dust off my old Lisp Pointers, but I don't think it was published back in '81 19:13:29 Is DARPA funding stuff like this anymore? I worry that the Intel/Unix Process Model/TCPIP/Hierarchical File System has just come to totally dominate the marketplace to such a degree, that we can barely *imagine* alternative advances. 19:14:21 Prepare a research program and persuade DARPA that it's worth their while to fund you. 19:15:18 Well, I am in DC and did sit down with, um, a "special" CIA pedigree Darpa fella once. 19:15:35 alternatively you can do a job in the daytime and fund your scheme development yourself 19:17:23 That's true - I've got boxen just languishing around the house. I'm not proud - willing to beg borrow and steal :-) Maybe start with one of these minimal homegrown OS's, rewrite the file system and UI in Scheme and see where it take me. 19:17:55 you dont even need many boxes anymore 19:18:07 linux + kvm is adequare to do distributed programming :) 19:18:22 Dawgmatix: I'm too old fashioned to imagine that :-) 19:18:30 Ah 19:19:18 Without the current tower of babel we live with, alot of interesting work could be done. 19:20:07 i like the current tower :) 19:20:56 Sure, I'd love to borrow truetype fonts, rejigger display postscript for scheme, leave tcp/udp/ethernet in place. No need to invent every wheel. 19:21:14 so build on top of it 19:21:22 -!- sshc [n=sshc@unaffiliated/sshc] has quit [Read error: 104 (Connection reset by peer)] 19:22:03 Just a hunch: if you actually want to do this, you'd be better off describing your research program to DARPA than describing it to #scheme. 19:22:14 (or to the NSF, or whatever other sources of grant money you can imagine) 19:22:14 But I have to admit that engineering a new memory hierarchy and a chip super friendly to Scheme is currently outside my skillset 19:22:50 Okee Dokee 19:23:00 start small - write hello world 19:23:05 djjack [n=djjack@cpe-098-026-029-215.nc.res.rr.com] has joined #scheme 19:23:20 I've been quite sick the last few weeks - any further progress on typed scheme? 19:24:05 There was talk of "porting" the comprehensions SRFI code to typed-scheme.Hmmmm - yummy 19:24:46 work for the man two or three days a week. then the rest, for the real hack 19:25:28 amen wingo :) 19:26:00 :-) My dream is to write an r6rs scheme on top of typed scheme, which of course, would sport an lovely compiler/optimizer/scheme friendly chip :-) 19:26:02 whens your next blog post coming ? 19:26:07 -!- djjack [n=djjack@cpe-098-026-029-215.nc.res.rr.com] has quit [Client Quit] 19:26:15 (am a big fan of your blog) 19:28:29 As for NSF/DARPA/NSA - I think an interesting approach would be *away* from numeric coding. Something toward web crawling, compilation/rationalization of data sources/search - "conceptual" computing. Perfect for Scheme. 19:30:25 'tis a real pity that there aren't more users of typed scheme here on #scheme. it's very cool - like coding in Scheme and SML at the same time (kinda) 19:31:16 I still haven't dived into type-scheme macrology, but that should be a real blast - Scheme macros, but with typed code! 19:32:30 Anyone take a look at Googles new "Go" (this comes back to Scheme, promise) 19:33:18 Dawgmatix: thanks! 19:33:20 soon, soon 19:34:01 It's pretty boring except for the quasi-object model. With all of Scheme's various object systems, someone should cobble something together to mirror Go's and see how she flies. 19:34:35 Summermute: how does their object model compare to clos's? 19:34:43 there's data types, interface types and methods on data types 19:35:26 So (interface (def speak words)) 19:35:55 how does that relate to generics? do they do multimethods? 19:36:08 sorry for asking googlable things, i'd rather not be sucked into the go vortex :) 19:36:13 Then a function/method: (listen-to-speaker speaker) - whoops forgot to name the interface. 19:37:07 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 19:37:31 Now we have some data: (datatype human (def speak (speaker words) (speak sound-device words))) 19:38:18 At this point we new abandon the nominal typing - by virtual of the "speak" method, "human" can be passed to the (listen-to-speaker) function. 19:39:23 There is NO traditional inheritance, particularly of data. Interfaces (traits) can be arbitrarily combined though, giving some of the benefits of multiple inheritance. 19:40:21 It's pretty cool - I like the idea of traits + data + data methods. It's very clean. It gives up on the idea that the world breaks down into some fantasy Aristotelian hierarchy :-) 19:41:53 I also like the minimal nominal typing (to combine traits, hook up methods to data), but then reversion to structural typing when the s**t hits the fan - type compatibility is purely based on method compatibility. 19:42:33 type compatibility = argument passing, assignment, binding, etc. 19:45:16 Dare I say that it appears to me superior to Scheme's basic nominal typing of structures. Even with such a simple data type, scheme uses functions like (hair-color hair), (hair-style hair) instead of more "generic" projection operators that might be applied to many types. 19:45:49 But that's really a quibble combined with a "structural subtyping" approach to type compatibility. 19:46:12 "combined" => "compared" 19:52:20 i have not heard anything here that could not apply to clos. 19:52:37 Sorry for the mini-rant, I've been isolated with a head full of language and scheme thoughts 19:52:42 heh, np :) 19:52:48 sometimes thoughts just need to get out :) 19:53:31 clos rocks conceptually :) 19:53:31 It's a really different beast that CLOS. First and foremost - no data inheritance (no real formal "inheritance") at all. 19:53:53 Instead, one gets structural subtyping which is super duper flexible. 19:53:59 clos does not require inheritance. 19:54:10 though it does support it 19:54:23 if all you want are generic functions, you can roll that way 19:54:32 I think the best of both worlds - haven't thought this through - would be a combination of structural subtyping with ClOS's open mulit-methods. 19:55:02 perhaps you should try to sketch that out 19:55:15 i understand you use plt; i hear swindle is ok for that kind of thing. 19:55:33 Darn - that is an idea worth thinking through. MOP'ish considerations could follow later if the basic model is sound. 19:56:14 sure 19:56:14 Wait - now we're talking CL and CLOS - no fair :-) 19:56:25 no, swindle is for plt and is clossy 19:56:29 afaik. 19:57:13 True enough. Does't one off the Eclipse built in Scheme's also support a CLOS'ish object model? 19:57:41 (Eclipse has not one but TWO build in scheme's last I checked.) 19:57:51 did not know that :) 19:58:22 Reason enough to isntall Eclispe - almost :-) 20:00:03 what eclipse ? 20:00:07 www.eclipse.org ? 20:00:26 Anyway, some months back I read a *really* (IMHO) good paper (post Bell Labs) by Stroustroup on adding (efficient, of course) open multimethods to C++. I think I'll revisit the paper to get my brain wired right, and then take a look at structural subtyping + multimethods. 20:01:37 If I can stick with it (I'm easily distracted and have a primary language project), it might turn to be a rather interesting object system. 20:02:33 What's nice about it is that it only has a limited number of parts with very clear interfaces between the parts. 20:03:41 Dawgmatix: yeah, eclicpse.org. I recall now - Kawa and SISC. The former I believe is more java integration oriented, while SISC is focused on being a "to-spec" Scheme. 20:04:21 SISC, IIRC, also made some bold performance claims. 20:05:21 Speaking of performance, any Larceny users here on the list? Maybe a short report on frobbing Larceny day to day? 20:08:05 not sure who actually uses larceny 20:08:31 i like it tho 20:09:08 rgrau_ [n=user@228.Red-88-17-164.dynamicIP.rima-tde.net] has joined #scheme 20:09:57 I have an idea for you, Summermute. Find an interesting solution in Scheme to an interesting problem, and then discuss the interesting solution and how well it solves the problem, rather than talking about problems you would like to solve in a pipe dream. 20:10:39 dzhus [n=sphinx@95-24-74-249.broadband.corbina.ru] has joined #scheme 20:11:26 harsh, but true also. 20:11:27 :) 20:21:34 alaricsp [n=alaric@relief.warhead.org.uk] has joined #scheme 20:22:33 no fair, scheme solves nothing... it merely disolves. 20:24:25 no, it trisolves 20:24:26 Disolves? Like difurcating, only instead of splitting fur into two parts, solves fur in two parts? 20:26:45 -!- Fare [n=Fare@c-24-218-127-11.hsd1.ma.comcast.net] has quit ["Leaving"] 20:33:47 saccade_ [n=saccade@dhcp-18-111-70-156.dyn.mit.edu] has joined #scheme 20:35:27 uhm, yeah, perhaps it bisolves into the hammer and nail mentality too easily. 20:55:01 C library question (in relation to Scheme FFI): does anyone know a a C standard library function that takes a function pointer, and allows the user somehow invoke the pointed-to function at a later point? 20:55:12 mabes [n=mabes@66.236.74.194] has joined #scheme 20:55:44 (the "Custom Streams" of glibc would qualify, but I'd stronly prefer something portable) 20:56:30 rotty, why do you need a function? 20:56:34 (this is for writing a test case excercising the FFI from Scheme) 20:56:41 can't you just store the function pointer off in the heap somewhere? 20:56:49 from C, that is 20:56:50 -!- mabes [n=mabes@66.236.74.194] has left #scheme 20:57:15 samth: in the context of the testsuite, I try to rely on (C) code readily available 20:57:38 ah, you're testing this all from the Scheme side? 20:57:43 yes 20:58:27 I have a bug on PLT that I hope to nail with a test, but I'd need a C function with the above properties for that 20:59:18 rotty: Sure, but you're not going to like it. 20:59:21 atexit() is also a candidate, but having to invoke exit() to induce the callback invocation is not good ;-) 20:59:26 The store function is called `atexit'; the call function is called `exit'. 20:59:27 Heh! 20:59:42 jinx! 20:59:52 minion: give rotty a coke 20:59:52 rotty: does torturing a poor bot with things beyond its comprehension please you? 21:00:07 minion: yes 21:00:08 Sorry, I couldn't find anything in the database for ``yes''. 21:00:25 jmcphers [n=jmcphers@218.185.108.156] has joined #scheme 21:00:39 There's also `signal' and `raise', if you can work with the restrictions on what can be done from signal handlers. 21:01:19 hmm, I don't think calling into Scheme is signal-handler-safe 21:01:34 (I don't need to *do* anything in Scheme, though) 21:01:43 -!- wingo [n=wingo@81.Red-88-17-128.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 21:02:31 ... is signal-handler-safe _in general_ 21:03:45 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 21:09:23 drwho [n=drwho@c-98-225-208-183.hsd1.pa.comcast.net] has joined #scheme 21:09:36 seems I have to punt the test into sbank, where I have fitting C code at my disposal... 21:09:45 -!- alaricsp [n=alaric@relief.warhead.org.uk] has quit [Read error: 104 (Connection reset by peer)] 21:18:31 wingo [n=wingo@1.Red-79-151-125.dynamicIP.rima-tde.net] has joined #scheme 21:21:34 bokr [n=eduska@95.154.102.124] has joined #scheme 21:22:07 -!- shyam_k [n=user@unaffiliated/shyam-k/x-8459115] has quit [Read error: 113 (No route to host)] 21:24:31 elf [i=elf@antenora.aculei.net] has joined #scheme 21:28:10 alaricsp [n=alaric@relief.warhead.org.uk] has joined #scheme 21:32:09 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 21:38:12 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 21:54:39 You could also use pthread_atfork and fork... 21:55:28 Also, you could use a signal handler for some useless signal such as SIGUSR1 that nobody will ever deliver. (Assuming, of course, that Scheme doesn't use that signal for its own nefarious purposes, such as stopping the world to synchronize garbage collection...) 21:56:31 -!- rgrau_ [n=user@228.Red-88-17-164.dynamicIP.rima-tde.net] has quit [Remote closed the connection] 21:57:43 arabesca [n=arabesca@62.32.230.67] has joined #scheme 21:58:31 evening 21:58:41 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit ["Leaving."] 21:58:58 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 21:58:59 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 104 (Connection reset by peer)] 21:59:13 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 21:59:16 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Remote closed the connection] 21:59:29 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 21:59:40 Riastradh: interesting; i suppose the converse (alists backed by hash tables) would be infeasible, since alists have to preserve list transparency 22:00:04 and given that alists are as old as lisp itself, how would you overcome the decades-long alist-inertia we've built up? 22:00:25 convincing people to use hash tables sounds laborious 22:01:16 Perhaps a functional-update `hash table' would help: . 22:01:46 Riastradh: pthread_atfork() looks promising. Wouldn't a signal handler which invokes a scheme procedure possibly be signal-handler-unsafe? 22:01:59 rotty, define `signal-handler-unsafe'. 22:02:33 If nobody ever delivers the signal asynchronously, and you invoke the signal handler only by calling raise, what could possibly go wrong? 22:02:44 *Riastradh* glances about for bushy tails. 22:04:21 Lis [n=Lis@dialbs-092-079-130-087.static.arcor-ip.net] has joined #scheme 22:05:22 *rotty* so sending yourself a signal is synchronous? 22:05:53 thinking about it, it must be, in the absence of threads 22:06:24 -!- langmartin [n=user@exeuntcha.tva.gov] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:06:33 Riastradh: fantastic; i suspect this is the hash-table implementation you referred to during your lesson on "functional interfaces by mutational means" 22:07:33 rotty, C99, Section 7.14.1.1 `The ``signal'' function': `If the signal occurs /other than/ as the result of calling the ``abort'' or ``raise'' function, the behaviour is undefined if the signal handler...' 22:08:07 Now, my argument is only a weak syllogism, not a strong syllogism, but what's a little logical fallacy between IRCers? 22:09:32 On a more serious note, the preceding paragraph makes it clear that raise really does just call the function. You may encounter problems if you raise SIGFPE, SIGILL, SIGSEGV, &c., but SIGUSR1 or SIGUSR2 should be harmless. 22:09:49 (The paragraph preceding the preceding paragraph, that is.) 22:10:18 klutometis, gee, did you keep a copy of the lecture notes to refresh my memory? 22:12:52 davazp [n=user@243.Red-83-37-232.dynamicIP.rima-tde.net] has joined #scheme 22:15:18 -!- mario-goulart [n=user@67.205.85.241] has quit [Remote closed the connection] 22:15:26 (Expanding the test suite at is left as an exercise for the reader.) 22:15:30 schmir [n=schmir@mail.brainbot.com] has joined #scheme 22:16:59 interesting 22:17:14 we have bagwell's vlists slated for inclusion in guile 22:17:50 however it goes, i will be happy to have functional maps. 22:18:48 I glanced at vlists once. They didn't seem to me to be worth the trouble they appeared to take to implement. 22:19:10 i don't really understand the field 22:24:46 davazp` [n=user@199.Red-83-54-167.dynamicIP.rima-tde.net] has joined #scheme 22:24:54 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 22:33:18 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:35:18 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 22:40:48 -!- davazp [n=user@243.Red-83-37-232.dynamicIP.rima-tde.net] has quit [Read error: 110 (Connection timed out)] 22:42:18 jcowan [n=jcowan@72.14.228.129] has joined #scheme 22:50:13 -!- snearch [n=olaf@g225063148.adsl.alicedsl.de] has quit ["Ex-Chat"] 22:56:05 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 22:57:57 -!- schmir [n=schmir@mail.brainbot.com] has quit [Read error: 110 (Connection timed out)] 22:58:17 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 23:00:04 kilimanjaro [n=kilimanj@unaffiliated/kilimanjaro] has joined #scheme 23:07:03 -!- jlongster [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit [Read error: 113 (No route to host)] 23:11:43 Riastradh: Back to the future? http://code.google.com/p/jrm-code-project/source/browse/trunk/MIT-Scheme/Microcode/ObjectModel.cs#55 23:11:46 -rudybot:#scheme- http://tinyurl.com/yez6vd9 23:13:32 mejja, probably just transcribed from typenames.txt. 23:14:37 right. 23:15:53 NNshag [i=user@lns-bzn-36-82-251-12-151.adsl.proxad.net] has joined #scheme 23:16:49 -!- sstrickl [n=sstrickl@dublin.ccs.neu.edu] has quit [] 23:17:07 See line 548, too. 23:17:30 schmir [n=schmir@mail.brainbot.com] has joined #scheme 23:17:32 -!- schmir [n=schmir@mail.brainbot.com] has quit [Remote closed the connection] 23:18:20 What's surprising about the notion that futures aren't primitive? 23:19:12 Hmm? 23:19:18 *wingo* mumbles something about futureprimitive.org 23:19:37 What is indicating surprise to prompt the question? 23:21:20 -!- albacker [n=eni@unaffiliated/enyx] has quit [")"] 23:23:34 Rephrasing: why do you call attention to line 548? 23:25:09 That indicates that there are no objects with the future type code. 23:25:15 jcowan: http://git.savannah.gnu.org/cgit/mit-scheme.git/tree/src/microcode/types.h#n71 23:25:18 -rudybot:#scheme- http://tinyurl.com/yeeaddr 23:25:44 It does? I read it as saying "The future type is not a primitive type". 23:26:22 No. PRIMITIVE-OBJECT-TYPE? asks the same question as OBJECT-TYPE?, but without touching the object first. 23:26:30 That's what the `PRIMITIVE-' prefix on primitive names means. 23:26:44 (That is, it means: `I don't touch my arguments.') 23:27:08 So OBJECT-TYPE? has a false ?, then. 23:27:20 A false `?'? 23:28:07 Hmm, no, it doesn't. (By a "false ?" I mean one attached to a non-predicate.) 23:28:23 It is a predicate. It may block, though. 23:29:54 Ah, I understand: it answers true if the first argument correctly specifies the type of the second argument. 23:30:03 Right. 23:30:08 -!- NNshag [i=user@lns-bzn-36-82-251-12-151.adsl.proxad.net] has quit ["Quitte"] 23:30:14 NNshag [i=user@lns-bzn-36-82-251-12-151.adsl.proxad.net] has joined #scheme 23:30:31 (OBJECT-TYPE? type object) is equivalent to (= type (OBJECT-TYPE object)). 23:30:33 I find the name confusing: I would have expected that name to be bound to a procedure that answers true if the argument is an object type. 23:30:38 -!- metasyntax` [n=taylor@pool-71-127-125-129.aubnin.fios.verizon.net] has quit ["Nichts mehr."] 23:30:56 *Riastradh* shrugs. 23:31:02 "Names are but names." 23:31:56 -!- NNshag [i=user@lns-bzn-36-82-251-12-151.adsl.proxad.net] has quit [Client Quit] 23:34:15 NNshag [i=user@lns-bzn-36-82-251-12-151.adsl.proxad.net] has joined #scheme 23:34:26 leppie, I don't know whether you ever ended up using this code, but I have updated the CPS generator you asked about, so that it now supports LET-VALUES and LETREC-VALUES and no longer chooses any particular order of evaluation for the subexpressions of combinations, at . 23:36:45 -!- arabesca [n=arabesca@62.32.230.67] has quit [Read error: 110 (Connection timed out)] 23:38:46 -!- wingo [n=wingo@1.Red-79-151-125.dynamicIP.rima-tde.net] has quit [Read error: 113 (No route to host)] 23:39:47 -!- bweaver [n=user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 23:39:48 -!- dzhus [n=sphinx@95-24-74-249.broadband.corbina.ru] has quit [Read error: 101 (Network is unreachable)] 23:46:17 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 23:46:38 -!- davazp` [n=user@199.Red-83-54-167.dynamicIP.rima-tde.net] has quit [Read error: 104 (Connection reset by peer)] 23:54:22 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 113 (No route to host)] 23:59:38 nve [i=c74c91db@gateway/web/freenode/x-przufvpimgbqgsfr] has joined #scheme