00:06:05 -!- Intensity [ARPvoYnr1B@unaffiliated/intensity] has quit [Ping timeout: 255 seconds] 00:07:42 lusory [~bart@bb119-74-154-219.singnet.com.sg] has joined #scheme 00:07:59 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Remote host closed the connection] 00:12:35 -!- choas [~lars@p578F6765.dip.t-dialin.net] has quit [Quit: leaving] 00:16:30 -!- HG` [~HG@xdsl-92-252-126-135.dip.osnanet.de] has quit [Quit: Leaving.] 00:28:34 -!- pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has quit [Read error: Operation timed out] 00:45:53 -!- fradgers- [~fradgers-@2.121.50.126] has quit [Remote host closed the connection] 00:47:07 Off-topic, but this is a beautiful PoserPoint presentation: . 00:48:07 kenjin2201 [~kenjin@61.99.46.4] has joined #scheme 00:49:36 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 272 seconds] 00:50:18 getpwnam [~ian@70-138-107-74.lightspeed.hstntx.sbcglobal.net] has joined #scheme 00:53:53 -!- kenjin2201 [~kenjin@61.99.46.4] has quit [Ping timeout: 245 seconds] 00:54:06 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 01:04:52 mejja_ [~chatzilla@c-5bb9e555.023-82-73746f38.cust.bredbandsbolaget.se] has joined #scheme 01:04:58 chrissbx [~chrissbx@69-196-152-229.dsl.teksavvy.com] has joined #scheme 01:05:23 -!- mejja_ [~chatzilla@c-5bb9e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Client Quit] 01:07:03 -!- masm [~masm@bl19-135-179.dsl.telepac.pt] has quit [Quit: Leaving.] 01:07:07 -!- mejja [~chatzilla@c-5bb9e555.023-82-73746f38.cust.bredbandsbolaget.se] has quit [Ping timeout: 240 seconds] 01:09:31 laurus [~laurus@c-68-40-207-109.hsd1.mi.comcast.net] has joined #scheme 01:09:45 How would one sort a set of alists by the value of one of the "attributes"? 01:11:00 A sample of what I'm thinking about is, say, 10 alists with this format of each: '((time . "2010-03-40 21:45 -0400") (description . "Me")) 01:11:05 Each alist bound to a variable 01:11:11 So how would I sort them on say, time? 01:12:06 rudybot: eval (sort '((cat . 10 ) (dog . 0)) stringstring car)) 01:12:06 *offby1: ; Value: ((cat . 10) (dog . 0)) 01:12:12 rudybot: eval (sort '((cat . 10 ) (dog . 0)) < #:key cdr) 01:12:12 *offby1: ; Value: ((dog . 0) (cat . 10)) 01:12:51 offby1, is eval just used here for the rudybot? 01:12:53 note that the "#:key" thing isn't standard, but you could write your own "less" procedure to account for that 01:13:03 laurus: yes, "eval" just tells rudybot to eval the code. 01:13:08 in theory it's not needed ... lemme see 01:13:12 rudybot: (sort '((cat . 10 ) (dog . 0)) < #:key cdr) 01:13:12 *offby1: ; Value: ((dog . 0) (cat . 10)) 01:13:13 yeah 01:13:24 omitting it is a new feature, though, and old habits die hard. 01:13:29 Er 01:13:38 So what is the second argument to sort? 01:13:47 the procedure that orders elements. 01:13:57 Hmm 01:14:03 rudybot: (sort ' (9 8 7 6 5) <) 01:14:04 *offby1: ; Value: (5 6 7 8 9) 01:14:06 rudybot: (sort ' (9 8 7 6 5) >) 01:14:06 *offby1: ; Value: (9 8 7 6 5) 01:14:07 Oh! 01:14:09 Hah 01:14:10 Got it 01:14:15 all hail the power of simple examples 01:14:29 I wish there were a web page somewhere with these kinds of examples 01:14:29 (define (sort-with-key ls less key) (sort ls (lambda (a b) (less (key a) (key b))))) 01:14:41 foof++ 01:15:06 foof, how is that different from what offby1 wrote? 01:15:22 laurus: it works with standard R5RS "sort". 01:15:32 Mine requires the non-standard #:key keyword. 01:15:45 Ugh, okay 01:16:00 I'm pretty new to Scheme, I'm trying to slog through this kind of stuff, which is dead simple in Python 01:16:01 your scheme might, or might not, have #:key; you gotta check its docs. 01:16:29 _I_ don't think it's any harder, but then I've been poking at Lisp for decades. 01:16:42 laurus: so ... which scheme are you using? 01:16:45 Guile 01:16:46 rudybot: (banner) 01:16:46 *offby1: ; Value: "Welcome to Racket v5.0.1.\n" 01:16:56 I wouldn't be surprised if guile had that #:key thing, or something like it. 01:17:05 rudybot: are you still up for conversation? 01:17:05 *offby1: i've seen reasonably detailed conversation about elisp here in the past 01:17:12 *offby1* nods 01:17:39 I'm looking through the manual, but... hm 01:17:53 I'd use guile more if it were easier to build from source :-| 01:18:06 last I checked it has this weird dependency that was _really_ hard to get going 01:18:12 s/has/had/ 01:18:24 Yeah, I can't build new Guile either, and old Guile isn't worth building. 01:18:32 I am on "old Guile" :P 01:18:36 1.8 01:18:53 wingo: take heed!~ 01:18:54 what's the weird dependence? libgc? 01:19:01 maybe; can't remember. 01:19:23 -!- aisa [~aisa@c-68-35-167-179.hsd1.nm.comcast.net] has quit [Quit: aisa] 01:19:30 i build it regularly on debian without problems, once i installed libgc 01:19:44 (and that, in turn, went smoothly) 01:19:46 jao: "GNU libunistring" 01:19:49 What exactly is the key of that sort function foof? 01:20:04 offby1: ah, i had that installed as a deb 01:20:34 I don't understand what (key a) does 01:21:04 laurus: try passing it as `car' or `cdr' for your example 01:21:06 jao: odd; I have a note that says that it's not available as a deb. Perhaps my note is outdated. 01:21:24 libunistring-dev here 01:21:32 foof, and less should be "<" or something? 01:21:38 offby1: i'm on unstable, though 01:21:47 laurus: < or string jao: ah. 01:23:58 foof, I get this: http://paste.lisp.org/display/116976 01:24:40 laurus: That would be because symbols are not comparable with <. 01:24:42 offby1: it's in squeeze too 01:24:51 (testing) 01:25:26 laurus: Instead of using "car" as your key function, you need to use...something else. 01:25:33 I don't really understand what's going on, honestly 01:26:04 I'm just kind of amazed it's this hard to do this simple thing 01:26:17 laurus: Your association pairs are not directly comparable. Instead, you need to extract the item of interest. 01:26:33 lauo know how. Python. 01:26:36 yikes. 01:26:51 I meant to say: it's easy, once you know how. Just like Python. 01:27:03 cky, right the question is how to extract it 01:27:11 assq? 01:27:25 Those keys are totally right next to one another, offby1. 01:27:43 laurus: Yep. 01:27:47 (define (symbolstring a) (symbol->string b))) 01:28:19 laurus: (define (get-time assoc) (cdr (assq 'foo))) 01:28:22 Uh. 01:28:23 -!- alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Remote host closed the connection] 01:28:25 laurus: (define (get-time assoc) (cdr (assq 'foo assoc))) 01:28:27 There. 01:28:45 laurus: You need a sensible way to compare the time strings too, unless lexicographical order is sufficient. 01:29:00 cky, oh it's okay 01:29:13 Third time lucky: (define (get-time assoc) (cdr (assq 'time assoc))) 01:29:31 Riastradh: it's weird. There's a process that's causing a lot of paging (ironically, it's me building Guile), and that causes lots of my keystrokes to be completely ignored. 01:29:49 cky, thanks :) Sorry for being so dumb 01:29:57 Strange, offby1. Maybe you should try reformatting your hard drive and reinstalling Windows. 01:30:12 O_o 01:30:18 Next up on offby1's machine: when OOM killers attack! 01:30:28 Quite. 01:30:42 offby1: foof is probably right on the money, there. 01:31:25 Riastradh: I'll get right on that. 01:31:52 no OOM killer is active; the build process is still going. It's just relented a little, so I can now type. 01:31:58 laurus, SORT-WITH-KEY breaks the problem with two questions: First, given an element of the list, what part of it do you want to sort by? (This is what the KEY procedure does. Example: I want to sort by the time field.) Second, in what order do you want to put two keys? (This is what the LESS procedure does. Example: I want the the time fields to go from lesser to greater.) 01:32:46 Riastradh, yes I understand that, thanks! It was one of those cases where I'd never be able to figure it out myself because I've never done this kind of thing before 01:33:08 Activate the OOM 13! 01:33:36 foof, was I supposed to use (define (symbolstring a) (symbol->string b))) ? 01:34:40 well, it's handy if you want to sort by symbol 01:35:00 As opposed to? 01:35:13 alternately cky suggested extracting the string from the symbol in the key step 01:35:14 laurus: As opposed to sorting by the phase of the moon. 01:35:54 Extracting the string from the symbol? 01:36:01 laurus: Looking up the association value. 01:36:05 Ah ok 01:36:07 laurus: is that foof was referring to. 01:36:14 *what 01:36:32 -!- pygospa [~pygospa@217.191.195.33] has quit [Disconnected by services] 01:36:42 TheRealPygo [~pygospa@217.191.192.218] has joined #scheme 01:37:09 I'm not sure when I would use the "sort by symbol" function 01:37:13 rudybot: (sort '(1 2 3 4 5 6 7 8 9 10) < #:key random #:cache-keys? #t ) 01:37:13 *offby1: ; Value: (1 5 2 3 4 10 6 7 9 8) 01:37:15 In the case where they are not strings? 01:37:16 dig that 01:37:23 Speaking of association lists (which I seldom use, but perhaps it's underrated), who here has a good rule of thumb in regards to what a good threshold below which using a hash table offers no benefits? 01:37:39 offby1: :-) 01:37:41 cky: I suspect that depends strongly on the implementation. 01:37:57 cky, a good rule of thumb is to measure it. 01:38:01 "measure and see for yourself" is probably the only sensible answer. 01:38:03 curse Riastradh and his fast fingers 01:38:06 Hehehehehe. 01:38:11 I'm trying to build a basic HTML photo gallery creator 01:38:15 Okay, yes, I will eat my own medicine. 01:38:15 If it's too insignificant to measure, then it doesn't matter. 01:38:20 So I figured it would be a good chance to learn some Guile :) 01:38:37 laurus: that sounds like an excellent starting project. 01:38:39 (I always tell people to measure everything. I should probably follow my own advice here and not try to take shortcuts.) 01:38:56 offby1, thanks! I'm excited about it. 01:39:17 I might even make it free software if it's any good, who knows, I think that would be fun 01:39:34 -!- tupi [~david@186.205.37.15] has quit [Quit: Leaving] 01:39:35 laurus: Go you! 01:39:54 Thanks :) Haha. But I have a long way to go obviously. 01:42:16 *nods* 01:42:28 The space overhead of a vector is typically O(1). The space overhead of an alist or of a hash table is typically O(n), but the difference in space overhead between an alist and a hash table is typically O(n) too. A little more concretely, a vector usually wastes 1 or 2 words; an alist usually wastes n words; and a hash table usually wastes 2 f(n) + k words, for some constant k, where f(n) is some step function in O(n). 01:42:50 Sorry, a hash table usually wastes f(n) + n + k words. 01:48:02 *nods* 01:48:39 If you need your table to be expandable, well, nobody expands an element at once, so there's some overhead in terms of slack space too. But, probably not going to exceed the space overhead for alists or hash tables. 01:48:41 Does anyone here have experience with ftw from Guile? (file tree walk) 01:48:50 laurus: Isn't that analogous to the C ftw? 01:48:56 cky, yes, but I've never used that 01:48:57 By C, I mean POSIX, of course. 01:49:26 That is why f is a step function, cky. 01:49:34 I'm just trying to run an "ls" with ftw :P 01:49:52 laurus: Using ftw for a non-recursive ls is overkill. :-P 01:50:05 Riastradh: Yep. 01:50:17 cky, well my plan is to have a bunch of subdirectories, 2010 2009 etc, in the main directory 01:50:25 So I want to go through those and build up the alists 01:50:46 ftw is not the right way? 01:51:07 laurus: You mean you don't want to make association vectors? :-O 01:51:13 I suppose I should say that it is a step function that takes steps larger than 1. Specifically, the steps usually increase approximately geometrically. For example, f(n + 1) might be the next prime greater than 2 f(n). 01:51:34 cky, erm, what? Everyone just showed me how to do this alist thing 01:51:55 laurus: Hehehe. 01:52:05 Ignore cky, laurus. He's pulling your leg. 01:52:12 What Riastradh said. 01:52:16 Instead, you want Motion Picture Association Lists of America. 01:52:23 O_o 01:52:40 Ok :P 01:52:48 So what is the best way to get those subdirectory listings? 01:54:38 laurus: ftw is just fine. 01:54:42 Ok 01:54:54 ftw ftw. 01:54:58 Or has that already been said 01:55:05 Very punny. 01:55:23 Dial an operator and ask for the yellow pages. 01:55:27 If you want *sub*directory listings, you'll have to tear them out yourself. 01:55:38 The problem is that it's not working 01:55:46 "Wrong type to apply: ls" 01:56:09 laurus: Why don't I write you a sample program that uses it, and you adapt it to your own needs. :-) 01:56:23 cky, wow, thanks! Sorry to be such a bother 01:56:53 I don't know why I'm having so much trouble with this compared to when I was learning the equivalent thing in Python... I think these docs lacking examples is a problem, or maybe the writing style 01:59:13 alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 02:00:44 -!- pavelludiq [~quassel@83.222.167.236] has quit [Read error: Connection reset by peer] 02:03:02 cky, I'll be right back 02:03:10 :-) 02:05:38 debiandebian_ [~chatzilla@ntszok039189.szok.nt.adsl.ppp.infoweb.ne.jp] has joined #scheme 02:06:04 -!- debiandebian [~chatzilla@ntszok039189.szok.nt.adsl.ppp.infoweb.ne.jp] has quit [Ping timeout: 255 seconds] 02:06:45 *franki^* appears 02:06:50 :-) 02:07:25 -!- debiandebian_ is now known as debiandebian 02:08:24 cky, I need to go soon 02:08:30 laurus: Well, that's unfortunate. 02:08:34 I'm still writing the program. :-P 02:08:47 Wow, really, it's that complicated? :P I'm surprised! I feel bad 02:08:58 laurus: No, it's not complicated, but I wanted to make a semi-complete example. 02:09:02 And not just something half-hearted. 02:09:07 Man, thanks! I will just leave my computer on 02:09:12 Good, good. 02:09:13 And check it a while later 02:09:18 I really really appreciate this... 02:09:19 That's the spirit of IRC! 02:09:23 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Ping timeout: 255 seconds] 02:09:24 (Lurking 24/7, that is.) 02:09:27 :D 02:09:28 My pleasure. 02:09:49 Er, if it's quite long, where can I find it? 02:09:56 laurus: I'm going to put it on lisppaste. 02:10:00 Oh, fantastic... 02:10:04 ,lisppaste 02:10:05 I hope others can benefit from this too 02:10:07 Bah 02:10:11 *nods* 02:10:13 ,,paste 02:10:17 :( 02:10:20 Talk to you soon then! 02:10:22 :-) 02:10:25 ,,lisppaste 02:10:33 *franki^* gives up 02:10:34 franki^: Third time fail? :-P 02:10:42 I thought something like that should work 02:10:54 franki^: It's also in the /topic, right at the front. :-) 02:10:55 Perhaps it does and I just suck, or perhaps I was just imagining it 02:11:20 Bah, that's all the way at the top of the screen! No one looks there 02:11:29 Heh. 02:12:30 lisppaste [~lisppaste@common-lisp.net] has joined #scheme 02:13:29 I actually keep letters from my mistress up there, because my wife never thinks to look there. 02:14:20 :D 02:14:37 That's the kind of advice you can only get from a married man! 02:14:48 *franki^* makes notes 02:16:48 -!- decaf [~mehmet@88.232.62.18] has quit [Ping timeout: 245 seconds] 02:20:02 kenjin2201 [~kenjin@163.152.84.68] has joined #scheme 02:25:27 -!- githogori [~githogori@163.sub-75-210-106.myvzw.com] has quit [Remote host closed the connection] 02:27:03 Riastradh: how do you build html documentation (or what else do you build) from .texi files? 02:27:14 I'm reading your s48-refman. 02:27:52 makeinfo --html scheme48.texinfo 02:28:04 This works only on the top-level file; the others are not complete Texinfo documents. 02:28:16 There's no scheme48.texinfo 02:28:23 nor any other .texinfo 02:28:29 scheme48.texi, rather. 02:28:36 ok 02:29:12 Well, what to do with the other files? 02:29:32 scheme48.texi includes them. 02:29:49 Hm, just saw that, checking output contents. 02:29:56 For Info output, run `makeinfo scheme48.texi'. For PDF output, I don't remember what I used; probably something called texi2pdf or something. 02:31:34 I'm going to vanish now, but I'll be back a little later, in case you have further questions. 02:32:41 I was thinking about this a few minutes ago, I think I'll try making some texinfo files one day 02:32:46 Looks like fun :) 02:33:56 Thanks Ria, it seems ok. 02:35:36 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 02:36:23 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 02:42:39 -!- getpwnam [~ian@70-138-107-74.lightspeed.hstntx.sbcglobal.net] has left #scheme 02:48:50 sts193 [~Adium@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 02:50:20 How does Quack work in emacs? I'm having a hard time figuring it out. 02:59:04 -!- MrFahrenheit [~RageOfTho@users-55-133.vinet.ba] has quit [Read error: No route to host] 02:59:23 MrFahrenheit [~RageOfTho@users-55-133.vinet.ba] has joined #scheme 03:00:34 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 03:03:38 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 03:06:00 chrissbx, out of curiosity, what are you using my Scheme48 manual for? 03:06:14 askhader [~askhader@taurine.csclub.uwaterloo.ca] has joined #scheme 03:06:19 \_°< Quack! 03:08:45 -!- sts193 [~Adium@c-76-104-226-126.hsd1.wa.comcast.net] has left #scheme 03:13:31 -!- Michael_Mohamed [~Mohamdu@74.112.44.160] has quit [Ping timeout: 240 seconds] 03:18:33 -!- MrFahrenheit [~RageOfTho@users-55-133.vinet.ba] has quit [Ping timeout: 240 seconds] 03:25:51 -!- laurus [~laurus@c-68-40-207-109.hsd1.mi.comcast.net] has quit [Quit: Leaving] 03:26:16 rpg [~rpg@216.243.156.16.real-time.com] has joined #scheme 03:34:45 cky pasted "Basic Guile implementation of "ls -lR"" at http://paste.lisp.org/display/116979 03:36:12 Special for laurus, not that they're in the channel any more. :-P 03:40:22 DrDuck [~duck@146.229.117.222] has joined #scheme 03:40:37 DrAfk [~duck@146.229.117.222] has joined #scheme 03:40:52 -!- DrDuck [~duck@146.229.117.222] has quit [Client Quit] 03:41:32 -!- DrAfk is now known as DrDuck 03:41:35 copumpkin [~pumpkin@pool-71-255-160-163.bstnma.east.verizon.net] has joined #scheme 03:41:35 -!- copumpkin [~pumpkin@pool-71-255-160-163.bstnma.east.verizon.net] has quit [Changing host] 03:41:35 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 03:45:39 -!- alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Remote host closed the connection] 03:52:42 timj__ [~timj@e176192149.adsl.alicedsl.de] has joined #scheme 03:53:41 alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 03:55:58 -!- timj_ [~timj@e176192049.adsl.alicedsl.de] has quit [Ping timeout: 245 seconds] 03:56:15 Gzronk! 03:56:19 Riastradh: I'd like to try prescheme (and s48). 03:57:13 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: nighty night] 03:58:54 cky annotated #116979 "More functional, just for my own amusement" at http://paste.lisp.org/display/116979#1 04:00:26 Hmm...OK. Any particular application? 04:02:01 Learning how to write a language system. 04:03:07 Learning how to write an implementation of a programming language, and how to design one. 04:03:36 Oh, well, in that case, Scheme48 is a good choice to study. 04:04:42 somnium [~user@184.42.17.189] has joined #scheme 04:07:24 I'd recommend looking at 0.57, though, rather than 1.3 or whatever the current version is. That, or even earlier versions (there were some substantial, and somewhat interesting, changes from 0.53 to 0.54). 04:08:56 pyro- [~pyro@unaffiliated/purplepanda] has joined #scheme 04:12:59 -!- alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Remote host closed the connection] 04:15:51 -!- kenjin2201 [~kenjin@163.152.84.68] has quit [Ping timeout: 265 seconds] 04:41:28 -!- rapacity [~prwg@unaffiliated/rapacity] has quit [Ping timeout: 265 seconds] 04:41:53 rapacity [~prwg@unaffiliated/rapacity] has joined #scheme 04:47:05 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Ping timeout: 276 seconds] 04:49:52 -!- DrDuck [~duck@146.229.117.222] has quit [Quit: Leaving] 04:53:42 kenjin2201 [~kenjin@163.152.84.68] has joined #scheme 04:56:22 DrDuck [~duck@146.229.117.222] has joined #scheme 05:00:08 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 245 seconds] 05:00:29 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 05:02:13 -!- DrDuck [~duck@146.229.117.222] has quit [Ping timeout: 245 seconds] 05:06:31 -!- lusory [~bart@bb119-74-154-219.singnet.com.sg] has quit [Read error: Connection reset by peer] 05:07:34 vu3rdd [~vu3rdd@nat/cisco/x-hucswkxvycugpbjn] has joined #scheme 05:08:45 Mohamdu [~Mohamdu@CPE00222d6b3798-CM00222d6b3795.cpe.net.cable.rogers.com] has joined #scheme 05:18:22 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 05:27:02 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 05:27:06 Axsuul [~someone@97-93-99-133.static.mtpk.ca.charter.com] has joined #scheme 05:28:12 -!- Axsuul [~someone@97-93-99-133.static.mtpk.ca.charter.com] has left #scheme 05:48:00 -!- kenjin2201 [~kenjin@163.152.84.68] has quit [Quit: Leaving] 05:48:03 kenjin_ [~kenjin@163.152.84.68] has joined #scheme 05:48:29 -!- kenjin_ is now known as Guest47211 06:02:29 githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has joined #scheme 06:06:14 danking pasted "A peculiar HOF" at http://paste.lisp.org/display/116984 06:06:22 Greetings. 06:06:37 I was hoping someone was still awake and could give me a hand with this. 06:07:19 I feel like I'm over complicating this procedure somehow. What I want to do is map over a list, but I need to accumulate a value that's used to do the mapping. 06:07:26 See paste. 06:12:39 nilg [~user@85.239.138.109] has joined #scheme 06:19:31 schmir [~schmir@mail.brainbot.com] has joined #scheme 06:21:24 danking: it might be a bit clearer to write it as a fold, but the paste doesn't seem excessively complicated to me 06:22:46 decaf [~mehmet@78.168.57.90] has joined #scheme 06:24:20 somnium: So, I thought about writing it as a fold, but I wasn't sure how to store the accumulated value. Could you maybe explain how I would do taht? 06:24:26 I think it would be better for you to write that as an explicit loop, danking, than to try to find some higher structure to it. You appear to duplicate the call to SANITIZE-FRAME, as you have written it, incidentally. (Also, haven't used the parameter ID-MAP of SANITIZE-ENV*.) 06:25:11 Riastradh: nice catch, that should've been the third argument to accum 06:26:02 Riastradh: I do duplicate the call, I thought this was a bit clearer than my original implementation which used a let but conflated the idea of looping with updating values. 06:26:18 decaf_ [~mehmet@78.168.57.90] has joined #scheme 06:26:20 -!- decaf [~mehmet@78.168.57.90] has quit [Client Quit] 06:26:50 -!- decaf_ is now known as decaf 06:26:55 -!- decaf [~mehmet@78.168.57.90] has left #scheme 06:27:49 Riastradh: Are you refering to the `do' keyword when you say "explicit loop"? I've never written a loop in Scheme which wasn't a recursive HOF. 06:28:10 No, just writing a recursive procedure. 06:28:18 Not a higher-order one. 06:31:13 Riastradh: alright 06:31:16 Thanks guys. 06:35:53 -!- Guest47211 [~kenjin@163.152.84.68] has quit [Ping timeout: 240 seconds] 06:51:39 danking: ping 06:52:36 -!- Open [~gleen@unaffiliated/open] has quit [Quit: leaving] 07:07:01 Intensity [OzZPrc8k7M@unaffiliated/intensity] has joined #scheme 07:08:38 danking : just wondering : if you're going to write type signatures in the comments, why are you not writing the result types ? 07:10:43 danking : also, in `accum', shouldn't the type of `base' be `[ListOf X]', alternatively shouldn't you return an empty list, or maybe `(list base)', in the base case ? 07:11:47 -!- stamourv` [~user@kauai.ccs.neu.edu] has quit [Ping timeout: 265 seconds] 07:12:58 (.. and why is there a type signature for `make-uid' in the comment just above `sanitize-env*' ? did you forget to rename one, when renaming ?) 07:13:31 chittoor [~chittoor@listertech.in] has joined #scheme 07:22:33 eli: pong 07:23:05 ski: Yeah, it's late. I totally forgot about result types 07:23:10 Thanks 07:23:29 Also right about the other thing 07:23:52 (if you're using Racket, maybe you should consider trying Typed Scheme ?) 07:23:54 pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has joined #scheme 07:23:57 God. This is where a legit type system would be so sweet. 07:24:32 ski: I'm neglecting it more for fear of the Unknown. I'd like to get this prototype up and running as fast a possible 07:24:50 I suppose I should just go ahead and use it though, I think I have enough experience to get it right. 07:24:53 ok 07:24:59 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 07:25:32 It's a good thing I post my code here and have you guys critique it before it ends up on github for the whole world to see. 07:25:51 ...You know that lisppastes last forever for the whole world to see, right? 07:27:27 Riastradh: I feel like GitHub has a wider audience. 07:32:12 chandler: ooh, a different captcha? 07:32:33 eli annotated #116984 "factor loop out" at http://paste.lisp.org/display/116984#1 07:32:44 danking: See that. 07:33:24 danking: I just shuffled things a bit so the loop structure is more obvious. 07:33:58 Once that's done, you can see that it would make sense to swap the inputs to your `acc-proc'. 07:34:40 And once you do that, an obvious change is to have a single function that returns the two values. 07:35:07 And because the second value is the new acc, it's clear that you basically want to carry around a piece of "state". 07:35:08 ahh 07:35:20 eli: That would be much more elegant and avoid the duplicate function calls 07:35:32 So one "obvious" way to go from here is some monad to deal with the state. 07:36:05 But since this *is*, after all, a language with side effects, you can just use a `set!'. 07:36:56 *eli* wonders if that should have ended with "a `set!'!". 07:36:59 what if he needs to keep references to the previous states? 07:37:26 I'm not sure I've ever used `set!' in my Scheme code before. I feel like this would be a loss of innocence. 07:37:39 (Then he makes the state be a functional value.) 07:38:05 danking: You can also pass a box around, if that will make you feel better. 07:38:25 danking: I think using set! in Scheme is less risque than unsafePerformIO in that language with monads 07:41:03 eli: Is there like an introduction to Monads somewhere which uses Scheme/Lisp/Racket? I've tried multiple times to grok the wikipedia article but I never really understand what a Monad _is_ and how to practically use them. 07:41:09 danking: Also, there's probably no use for your `base', since anything other than '() will result in an improper list. 07:42:00 If you need a tutorial for it, then it's probably better to avoid it. 07:42:07 merh. 07:42:16 eli: I'd like to understand them anyway 07:43:14 Then just google for one... There's way too many of them around... 07:43:36 danking: YouCouldHaveInvented monads is in haskell but quite accessible. There are some clojure ones that some people like. I think there's an email with a scheme implementation floating around too. 07:43:38 Not all in haskell, but even the haskell ones should be easy to translate. 07:43:53 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 265 seconds] 07:44:46 For a racket implementation, see collects/rackunit/private/monad.rkt 07:45:39 (eli : `base' could be another list, i.e some tail list on which to `cons' the output values) 07:46:22 somnium: Alright I'll look at that one then, thanks. 07:46:56 ski: (I did say "probably" -- the way it looks, combining it with other lists isn't needed.) 07:48:34 well, i don't know 07:49:55 eli annotated #116984 "Using state" at http://paste.lisp.org/display/116984#2 07:50:06 danking: Probably something like that is close. 07:50:14 (And ignoring that `base'.) 07:55:24 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Quit: sts193] 07:55:49 eli: should it be (set! state new-acc) ? 07:56:33 Ugh, yes. 07:57:09 But that was just to make the point by a rough translation to your original code. 07:57:55 Since you probably want to combine the `map-proc' and the `app-proc', and probably the initial `acc' value, you can just write all three in a single function... 07:58:22 ...which means that instead of that intimidating `accum', you're left with a "plain" `map'. 07:58:54 (Not really plain, since side effects shouldn't be underestimated...) 07:59:29 (And also not plain since you're relying on a left->right order, which racket guarantees.) 08:03:40 eli: It's landmines like that which scare me away from side effects. 08:05:14 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 08:06:06 alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 08:06:34 danking: I'm not used to encourage side-effects, but you seem to be overly paranoid about them... 08:07:25 FWIW, look at a random haskell project, and you'll see that the fake-side-effect stuff looks like it does in a random C project. 08:08:45 (s/fake-side-effect/effect/ :) 08:08:54 (i agree, btw) 08:10:08 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Client Quit] 08:12:11 eli: I think it's a combination of Fundies and working some place which has an unpredictable legacy code base. Honestly, coop has tarnished my idyllic view of programming--I imagine this is how someone living in a monastery would feel if they were placed in a warzone. 08:13:25 danking: In general it's true. 08:13:45 One of the things that you should be suspicious of is the extent of the state. 08:14:11 In this case, the state is relatively well-behaved: it's created for the `map' call, and not used elsewhere. 08:14:18 wingo [~wingo@219.Red-88-0-167.dynamicIP.rima-tde.net] has joined #scheme 08:14:29 MindVirus [~mindvirus@unaffiliated/mindvirus] has joined #scheme 08:14:58 Hello. What is the best Scheme interpreter in the Ubuntu repositories? Compiler? 08:14:59 This could be dangerous under some conditions: for example, you could create that stateful function and use it in more than just that `map' by mistake. 08:16:00 Another condition (which I think is what somnium indirectly referred to earlier) is if you try to close over the state -- for example, return a function that has a reference to the state variable which can now change. 08:16:08 hm .. i thought you intended to pass the current `state' to `map/acc-proc' ? 08:16:29 Any suggestions? 08:16:30 ski: Yeah 08:16:50 (so only `stateful-proc' can access the changing `state' location) 08:16:55 danking: But looking at the way you used that, it seems that you don't have such problems. 08:16:57 MindVirus: You can download a .deb file from racket-lang.org, it's a really easy install. 08:17:10 danking : that was meant for eli 08:17:18 danking: The only reason I want it from the repos is because I want update.s 08:17:21 *updates. 08:17:43 ski: I was answering for him :P I think he neglected that 08:18:12 ski: (Yeah, but he could -- by some weird chance -- use the result of `stateful-proc' elsewhere...) 08:18:22 There's a bunch, apparently; stalin is supposedly a very aggressive Scheme compiler; scm is an interpreter and so is sigscheme and guile. 08:18:44 MindVirus: If you're going with racket, then the file that you can get from racket-lang.org is an .sh installer, not a .deb file. 08:18:57 I don't know anything yet. 08:19:05 I want to start out with Scheme and I'm reading a text. 08:19:20 I don't even know if I should use an interpreter or compiler. 08:19:24 eli : oh, you're right. i didn't think of that 08:19:27 oop. my bad. 08:19:30 *eli* avoids further recommendations. 08:19:46 I take it you recommend racket. 08:19:49 MindVirus: Care to share which "text"? 08:19:59 http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme-Z-H-3.html 08:20:28 MindVirus: I just pointed out what you'd get... 08:20:38 OK. :) 08:20:49 MindVirus: BTW that text is *ancient*. 08:21:07 Well, is there any holy grail? 08:21:12 MindVirus: Are you an NU student? 08:21:17 Negatory. 08:21:18 or future NU student? 08:21:23 -!- wingo [~wingo@219.Red-88-0-167.dynamicIP.rima-tde.net] has quit [Ping timeout: 245 seconds] 08:21:30 I am an inquisitive thinker. 08:21:40 I am learning Scheme for myself. 08:22:11 hmm 08:22:13 Neat 08:22:40 MindVirus: Which holy grail? -- Text or implementation? 08:22:46 eli: Both. 08:22:58 How much programming do you know? 08:23:07 eli: I think in machine code. 08:23:24 That's not an answer to my question. 08:23:33 eli: A lot. 08:23:39 3. 08:23:44 I know 3 programming. 08:24:05 :) 08:24:22 MindVirus: mov food, mouth ; eat ? 08:24:31 danking: Haha. 08:24:35 MindVirus: Any functional programming, or is that 3 all assembly? 08:25:02 eli: I'm well versed with functional and object-oriented programming and everything in between. 08:25:11 I understand recursion natively. 08:25:30 Then you might like to go with SICP. 08:25:41 MindVirus: you are the very model of a modern major coderer? 08:25:53 Adamant: Pretty much a genius, yes. 08:26:04 good luck with that 08:26:13 Adamant: :P 08:26:44 eli: So, that's the text part. Racket would be the best interpreter, then? Or compiler? (Don't know.) 08:27:19 MindVirus: With the choice of SICP you get the benefit of video lectures from MITOCW. 08:27:39 I'll have to find out what that is. 08:27:40 I think I will be happy with SICP. 08:27:54 Nice! 08:28:05 MindVirus: Racket has good support for SICP (http://www.neilvandyke.org/sicp-plt/). 08:28:21 danking: Hah, that abbreviation didn't make sense until I Googled it. 08:29:07 MindVirus: (And if you're asking about using an interpreter ir a compiler, then you know less assembly than the previous impression.) 08:29:15 s/ir/or/ 08:29:44 eli: I know the difference, I just don't know which is most commonly used. C has a compiler; Python has an interpreter. I'm not used to having a choice. 08:29:51 rudybot: now, where could minion have gone? 08:29:51 ski: Cheeky bugger. 08:29:56 they both have both 08:30:14 Adamant: OK, but there is an obvious monopoly with both. 08:30:21 C has had interpreter implementations, Python has PyPy 08:30:26 sure 08:30:32 MindVirus : btw, you should know the difference between an interactor and an interpreter 08:30:38 ski: That I don't. 08:31:00 I would assume an interactor is an interpreter that modifies code in-place? 08:31:10 Interpreters can do that too with introspection. 08:31:23 Nothing on Google. 08:31:38 an interactor, or interactive top-level, or REPL (Read-Eval-Print-Loop) is something in which you can interactively enter snippets of code, to test things, and often also to define things 08:31:47 Ahh, OK. 08:32:00 Like a shell, or the Python prompt. 08:32:00 this is as opposed to writing a whole source file, and processing it in batch-mode 08:32:04 Of course. 08:32:27 the compiler vs. interpreter distinction is orthogonal to this earlier distinction 08:32:43 An interactor is an interpreter. 08:32:44 (i mention this, since often people confuse interpreters with interactors) 08:32:55 But not necessarily vice-versa. 08:33:20 (there can be an interactor, which compiles each expression you enter, as well as there can be an interpreter, which only works in batch-mode) 08:33:48 so, no. an interactor doesn't need to be an interpreter 08:34:32 Oh? 08:34:53 you can compile everything going through the REPL 08:35:58 That's intense. 08:36:08 it is indeed a cool story, bro 08:36:17 Adamant: I see what you did there. 08:36:41 Axiom One: Dan King has working eyes 08:37:05 :P 08:37:29 masm [~masm@bl15-69-44.dsl.telepac.pt] has joined #scheme 08:38:36 They come in handy from time to time. 08:38:50 I can believe it 08:40:19 that made think about echolocation in humans, and then about blind people using screen readers spitting words out super-fast 08:40:57 both are cool if you can find video of them 08:45:00 HG` [~HG@xdsl-92-252-124-36.dip.osnanet.de] has joined #scheme 08:49:32 tupi [~david@186.205.37.15] has joined #scheme 08:54:36 Is there value in reading through in part or whole SICP for someone who's already done HtDP and a PL course which involved writing interpeters and (I think?) compilers. 08:54:41 I'm looking at you eli. 08:59:06 -!- homie [~user@xdsl-87-79-181-39.netcologne.de] has quit [Read error: Operation timed out] 08:59:14 danking: Very little. You can skim some parts and see for yourself. 08:59:55 wbooze` [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 09:00:00 homie [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 09:00:38 eli: alright 09:00:49 danking: I think it's worth doing 09:01:11 but only if you have a very "liberal arts classics" view of CS 09:01:48 -!- wbooze [~user@xdsl-87-79-181-39.netcologne.de] has quit [Ping timeout: 245 seconds] 09:02:12 I think it would refine your thinking a bit and be fairly enjoyable, but it's not going to turbocharge your skills much 09:02:20 if you've already done the rest 09:02:32 Adamant: danking went through pretty much everything interesting he'll find in sicp. 09:02:33 -!- homie [~user@xdsl-78-34-244-48.netcologne.de] has quit [Client Quit] 09:03:02 eli: eh, JMO 09:03:06 -!- wbooze` [~user@xdsl-78-34-244-48.netcologne.de] has quit [Client Quit] 09:03:31 I don't think you're a huge fan of the SICP writing style, while I like it quite a bit 09:03:37 danking: Perhaps the continuation stuff, leading to the register machine would be a little better than the rest (but EoPL has that too, IIRC). 09:03:47 Adamant: JMO? 09:04:05 but I also think it's not great for the purpose of teaching first-year undergrads CS 09:04:22 for those of us that didn't get into MIT or CalTech 09:04:27 just my opinion? 09:06:25 Adamant: (a) For writing style, I have no opinion of it whatsoever, in sicp or elsewhere; (b) MIT (and caltech) are easily/commonly overrated (from personal experience); (c) I know what danking went through very, um, intimately. 09:06:48 -!- rmrfchik [~paul@195.191.11.247] has quit [Ping timeout: 245 seconds] 09:07:21 a. ah, cool, b. I did not start out as a STEM student, so interpret it in that light, c. I figured he was your student :) 09:07:37 (And my usual criticism for SICP no longer applies at his stage, BTW, so it was unrelated to recommending it or not.) 09:07:42 rmrfchik [~paul@195.191.11.247] has joined #scheme 09:07:45 ah 09:08:00 homie [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 09:08:44 wbooze [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 09:08:48 Adamant: (I also don't know what a stem student is...) 09:09:07 re: b, the most impressive technical person I know personally never finished college, so I realize MIT and Caltech are not everything 09:09:27 Science Technology Engineering Mathematics 09:10:14 Well, my opinion of MIT wrt SICP is that the students that went through 6.001 were suffering through the bad parts just like other students. 09:10:22 ah 09:10:37 And they had the usual dose of people who detested scheme just because they were forced through that course. 09:10:46 I assumed that the CS and EE major students already had enough programming exposure that it wasn't bad 09:10:52 (As well as the usual tiny dose of people who would swear by it.) 09:11:10 it would be miserable for the science and other majors, of course 09:11:18 They do, but 6.001 is (was, RIP) their intro course. 09:13:39 I tried SICP after I had like two years of programming under my belt 09:13:47 so it wasn't horrific 09:14:14 as a intro course for people with no prior experience, it's far too much far too fast 09:14:58 it definitely would have broken me if I tried it when I started 09:15:48 I went into college with like 4/5 years of programming in C, Java, and VB. At first I detested Scheme, but when they introduced lambda and HoFs I started to *love* the course. That said, I think HtDP/NU's Fundamentals course is a great start even if you have programmed before. 09:16:56 It could have been a bit faster though. 09:17:08 I realize I'm calling someone's baby ugly here, so I ask forgiveness in advance 09:17:24 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 09:17:55 hah 09:18:00 I don't think HDTP is as well written as SICP. But I also think that's in part because SICP is way terse. 09:18:38 HDTP is better for educating undergraduates unless you operate under a "weed out the weak" philosophy of education 09:20:35 gravicappa [~gravicapp@91.78.231.171] has joined #scheme 09:21:50 I did find HtDP verbose. I think it was more the course than the book which I loved. My favorite page: http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-27.html#node_sec_21.2 09:25:14 danking: Yes, it's more verbose, and given how you did in my course, I can definitely tell you that you'd be in the crowd that would love sicp as a first-course. But HtDP does a serious attempt at educating everyone. 09:26:07 Adamant: Re "well-written" -- HtDP has a ton of work behind it, work that revolved around getting people to learn, in that aspect it is much more invested than SICP. 09:26:42 Adamant: But you've hit one of the main nails on the head -- SICP was written at a time where the main goal was weeding, probably more important than educating. 09:27:02 eli: yes, I'm talking about writing style though, not education theory and background, which I have no doubt HtDP spent much, much more time on 09:27:41 and making an accessible text sometimes does require being verbose. 09:28:19 don't interpret this as me saying I could write an intro as good as either :P 09:29:52 Adamant: BTW, did you read the criticism of sicp? 09:30:00 I don't know if you're still involved in that area, but have you seen Zed Shaw's "How To Learn Python The Hard Way"? 09:30:04 eli: which one? 09:30:41 No, I didn't see that. 09:30:52 And what I was talking about is "The Structure and Interpretation of the Computer Science Curriculum". 09:32:21 eli: the idea of exercise for beginners along the lines of guitar/gun/MA automatic operation of basics is pretty interesting and I haven't seen it done before for CS 09:32:35 -!- MindVirus [~mindvirus@unaffiliated/mindvirus] has quit [Quit: Leaving.] 09:32:53 Zed has typing exercises so writing and typing the basic operators/structure of a Python program becomes automatic 09:34:07 reading the paper now 09:36:51 eli: I can be a tad masochistic. I think I would've really enjoyed the intense pressure to succed in 6.001. A sense that I could be weeded out is invigorating. 09:37:20 As such, looking forward to Software Dev with Matthias at some point. 09:38:10 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 240 seconds] 09:38:30 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 09:39:46 Adamant: The idea by itself sounds interesting, but the implementation ... ugh ... 09:40:18 We were talking about side effects, and that thing just pumps them out in kilos. 09:40:41 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Client Quit] 09:40:45 yeah, I think Zed is running on intuition and not educational theory 09:41:01 but it's an interesting idea 09:41:22 It's almost surreal that only at exercize 21 (1/3 way through the whole thing) it gets to "Functions Can Return Something"... 09:41:52 Zed is not huge on functional programming 09:42:03 even though he knows it 09:42:14 ("Obviously" would be an obvious understatement...) 09:42:27 it stirred vague memories of BASIC on a PCjr 09:42:55 admittedly a lot of it is training folks for practically doing stuff Right Now with existing "industrial" stuff 09:43:15 and not building a theoretically sound professional 09:43:17 somnium: Oh right -- typing out BASIC programs to get games running (from the days that it was spelled with all capitals). 09:43:27 PEEK 09:43:36 09:43:44 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 09:43:55 danking: The pressure isn't really the thing that would have made it fun for you. In any case, just read it, you might even enjoy the tricky parts. 09:44:04 POKE 54296,0 09:45:47 *ski* . o O ( "POKE 53280,0:POKE 53281,0" ) 09:46:33 pavelludiq [~quassel@83.222.167.92] has joined #scheme 09:46:42 eli: I liked the paper 09:46:49 and it more or less made sense 09:48:58 I also thought the bit about appealing to and having more educational success with female coders was interesting. I think one of the main reasons the graduation rates for female coders are so low is that CS programs are oriented to cater to people who have already coded before, which favors guys and hurts girls. 09:49:07 eli: hmm. 09:49:27 using generic, fun example problems probably helps in the regard 09:49:52 As an undergraduate male, I can confirm the dearth of women in CS. 09:49:52 instead of assuming everyone's already a EE 09:50:35 Adamant: Yeah, the female thing is a whole topic in itself... 09:50:48 the seperation of structural and generative recursion also makes sense 09:51:14 Extreme gender imbalance isn't exclusive to computing. I would be wary of speculating that it's due to this or that. 09:51:34 Jafet: it's not, but math is relatively gender-balanced for a science 09:51:34 danking: BTW, as someone who was an undergraduate in CS close to two decades ago, and two continents away, I can tell you that it's nothing new... 09:51:36 -!- offby1 [~user@pdpc/supporter/monthlybyte/offby1] has quit [Ping timeout: 245 seconds] 09:52:18 and it's closely enough related to CS and at least as hard 09:52:40 (There are some engineering-s where the ratios are worse than in CS, IIRC, but that's nothing to take comfort in.) 09:52:59 there are definitely issues CS can't do much about 09:53:13 (But in this whole issue I'm even more biased than in SICP-vs-HtDP or Scheme-vs-Python.) 09:53:19 I would also be wary of categorizing computer science with respect to this or that other field. CS is half math, half science, and the remaining half engineering. 09:53:24 any profession that requires massive continual learning is a bitch to mix with motherhood, for instance. 09:53:30 araujo [~araujo@190.38.50.25] has joined #scheme 09:53:30 -!- araujo [~araujo@190.38.50.25] has quit [Changing host] 09:53:30 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 09:53:57 math's pace of progress is much more favorable in that regard 09:54:50 Jafet: true 09:57:45 eli: two decades and no progress!? This is a disappointing revelation. 09:57:53 if anything, regression 09:58:21 the women that got into computing during the early days have mostly retired at this point 09:59:31 in contrast, math has gone to 35-40% female undergrad classes from worse-than-CS-now numbers about 30 years ago 10:06:37 *ASau* would rather not flush subnormal FPNs to zero. 10:06:54 By the way, why is it considered a problem? 10:07:18 Jafet: depends on your philosophy 10:07:26 for some people it isn't 10:07:31 Because all-male companies perform worse than mixed ones. 10:07:42 Well-tested fact. 10:08:11 eh 10:08:16 not sure I believe that either 10:08:29 diversity is a mixed blessing 10:08:37 Even if that is fact, not everyone in a company is a programmer. 10:09:40 Jafet: Speaking as a strictly chauvinistic male undergrad, it'd be way easier to meet girls who were also hacking at 1am in the CS building than have to make time in my day to visit the typical social mixing grounds. 10:10:34 I can't boast of reading much female-written code myself, 10:11:00 danking: "hacking" 10:11:04 but I assure you that males write so horrible one, that I'd rather never have seen it. 10:11:28 Jafet: hmm? 10:16:33 -!- jao [~user@229.Red-83-32-170.dynamicIP.rima-tde.net] has quit [Ping timeout: 240 seconds] 10:20:01 -!- pyro- [~pyro@unaffiliated/purplepanda] has left #scheme 10:27:44 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 265 seconds] 10:27:51 zac314159 [~user@c-68-84-149-234.hsd1.nm.comcast.net] has joined #scheme 10:30:26 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 10:33:50 Jafet: the problems with companies is this: 10:34:47 in commercial enterprises there exist communication barriers, 10:35:08 that effective break all collaborators into companies. 10:36:10 If you have ever worked in all-male company (e.g. department), 10:36:10 you know how boring it becomes after several months. 10:36:32 But the problem arises much earlier. 10:36:54 In education, you may have all-male groups of attendees. 10:37:10 They perform worse than mixed ones too :) 10:38:54 I'd think single sex classes would have less distractions. 10:39:02 Well. 10:39:14 This statement contradicts practice. 10:39:34 yeah and it doesn't really fit with homosexuality anyway. 10:39:36 meh 10:39:55 This has nothing to do with homosexuality. 10:40:34 The crux of my argument was that lack of sexual attraction -> less distractions 10:40:58 This is proved wrong. 10:41:12 I have known several women confirming that they like much more to work in predominantly male companies. 10:41:13 ASau: You like to argue too much 10:41:35 "No I don't" 10:41:37 :) 10:41:41 heh 10:41:49 meh 10:42:01 sjamaan: so what? 10:42:36 ASau: It gets annoying sometimes 10:42:39 Are there any better ways to learn your respondents? 10:42:45 respondents? 10:42:56 Or any other people. 10:43:07 s,learn,teach, ? 10:43:15 Learn. 10:43:23 ok 10:45:13 My desire for more women in cs is hardly noble anyway, I don't think I'm in a position to promote it with a clear conscience. 10:46:18 why would you want more women in CS? that's like wanting more women in coal mines 10:46:32 LOL 10:46:37 if CS is a coal mine we are in deep shit 10:47:03 It is claimed that Kolmogorov said once "Girl attending 10:47:04 math faculty should have enough reason to understand who of her 10:47:04 student mates becomes professor first." 10:47:06 s/coal mines/java shops 10:47:28 since software engineer is consistently rated one of the top professions these days 10:47:32 ment: the problem is that IT isn't mining. 10:47:38 post-finance-implosion 10:48:00 ASau: it isn't math either 10:48:55 When I attended IUM (Acad. Arnold and Co), I've met enough women. 10:49:04 I wonder, are there any women in #scheme? 10:49:15 yes. 10:49:17 And I know several successful women in math. 10:49:53 discussions like these generally do not bring them out and about for obvious reasons 10:49:55 Note, that programming was created by women. 10:50:08 Adamant: Understandable :P 10:50:20 I think someone should tell Al-Khorizme that 10:50:27 First program and first high level programming language, e.g. 10:50:35 ASau: ah, but who created Object-Oriented Cobol? 10:50:44 BTW, first university in the world was created by woman too :D 10:50:49 (Surprise!) 10:50:54 um, what? 10:51:08 not European or Arabic ones, that's for damn sure 10:51:16 sapphic lesbian university or something like that 10:51:23 no 10:51:26 just no 10:51:32 -!- Intensity [OzZPrc8k7M@unaffiliated/intensity] has quit [Remote host closed the connection] 10:51:48 Adamant: Arabic one, university isn't european invention. 10:52:09 ASau: depends on your definition of it 10:52:14 but which Arabic one 10:52:52 (the Arabic university grew out of Greek/Roman institutions, so the lines are kinda blurry in that regard) 10:52:55 What does it matter who did it first? Somebody in mesopotamia started writing first. Are they better writers than us? 10:55:21 they can probably draw little pointy marks better than we can. I can't make cunieform marks for shit. 10:56:00 Wait a bit, I'll find reference. 10:56:10 I can't write anymore 10:56:26 http://en.wikipedia.org/wiki/University_of_Al-Karaouine 10:58:59 that is interesting 10:59:17 although "what is a university" is a even bigger mess than I already thought it was 10:59:38 Sure. 10:59:57 E.g. some top Swiss and German universities teach theology. 11:00:13 I didn't even think that Christian monastic communities were particularly involved in the development of the European university 11:00:13 but apparently they were 11:02:43 The Church seems to have been quite the patron of arts and science 11:02:56 ASau: well that doesn't surprise me, given that basically all major US private universites were founded by religious groups 11:03:03 European Cathedrals alone are wonderful works of Architecture. 11:03:04 and theology is a perfectly reasonable subject to teach in a divinity school 11:04:13 danking: the interplay of religion and higher education is pretty interesting and the history is enough to piss off both fundies and dogmatic atheists 11:04:32 Actually you find lots of surprising things when you learn about islamic world. 11:04:40 yeah 11:04:58 When I read about islamic law, I've met weird fact that 11:05:20 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 255 seconds] 11:05:40 divorce rate in 18 century Turkey was higher than it is today in the most "progressive" countries. 11:06:03 lol 11:06:11 well, I thought divorce wasn't especially impossible for men under Islamic law 11:06:31 and was available to women under the case of abuse or neglect 11:06:32 It is still. 11:07:19 by contrast, divorce still isn't religiously valid to Catholics 11:07:29 even if secular authorities allow it 11:07:55 some Protestants sects also dislike it more than average 11:08:04 no idea how the Orthodox feel 11:08:25 Oh, we have all sorts of weird stuff too. 11:08:42 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 11:09:06 Though, thanks Joseph, only insane ones take church into consideration. 11:09:52 well, most Catholics ignore the divorce thing, do it, and then take their lumps religiously 11:10:24 or use the annulment loophole 11:15:25 Orthodox views on marriage were so weird that it lead to weird effect. 11:15:50 In 19th century for a girl to become independent it was much easier 11:16:14 to find someone who marries her and lets her her share. 11:16:43 Then she could do whatever she wished :) 11:16:50 Free love and all that. 11:18:02 -!- Checkie [2938@unaffiliated/checkie] has quit [Ping timeout: 264 seconds] 11:18:10 All that a century before sexual revolution :D 11:20:50 -!- gravicappa [~gravicapp@91.78.231.171] has quit [Remote host closed the connection] 11:21:12 Intensity [aXdzaH9hEx@unaffiliated/intensity] has joined #scheme 11:22:06 yup 11:22:17 -!- aoh [~aki@80.75.102.51] has quit [Ping timeout: 276 seconds] 11:22:22 aoh [~aki@80.75.102.51] has joined #scheme 11:25:59 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 11:27:25 jao [~user@80.24.4.74] has joined #scheme 11:35:08 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 11:35:26 -!- tupi [~david@186.205.37.15] has quit [Quit: Leaving] 11:47:38 -!- pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has quit [Ping timeout: 245 seconds] 11:54:46 gravicappa [~gravicapp@80.90.116.82] has joined #scheme 11:57:59 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Quit: sts193] 12:04:15 -!- homie [~user@xdsl-78-34-244-48.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:04:22 -!- wbooze [~user@xdsl-78-34-244-48.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:05:28 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 255 seconds] 12:13:57 pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has joined #scheme 12:17:28 acarrico [~acarrico@pppoe-68-142-40-104.gmavt.net] has joined #scheme 12:27:06 martinhex [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 12:31:56 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 12:33:49 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Client Quit] 12:44:31 homie [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 12:49:09 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 12:56:18 dzhus [~sphinx@89-178-190-175.broadband.corbina.ru] has joined #scheme 13:01:10 wbooze [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 13:06:25 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Quit: Leaving] 13:08:09 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 13:14:40 dfkjjkfd [~paulh@145.120.22.35] has joined #scheme 13:17:51 -!- masm [~masm@bl15-69-44.dsl.telepac.pt] has quit [Quit: Leaving.] 13:19:30 pnkfelix [~Adium@c-24-147-116-20.hsd1.ct.comcast.net] has joined #scheme 13:19:56 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has quit [Ping timeout: 245 seconds] 13:26:44 -!- homie [~user@xdsl-78-34-244-48.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 13:26:50 -!- wbooze [~user@xdsl-78-34-244-48.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 13:27:39 -!- pnkfelix [~Adium@c-24-147-116-20.hsd1.ct.comcast.net] has quit [Quit: Leaving.] 13:40:13 MrFahrenheit [~RageOfTho@users-55-222.vinet.ba] has joined #scheme 13:40:50 Mandar [~armand@pha75-21-78-228-186-233.fbx.proxad.net] has joined #scheme 13:42:16 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 272 seconds] 13:42:34 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 13:47:42 tupi [~david@139.82.89.24] has joined #scheme 13:48:39 homie [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 13:49:36 wbooze [~user@xdsl-78-34-244-48.netcologne.de] has joined #scheme 13:50:45 xwl [~user@117.79.235.210] has joined #scheme 13:52:16 -!- martinhex [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Remote host closed the connection] 13:57:47 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Quit: sts193] 14:00:55 -!- pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has quit [Ping timeout: 245 seconds] 14:02:42 pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has joined #scheme 14:12:11 -!- vu3rdd [~vu3rdd@nat/cisco/x-hucswkxvycugpbjn] has quit [Remote host closed the connection] 14:17:38 -!- xwl [~user@117.79.235.210] has quit [Ping timeout: 245 seconds] 14:21:37 -!- alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Read error: Connection reset by peer] 14:27:30 alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 14:30:03 -!- dfkjjkfd [~paulh@145.120.22.35] has quit [Quit: Lost terminal] 14:40:25 saccade_ [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 14:43:25 -!- saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Ping timeout: 265 seconds] 15:00:34 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 15:02:08 EbiDK [~ebi@3e6b7ac3.rev.stofanet.dk] has joined #scheme 15:13:41 -!- felipe [~felipe@my.nada.kth.se] has quit [Ping timeout: 276 seconds] 15:21:24 -!- pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has quit [*.net *.split] 15:21:27 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [*.net *.split] 15:21:27 -!- ASau [~user@89-178-188-64.broadband.corbina.ru] has quit [*.net *.split] 15:21:27 -!- rudybot [~luser@2001:470:1:41:a800:ff:fe3e:cde7] has quit [*.net *.split] 15:21:28 -!- borism [~boris@ec2-79-125-58-77.eu-west-1.compute.amazonaws.com] has quit [*.net *.split] 15:21:28 -!- ski [~slj@c-2911e055.1149-1-64736c10.cust.bredbandsbolaget.se] has quit [*.net *.split] 15:21:29 -!- antoszka [~antoszka@unaffiliated/antoszka] has quit [*.net *.split] 15:21:30 -!- clog [nef@bespin.org] has quit [*.net *.split] 15:24:31 pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has joined #scheme 15:24:31 rpg [~rpg@216.243.156.16.real-time.com] has joined #scheme 15:24:31 ASau [~user@89-178-188-64.broadband.corbina.ru] has joined #scheme 15:24:31 rudybot [~luser@2001:470:1:41:a800:ff:fe3e:cde7] has joined #scheme 15:24:31 borism [~boris@ec2-79-125-58-77.eu-west-1.compute.amazonaws.com] has joined #scheme 15:24:31 ski [~slj@c-2911e055.1149-1-64736c10.cust.bredbandsbolaget.se] has joined #scheme 15:24:31 antoszka [~antoszka@unaffiliated/antoszka] has joined #scheme 15:24:31 clog [nef@bespin.org] has joined #scheme 15:24:40 la la la 15:26:20 felipe [~felipe@my.nada.kth.se] has joined #scheme 15:27:03 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 15:27:47 -!- saccade_ [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Quit: This computer has gone to sleep] 15:28:24 does anyone know where I can find documentation on MIT Scheme's `define-package' macro? 15:28:59 or about its package system generally 15:30:43 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 15:35:03 -!- schmir [~schmir@mail.brainbot.com] has quit [Remote host closed the connection] 15:38:03 -!- EbiDK [~ebi@3e6b7ac3.rev.stofanet.dk] has quit [Ping timeout: 245 seconds] 15:45:54 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme 15:47:14 -!- acarrico [~acarrico@pppoe-68-142-40-104.gmavt.net] has quit [Read error: Operation timed out] 15:54:18 -!- steven_t [~steven@unaffiliated/steven] has left #scheme 15:56:11 pantsd_home [~pantsd_ho@174-21-229-253.tukw.qwest.net] has joined #scheme 15:58:26 DerGuteMoritz: UTSL ;) 15:59:03 aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has joined #scheme 15:59:13 sjamaan: I see! 15:59:15 thanks :-) 15:59:43 heh 16:02:06 -!- Mandar [~armand@pha75-21-78-228-186-233.fbx.proxad.net] has quit [Quit: Quitte] 16:04:42 acarrico [~acarrico@pppoe-68-142-40-104.gmavt.net] has joined #scheme 16:05:04 -!- alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: Lost terminal] 16:08:47 -!- Mohamdu [~Mohamdu@CPE00222d6b3798-CM00222d6b3795.cpe.net.cable.rogers.com] has quit [Quit: Leaving] 16:11:39 -!- tupi [~david@139.82.89.24] has quit [Remote host closed the connection] 16:15:36 tupi [~david@139.82.89.24] has joined #scheme 16:25:02 -!- ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has quit [Ping timeout: 272 seconds] 16:28:08 ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has joined #scheme 16:35:40 -!- gravicappa [~gravicapp@80.90.116.82] has quit [Remote host closed the connection] 16:45:58 bweaver [~user@75-148-111-133-Chattanooga.hfc.comcastbusiness.net] has joined #scheme 16:53:28 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 16:55:43 offby1 [~user@pdpc/supporter/monthlybyte/offby1] has joined #scheme 16:56:28 -!- jao [~user@80.24.4.74] has quit [Ping timeout: 240 seconds] 16:56:58 samth_ [~samth@nomad.ccs.neu.edu] has joined #scheme 16:57:07 -!- samth_ [~samth@nomad.ccs.neu.edu] has quit [Remote host closed the connection] 16:58:20 alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 17:00:28 stamourv [~user@kauai.ccs.neu.edu] has joined #scheme 17:00:30 -!- ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has quit [Ping timeout: 272 seconds] 17:03:42 ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has joined #scheme 17:07:33 -!- snorble [~snorble@s83-179-14-105.cust.tele2.se] has quit [Ping timeout: 240 seconds] 17:08:03 -!- Riastradh [~riastradh@fsf/member/riastradh] has quit [Ping timeout: 245 seconds] 17:08:35 -!- ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has quit [Remote host closed the connection] 17:08:42 kar8nga [~kar8nga@i-135.vc-graz.ac.at] has joined #scheme 17:09:53 saccade [~saccade@pool-108-7-171-95.bstnma.east.verizon.net] has joined #scheme 17:11:00 ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has joined #scheme 17:14:15 -!- alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Read error: Connection reset by peer] 17:14:58 -!- kar8nga [~kar8nga@i-135.vc-graz.ac.at] has quit [Read error: Connection reset by peer] 17:18:52 -!- ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has quit [Ping timeout: 272 seconds] 17:20:13 DrDuck [~duck@146.229.116.234] has joined #scheme 17:21:24 ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has joined #scheme 17:22:06 ros3 [~roselynro@209.129.168.31] has joined #scheme 17:22:18 -!- ros3 [~roselynro@209.129.168.31] has quit [Client Quit] 17:23:33 -!- ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has quit [Remote host closed the connection] 17:23:47 gravicappa [~gravicapp@ppp85-140-116-137.pppoe.mtu-net.ru] has joined #scheme 17:26:50 ToxicFrog [~ToxicFrog@2607:f2c0:f00e:500:222:15ff:fe91:b24c] has joined #scheme 17:26:58 -!- necroforest [~jarred@pool-108-18-226-169.washdc.fios.verizon.net] has quit [Read error: Connection reset by peer] 17:40:03 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 250 seconds] 17:41:33 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 17:45:31 femtoo [~femto@95-89-197-196-dynip.superkabel.de] has joined #scheme 17:48:59 jao [~user@172.Red-83-32-171.dynamicIP.rima-tde.net] has joined #scheme 17:57:58 alexsuraci [~alex@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 18:06:03 Riastradh [~riastradh@fsf/member/riastradh] has joined #scheme 18:11:16 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 18:12:36 Dawgmatix [~dman@203.187.211.61] has joined #scheme 18:16:57 -!- tupi [~david@139.82.89.24] has quit [Remote host closed the connection] 18:17:30 snorble [~snorble@s83-179-14-105.cust.tele2.se] has joined #scheme 18:21:13 Modius [~Modius@cpe-70-123-158-125.austin.res.rr.com] has joined #scheme 18:26:25 dfkjjkfd [~paulh@145.120.22.35] has joined #scheme 18:26:51 -!- snorble [~snorble@s83-179-14-105.cust.tele2.se] has quit [Ping timeout: 250 seconds] 18:42:30 -!- saccade [~saccade@pool-108-7-171-95.bstnma.east.verizon.net] has quit [Quit: This computer has gone to sleep] 18:46:10 -!- Dawgmatix [~dman@203.187.211.61] has quit [Quit: Ex-Chat] 18:50:27 Unthahorsten [~Unthahors@del63-3-88-177-167-25.fbx.proxad.net] has joined #scheme 18:53:10 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 18:53:30 -!- Unthahorsten [~Unthahors@del63-3-88-177-167-25.fbx.proxad.net] has quit [Client Quit] 18:57:17 -!- nilg [~user@85.239.138.109] has quit [Ping timeout: 276 seconds] 19:01:48 pnkfelix [~Adium@c-24-147-116-20.hsd1.ct.comcast.net] has joined #scheme 19:03:07 -!- femtoo [~femto@95-89-197-196-dynip.superkabel.de] has quit [Quit: Leaving] 19:06:07 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 19:06:18 -!- pnkfelix [~Adium@c-24-147-116-20.hsd1.ct.comcast.net] has quit [Client Quit] 19:25:37 -!- Modius [~Modius@cpe-70-123-158-125.austin.res.rr.com] has quit [Quit: I'm big in Japan] 19:33:12 wingo [~wingo@219.Red-88-0-167.dynamicIP.rima-tde.net] has joined #scheme 19:34:34 evening 19:34:45 evening 19:34:50 Hello 19:35:30 What strange planet are you on? It's too early in the morning for that kind of talk! 19:35:44 He's right, it's evening. 19:35:46 saccade [~saccade@c-66-31-201-117.hsd1.ma.comcast.net] has joined #scheme 19:35:57 europlanet 19:36:03 we all wear jumpsuits here 19:36:12 it is a party 19:36:30 *sjamaan* throws confetti 19:36:37 Oh, that socialist planet. I see! 19:37:03 *franki^* misses Europe T_T 19:38:28 -!- preflex [~preflex@unaffiliated/mauke/bot/preflex] has quit [Ping timeout: 245 seconds] 19:39:40 -!- saccade [~saccade@c-66-31-201-117.hsd1.ma.comcast.net] has quit [Client Quit] 19:40:01 -!- MrFahrenheit [~RageOfTho@users-55-222.vinet.ba] has quit [Read error: No route to host] 19:40:22 MrFahrenheit [~RageOfTho@users-55-222.vinet.ba] has joined #scheme 19:43:15 preflex [~preflex@unaffiliated/mauke/bot/preflex] has joined #scheme 19:43:52 masm [~masm@bl15-69-44.dsl.telepac.pt] has joined #scheme 19:47:29 "Socialism is the same as Communism, only better English." :D 19:48:21 What's new in the socialist European world of guile, wingo? 19:48:54 Riastradh: i done wroted a web server! 19:49:10 then when i was done it looked a lot like what sjamaan wrote for chicken 19:49:28 though less tested &c 19:49:44 Oh yeah, I meant to ask you why you were writing your own intarweb instead of porting mine 19:49:46 i snuck it into work today 19:50:06 Obviously he wanted an intarwob, not an intarweb, sjamaan. 19:50:11 because i was ignorant, i think 19:50:16 :( 19:50:28 Still, cool you got scheme at work! 19:50:39 we'll see what the bosses say ;) 19:50:46 Aha! So he's an ignorant European socialist intarwob, then. I bet he even has health care. 19:50:58 "you're wasting your time, blah blah" ;) 19:51:20 and having fun doing it! 19:51:23 That's what counts 19:52:21 heh, i think so too :) 19:54:59 -!- dzhus [~sphinx@89-178-190-175.broadband.corbina.ru] has quit [Ping timeout: 255 seconds] 19:55:33 Does guile exploit the possibility of a compact representation of continuations in Scheme to enable low-overhead, direct-style concurrency and I/O multiplexing, or does it use system threads, or does it require writing all non-blocking I/O code backwards? 19:55:57 -!- masm [~masm@bl15-69-44.dsl.telepac.pt] has quit [Quit: Leaving.] 19:56:18 masm [~masm@bl15-69-44.dsl.telepac.pt] has joined #scheme 19:59:25 -!- DrDuck [~duck@146.229.116.234] has quit [Ping timeout: 260 seconds] 20:02:17 Riastradh: not sure precisely what you're getting at; so, guile's continuations are stack copies 20:02:26 delimited continuations capture a portion of the scheme stack 20:02:35 unfortunately, full continuations capture the c stack also 20:02:51 i think i will make full continuations not capture the c stack in guile 2.2 20:03:03 so full continuations are not appropriate for implementing threading 20:03:05 -!- AtnNn [~welcome@modemcable233.174-176-173.mc.videotron.ca] has quit [Read error: Connection reset by peer] 20:03:51 guile's native threads are pthreads. you can build something on top of that with delimited continuations, sorta -- though you really need delimited call/cc (not prompt/abort) to implement threads in user scheme code, i think 20:04:09 and guile's call/cc is not currently delimitable. 20:04:31 Well, having compact delimited continuations is a good start at least. 20:04:44 -!- dfkjjkfd [~paulh@145.120.22.35] has quit [Quit: Lost terminal] 20:05:36 The object is to enable writing high-performance network servers in direct style. You can't do that in C: the overhead of a system thread is too high. 20:07:38 AtnNn [~welcome@modemcable060.239-177-173.mc.videotron.ca] has joined #scheme 20:07:38 yeah, i would like to be able to do that 20:07:45 can you do that in mit scheme? 20:07:59 i hear gambit has that situation covered well 20:08:14 though i have never actually used gambit... my ignorance again :P 20:08:18 In principle, yes, although there are various unrelated practical barriers. 20:08:29 ack. 20:08:45 (MIT Scheme's low-level I/O and event delivery system needs overhauling.) 20:10:15 it is such a relief to have proper unicode support. 20:10:36 (There are some other things, too -- MIT Scheme needs to stop shallow binding, and it needs finer-grained timer resolution. But that's all orthogonal to compact continuations.) 20:11:00 Hmm...what's `proper' Unicode support? 20:11:34 i mean strings as characters instead of strings as bytes 20:11:37 along with locales 20:12:04 and ways to convert bytevectors in utf8 to strings and back, etc 20:12:18 basic stuff that guile 1.8 doesn't do :P 20:12:24 Is racket (http://www.racket-lang.org/) expected to compile/work on an ARM machine? 20:12:46 i think it should in theory 20:13:54 is there an r1rs ? 20:14:27 wingo, by the way, apropos of concurrency, does guile do CML? If not, here's an implementation for you that should be pretty easy to port to Guile: . It's not very valuable when threads are expensive, but perhaps that situation will change later. 20:14:31 devinus: There was, but it wasn't called R1RS of course. 20:14:42 cky: where can i find it? 20:15:39 jonrafkind: I'll try (as long as you were referring to my question :)). 20:15:49 antoszka, yea 20:16:00 antoszka, well last time i tried i got some error but that was like 1 1/2 years ago 20:16:10 uhm 20:16:12 schmir [~schmir@p54A9047D.dip0.t-ipconnect.de] has joined #scheme 20:17:05 *antoszka* tries 20:17:31 configure: cannot find X11 development files that are 20:17:31 :( 20:17:53 what version are you using 20:18:07 either get 5.0.2 or use --disable-mred I think 20:18:16 5.0.2 20:18:39 devinus, http://portal.acm.org/citation.cfm?id=382133 20:18:47 probably --disable-something-else will do 20:18:52 just looking at the options. 20:18:57 hrm, i thought 5.0.2 didnt need x11 at all 20:19:03 since all that stuff should be in racket code 20:19:16 jonrafkind, the merge of gr2 happened after the release 20:19:17 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 250 seconds] 20:19:21 oh right duh! 20:19:23 samth: Its date seems wrong. 1991 suggests R4RS. 20:19:28 antoszka, can you get the latest version from git? 20:19:37 jonrafkind: certainly 20:19:47 samth: Unless ACM decided to really publish RRS after all those years. 20:19:47 cky, yeah, you're right 20:20:12 jonrafkind: would you point me to a git repo? 20:20:16 oh sure 20:20:28 ah, found 20:20:38 https://github.com/plt/racket.git 20:20:38 ok 20:20:45 thx 20:20:47 cky, devinus, http://library.readscheme.org/page2.html search for revised 20:20:58 antoszka: git://git.racket-lang.org/plt.git 20:21:16 eli: thx, too 20:21:32 antoszka: And it should compile on ARM -- for 5.0.2 you'll need some X headers, and the recenet version avoids that 20:21:51 but you'll still need X -- so if you don't have it, you can just as well go with 5.0.2 20:22:22 Also, you may want to avoid compiling the documentation, since that part (IIRC) was excruciatingly slow on the ARM machine I tried. 20:22:26 what do you need X for? 20:22:51 eli: Actually, I just want to run rudybot on that machine. 20:22:57 eli: Will I still need X? 20:23:45 Definitely not. 20:24:28 One thing in 5.0.2 (which is also fixed in the git repo) is that it cannot run headless. 20:24:50 Great. 20:25:00 And given that offby1 runs rudybot on a machine in some dude's basement (IIRC) then he's definitely not using X... 20:25:13 :) 20:25:34 Oh, and another reason that it will be slow is that you get no JIT. 20:25:55 I suppose this won't be much of a problem for the bot. 20:26:15 No, only for the people who'll want to use it... 20:27:32 :) 20:27:42 Let's see. 20:28:54 (When it actually compiles some time in the future.) 20:30:01 DrDuck [~duck@146.229.116.234] has joined #scheme 20:30:48 samth: \o/ Thanks! 20:31:36 Riastradh: thanks for the link regarding cml, will read :) 20:32:36 -!- schmir [~schmir@p54A9047D.dip0.t-ipconnect.de] has quit [Ping timeout: 240 seconds] 20:34:24 eli: What prevents 5.0.2 from running headless? 20:36:39 chandler: A huge pile of code that only Matthew could deal with. 20:37:07 Maybe I'm misunderstanding what you mean by running headless. 20:37:23 Currently I run a racket in screen, with no X involved. 20:37:45 How does "running headless" differ from this? 20:39:00 eli, chandler, i think there's a miscommunication here 20:39:30 chandler: I'm talking about running any headless gracket-based code. 20:39:45 And by "headless" I mean having no DISPLAY. 20:40:29 ... What's the point of that? 20:41:31 For example, the handin-server requires gracket to be able to evaluate student code, and that requires a working display in 5.0.2. 20:42:05 Another example is using it to just create some image files -- with 5.0.2 you'll need a DISPLAY even though no window is actually needed. 20:42:34 Ah, OK. 20:45:04 i suppose you could use the imagemagick ffi to work in headless mode 20:45:28 Yes, but that's very different from working with gracket. 20:49:01 kar8nga [~kar8nga@j-173.vc-graz.ac.at] has joined #scheme 20:51:23 Riastradh: Regarding direct-style network servers in C, one thing I've been meaning to do is to benchmark a swapcontext-based coroutine system. Are you aware of any existing benchmarks that suggest that the overhead of swapcontext is too high to be effectively used for writing high-performance network servers? 20:53:40 what is swapcontext? is it like setcontext and ucontext and all that? 20:54:04 Yes. 20:54:19 i hear that's what mongrel2 does when reading http requests 20:54:49 -!- HG` [~HG@xdsl-92-252-124-36.dip.osnanet.de] has quit [Quit: Leaving.] 20:54:56 *wingo* wrote an ill-advised cothread library in his youth :P 20:58:05 pnkfelix [~Adium@c-24-147-116-20.hsd1.ct.comcast.net] has joined #scheme 20:58:35 pnkfelix! 20:59:23 Howdy, Felix! 21:03:47 -!- copumpkin is now known as Omar_ 21:03:53 -!- Omar_ is now known as copumpkin 21:07:07 Oh, finished. Only about 40 minutes :) 21:09:30 -!- askhader [~askhader@taurine.csclub.uwaterloo.ca] has quit [Quit: leaving] 21:09:37 askhader [~askhader@taurine.csclub.uwaterloo.ca] has joined #scheme 21:10:50 -!- wbooze [~user@xdsl-78-34-244-48.netcologne.de] has quit [Read error: Connection reset by peer] 21:11:08 -!- homie [~user@xdsl-78-34-244-48.netcologne.de] has quit [Read error: Connection reset by peer] 21:11:55 fradgers- [~fradgers-@2.121.50.126] has joined #scheme 21:12:04 wbooze [~user@xdsl-78-34-201-47.netcologne.de] has joined #scheme 21:12:26 homie [~user@xdsl-78-34-201-47.netcologne.de] has joined #scheme 21:14:58 chandler, no, I don't. Here are some possible issues with that: (1) You can't parallelize the coroutines (in a single process). Maybe this doesn't matter. (2) swapcontext runs in time proportional to the size of the continuation. Granted, this can happen for CWCC in Scheme, too. (3) POSIX got rid of the *context routines. (4) I hope you're careful about passing around pointers to stack-allocated objects. 21:15:08 -!- DrDuck [~duck@146.229.116.234] has quit [Ping timeout: 245 seconds] 21:15:42 (5) I don't want to use C; I want to use Scheme! 21:16:10 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 21:21:00 Well, (5) is the killer there. 21:21:24 That said, there are several systems that do this. I don't know about benchmarks for them. But, because I am a moron and signed an NDA, I can't legally say more about them over an insecure channel^W^W^W^W. 21:21:38 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 21:21:54 Heh. 21:35:55 -!- homie [~user@xdsl-78-34-201-47.netcologne.de] has quit [Remote host closed the connection] 21:35:55 -!- wbooze [~user@xdsl-78-34-201-47.netcologne.de] has quit [Remote host closed the connection] 21:35:58 pothos_ [~pothos@111-240-219-180.dynamic.hinet.net] has joined #scheme 21:37:56 (6) The *context routines are totally broken in some pthread systems. 21:38:22 -!- pothos_ [~pothos@111-240-219-180.dynamic.hinet.net] has quit [Read error: Connection reset by peer] 21:38:26 (As in, if you use the *context routines, and your program is linked with -lpthread, and you get a signal, your process crashes horribly.) 21:38:29 -!- pothos [~pothos@111-240-219-43.dynamic.hinet.net] has quit [Ping timeout: 276 seconds] 21:38:43 pothos [~pothos@111-240-219-180.dynamic.hinet.net] has joined #scheme 21:39:24 I know NetBSD (at least, until 6 on i386/amd64, I am told) exhibits this lossage, and I seem to recall that a number of other operating systems/pthread libraries that I looked into exhibit it too. 21:39:43 -!- chittoor [~chittoor@listertech.in] has quit [Quit: Leaving] 21:40:08 -!- samth is now known as samth_tofurkey 21:40:21 *cky* wishes Tofurky were gluten-free. :-( 21:40:23 (Strictly speaking, it is the pthread library that is broken, not the *context routines, of course.) 21:40:40 Tofurkey? Bletch! How about some turducken? 21:41:02 -!- samth_tofurkey [~samth@punge.ccs.neu.edu] has quit [Quit: Ex-Chat] 21:41:10 Actually, I don't care much for turkey anyway, and chicken is pretty boring, so I'd be happy with just the duck; you folks can split the turkey and chicken among yourselves. 21:43:34 *cky* sends Riastradh a gooduckuail (I don't think such a thing exists, but in theory it sounds like a nice idea). 21:43:59 Quail is not worth the effort. 21:44:11 Heh. 21:44:13 -!- lisppaste [~lisppaste@common-lisp.net] has quit [Ping timeout: 240 seconds] 21:44:31 lisppaste! quo vadis! 21:46:37 what about some nice free-range local pigeon 21:47:02 turbofail [~user@adsl-99-50-22-193.dsl.pltn13.sbcglobal.net] has joined #scheme 21:51:07 -!- pdelgallego [~pdelgalle@1503031474.dhcp.dbnet.dk] has quit [Read error: Operation timed out] 21:51:56 wingo: That sounds like a great idea. :-) 21:52:32 Mmmm, I'll have another heapin' helpin' of garbage-fed Manhattan pigeon. 21:56:26 -!- turbofail [~user@adsl-99-50-22-193.dsl.pltn13.sbcglobal.net] has quit [Remote host closed the connection] 21:59:16 nilg [~user@85.239.138.109] has joined #scheme 22:02:20 -!- ray [ray@xkcd-sucks.org] has quit [Remote host closed the connection] 22:02:54 -!- MrFahrenheit [~RageOfTho@users-55-222.vinet.ba] has quit [Quit: Leaving] 22:07:10 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 22:07:45 -!- pnkfelix [~Adium@c-24-147-116-20.hsd1.ct.comcast.net] has quit [Quit: Leaving.] 22:08:16 Riastradh: Would that be true even if some thread is sigwait()ing on the signal? (My guess is no.) 22:09:23 Maybe, but there are lots of ways it can fail anyway. 22:09:30 ...even without signals. 22:10:21 Here's why: In such systems, the thread identifier is some function of the stack pointer (say, the upper 20 bits). If you futz with the stack pointer, suddenly anything that calls, say, pthread_self will fail spectacularly. 22:10:55 that was the case with old pthreads 22:11:19 If anything, oh, say, locks a mutex when libpthread is linked, kaboom. 22:11:21 linuxthreads i mean 22:11:34 you could subdivide the first 2M of stack into different cothreads, but you couldn't heap-allocation cothreads 22:11:39 *allocate 22:12:21 Not just LinuxThreads, wingo. At least LinuxThreads and NetBSD <=5, and I think I found other systems that work this way, too, but I don't remember now. 22:12:33 ray [ray@xkcd-sucks.org] has joined #scheme 22:14:24 I looked into this when I noticed that MIT Scheme hung on NetBSD every time it received SIGCHLD. libc had set up a shim SIGCHLD handler that did something with threads -- and promptly hung, trying to crash, except that crashing involved doing something with threads too... 22:15:04 So, maybe in another five years everyone will have ceased to do this, but I'm not holding my breath, or using *context. 22:16:36 -!- kar8nga [~kar8nga@j-173.vc-graz.ac.at] has quit [Remote host closed the connection] 22:24:04 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 22:24:05 dfkjjkfd [~paulh@145.120.22.35] has joined #scheme 22:27:24 -!- nilg [~user@85.239.138.109] has quit [Remote host closed the connection] 22:29:32 MrFahrenheit [~RageOfTho@users-33-217.vinet.ba] has joined #scheme 22:37:13 -!- wingo [~wingo@219.Red-88-0-167.dynamicIP.rima-tde.net] has quit [Ping timeout: 245 seconds] 22:48:21 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 22:48:43 EbiDK [~ebi@3e6b7ac3.rev.stofanet.dk] has joined #scheme 22:49:25 -!- aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has quit [Quit: aisa] 22:51:34 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 22:51:51 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 22:56:22 -!- drdo [~user@2.208.54.77.rev.vodafone.pt] has quit [Remote host closed the connection] 22:56:40 drdo [~user@2.208.54.77.rev.vodafone.pt] has joined #scheme 23:07:37 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Remote host closed the connection] 23:12:51 -!- debiandebian [~chatzilla@ntszok039189.szok.nt.adsl.ppp.infoweb.ne.jp] has quit [Ping timeout: 250 seconds] 23:15:04 -!- MrFahrenheit [~RageOfTho@users-33-217.vinet.ba] has quit [Read error: Connection reset by peer] 23:15:32 MrFahrenheit [~RageOfTho@users-33-217.vinet.ba] has joined #scheme 23:40:08 dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has joined #scheme 23:40:37 alaricsp [~alaric@mukhadvaram.gurukuli.co.uk] has joined #scheme 23:40:41 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme 23:41:19 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 23:42:28 -!- sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has quit [Client Quit] 23:44:53 sts193 [~sts193@c-76-104-226-126.hsd1.wa.comcast.net] has joined #scheme