00:04:56 dakeyras [n=dakeyras@pool-98-117-123-121.sttlwa.fios.verizon.net] has joined #scheme 00:12:31 -!- dakeyras [n=dakeyras@pool-98-117-123-121.sttlwa.fios.verizon.net] has quit [] 00:17:19 -!- synx [i=synx@gateway/gpg-tor/key-0xA71B0C6A] has quit ["Leaving."] 00:19:11 -!- ejs [n=eugen@109-167-38-74.dynamic.peoplenet.ua] has quit [Read error: 54 (Connection reset by peer)] 00:19:14 ejs1 [n=eugen@109-167-38-74.dynamic.peoplenet.ua] has joined #scheme 00:25:47 schmir [n=schmir@p54A93DD7.dip0.t-ipconnect.de] has joined #scheme 00:28:56 -!- schmir [n=schmir@p54A93DD7.dip0.t-ipconnect.de] has quit [Remote closed the connection] 00:38:06 davazp [n=user@100.Red-79-146-198.dynamicIP.rima-tde.net] has joined #scheme 00:44:20 incubot: One of the top candidates for the title of "Milky Way stellar heavyweight champion" was, until now, Pismis 24-1, a bright young star that lies in the core of the small open star cluster Pismis 24 (the bright stars in the Hubble image) about 8,000 light-years away from Earth. 00:44:20 Error: unbound variable: One 00:45:17 *mejja* enjoys http://www.boston.com/bigpicture/2009/12/hubble_space_telescope_advent_1.html 00:53:07 rudybot: later tell arcfide i have to concur: opera is superior to either firefox or chrome: the former because of it svelteness; the latter, its configurability and gopher-friendliness 00:53:07 minion: memo for arcfide: klutometis told me to tell you: i have to concur: opera is superior to either firefox or chrome: the former because of it svelteness; the latter, its configurability and gopher-friendliness 00:53:07 Remembered. I'll tell arcfide when he/she/it next speaks. 00:56:04 -!- mejja is now known as arcfide 00:56:12 minion: hello! 00:56:13 what's up? 00:56:13 arcfide, memo from rudybot: klutometis told me to tell you: i have to concur: opera is superior to either firefox or chrome: the former because of it svelteness; the latter, its configurability and gopher-friendliness 00:56:18 -!- arcfide is now known as mejja 00:56:26 Ha ha ha! 00:56:31 hehe 00:57:49 -!- ejs1 [n=eugen@109-167-38-74.dynamic.peoplenet.ua] has quit [Read error: 113 (No route to host)] 01:05:21 dakeyras [n=dakeyras@pool-98-117-123-121.sttlwa.fios.verizon.net] has joined #scheme 01:06:16 -!- dakeyras [n=dakeyras@pool-98-117-123-121.sttlwa.fios.verizon.net] has left #scheme 01:13:32 Riastradh: maybe use fullwords in FNV hash function. 01:14:11 copumpkin_ [n=copumpki@94.162.5.181] has joined #scheme 01:16:09 mejja, there's a different 64-bit FNV hash function. But this doesn't really matter much unless you have a string-keyed table with over four billion keys in it. 01:16:35 fullwords is the way to go on a 64 bit machine... 01:16:39 mejja pasted "fullwords" at http://paste.lisp.org/display/92561 01:19:45 -!- copumpkin [n=copumpki@94.163.0.153] has quit [Read error: 60 (Operation timed out)] 01:19:46 -!- copumpkin_ is now known as copumpkin 01:19:48 Let's assign jrm the task of 'porting" mit scheme to 64bit winblows... hahaha LLP64 suxors! 01:20:17 Well, there are a lot of things that should be fixed even for non-Windows systems. 01:20:28 *mejja* enjoys the whiskey... 01:20:56 For example, the routines to map between C integers and Scheme integers should use intmax_t and uintmax_t on the C side, not long and unsigned long. That way, they work out of the box for off_t, time_t, &c., even on 32-bit systems for which those are 64-bit integer types. 01:21:25 -!- flonklebonkle [n=nobody@p5B03B6A4.dip0.t-ipconnect.de] has quit [Read error: 110 (Connection timed out)] 01:21:31 -!- felipe [n=felipe@my.nada.kth.se] has quit [Client Quit] 01:21:44 rtra [n=rtra@unaffiliated/rtra] has joined #scheme 01:35:59 -!- davazp [n=user@100.Red-79-146-198.dynamicIP.rima-tde.net] has quit [Read error: 60 (Operation timed out)] 01:36:30 -!- bgs100 is now known as HAL9000 01:36:38 -!- HAL9000 is now known as bgs100 01:39:04 That's ugly! Let's 'typedef word uint64' and use word throughout 0_0 (32-bit machines are dead) 01:39:19 -!- bgs100 is now known as HAL-900 01:39:40 -!- HAL-900 is now known as bgs100 01:41:06 nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has joined #scheme 01:42:33 QinGW [n=wangqing@203.86.89.226] has joined #scheme 01:45:31 -!- masm [n=masm@bl7-199-183.dsl.telepac.pt] has quit [Read error: 60 (Operation timed out)] 01:47:59 addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has joined #scheme 01:48:19 *mejja* is slightly intoxicated 01:48:57 -!- jfding [n=djf@nat/intel/x-jlzcvjmybpdguiex] has quit ["leaving"] 01:52:57 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 01:54:15 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 01:56:40 masm [n=masm@bl7-201-21.dsl.telepac.pt] has joined #scheme 02:07:25 mejja: I wish Mozilla would get that memo. I'm quite tired of supporting 32bit libs to deal with their official releases. 02:14:39 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 02:15:16 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 02:21:44 -!- addamgc [n=addamgc@ip72-203-154-146.br.br.cox.net] has quit ["Leaving..."] 02:30:31 -!- jonrafkind [n=jon@crystalis.cs.utah.edu] has quit [Read error: 60 (Operation timed out)] 02:36:16 felipe [n=felipe@my.nada.kth.se] has joined #scheme 02:44:01 -!- masm [n=masm@bl7-201-21.dsl.telepac.pt] has quit ["Leaving."] 02:49:54 -!- Riastradh [n=riastrad@tissot.csail.mit.edu] has quit ["leaving"] 02:56:49 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit [Read error: 110 (Connection timed out)] 02:57:56 mejja pasted "Riastradh: 12" at http://paste.lisp.org/display/92563 02:58:43 -!- mejja [n=user@c-49b6e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Remote closed the connection] 03:06:26 -!- nutmegmagi [n=swalters@pool-71-100-207-225.tampfl.dsl-w.verizon.net] has quit [Read error: 113 (No route to host)] 03:08:25 -!- 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"] 03:14:08 -!- Fuufie [n=innocent@86.80-203-225.nextgentel.com] has quit [Read error: 104 (Connection reset by peer)] 03:14:28 Fuufie [n=innocent@86.80-203-225.nextgentel.com] has joined #scheme 03:23:02 arcfide [n=arcfide@ppp-70-246-149-137.dsl.stlsmo.swbell.net] has joined #scheme 03:23:30 Hello, everyone. 03:35:45 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [] 03:36:05 Hello, Captain Fide 03:37:25 arcfide: i have to concur, by the way, that opera is superior to either ff or chrome 03:37:30 i'm pleasantly surprised 03:38:10 outworlder [n=user@c-76-17-138-17.hsd1.mn.comcast.net] has joined #scheme 03:47:22 klutometis: I'm glad you enjoyed your experience. :-) 03:47:52 offby1: Since when did I get promoted past driveling snobbish grunt? 03:48:15 Or is there another Fide in the room? (Reminds me of Fido.) 03:52:45 tjaway [n=timj@e176197107.adsl.alicedsl.de] has joined #scheme 03:53:37 jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has joined #scheme 03:55:05 Isn't that a Captain's insignia? 03:55:10 *offby1* dons pince-nez 03:55:25 *jcowan* dons offby1 04:03:47 man, this feel awkward 04:07:32 nutmegmagi [n=swalters@65.222.72.10] has joined #scheme 04:08:27 -!- tjafk [n=timj@e176219040.adsl.alicedsl.de] has quit [Read error: 110 (Connection timed out)] 04:15:14 *jcowan* doffs offby1 04:15:53 *elly* doffs her hat? 04:16:15 *jcowan* would doff his hat if he wore one. 04:16:41 I'm not wearing a hat, but I have a strip of fabric holding my hair back that I could doff with some effort 04:21:47 Is it possible to doff responsibility? 04:21:57 -!- proq [n=user@unaffiliated/proqesi] has quit [Read error: 110 (Connection timed out)] 04:23:48 I'd say so, yes. 04:23:58 Don and doff are macros for "do on" and "do off", at least historically. 04:24:28 "Don we now our gay apparel, fa la la, la la la, la la la" 04:25:34 huh! 04:25:44 like XON and XOFF, presumably 04:26:03 X = XMIT = transmit in that case. 04:26:38 I like that 'x' tends to get used as a catchall abbreviator 04:27:29 I don't know why x = trans. 04:27:37 x = Christ, x = extended, those are clear enough. 04:28:05 x being really , the initial of . 04:28:24 and eXtensible Markup Language. 04:28:33 x factor = unknown factor 04:28:40 X Windows, sequel to W Windows 04:29:14 *jcowan* asks the Four Wise Clerks of Oxenford 04:32:27 They are xilent on xmit, but have used their quill pens to add an entry for XML. 04:33:23 -!- bgs100 [n=ian@unaffiliated/bgs100] has quit ["Leaving"] 04:34:45 xecrable 04:34:51 *jcowan* discovers that Xanadu is just a funky spelling of Shangdu 04:36:32 That's OK, "stately pleasure dome" is just a funky spelling of "love shack." 04:37:27 *chuckle* 04:37:42 saccade_ [n=saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 04:40:44 cky_ [n=cky@h-98-105-51-131.ip.alltel.net] has joined #scheme 04:41:28 -!- outworlder [n=user@c-76-17-138-17.hsd1.mn.comcast.net] has quit [Read error: 60 (Operation timed out)] 04:41:56 jcowan: x -> trans, since trans is a synonym for cross 04:44:50 But what does "X-men" stand for? 04:45:46 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 04:45:46 -!- cky [n=cky@h-98-105-55-174.ip.alltel.net] has quit [Read error: 60 (Operation timed out)] 04:47:04 klutometis: Thanks 04:47:27 From X-factor = unknown factor = use of x in algebra 04:48:22 -!- rtra [n=rtra@unaffiliated/rtra] has quit ["meh"] 04:50:18 Hmmm... wikipedia says the X-gene, but that's stupid. Apart from X being a gene, not a chromosome, that just raises the question of what X-gene stands for. 04:50:33 ... not to mention, what does the X chromosome stand for? 04:50:43 jcowan: Anyone who knows anything about X Windows would be picky enough to correct you and say that it's "X Window". 04:50:54 Luckily, there's no one here that will do that. 04:51:18 jcowan pasted "OED definition of X" at http://paste.lisp.org/display/92565 04:51:39 eli: that cost me a lot of annoyance in comp.windows.x a long time ago. 04:52:13 Well, it's the X Windowing System, so as a noun it's just X, which is what I normally call it, but that would be a tad ambiguous in discussing the letter. 04:52:16 I can imagine. 04:52:55 jcowan: No -- it's the "X Window System", as your company will gladly tell you. 04:53:03 Hmm, you're right. 04:53:04 I think that was "X Window System" at least on Scheifler and Gettys. 04:53:08 *jcowan* revises his whole life. 04:53:18 Snap! 04:53:21 Right after it will suggest an "X Windows" completion, of course. 04:54:52 *jcowan* gets all descriptivist-hincty and suggests that if people call it X Windows, it's name *is* X Windows, at least for Google purposes. 04:54:59 "Naming is the prerogative of the namer." 04:55:10 Riastradh [n=riastrad@tissot.csail.mit.edu] has joined #scheme 04:55:22 Every Scheme system seems to support weak references and resource finalization differently. What gives? 04:56:16 Riastradh: I've wondered the same thing. ;-) Do you have examples besides PLT Scheme and Chez? I compared those two, and the finalizers on PLT Scheme work quite differently than the equivalent code in Chez. 04:56:19 The same reason they support everything else differently, I suppose. What makes this feature different from all other features? 04:56:25 *foof* gives 04:56:29 Riastradh a hug 04:56:45 I doubt if Chicken is compatible with either, at least on finalization. 04:56:47 jcowan, it's more than just cosmetic differences in this case. 04:56:48 jcowan: Note that this is a really good reason why NLP shifted from symbolics to statistics. 04:56:49 I suppose that weak references are implemented largely as convenient to the underlying implementation details, if I had to guess. 04:57:17 *jcowan* would like soft references as well. 04:58:02 Riastradh: Chibi handles finalization at the type level to save space on individual objects. 04:58:59 A reasonable strategy. 04:59:10 Everyone supports some sort of weak cell. PLT Scheme is the only system I know of with what it calls `ephemerons'. Only Gambit supports datum-weak hash tables, as far as I know. Chez has `guardians', which don't seem very useful to me. MIT Scheme has `finalizers', which are implemented in terms of weak pairs (which could be implemented in terms of pairs and weak cells), and no special GC support for anything but weak pairs. 04:59:40 Gambit and PLT Scheme both have things called `wills', but I don't know whether they are the same thing. 04:59:58 foof: thanks for the chibi update on reddit. 05:00:56 Of all these, MIT Scheme's mechanism is the only one I'm aware of that goes to any effort to be interrupt-safe, so that there is no `wrong moment' during which hitting ^C at the REPL and then aborting to the top level will cause Scheme to forget its responsibility for a file descriptor. 05:01:24 caoliver: np 05:02:33 Riastradh: Guardians are the means by which you would implement finalizers in Chez Scheme, I believe. 05:02:36 Chicken has finalizers but not, AFAICT, any sort of weak reference. 05:02:49 Riastradh: And doing so could be made interrupt safe in Chez. 05:02:52 Riastradh: (a) `ephemerons' are things that are used only inside a hash table, otherwise it's the unsurprising `weak boxes', (b) the purpose of wills being executed in Scheme code is to (indirectly) avoid such problems as interrupts. 05:03:19 Weak references would be trivial to add to Chibi, at the expense of a third pass over the heap on GC. 05:03:43 You could run the third pass only every Nth GC, though. 05:03:46 A third pass over the heap? You don't need anything more than a pass over the live weak cells. 05:03:48 That would amortize the cost. 05:04:14 Well, assuming I'm not keeping a data-structure anywhere holding all the weak cells. 05:05:04 Maintaining such a structure only makes sense if you assume weak cells are very rare relative to the total number of heap objects. 05:05:07 *jcowan* whines for foof to implement weak/soft refs 05:05:56 Let the guy get 0.3 out the door will ya please!!!! 05:06:34 Sure, sure. 05:06:44 eli, what happens if I hit ^C during a call to WILL-EXECUTE? 05:06:45 *jcowan* shmears caoliver 05:07:14 Riastradh: A combination of GC handlers, Guardians, a finalizer table, and the with-interrupts-disabled form suffice, I believe to provide finalizers that are interrupt safe. 05:10:54 arcfide, guardians are not necessary; weak pairs suffice, provided some way to request that a procedure be periodically run (preferably not more than once between garbage collections). See . 05:10:54 Riastradh: So MIT Scheme doesn't provide any access to file-descriptors as integers? 05:10:56 -rudybot:#scheme- http://tinyurl.com/yfulcp2 05:11:32 Riastradh: Yes, you could do it with weak pairs as well, but I believe it's a bit easier with Guardians. 05:11:35 foof, hmm? 05:11:46 Riastradh: What you would expect to happen: either it will break the executor, or -- if you arrange for it -- not. 05:12:57 (And "arranging for it" is a decision left for the Scheme code.) 05:13:09 eli, hmm, I just did a Google code search for WILL-TRY-EXECUTE and WILL-EXECUTE, and found precisely zero uses of them. 05:13:13 Hrm, aren't hashtables and weak cells enough to implement datum-weak tables? 05:13:46 If any syscalls return fileno's (e.g. open(2), socket(2), etc.) you return the fileno as an opaquely wrapped object with a finalizer? 05:14:39 arcfide, no, for two reasons: (1) You want ephemerons, not weak cells, because you don't want a key to be retained in the hash table simply because it once had an associated datum, even if that datum has since been garbage-collected. (2) If you store entries in a strong hash table, they will generally accumulate; you want the storage for broken entries to be omitted. 05:15:30 Riastradh: So you want a hashtable whose references are weak, and whenever one of those references is collected, disappears from the hash-table, right? 05:15:54 *arcfide* takes leave. 05:16:08 foof, file descriptors in MIT Scheme are represented by slightly more general objects called channels, which also represent various entities on Windows. That's a somewhat unrelated issue, however; see for something that uses the same mechanism as MIT Scheme for resource finalization, and exposes file descriptors as integers. 05:16:50 foof, I have recently reimplemented the mechanism to be somewhat simpler and more robust, although I have not yet thoroughly tested it. 05:17:30 Riastradh: The need for finalizers is rare; one place that uses them is "collects/scheme/foreign.ss". 05:17:34 b(The basic idea is the same, though; the only difference is the constraints on the finalization procedure, which now must be able to be run multiple times, and consequently may safely be interrupted and aborted partway through.) 05:19:32 eli, hmm. So suppose I use REGISTER-FINALIZER to associate with my representative for a file descriptor a procedure that calls close(2) to close it, and then suppose I hit ^C while MzScheme is evaluating the call to WILL-EXECUTE. I don't see any mention of interrupts or breaks there (PLT 4.2) -- will the file descriptor just be dropped? 05:21:10 Riastradh: No, the break will cause only the main thread to stop. 05:21:16 dmoerner [n=dmr@ppp-70-132-206-137.dsl.snantx.swbell.net] has joined #scheme 05:22:07 -!- bipt` [i=bpt@cpe-173-095-174-230.nc.res.rr.com] has quit [Read error: 60 (Operation timed out)] 05:22:08 Hmm...so I can't interrupt other threads? 05:22:09 Riastradh: So you still need to keep a reference to the fd record (outside of the hash table), if you want to be able to access it with an integer? 05:22:23 foof, of course. How else could Scheme know when it can close the file descriptor? 05:22:43 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:23:04 Riastradh: (I guess that there could be a potential problem if a finalizer throws an exception -- but little point in protecting against that in code that can dereference random numbers etc.) 05:23:04 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 05:23:32 eli, sure -- if it signals an error I expect the file descriptor to be dropped; after all, there's a bug in the program anyway. 05:23:35 Riastradh: You can interrupt another thread with `thread-break' -- but you need to get a hold on the thread value for that. 05:24:06 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 05:24:55 Note, BTW, that the code is using the internal scheme_make_custodian() function to get a toplevel custodian so you can't just shut it down from Scheme code. 05:25:00 Checkie [i=540@unaffiliated/checkie] has joined #scheme 05:25:17 What if the finalization procedure terminates the current thread? 05:26:21 You mean as in (kill-thread (current-thread)), or just grabbing the value and propagating it outside? -- If so, then this is on the same level as a finalizer that throws an exception. 05:28:41 Do you mean that trying to kill that thread causes an error to be signalled? 05:29:48 By the way, I just tried evaluating the following at the REPL and then calling COLLECT-GARBAGE repeatedly, but got no output: (let ((p (current-output-port))) (register-finalizer (cons 'x '()) (lambda (x) (write x p) (newline p] 05:29:49 No, I mean that a finalizer has the power to make things go bad -- one case is when it throws an exception, and another is if it kills itself. 05:30:29 eli, I thought that if the finalization procedure signalled an error, it would be ignored, but perhaps I'm just a little shaky on the morals involved; can you elaborate a bit on what `bad' means? 05:30:40 (That got cutoff in a weird way.) 05:30:52 (You mean with a `]'? That was what I wrote.) 05:31:09 (I didn't want to go through and count the number of brackets to close.) 05:31:36 *eli* reminds Riastradh about Lisp-aware editors and such... 05:32:02 Let me know when you've ported paredit to irssi. Until then, I'll continue using my favourite Interlisp abbreviation. 05:32:28 ] meaning 'close all parentheses'? cute 05:32:43 Yep. It also had the effect of sending the input, without needing a RET. 05:33:04 (And there's your problem -- you're not using a that works inside one of those editors...) 05:33:13 Sorry, false alarm: I had tried registering that finalization procedure after I already screwed up the finalization thread, I suppose. 05:34:07 So signalling an error in a finalization procedure kills the finalization thread? 05:34:15 (That's what I'm observing here.) 05:34:16 Oh, I was trying to figure out what could go wrong. 05:34:59 Yes, it does. 05:35:00 (Also, everyone totally missed the obvious Ghostbuster's reference that I set up as clearly as I possibly could have without looking at the script. For shame!) 05:35:07 -!- dmoerner [n=dmr@ppp-70-132-206-137.dsl.snantx.swbell.net] has quit [Remote closed the connection] 05:36:08 (...ack. `Ghostbusters'. Quotation mark editing failure!) 05:36:10 adzuci_ [n=ada2358@login-linux.ccs.neu.edu] has joined #scheme 05:39:15 foof, so how else could Scheme know when it can close a file descriptor, except by doing so when there cease to be strong references to some GC'able record for the file descriptor? 05:39:42 Finalizers are essential when dealing with foreign resources, by which I mean ones outside the scope of garbage collection. 05:39:54 No other way I could think of, which is why I made the (correct) assumption that MIT Scheme requires working with wrapped fd objects. 05:40:04 foof, OK. 05:40:53 The JVM suppresses an exception thrown by a finalizer. 05:40:54 jcowan, they are not essential in the RRRS notion of the word, as I mentioned earlier: weak cells, and some way to periodically run a procedure (preferably not more than once between garbage collections) suffice to express them. 05:41:43 (Half the things in RnRS aren't essential in that sense of the word either.) 05:42:27 Oops, I mixed up that word with a different word, also used in the RnRS; never mind. 05:42:29 But I do not see how you arrange for the essential property of finalizers, which is that they are run once and only once, on such a view. 05:43:13 If interrupts aren't involved, that's easy -- the two ingredients I listed suffice nicely. 05:43:38 It is also relatively easy to take interrupts out of the picture, as long as you are happy with arbitrarily long extents during which interrupts are deferred. 05:44:45 ...or even if you are happy with short extents during which interrupts must be deferred. 05:45:16 Is it possible to implement weak cells on top of finalizers? I doubt it. 05:45:40 But that requires that the interrupts be deferred during the calls to the finalization procedures, which may be too onerous a requirement; to avoid that, while preserving robustness, it is necessary to relax the constraint that finalization procedures be called once and only once. 05:45:45 In any case, for weak cells to be really useful, there needs to be a way for the collector to notify the mutator that one is being reclaimed. 05:46:08 That's easy, jcowan. It can replace the value of the weak cell with some designated object indicating a broken weak cell. 05:46:19 Or it can set some flag on the weak cell and zero its value. 05:46:44 That's much scarier for a garbage collector to do than to call an arbitrary Scheme procedure! 05:46:47 ...er. 05:46:50 Much less scary, I mean. 05:47:30 -!- adzuci [n=ada2358@login-linux.ccs.neu.edu] has quit [Read error: 110 (Connection timed out)] 05:48:25 A Java weak (soft, phantom) cell keeps a reference to a thread-safe queue, and adds itself to that queue when the collector reclaims it. 05:49:01 So, for example, a weak(-valued) hash map owns such a queue, and uses it to remove map entries as needed. 05:49:11 s/valued/keyed 05:49:57 Java provides weak-key tables and soft-value tables as standard equipment, but you can roll your own for any other variant if you like. 05:52:18 OT: `*-fd' `*-fileno' or `*-file-descriptor' ? 05:53:07 -fd for my money. A fileno or file descriptor could be anything: a fd is a fd (of cd, of cd) 05:53:20 I think you can guess my answer from , foof. 05:53:38 Yep :) 05:53:44 `Fd' is an acceptable abbreviation for a local variable name when unambiguous, but that's all. 05:54:48 Well, I disagree, but I'm not going to start a religious war about it. Today. 05:55:10 `open-output-file-descriptor' is awfully long, but rarely used and there are very few functions with fd in their name anyway. 05:56:06 On a related note (unrelated to foof's unrelated note): In what Scheme systems does DYNAMIC-WIND call the before and after procedures with interrupts deferred? 05:56:08 Basically that, the open-input- counterpart, and `duplicate-file-descriptor' for dup(2). Am I missing anything? 05:56:45 foof, yes, you're missing several operations in that paste, many of which are intended to be exposed. 05:57:20 In particular, the complete list is: call-with-file-descriptor-number close-file-descriptor duplicate-file-descriptor duplicate-file-descriptor-to ... 05:57:29 ... file-descriptor? integer->file-descriptor maybe-integer->file-descriptor open-pipe renumber-file-descriptor 05:58:13 OK, I'm currently not wrapping fd's, because Chibi doesn't do anything with signals yet and therefore has no need. 05:58:22 Huh? 05:58:33 What do signals have to do with this? 05:58:43 So the integer conversions aren't needed. 05:58:55 Aren't needed? 05:59:07 Because fd's are just integers in chibi. 05:59:30 renumber- as an alias for one of the dup cases is a good name though. 05:59:30 So they can't be garbage-collected, then. 05:59:48 Nope, the programmer is responsible for that. 06:00:23 So you don't care about long-running interactive sessions in which the programmer types ^C and doesn't want his file descriptors to be leaked? 06:00:33 (RENUMBER-FILE-DESCRIPTOR is not an alias for any dup operation.) 06:01:58 It looks like dup2(2) + close(2) to me. 06:02:04 Riastradh: (re your related note: plt does that.) 06:02:08 Yes. That's not just an alias for dup or dup2. 06:02:22 More generally, why treat file descriptors any differently from other resources such as Scheme-allocated memory? 06:03:26 For one thing, because Chibi does not trap any signals, loss of fds is more or less irrelevant. 06:03:59 Riastradh: Chibi is under 5kloc. I don't unaturally compress it or take cheap shortcuts, but it was never intended to be the most cast-iron unbreakable implementation in existence. 06:04:25 Is it still intended to be a toy that nobody should use? 06:05:06 Not, it's intended to be a replacement for Tinyscheme and Guile (and Lua), all of which get surprising amounts of use. 06:05:32 However, it is a toy until 0.3, which does not prevent people from using it in anger anyhow. 06:07:22 In that case, please consider supporting a robust file descriptor abstraction. My implementation is under four hundred lines of Scheme and C code combined, as are all three different implementations I have of the finalizer abstraction that it uses. 06:07:36 Now, I also happen to believe that the biggest problem we face with software is system complexity, and the unmaintainability of overly large systems. So I think with the smallest reasonable implementation you have a lot more room for future growth, and thus Chibi may grow to be quite featureful. But that's not for a while. 06:07:59 Riastradh: 400 lines is about 10% of the Chibi core! 06:08:07 (Those numbers of lines are totals, including whitespace and comments.) 06:08:29 (If you don't have threads, then you can reduce those numbers a good deal further.) 06:08:47 Actually, nevermind, this is all in an external module anyway. 06:09:22 Right. This doesn't have to touch any of the Chibi core. 06:10:31 Actually "batteries external" isn't a bad way to go. 06:10:36 All that it needs is some notion of weak pairs and some notion of GC daemons. (If you have threads, it also wants some notion of mutual exclusion or some notion of transactions.) 06:10:45 Weak cells, even. 06:11:04 Which means, not for the 0.3 release. 06:12:13 Does pipe(2) belong in the files API or the process API? 06:12:35 It belongs among file descriptors, I think, which is separate from the file system and from processes. 06:13:02 Yeah, but I'm lumping fd's into the file system API, so I'll put it there. 06:18:32 (Without any thread synchronization or interrupt deferral, the finalizer abstraction reduces to 139 lines of Scheme code -- four half pages, including a 3-clause BSD copying notice.) 06:20:07 Yes, I'm already thinking of how to do it, but it involves a change to the stubber to support wrapping primitive types, so it will definitely be a 0.4 change. 06:20:56 The rule being I don't allow any manual C code in the stubber, which was a real pain to get working with getcwd. 06:21:24 -!- caoliver [n=oliver@75-134-208-20.dhcp.trcy.mi.charter.com] has left #scheme 06:24:00 (And ignoring comments, of which there are some voluminous ones explaining subtle details about responsibility for file descriptors, the file descriptor abstraction is a mere 260 lines of Scheme code.) 06:24:15 (Scheme and C together, rather.) 06:26:42 Hmmm... `file-stat' and `file-stat/link' ? 06:27:08 (Where did the letters `us' go?) 06:27:37 Ken Thompson ate them. 06:27:55 Yes, but apparently the letters `ile' and the symbol `-' were regurgitated. 06:28:07 How about FILE-STATUS and FILE-LINK-STATUS? 06:29:00 sounds good 06:29:31 MIT Scheme has procedures FILE-TYPE-DIRECT and FILE-TYPE-INDIRECT, as well as FILE-EXISTS?, FILE-EXISTS-DIRECT?, and FILE-EXISTS-INDIRECT? (for the last of which FILE-EXISTS? is an alias). 06:31:02 FILE-EXISTS? is in the core but is about to be moved out 06:37:51 Dang, the file times are yet another Linux/BSD difference. 06:38:52 Hmm? 06:39:29 As far as I know, the atime, ctime, and mtime fields of a file are specified in POSIX. 06:39:32 mtime/atime/ctime are time_t in Linux and struct timespec in OS X. 06:41:14 You can get more precision in the form of timespecs on BSDs, but the st_atime, st_mtime, and st_ctime fields are standard. 06:41:21 ...and have type time_t. 06:42:06 Ah! The man page misled me. It doesn't show the st_mtime field, only st_mtimespec. 06:42:19 bipt [i=bpt@cpe-173-095-174-230.nc.res.rr.com] has joined #scheme 06:42:28 The man page for fstat(2) on Mac OS X here shows the st_mtime field. 06:42:32 (So does POSIX.) 06:42:52 (See .) 06:43:22 -!- joast [n=rick@76.178.178.72] has quit ["Leaving."] 06:43:37 Or rather, it *does* describe both fields, but the summary it gives of struct stat only includes the timespecs. 06:44:00 "us" was the sauce for the "e". 06:45:15 Does any Scheme system besides Gambit claim to support datum-weak hash tables? 06:45:35 What do you mean by datum-weak? 06:47:00 In an association in the hash table, the location for the association's datum is weak, so that storage for the object in that location may be reclaimed. If that storage is reclaimed, then the association is furthermore omitted from the hash table, so that the hash table drops its former strong reference to the association's key. 06:47:47 I grasp that, but I don't know whether by "datum" you mean "key" or "value". 06:48:09 Ah. Contrariwise, when you say `value', I don't know whether you mean `key' or `datum'. 06:48:29 In that case, all is clear. 06:50:05 Since neither of us is likely to use "key" to refer to the thing which is not the key. 06:50:13 Some Scheme systems support a particular datum-weak hash table, or two, while all other hash tables are at most key-weak if weak at all. 06:50:50 (Those two are the symbol table and the object unhashing table.) 06:51:48 (MIT Scheme is an example of such a Scheme system; Scheme48 is another, although it occurs to me that it has a different datum-weak hash table, for named cells shared between Scheme and C, called `shared bindings'.) 06:52:15 underspecified [n=eric@walnut.naist.jp] has joined #scheme 06:52:16 (Chicken, I believe, is another example.) 06:52:50 (T is still another, although only the object unhashing table is datum-weak -- the symbol table is strong.) 06:53:03 AFAIK Chicken has no weak tables of any sort. 06:53:36 What's with `#define WEAK_TABLE_SIZE 997' in runtime.c, then? 06:54:00 `typedef struct weak_table_entry_struct ... WEAK_TABLE_ENTRY;', &c. 06:54:23 It appears to me that Chicken has at least one weak table, although perhaps it is not a weak hash table. 06:54:45 Looks like a weak hash table to me. 06:54:59 I believe it's just the symbol table. 06:55:06 That's what I guessed. 06:55:22 bokr [n=eduska@95.154.102.124] has joined #scheme 06:55:31 And a recent addition and/or work-in-progress. 06:57:54 proq [n=user@unaffiliated/proqesi] has joined #scheme 06:57:58 It's the table that prevents uninterned symbols from being GCd. 06:58:14 *Riastradh* blinks. 06:58:15 ah 06:58:24 wait.. 06:58:25 What...? 06:59:18 What's the point of that? 06:59:36 I have no idea. It's the default, but changeable at either config time or (in principle) at run time, though there is no API. 07:00:31 That is completely backwards from what I'd have expected -- I expected that the table would enable interned symbols to be GC'd, not prevent uninterned symbols from being GC'd. 07:03:48 Are there any POSIX systems where the file mode bits use differenet values for the basic permissions? 07:05:28 Most unlikely. 07:05:35 Riastradh: It surprised me too. 07:06:04 Did it explain its raison d'etre to you while surprising you? 07:07:20 Ah, I think I see: by default, an uninterned symbol is only gc'd if it is also unbound. 07:07:45 Right... That's reasonable. 07:08:11 No, wait, it's not. 07:08:16 Or no, perhaps that is wrong: 07:08:20 Why would bindings for unreferenced uninterned symbols matter? 07:08:31 by default, uninterned symbols are never reclaimed; otherwise, they are reclaimed only if unbound. 07:10:06 This whole thing is a mystery to me. 07:11:22 The docs say: "Enables garbage collection of unused symbols. By default unused and unbound symbols are not garbage collected." 07:11:36 Is the top-level env represented with the symbol table? 07:11:39 That makes sense. 07:11:40 But I don't know if that means "unused symbols and unbound symbols" or "symbols which are both unused an dunbound" 07:11:56 And I take "unused" to mean "unreferenced". 07:12:37 So my notion that uninterned symbols were relevant is incorrect. 07:12:42 I believe the default is that interned symbols are never GC'd, and this option enables GC'ing of unbound ones. How uninterned symbols fit into this, I have no idea. 07:13:10 Yes, that was a brain fart on my part. 07:13:26 (It *should* be the case that unreferenced uninterned symbols may be GC'd.) 07:13:39 Going off-topic yet again, why are there 1 million incompatible temp-file API's in C, not a single one of which is sane? 07:14:04 Because mkstemp approximates sanity well enough that nobody cares to do better. 07:14:24 Well, if APIs 1..N are insane, people try to add N+1. Temp files are simply not something Posix can do. 07:15:04 That's not true, jcowan. It is possible to implement them safely under certain assumptions, but it takes some care. 07:15:23 (One assumption is that the current user is not malicious. If the current user is malicious, of course, then you lose anyway.) 07:15:24 mkstemp is missing both the ability to leave the directory unspecified (resorting to a system default such as /tmp) and the ability to specify a file extension (absolutely necessary if you want to pass the file to certain external programs). 07:27:21 Riastradh: Per your question about 'dynamic-wind,' Chez Scheme extends the form to allow you to indicate whether you want to invoke the in and out thunks with interrupts disabled. 07:29:46 Hmm. That seems pretty sketchy -- it disables garbage collection altogether? 07:33:25 BEGIN0 is useful. It should be standard -- or at least a procedure (CALL-PRESERVING-VALUES ), which calls and in that order and returns the values returned by . 07:34:50 BEGIN0 is in the Gauche core. 07:37:05 How can it be a procedure? 07:37:26 CALL-PRESERVING-VALUES? 07:37:45 (define (call-preserving-values thunk1 thunk2) (call-with-values thunk1 (lambda vs (thunk2) (apply values vs)))) 07:38:35 lambda vs thunk2! Who will be the victor?! Coming to a theater near you. 07:38:36 Oh, sorry, didn't notice that the parameters are thunks. 07:39:34 As for temp files, I don't see how you block unlink-vs.-creat race conditions. 07:39:39 Or are they impossible? 07:39:55 joast [n=rick@76.178.178.72] has joined #scheme 07:40:48 Provided that you own the directory, jcowan, or that the directory be sticky, there is no danger of the temporary file's being unlinked by another malicious user, if that's what you're referring to. 07:41:16 No, I meant that I create /tmp/foo and then, as I am unlinking it, you create /tmp/foo too. 07:41:38 What's the problem there? 07:41:44 You were done with /tmp/foo, right? 07:42:03 Right, otherwise why unlink it if you're not done? 07:42:11 No, this is a model in which I creat immediately followed by unlink, and let the kernel's gc dispose of the file. 07:42:18 So that there is no long-term dependency on the file's name. 07:42:31 OK... What's the problem, then? 07:43:22 That you may unlink my /tmp/foo instead of your /tmp/foo, causing an error for me? That's not an issue because /tmp is sticky, so I can't clobber your /tmp/foo anyway. 07:43:52 No, that's irrelevant here. 07:43:58 And if it's not /tmp, it's probably a directory that you own and that I can't write to, so I probably still can't clobber your /home/jcowan/foo. 07:45:14 Pray tell. 07:45:24 I'm trying to work out exactly what the problem is again. 07:46:07 I creat /tmp/foo with O_EXCL, you try to do the same, it fails, so you try /tmp/foo1, but meanwhile I have unlinked /tmp/foo ... no, that should be all right. 07:46:20 Why are you even using creat? 07:46:34 creat or open with O_CREAT, it's all the same. 07:47:47 Are you perhaps thinking of a bug in Linux? 07:49:54 I don't think that is a Linux bug. Is there a followup anywhere? 07:50:27 I suppose if the tempfile isn't too vulgar big, opening it with pipe() is the best option. 07:51:33 I can't imagine what this race condition might be except a bug in the kernel. 07:51:34 *jcowan* retires from the field, mumbling in confusion. 07:51:48 Unless you need an actual external file to pass as an argument to a program. 07:52:09 Right. 07:52:54 If the name you pick is a shambolic link, then you're in trouble, but any time you have shambolic links you are in trouble, which is probably why they are not Posix. 07:53:32 What's , then? 07:53:58 You're not in trouble if you pass O_EXCL to open(2). 07:54:07 (See the description of O_EXCL in .) 07:56:17 *foof* either has a psycho-sematic allergy to suits, or a real physical allergy to whatever the dry cleaners used 07:59:21 It is late; I ought to sleep. 08:01:03 Perhaps I'll take up Arthur's invitation. 08:01:40 Please do. 08:03:16 -!- Riastradh [n=riastrad@tissot.csail.mit.edu] has quit ["leaving"] 08:03:17 I see, symlink was migrated to BASE while I wasn't looking. 08:03:22 -!- jcowan [n=jcowan@cpe-74-68-154-139.nyc.res.rr.com] has quit ["Leaving"] 08:14:07 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 08:14:25 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 08:21:08 Riastradh: As a note, Chez has weak hashtables, but the keys are weak, not the data. Of course, this means that you can use this to implement datum-weak hashtables. 08:39:57 elderK [n=zk@125-238-255-127.jetstream.xtra.co.nz] has joined #scheme 08:43:50 Sorry, I should have meant that Chez Scheme has the facilities to make datum weak hashtables. I don't think you would use key-weak hashtables to do it. 08:59:50 Edico [n=Edico@unaffiliated/edico] has joined #scheme 09:08:17 -!- Sergio`_ [n=Sergio`@a89-152-191-112.cpe.netcabo.pt] has quit [Client Quit] 09:18:52 rstandy [n=rastandy@net-93-144-92-225.t2.dsl.vodafone.it] has joined #scheme 09:18:57 ejs [n=eugen@92-49-197-37.dynamic.peoplenet.ua] has joined #scheme 09:27:05 nowhere_man [n=pierre@lec67-4-82-235-57-28.fbx.proxad.net] has joined #scheme 09:27:26 mmc [n=mima@cs27122078.pp.htv.fi] has joined #scheme 09:32:19 -!- 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"] 09:44:25 -!- nutmegmagi [n=swalters@65.222.72.10] has quit [Remote closed the connection] 09:46:37 -!- copumpkin [n=copumpki@94.162.5.181] has quit [Read error: 60 (Operation timed out)] 09:55:52 hotblack23 [n=jh@p5B0575AD.dip.t-dialin.net] has joined #scheme 09:58:25 -!- arcfide [n=arcfide@ppp-70-246-149-137.dsl.stlsmo.swbell.net] has quit ["ircII EPIC4-2.8 -- Are we there yet?"] 10:02:29 -!- QinGW [n=wangqing@203.86.89.226] has quit [Read error: 104 (Connection reset by peer)] 10:02:31 hkBst [n=hkBst@gentoo/developer/hkbst] has joined #scheme 10:03:36 Sergio` [n=Sergio`@a89-152-191-112.cpe.netcabo.pt] has joined #scheme 10:17:58 mario-goulart [n=user@67.205.85.241] has joined #scheme 10:20:48 -!- proq [n=user@unaffiliated/proqesi] has quit [Read error: 110 (Connection timed out)] 10:21:16 masm [n=masm@bl7-201-21.dsl.telepac.pt] has joined #scheme 10:40:12 hkBst_ [n=hkBst@gentoo/developer/hkbst] has joined #scheme 10:40:56 -!- rstandy [n=rastandy@net-93-144-92-225.t2.dsl.vodafone.it] has quit [Read error: 54 (Connection reset by peer)] 10:55:18 -!- underspecified [n=eric@walnut.naist.jp] has quit [] 10:56:56 -!- hkBst [n=hkBst@gentoo/developer/hkbst] has quit [Read error: 111 (Connection refused)] 11:02:32 Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has joined #scheme 11:09:57 copumpkin [n=copumpki@94.163.238.71] has joined #scheme 11:14:36 -!- ejs [n=eugen@92-49-197-37.dynamic.peoplenet.ua] has quit [Read error: 60 (Operation timed out)] 11:15:02 ejs [n=eugen@nat.ironport.com] has joined #scheme 11:25:07 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 11:31:53 -!- elderK [n=zk@125-238-255-127.jetstream.xtra.co.nz] has quit [] 11:33:29 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 11:33:40 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Remote closed the connection] 11:40:00 ejs1 [n=eugen@nat.ironport.com] has joined #scheme 11:40:06 -!- masm [n=masm@bl7-201-21.dsl.telepac.pt] has quit ["Leaving."] 11:42:32 ecomba [n=ecomba@77.Red-83-54-155.dynamicIP.rima-tde.net] has joined #scheme 11:54:32 -!- ejs [n=eugen@nat.ironport.com] has quit [Read error: 110 (Connection timed out)] 11:56:23 -!- ejs1 [n=eugen@nat.ironport.com] has quit [Read error: 60 (Operation timed out)] 11:56:57 leppie [n=lolcow@dsl-243-43-34.telkomadsl.co.za] has joined #scheme 11:58:40 -!- ecomba [n=ecomba@77.Red-83-54-155.dynamicIP.rima-tde.net] has quit [] 12:05:36 -!- mmc [n=mima@cs27122078.pp.htv.fi] has quit ["Leaving."] 12:06:31 xwl [n=user@123.115.99.128] has joined #scheme 12:06:46 luz [n=davids@189.122.90.116] has joined #scheme 12:17:03 -!- hkBst_ [n=hkBst@gentoo/developer/hkbst] has quit [Remote closed the connection] 12:38:05 ejs [n=eugen@83-23-135-95.pool.ukrtel.net] has joined #scheme 12:41:29 -!- hosh [n=hosh@c-71-199-176-82.hsd1.ga.comcast.net] has quit ["Leaving"] 12:42:49 dansa [i=dbastos@dhcp-077-250-091-080.chello.nl] has joined #scheme 12:44:09 can anyone point me to a tutorial on getting an overview of writing a domain specific language using plt scheme? there seems to be no example in, say, the guide online 12:46:46 -!- Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has quit [Read error: 104 (Connection reset by peer)] 12:46:55 -!- hotblack23 [n=jh@p5B0575AD.dip.t-dialin.net] has quit ["Leaving."] 12:47:06 Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has joined #scheme 12:49:56 -!- marcoecc [i=me@gateway/gpg-tor/key-0x9C9AAE7F] has quit ["Quitting"] 12:56:11 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 12:56:24 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 13:21:51 jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has joined #scheme 13:21:56 -!- jdijk [i=jdijk@ftth-212-84-159-210.solcon.nl] has quit [Client Quit] 13:36:08 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 13:36:24 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 13:47:49 -!- copumpkin [n=copumpki@94.163.238.71] has quit [] 14:03:46 kenjin2201 [n=kenjin@116.42.53.57] has joined #scheme 14:09:11 SICP chaper 5, register machine language is really hard for me to comprehend, especially when it comes to "recursion". Any pointers, tips will be greatly appreciated. 14:12:41 Will it be helpful if I study a little bit of assembly language? 14:30:34 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 14:30:50 MichaelRaskin [n=MichaelR@213.171.48.239] has joined #scheme 14:31:47 -!- dsmith [n=dsmith@cpe-173-88-196-177.neo.res.rr.com] has quit ["Leaving"] 14:35:03 kenjin2201: really, only you could answer that 14:42:07 Maybe I'm dumb. I tried really hard to understand the "fibonacci" in the book. 14:44:01 I'll be happy if I could understand when to save "continue" and when not 14:45:50 i'm not at chapter 5 yet, so take this with a grain of salt, but maybe if you could map the concepts to concrete things it will help. In that case, I suggest some computer architecture book, like hennesy&patterson or tannenbaum 14:51:50 i haven't read the book; but what about it dont you understand? 14:52:27 i mean, about fibonacci in particular 14:52:30 or about recursion 14:55:53 The book implements a procedure that generates fibonacci numbers as an example to show how the authors' register machine language (conceptually similar to assembly language) can be used. 14:56:20 saving state on the stack, i suppose 14:56:45 so u wanna intuitively understand the procedure? 14:56:48 cmatei: Yes exactly 14:57:39 I want to understand how to save state on the stack as cmatei said 14:58:51 the intuitive notion is clear and i think you know see it yourself; i suppose you mean you wanna understand the relation between the picture of how it works that you have in mind and the code itself. you understand what im saying, sir? 15:00:39 i say irc is very newbie-unfriendly; unless you come here with a fairly precise idea of how to use the minds lurking in here, it'll be difficult; few are really willing to write a socratic dialogue here to guide someone 15:02:00 from Chez Scheme, what's the difference between one Petite and another non-Petite? 15:02:57 kenjin2201: in case u have absolutely no idea why a stack in useful in recursion, notice the following picture: put a plate on the table; put another one on top of it; now, you can't touch the bottom one; that's the rule; and that means that the state (lets say) of that plate is ``saved.'' 15:03:05 Can you recommend me a short, concise assembly language tutorial? 15:03:23 i wouldnt recommend you aspirin if i dont know what pain you have 15:04:13 and ive never read a book on assembly myself, but there sure are various; i remember an author called maybe... Mr. Randal? 15:04:42 randall hyde :) 15:04:43 http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/index.html 15:05:03 but that's real-world machine assembly that he deals with 15:05:09 hey, Brian Kernighan... 15:05:16 and friends, in their The AWK Programming Language... 15:05:26 they implement an assembly language for a hypothetical computer 15:05:39 the computer has one register initially; you can easily extend it 15:05:43 it's all in AWK 15:06:02 you can then write some simple programs in your own assembly langauge 15:06:07 without any hassle of real world machines 15:06:48 this book i've read myself; i dont really recommend, because i am not your master, but i liked it a lot; kernighan's books are usually very likable by me 15:10:06 Sounds great, It's only 200+ pages, thank you. 15:10:36 which one? the AWK book? 15:17:24 underspecified [n=eric@softbank220043052007.bbtec.net] has joined #scheme 15:18:09 -!- Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has quit [Client Quit] 15:25:44 -!- TR2N [i=email@89.180.186.208] has quit [Read error: 110 (Connection timed out)] 15:26:35 reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has joined #scheme 15:28:12 TR2N` [i=email@89.180.203.83] has joined #scheme 15:29:55 -!- bokr [n=eduska@95.154.102.124] has quit [Remote closed the connection] 15:39:36 -!- TR2N` is now known as TR2N 15:40:10 -!- kenjin2201 [n=kenjin@116.42.53.57] has quit [Read error: 60 (Operation timed out)] 15:44:18 -!- lusory [n=bart@bb121-6-212-182.singnet.com.sg] has quit [Read error: 104 (Connection reset by peer)] 15:44:47 attila_lendvai [n=ati@catv-89-134-66-143.catv.broadband.hu] has joined #scheme 15:49:16 lusory [n=bart@bb119-74-202-168.singnet.com.sg] has joined #scheme 16:29:48 attila_lendvai_ [n=ati@catv-89-134-66-143.catv.broadband.hu] has joined #scheme 16:36:27 -!- attila_lendvai [n=ati@catv-89-134-66-143.catv.broadband.hu] has quit [Read error: 60 (Operation timed out)] 16:38:55 -!- xwl [n=user@123.115.99.128] has quit [Remote closed the connection] 16:40:58 cky [n=cky@h-98-105-1-101.ip.alltel.net] has joined #scheme 16:42:34 Jafet [n=Jafet@unaffiliated/jafet] has joined #scheme 16:45:32 outworlder [n=user@c-76-17-138-17.hsd1.mn.comcast.net] has joined #scheme 16:47:29 albacker [n=eni@unaffiliated/enyx] has joined #scheme 16:52:01 Jafet1 [n=Jafet@unaffiliated/jafet] has joined #scheme 16:52:23 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Nick collision from services.] 16:52:25 -!- Jafet1 is now known as Jafet 16:52:35 -!- offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has quit [Read error: 104 (Connection reset by peer)] 16:57:27 offby1 [n=user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 16:58:49 -!- cky_ [n=cky@h-98-105-51-131.ip.alltel.net] has quit [Read error: 110 (Connection timed out)] 17:03:50 im having difficulties using scribble; i tried various installations and im getting standard-module-name-resolver: collection not found: # in any of [various paths]; i dont seem to have any directory containing a path such as scribble/basic/lang 17:04:36 that is, after running, for example, scribble --pdf file 17:05:01 my last install attempt was the full nighly build from the original website 17:05:43 let's try compiling the sources; it seems to me that something is left out 17:05:48 since it's a collection not found :) 17:06:16 now... when i strace the process... i get a lot of ... 17:06:20 --- SIGSEGV (Segmentation fault) @ 0 (0) --- 17:14:06 let's hope it compiles :) 17:15:04 for some reason ive been assuming that this channel is called plt-scheme :) 17:15:20 :) 17:15:29 You might have more luck on the mailinglists 17:15:33 thanks for your comprehension :) 17:15:35 There are some PLT users here too of course 17:15:40 yeah; if things go wrong, i'll post it there 17:16:24 there should be :) PLT is such a great package 17:17:41 zbeasnyy [n=mornfall@lbrat1-30-169.wmx.sk] has joined #scheme 17:18:19 -!- albacker [n=eni@unaffiliated/enyx] has quit [Remote closed the connection] 17:18:30 albacker [n=eni@unaffiliated/enyx] has joined #scheme 17:19:53 bgs100 [n=ian@unaffiliated/bgs100] has joined #scheme 17:33:22 Jafet1 [n=Jafet@unaffiliated/jafet] has joined #scheme 17:33:27 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 17:33:33 dansa: The reason for your confusion might be that #plt-scheme redirects people to #scheme. 17:34:09 As for the sigsegv signals that you see -- they're fine, it's part of the GC implementation. 17:34:22 And re scribble not working -- which version of PLT are you using? 17:34:56 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Nick collision from services.] 17:34:58 -!- Jafet1 is now known as Jafet 17:37:48 -!- albacker [n=eni@unaffiliated/enyx] has quit ["."] 17:38:31 -!- Sergio` [n=Sergio`@a89-152-191-112.cpe.netcabo.pt] has quit [Remote closed the connection] 17:38:50 -!- linas_ [n=linas@gnucash.org] has quit [Read error: 110 (Connection timed out)] 17:43:39 jengle [n=jengle@64-252-48-197.adsl.snet.net] has joined #scheme 17:43:50 hi all. 17:44:29 i've been looking around the web for a common way to document a scheme procedure, but i haven't been able to find anything. 17:44:54 how do you typically format your procedure documentation? 17:45:11 ie. the comment above a procedure describing its function, arguments, etc. 17:45:51 jengle: I think mole is kind of common 17:46:38 http://www196.pair.com/lisovsky/ad/mole 17:46:40 Sergio` [n=Sergio`@a89-152-191-112.cpe.netcabo.pt] has joined #scheme 17:47:24 jonrafkind [n=jon@crystalis.cs.utah.edu] has joined #scheme 17:48:16 hey eli! aha, so that was why (re: redirection) 17:48:58 regarding version, here's what i currently have: 17:48:59 Welcome to MzScheme v4.2.3.8 [3m], Copyright (c) 2004-2009 PLT Scheme Inc. 17:49:42 dansa: In that case things *should* work fine. 17:50:10 Even more than that -- once you use a `#lang' line that specifies a scribble language, a button should pop up on the toolbar to render the file. 17:52:00 you are actually correct; things are working plt-fine 17:52:13 what i have now is a latex difficulty for the --pdf case 17:52:24 ! LaTeX Error: File `stabular.sty' not found. 17:52:40 Ah, yes -- you need some such packages. 17:53:08 The whole tables thing changed to being implemented on top of about 4 different latex tools. 17:53:47 does texlive, latex, have some sort of planet or APT system? :) 17:54:27 i just downloaded the file 17:54:33 lets see what i can do with it 17:54:35 There's CTAN, but if you use some linux distribution then using its package system is better. 17:55:19 im using ubuntu; but what keyword to use? stabular returns nothing 17:55:31 sjamaan, i'm not really looking for something to parse my code. i'm just curious how people comment their procedures.. 17:55:40 oh 17:55:47 I think that differs a lot :) 17:55:51 dansa: Just look for any packages with "latex"... 17:56:39 dansa: BTW, I see that you asked earlier about "an overview of writing a domain specific language using plt scheme" -- I have a tutorial that is intended to eventually become such a guide. 17:57:18 It's a text file with a good number of examples and explanations, and was used in DEFUN09. If you're interested I can email it to you. 17:57:24 eli: let me take the opportunity that you're here and ask you something more important; i'd like to get started on writing new languages; the website doesnt seem to give any tutorial on using macros along with lexer and all to make a new language, ... (looks like you just replied to that.) 17:57:41 :) 17:57:45 yeah; i found the blog earlier 17:57:58 then i kept on looking for a link on it... that would point me to such text file :) 17:58:13 Yeah, I didn't get to organize it better... 17:58:19 dbastos@toledo.com is my email 17:58:28 if you give me yours, i can send one so that you reply to 17:58:33 Seemed kind of redundant given that I plan on making it a proper manual anyway. 17:58:33 copumpkin [n=copumpki@94.162.246.68] has joined #scheme 17:58:34 and... thanks very much! 17:59:04 Are you using Emacs, btw? 17:59:10 yes :) 17:59:33 dakeyras [n=dakeyras@pool-98-117-123-121.sttlwa.fios.verizon.net] has joined #scheme 17:59:53 In that case I'll send also the .el file that I used to do the highlights etc, and it also has magic keys to run mzscheme or drscheme on a given block. 18:00:01 wonderful :) 18:00:15 (You might need to load my environment also, which you can get as a single .elc file from my hacks page.) 18:00:49 alright; i know your page too :) 18:01:26 I sent it (in case you wouldn't, it's on my emails...) 18:01:51 thanks a lot 18:02:05 you know, you're like... the opposite of the average university professor 18:02:09 you even use email! 18:02:17 :) 18:02:32 I am also known to be confused with pizza delivery guys... 18:02:39 lol; why? 18:03:37 Just happened once when I visited a student in his dorms... He told me that after I left his roommates asked him where's the pizza. 18:04:15 Next time you should bring pizza then 18:04:28 or at least some matza 18:04:38 hehe 18:04:40 Good idea. 18:04:54 (Jafet's, not jonrafkind's.) 18:04:59 :( 18:05:14 I have a whole box left from last passover. 18:05:31 attila_lendvai__ [n=ati@catv-89-134-66-143.catv.broadband.hu] has joined #scheme 18:05:38 Just in case you're missing consuming some edible dust. 18:05:46 I miss it terribly 18:06:17 -!- dakeyras [n=dakeyras@pool-98-117-123-121.sttlwa.fios.verizon.net] has left #scheme 18:06:57 Actually, given where you live now, you can just go outside and eat some sand -- it's almost the same taste and texture anyway... 18:07:33 Or if you get to Boston you're welcome to come and comsume some of the real thing. 18:08:01 ok :p 18:13:41 -!- attila_lendvai_ [n=ati@catv-89-134-66-143.catv.broadband.hu] has quit [Read error: 60 (Operation timed out)] 18:21:24 -!- nullpo [n=nullpo@221x252x46x83.ap221.ftth.ucom.ne.jp] has quit ["Leaving..."] 18:21:42 -!- ejs [n=eugen@83-23-135-95.pool.ukrtel.net] has quit ["This computer has gone to sleep"] 18:21:58 -!- jengle [n=jengle@64-252-48-197.adsl.snet.net] has quit ["Leaving"] 18:28:33 -!- zbeasnyy [n=mornfall@lbrat1-30-169.wmx.sk] has quit [Read error: 60 (Operation timed out)] 18:36:36 -!- Sergio` [n=Sergio`@a89-152-191-112.cpe.netcabo.pt] has quit [Read error: 60 (Operation timed out)] 18:43:19 snearch [n=olaf@g225051191.adsl.alicedsl.de] has joined #scheme 18:49:04 zbeasnyy [n=mornfall@lbrat1-30-169.wmx.sk] has joined #scheme 18:52:02 -!- ski_ [n=md9slj@remote1.student.chalmers.se] has quit ["Lost terminal"] 18:53:03 -!- luz [n=davids@189.122.90.116] has quit ["Client exiting"] 18:55:11 -!- zbeasnyy [n=mornfall@lbrat1-30-169.wmx.sk] has quit [Client Quit] 19:00:44 ejs [n=eugen@83-23-135-95.pool.ukrtel.net] has joined #scheme 19:01:32 ski_ [n=md9slj@remote1.student.chalmers.se] has joined #scheme 19:03:42 -!- ejs [n=eugen@83-23-135-95.pool.ukrtel.net] has quit [Client Quit] 19:08:01 -!- MichaelRaskin [n=MichaelR@213.171.48.239] has quit [Remote closed the connection] 19:08:08 Jafet1 [n=Jafet@unaffiliated/jafet] has joined #scheme 19:10:24 jewel_ [n=jewel@vc-41-28-108-27.umts.vodacom.co.za] has joined #scheme 19:10:26 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Nick collision from services.] 19:10:28 -!- Jafet1 is now known as Jafet 19:18:17 aack [n=user@a83-161-214-179.adsl.xs4all.nl] has joined #scheme 19:18:33 Jafet1 [n=Jafet@unaffiliated/jafet] has joined #scheme 19:20:04 -!- Jafet1 [n=Jafet@unaffiliated/jafet] has quit [Client Quit] 19:20:11 -!- Jafet [n=Jafet@unaffiliated/jafet] has quit [Read error: 60 (Operation timed out)] 19:29:13 -!- jewel_ [n=jewel@vc-41-28-108-27.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 19:37:37 Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has joined #scheme 19:39:47 -!- attila_lendvai__ [n=ati@catv-89-134-66-143.catv.broadband.hu] has quit ["..."] 19:41:17 jewel [n=jewel@vc-41-28-173-200.umts.vodacom.co.za] has joined #scheme 19:46:51 copumpkin_ [n=copumpki@94.162.29.201] has joined #scheme 19:50:58 jlongster [n=user@pool-173-53-95-33.rcmdva.fios.verizon.net] has joined #scheme 19:53:40 -!- copumpkin [n=copumpki@94.162.246.68] has quit [Read error: 60 (Operation timed out)] 19:53:41 -!- copumpkin_ is now known as copumpkin 19:59:17 -!- dansa [i=dbastos@dhcp-077-250-091-080.chello.nl] has quit ["leaving"] 20:00:06 -!- reprore [n=reprore@ntkngw356150.kngw.nt.ftth.ppp.infoweb.ne.jp] has quit [Remote closed the connection] 20:07:31 -!- jewel [n=jewel@vc-41-28-173-200.umts.vodacom.co.za] has quit [Read error: 110 (Connection timed out)] 20:24:02 -!- jlongster [n=user@pool-173-53-95-33.rcmdva.fios.verizon.net] has quit [Read error: 113 (No route to host)] 20:36:38 ejs [n=eugen@109-167-1-212.dynamic.peoplenet.ua] has joined #scheme 20:39:13 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 20:39:34 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 20:40:42 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 20:44:52 proq [n=user@unaffiliated/proqesi] has joined #scheme 20:49:14 -!- dfeuer [n=dfeuer@wikimedia/Dfeuer] has quit [Read error: 110 (Connection timed out)] 20:51:17 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [] 20:55:24 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 20:57:55 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [Read error: 113 (No route to host)] 20:58:04 visof [n=visof@41.238.233.86] has joined #scheme 20:58:25 -!- Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 20:59:33 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 21:13:56 -!- ejs [n=eugen@109-167-1-212.dynamic.peoplenet.ua] has quit [Read error: 113 (No route to host)] 21:29:15 ejs [n=eugen@109-167-1-212.dynamic.peoplenet.ua] has joined #scheme 21:30:59 -!- schoppenhauer [n=christop@unaffiliated/schoppenhauer] has quit [] 21:31:42 schoppenhauer [n=christop@unaffiliated/schoppenhauer] has joined #scheme 21:33:34 -!- MichaelRaskin [n=MichaelR@195.91.224.225] has quit [Remote closed the connection] 21:33:50 MichaelRaskin [n=MichaelR@195.91.224.225] has joined #scheme 21:39:30 -!- TR2N [i=email@89.180.203.83] has left #scheme 21:55:11 -!- mario-goulart [n=user@67.205.85.241] has quit ["ERC Version 5.3 (IRC client for Emacs)"] 22:34:55 Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has joined #scheme 22:40:25 dansa [i=dbastos@dhcp-077-250-091-080.chello.nl] has joined #scheme 22:43:02 masm [n=masm@bl7-201-21.dsl.telepac.pt] has joined #scheme 22:45:50 -!- snearch [n=olaf@g225051191.adsl.alicedsl.de] has quit ["Ex-Chat"] 22:46:02 -!- visof [n=visof@41.238.233.86] has quit [Remote closed the connection] 22:47:19 alexcg [n=alexande@77.247.173.52] has joined #scheme 23:22:07 -!- ejs [n=eugen@109-167-1-212.dynamic.peoplenet.ua] has quit [Read error: 60 (Operation timed out)] 23:22:55 -!- Mikaeel_Mohamed [n=Mohamdu@CPE0013f7bc6820-CM0013f7bc681c.cpe.net.cable.rogers.com] has quit [Read error: 110 (Connection timed out)] 23:25:11 -!- Edico [n=Edico@unaffiliated/edico] has quit ["Ex-Chat"] 23:34:49 -!- foof [n=user@FL1-118-110-60-113.osk.mesh.ad.jp] has quit [Read error: 110 (Connection timed out)] 23:41:02 HG` [n=HG@xdslfg222.osnanet.de] has joined #scheme 23:42:05 r2q2 [n=user@c-24-7-212-60.hsd1.il.comcast.net] has joined #scheme 23:43:14 -!- HG` [n=HG@xdslfg222.osnanet.de] has quit [Client Quit] 23:45:46 -!- Poeir [n=Poeir@c-98-228-48-133.hsd1.il.comcast.net] has quit [Read error: 104 (Connection reset by peer)] 23:53:06 copumpkin_ [n=copumpki@94.162.10.19] has joined #scheme