* Logging started Sat, 01 May 2004 15:46:42 +0000 @1083426406 -dircproxy- You connected @1083426407 -niven.freenode.net- You joined the channel @1083426446 I just rolled over the logfile @1083426588 the new one now has timestamps @1083429853 <^self!~fn@66.209.66.105> what generates the logfile? cia? @1083429888 dircproxy, which is logged in on my behalf @1083429894 <^self!~fn@66.209.66.105> ah, ok. @1083432027 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083434408 -niven.freenode.net- buggs^z (~noidentd@pD9E97D0D.dip.t-dialin.net) joined the channel @1083440504 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083440504 -niven.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1083441581 <^self!~fn@66.209.66.105> http://www.livejournal.com/users/anonymous_bozo/16858.html @1083441589 <^self!~fn@66.209.66.105> the secret is out! @1083441682 you don't say. @1083442631 <^self!~fn@66.209.66.105> i'm compiling cvs/examples/ICFP2002's networking lib. it mostly works, except one function (setnetgrent) returns void on freebsd and int on linux. gcc bombs because of that ("void value not ignored as it ought to be"). @1083442631 <^self!~fn@66.209.66.105> how can i fix the code so that it compiles on both freebsd and linux? @1083442714 I usually handle that sort of thing by using my own .h file and a .c file to insulate the Dylan interface from portability issues @1083442810 <^self!~fn@66.209.66.105> ok. @1083442898 <^self!~fn@66.209.66.105> next problem: can i specify an a lib file to link against? apps that use the network.lid library also need to link against -lc_r @1083442964 there's a lid keyword for linker options... @1083442989 <^self!~fn@66.209.66.105> a ha. @1083443002 linker-options: -lc_r @1083443279 <^self!~fn@66.209.66.105> ah. worse than i thought. -lc_r doesn't have what i need. @1083443294 what do you need? @1083443318 <^self!~fn@66.209.66.105> gethostent_r, many other _r ones. @1083443331 <^self!~fn@66.209.66.105> what i need to do is run melange on freebsd's networking headers. @1083443354 <^self!~fn@66.209.66.105> i was hoping to avoid that. @1083443397 it's needed anyway, since linux and freebsd socket/etc structures aren't identical @1083443474 <^self!~fn@66.209.66.105> is this bad? @1083443475 <^self!~fn@66.209.66.105> Type name: select:1: Unknown identifier: select @1083443475 <^self!~fn@66.209.66.105> while calling {Method rcurry{} internal method ()} with #["select"] @1083443523 <^self!~fn@66.209.66.105> ok, fixed it @1083443532 <^self!~fn@66.209.66.105> i included sys/time.h and unistd.h @1083447174 <^self!~fn@66.209.66.105> it works with mod_lisp @1083447266 <^self!~fn@66.209.66.105> it's a separate package @1083447355 <^self!~fn@66.209.66.105> er @1083447455 andreas's Dylan network library works with mod_lisp? @1083447610 <^self!~fn@66.209.66.105> no, i meant to write that to #lisp. @1083447614 <^self!~fn@66.209.66.105> but yes, i was trying to build the network library so i could get it to work with mod_lisp. i got the network library to compile, but then ran into trouble getting some simple code to compile. @1083448336 <^self!~fn@66.209.66.105> mod_lisp's protocol is pretty simple. whenever it wants to send you something, it ends you key/value pairs, "key\nvalue\n...end". you reply with key/value pairs, including a content-length, and then the data. @1083448731 did you guys see my little experiemnt to see how much d2c builds rely on fast disks? @1083448985 commit by alexpotanin to libraries: Job: 6994 @1083448985 Feeble attempts at making it work on NetBSD with its own /usr/pkg include hierarchy. @1083450024 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083451356 -niven.freenode.net- hannes (~hannes@pD9E7B33C.dip.t-dialin.net) joined the channel @1083451803 <^self!~fn@66.209.66.105> well, got to stage 1: getting the code to work on freebsd. my dumb irc bot compiles and runs. @1083451939 -niven.freenode.net- D-BOT (~silencio@203.215.182.99) joined the channel @1083451953 yo. @1083451982 <^self!~fn@66.209.66.105> heh, it doesn't like quitting: @1083451990 <^self!~fn@66.209.66.105> C quit :dive dive dive! @1083451990 <^self!~fn@66.209.66.105> S ERROR :Closing Link: D-BOT (Client Quit) @1083451990 <^self!~fn@66.209.66.105> Bad file descriptor @1083451990 <^self!~fn@66.209.66.105> Abort trap (core dumped) @1083452091 hi @1083452209 <^self!~fn@66.209.66.105> hi hannes. @1083452249 <^self!~fn@66.209.66.105> ok, i'll try to get this modlisp thing working today. @1083452254 <^self!~fn@66.209.66.105> for now, must slep. night,. @1083452308 <^self!~fn@66.209.66.105> sleep, even. @1083454298 -niven.freenode.net- hannes_ (~hannes@pD9E7AA28.dip.t-dialin.net) joined the channel @1083458434 [housel!housel@cantor.gwydiondylan.org] ACTION experiments with using FunDev with MPS on "linux" @1083458458 aka FreeBSD? @1083458477 yes (in linuxulator mode) @1083460509 -niven.freenode.net- dasds (sdaa@ACC5819A.ipt.aol.com) joined the channel @1083460699 -niven.freenode.net- dasds (sdaa@ACC5819A.ipt.aol.com) left the channel @1083462553 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083462863 -niven.freenode.net- hannes_ (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083469295 -niven.freenode.net- brucehoult (~bruce@202.0.59.134) joined the channel @1083469610 Hmm... Over the past day I compiled Dylan (successfully) on NetBSD and Windows XP and SuSE Linux - all using the latest CVS. Unfortunately, every single platform required hacks to make it work (albeit small ones) and both NetBSD and SuSE Linux required me to configure it with "--disable-shared" for Dylan to compile... OpenGL didn't compile on either NetBSD or Windows XP, but I had it working on SuSE Linux last weekend... Frustrating... :-( But at l @1083469682 cross platform is a reality these days, but only with a lot of hard work :-( @1083469704 and they are all moving targets @1083469882 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083470018 Are you at work or home, by the way, Bruce? @1083470029 home @1083470058 it's Sunday, dude @1083470093 and I quit. Why would I be at work on a Sunday after I gave notice? ;-) @1083470223 But you will be during weekdays, right? For the next couple of weeks? @1083470232 yes @1083470247 Also, does it mean that you gliding spending will increase now, unless we have crap days like today? @1083470293 possibly @1083470306 Will you get Instructor Rating before I get my B certificate? Or even A one - since I am about to go overseas for 5 months and won't be signing much off (apart from some B certificate stuff) till I come back... :-D @1083470327 who knows? :) @1083470386 I am working right now anyway... Earning my $450 for marking one of the assignments for 26 people... That's roughly $40 a head (all after tax)... :-P @1083470408 I hate marking... Mind numbing activity at times... :-D @1083470417 But stomach filling... ;-) @1083470424 sounds as if the hourly rate is pretty good though @1083470452 Yes, it took me 3 hours to mark 10 or 11 fully... :-) And it accelerates as I go through them... :-) @1083475881 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083478370 -niven.freenode.net- brucehoult (~bruce@202-0-60-22.adsl.paradise.net.nz) joined the channel @1083481115 -niven.freenode.net- brucehoult (~bruce@202-0-60-84.adsl.paradise.net.nz) joined the channel @1083482239 -niven.freenode.net- brucehoult_ (~bruce@202-0-61-17.adsl.paradise.net.nz) joined the channel @1083483608 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net) joined the channel @1083483753 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net) joined the channel @1083484329 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net) joined the channel @1083486167 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net) joined the channel @1083486355 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net) joined the channel @1083506416 -niven.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1083506417 re @1083513955 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083517188 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083520799 -niven.freenode.net- buggs|afk (~noidentd@pD9E967C2.dip.t-dialin.net) joined the channel @1083524018 -niven.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1083524023 re. @1083525188 <^self!~fn@66.209.66.105> hi @1083525546 rehi self @1083526329 -niven.freenode.net- hannes (~hannes@217.231.170.40) joined the channel @1083529268 -niven.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1083536406 hey Gabor! @1083536417 oops @1083536422 several hours ago :-( @1083536426 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION sleeps again @1083538740 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083539933 commit by alexpotanin to libraries: Job: 6994 @1083539933 Made melange more verbose. @1083540102 commit by alexpotanin to libraries: Job: 6994 @1083540102 Sorry, now only verbose on NetBSD - where it is necessary, unfortunately. Otherwise - segfaults for no apparent reason. @1083540173 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083540180 Hello, OpenGL hackers. :-) @1083540191 "/usr/include/GL/glext.h:2423: Processing define "GL_ACTIVE_STENCIL_FACE_EXT"make: *** [opengl-glut-intr.dylan] Error 139" @1083541553 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083542752 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083545243 -niven.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1083545251 re. @1083548412 -niven.freenode.net- doublec (~doublec@coretech.co.nz) joined the channel @1083549621 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net) joined the channel @1083551965 Has anybody had recent contact with Jeremy Jones or Gail Zacharias? Do they know about FunDev and the activities of the Maintainers? I'm just curious how aware the old Harlequin and FunDev people are about what's going on in the Dylan universe. @1083552070 I've not heard from anyone from fundev in a long time. @1083552118 I've had an email exchange with Andrew Shalit (who asked me about Jeremy and Gail, which is why I asked). He's interested in seeing the DRM updated and corrected, and even says he'd love to participate if he has time. He's also interested in trying d2c on Mac OS. @1083553831 Gail is a member of the Dylan community on Orkut @1083553914 .. and so is Jeremy @1083553995 and Oliver Steele, who's name I'm sure I should recognize @1083554148 now building web stuff at laszlo. @1083572250 -niven.freenode.net- pritlove (~pritlove@194.95.203.218) joined the channel @1083572263 -niven.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1083572266 Moin! @1083572391 howdy @1083572409 Math involving a will never result in an , right? @1083572449 Not in GD right now. @1083572454 To get an , do I just use as(, some-general-integer) ? @1083572486 (Assuming the value fits in an .) @1083572532 SHould do it. @1083573813 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083573855 -niven.freenode.net- brucehoult (~bruce@202-0-60-138.adsl.paradise.net.nz) joined the channel @1083573877 Hi Bruce. :-) @1083573890 Let's see if i can get libopengl going on SuSE again... :-) @1083573893 hi Alex @1083574022 What exactly is melange and where does it come from? @1083574029 Do you compile it as part of dylan? @1083574046 yes @1083574070 it and parsergen are built during the bootstrap process @1083574096 see the src/tools directory @1083574122 OK. @1083574141 How do I tell it to run gcc in the lowest optimisation level? @1083574148 melange is, of course, a spice @1083574272 What exactly is its generic purpose? @1083574299 ? @1083574314 making Dylan interfaces to C code @1083574346 Automatically from "special" Dylan code? @1083574384 in many cases it can do it completely automatically, just by saying in the .intr file which C header to include @1083574394 In other cases you need to fine-tune the process a bit @1083574462 amazingly, there is documentation: http://gwydiondylan.org/gdref/gduser.html#MELANGE @1083574485 OK. @1083574570 Now, I stopped talking to Dave and now 100% doing this. :-) @1083574588 [cpage!~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net] ACTION is working on Melange as we speak, btw @1083574610 Oh? @1083574616 Trying to add support for casting from unsigned to signed. @1083574626 Hi Chris! Is it related to our problems, by any chance? @1083574639 I see. Cool. @1083574640 What problems? @1083574687 Making libraries/libopengl compile on Linux/Windows/NetBSD or something... :-) @1083574712 Well, what problem, specifically? @1083574721 It has five files: opengl-exports.dylan and opengl-macros.dylan in dylan... @1083574732 And three remaining: as .intr. @1083574746 It uses melange to produce three dylan files for those integrating information in GL headers. @1083574757 Melane segfaults on all three platforms mentioned above... :-( @1083574792 Andreas may have it working for him on Debian - I can't confirm that.... :-) @1083574864 I don't think it's related. I'm adding support for casting unsigned values to signed integer types. Melange signals an exception if it encounters an enum value like "(long)0xFFFFFFFF". @1083574929 I was just describing the problem we are having... :) I am not sure why it happens yet... :-( @1083574952 I'm having my own problems, though, trying to fix that. With my changes, Melange signals an exception, but I can't find the generated C code to figure out exactly what it's trying to do. @1083574979 Ugh... :( @1083575792 Well, I found the generated C code, but it's a complete mystery to me. I don't recognize anything from the Dylan source. @1083575908 Hi Alex, Bruce! @1083576026 -niven.freenode.net- brucehoult_ (~bruce@202-0-61-49.adsl.paradise.net.nz) joined the channel @1083576076 Re Bruce. @1083576230 hi Andreas @1083576355 Hi Andreas! @1083576429 [alexpotanin!~alex@st-james.mcs.vuw.ac.nz] ACTION suspects that melange gets lost processing glu.h and glut.h and goes into infinite loop or something... I hope I am wrong... :-) @1083576441 alex: the segfaults you see in melange are suspicious. It shouldn't segfault. Could you attach a debugger and get a stack trace? @1083576451 are you parsing the native include files? @1083576459 alex@linux:~> ulimit -a @1083576459 core file size (blocks, -c) 0 @1083576460 data seg size (kbytes, -d) unlimited @1083576460 file size (blocks, -f) unlimited @1083576460 max locked memory (kbytes, -l) unlimited @1083576460 max memory size (kbytes, -m) unlimited @1083576462 open files (-n) 1024 @1083576464 pipe size (512 bytes, -p) 8 @1083576466 stack size (kbytes, -s) unlimited @1083576468 cpu time (seconds, -t) unlimited @1083576470 max user processes (-u) 4094 @1083576472 virtual memory (kbytes, -v) unlimited @1083576474 I am parsing /usr/include/GL - presumably native. :-) @1083576475 we were going to put our custom ones back, as the easier option for now @1083576487 Better fix this maybe? :) @1083576493 well, that's why you're not getting core files, anyway :-) @1083576501 I can set core file to something then. :) @1083576504 How? @1083576512 ulimit -c nnnn @1083576520 alex: "unlimited" actually means "system limit". @1083576557 nnnn in what? @1083576563 blocks @1083576570 or put "unlimited" :-) @1083576574 OK. @1083576578 (without quotes) @1083576593 done @1083576617 Doing glu @1083576622 gl.h @1083576626 glext.h @1083576629 glext.g again @1083576641 coming up to 2423 @1083576643 139. @1083576646 crash. :) @1083576653 core - 7MB @1083576654 :) @1083576678 ulimit -Ha @1083576689 (gdb) bt @1083576689 #0 0x0819bfed in ?? () @1083576689 Cannot access memory at address 0xbfe00fd0 @1083576707 Core was generated by `melange -v -I/usr/X11R6/include --d2c opengl-glu.intr ,opengl-glu-intr.dylan'. @1083576707 Program terminated with signal 11, Segmentation fault. @1083576707 #0 0x0819bfed in ?? () @1083576707 (gdb) bt @1083576707 #0 0x0819bfed in ?? () @1083576707 Cannot access memory at address 0xbfe00fd0 @1083576721 Eek! @1083576727 What is -Ha? @1083576733 hard limits @1083576750 Still - unlimited for all but open files, pipe and max uproc. @1083576814 The thing is that glu one goes through gl.h, then glext.h and dies. @1083576824 I'm sure Andreas will sort you out ... I've just been invited to have an early night... @1083576826 But opengl.intr works and goes through gl.h and glext.h and works. :-( @1083576837 OK... @1083576841 Good night! :-) @1083576851 By the way, Andreas - you are in Berlin, right? @1083576864 I will be around this summer... :-) @1083577131 Alex, I am! When will you be here? @1083577265 Only briefly. I am in Oslo: 11th of June to 20th of June. @1083577276 In Amsterdam: 20th of June till 9th of July (?) @1083577285 In Berlin after that (catching a train). @1083577290 Then going to Jatez. @1083577302 Leaving Europe for USA - 21st of 22nd of July. @1083577317 I am flexible as to when I go from Amsterdam to Berlin and from Berlin to Jatez... :-) @1083577365 I see. I need to make a plan for the summer... so many dates! @1083577380 But you'll be here when the Love Parade won't happen this year. @1083577411 That's a good thing, I guess... :-) @1083577424 How do I comment out lines in .lid file? //? @1083577447 Prefix the header line with X-. @1083577473 What does X- do? @1083577489 Nothing, it just changes the semantics to "do nothing". @1083577506 OK... Thanks... :) @1083577592 BTW: I just recompiled opengl, just to make sure that it still works for me. @1083577662 From completely clean start nothing crashed and used glu.h and glut.h from your Debian unstable? @1083577722 Well, for fun's sake. I compiled the library by removing glu and glut... :-D @1083577730 called it opengl-simple.lid... :-D @1083577790 alex: yep, including "make clean" and re-melanging everything. @1083577882 what version of gcc and gl do you have? @1083577908 gcc version 3.3.3 (Debian 20040401) @1083577961 ii xlibmesa-gl 4.3.0-7 Mesa 3D graphics library [XFree86] @1083578045 I have 3.3.1 (SuSE)... @1083578056 I have ATI drivers for libGL and stuff... @1083578068 4.3 x server... :) @1083578081 Hmmmm.... should be the very same headers. @1083578102 I guess so - must be g++ then? @1083578117 Can I test melange in a better way? @1083578117 g++? @1083578117 <^self!~fn@66.209.66.105> sure. @1083578134 I mean the way g++ compiled melange or something like that... :-) @1083578157 Yes. gcc, or the garbage collector. @1083578182 I think I have gc 6.2 - whichever latest stable... :) @1083578218 I have 6.3alpha4, but I don't think there are that many changes. @1083578287 I would've though it be more stable in 6.2... :) @1083578298 I guess I can upgrade g++ and see if it fixes it... @1083578310 Otherwise - I can't figure out why melange segfaults... :-( @1083578328 With a broken stack trace, this is as hard as it gets. @1083578431 Just to make doubly sure, I'm now using the melange from the latest Debian packet, instead of the self-compiled one. Again, works as expected. @1083578498 I'll try on NetBSD now.. :) @1083578652 I'm having trouble coming up with code for casting from unsigned to signed integer. Any suggestions for how you'd do it? @1083578863 I may just not understand correctly, but I keep getting a result that won't fit in an . @1083578902 Andreas: make opengl-glu-intr.dylan works on NetBSD... :-) Segfaults on SuSE... :-( @1083578934 What I'm doing right now is testing whether the value is larger than the largest signed value possible for the given number of bytes: value > (2 ^ (8 * int-size - 1) - 1) @1083578992 Then, I try to convert from unsigned to signed like this: as(, value - 2 ^ (8 * int-size)) @1083579031 The conversion calculation seems to be incorrect. Maybe I'm too tired to be coding right now, but I can't tell what's wrong. @1083579088 Chris: Hm, looks correct to me on first glance. @1083579104 alex: What gcc version on NetBSD? @1083579120 3.3.3 @1083579132 I'd blame gcc. @1083579137 barretts: [~/ELVISFiles/Dylan/CVSData/libraries/libopengl-dylan] % make opengl-glu-intr.dylan @1083579137 melange -I/usr/pkg/include -I/usr/X11R6/include --d2c opengl-glu.intr ,opengl-glu-intr.dylan && mv ,opengl-glu-intr.dylan opengl-glu-intr.dylan @1083579138 barretts: [~/ELVISFiles/Dylan/CVSData/libraries/libopengl-dylan] % make opengl-glut-intr.dylan @1083579138 melange -I/usr/pkg/include -I/usr/X11R6/include --d2c opengl-glut.intr ,opengl-glut-intr.dylan && mv ,opengl-glut-intr.dylan opengl-glut-intr.dylan @1083579138 Type name: exit:1: Unknown identifier: exit @1083579140 while calling {Method rcurry{} internal method ()} with #["exit"] @1083579142 melange: $GLUT-NORMAL has multiple definitions @1083579144 melange: $GLUT-OVERLAY has multiple definitions @1083579146 barretts: [~/ELVISFiles/Dylan/CVSData/libraries/libopengl-dylan] % g++ --version @1083579148 g++ (GCC) 3.3.2 (NetBSD nb1 20031026) @1083579150 Copyright (C) 2003 Free Software Foundation, Inc. @1083579152 This is free software; see the source for copying conditions. There is NO @1083579154 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @1083579158 barretts: [~/ELVISFiles/Dylan/CVSData/libraries/libopengl-dylan] % @1083579160 barretts: [~/ELVISFiles/Dylan/CVSData/libraries/libopengl-dylan] % @1083579162 Sorry. @1083579164 So - it fails for glut and it is 3.3.2 that does it - not 3.3.3 :-( @1083579268 Sorry - it doesn't quite fail - it produces .dylan file... :-( @1083579290 By the way, on my Mandrake with 3.3.2 I got gc crashing on its own checks... :-( @1083579303 andreas: Okay, thanks. At least I'm not completely off base. @1083579326 [cpage!~Chris@adsl-67-118-119-143.dsl.snfc21.pacbell.net] ACTION must sleep before wrestling with code any more tonight @1083579392 Good night, Chris! @1083579851 I think I will go now. I will try again once I upgrade my g++... :-) Good night! @1083579867 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083594173 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083594174 re @1083597861 -dircproxy- You disconnected @1083599721 -dircproxy- You connected @1083601567 -niven.freenode.net- hannes_ (~hannes@pD9E7AC10.dip.t-dialin.net) joined the channel @1083601676 Re. @1083601774 re @1083607200 -niven.freenode.net- buggs^z (~noidentd@pD9E9669B.dip.t-dialin.net) joined the channel @1083610152 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083611070 -niven.freenode.net- mattsd (~mattsd@wks1.qa.mirrorimage.net) joined the channel @1083611075 -niven.freenode.net- mattsd (~mattsd@wks1.qa.mirrorimage.net) left the channel @1083613675 -dircproxy- You disconnected @1083614853 -dircproxy- You connected @1083619949 -niven.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083620446 -niven.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1083620447 re @1083620825 -dircproxy- You disconnected @1083621062 re Rob @1083626758 Is there syntax for literals? @1083626883 -niven.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1083626909 cpage: yes, there is a special syntax. one moment... @1083627077 ooops, 0.0x0 is for extended float, /me still looking @1083627137 maybe #e2 ? @1083627299 hey, Gabor! @1083627333 -niven.freenode.net- hannes_ (~hannes@pD9E7988D.dip.t-dialin.net) joined the channel @1083627348 hi bruce! @1083627355 hi hannes! @1083627553 Ah. I was trying to use #e with hex digits. @1083627653 anyone read Alistair Cockburn books? @1083627706 for a talk at work I am currently diving in "Agile SW Dev." @1083628746 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083628748 re @1083630063 Hmm. Apparently, isn't contagious enough. I have to use an extended integer on the left-hand-side of an operator to get an extended result. @1083630097 Or, at least, on the left-hand-side of exponentiation ^. @1083630120 Is that a feature or a bug? @1083630186 (ie., the right-hand-side is an extended integer, AFAIK.) @1083630371 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083631927 -niven.freenode.net- buggs|afk (~noidentd@pD9E965D2.dip.t-dialin.net) joined the channel @1083633225 -niven.freenode.net- cpage (~Chris@charger.intuit.com) joined the channel @1083633403 -niven.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083633455 -niven.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083633460 -niven.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) left the channel @1083635282 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083636532 commit by alexpotanin to src: Job: 6994 @1083636532 I fixed NetBSD platform specification to make it possible to compile libopengl. @1083636855 Dylan *and* libopengl work properly on NetBSD now. I am happy about one platform out of three I use 100% of the time. :-) @1083637082 I am building g++ v3.4.0 on my SuSE Linux to check if it solves my problems there. :-) @1083637858 -dircproxy- You connected @1083642183 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083646763 commit by alexpotanin to libraries: Job: 6994 @1083646763 OK. With G++ v3.4.0 recompiled Dylan, libopengl now compiles on SuSE Linux. @1083647037 yay @1083657835 -niven.freenode.net- brucehoult (~bruce@202-0-60-41.adsl.paradise.net.nz) joined the channel @1083663293 -niven.freenode.net- pritlove (~pritlove@194.95.203.213) joined the channel @1083669759 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083669962 -niven.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083670160 Hello. I was wondering if Bruce was around, as I usually do... :-) Or Andreas? :-) @1083670715 does anyone know how to setup the "personal registry root" that HughG spoke of? @1083671175 ah, found it in some old mail he sent @1083671553 cgay: i know. @1083671693 cgay: if you've any problems, feel free to ask me. @1083671824 hannes: i'm playing around with 'set personal-root /foo' @1083671878 did you have to do the trick Hugh mentioned of deleting all the registry entries for system projects? @1083671944 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083672055 cgay: no. i set up my personal registry in registry/Sources/registry/x86-linux. and i do 'set personal-root 'registry/' in minimal-console-compiler @1083672199 ok, i'll give it a try @1083672414 in registry/Sources/registry/x86-linux are those files starting with abstract://dylan/ and then the relative path starting from registry/Sources/ @1083672496 did you set up entries to build koala? can you just have the urls point to libraries/koala like this: abstract://dylan/../../../libraries/koala? @1083672555 yes, i have entries for building koala, but i have abstract://dylan/../../libraries/koala/sources/koala/koala-unix.hdp @1083672565 (i notice there's some brokenness if you first set the personal root to an absolute path and then try to set it to a relative path. fundev gets confused. @1083672567 ) @1083672590 ok, cool. (yeah, the number of ..'s was just a guess :) @1083672591 it gets confused if you set the personal root more than once @1083672639 and the personal-root is lost after doing sth else (like open koala and build) @1083672660 so you have to set it every time? @1083672724 every time i start fundev, but then i use another shell for editing koala source and run build several times @1083672764 k @1083672783 and i assume i need one registry entry for each koala subproject @1083672896 yes, one file for each subproject @1083673022 thanks, you've saved me a lot of time :) @1083673116 np @1083673225 i just found a readme.unix where i wrote down how to compile koala on unix? i can mail it to you. @1083673253 that would be great. cgay@itasoftware.com @1083673389 sent @1083673588 should the SIGPIPE mods be checked into cvs? or are they just a temporary hack? @1083674059 they're a temporary hack. @1083674480 argh. now i can't even bootstrap @1083674499 i get the less-than-informative error: make: *** [Bootstrap.1/bin/minimal-console-compiler] Error 255 @1083674546 i bet it's stashed something in an environment variable somewhere and still thinks i have a bootstrap.1 compiler to use @1083674742 what did you change? only the patch and then a make? @1083674781 and the registry stuff... @1083674838 no, i guess nothing changed in the system registries @1083675212 i c. when you call 'configure' you can't use a relative path @1083675226 i.e., ../configure fails. $SRCDIR/configure works @1083675519 commit by cgay to fundev README.txt,1.8,1.9: job: minor @1083675519 Add a warning not to use relative path when calling configure. @1083678896 hannes: did you have this problem?: @1083678900 2004-05-04 09:51:53 -0-4:00 [INFO] Ready for service on port 80 @1083678900 socket error @1083678900 zsh: 19212 trace trap bin/koala-app @1083678900 exit status: 133 @1083678917 cgay: you run koala as root? @1083678925 ah, no @1083678942 i use a config file which starts koala on port 8000 ;) @1083678994 k @1083679187 woo hoo! got my first response (404) @1083679588 :) @1083682405 commit by cgay to libraries: job: 6996 @1083682405 Document how to build and run on Linux. Other minor updates. @1083691951 -niven.freenode.net- hannes (~hannes@pD9E7988D.dip.t-dialin.net) joined the channel @1083691953 re @1083694382 -niven.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1083694383 re @1083696210 re @1083696374 Interesting: Melange seems to have a bug where it gets a parser error if an enum value is a character literal and there is an apostrophe in a block comment next to it, e.g.: myEnum = 'a' /* ' */ @1083696470 If I change it to a // line comment, it's fine. @1083696494 s/seems to have/has @1083699983 -niven.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1083703877 -dircproxy- You disconnected @1083703887 -dircproxy- You connected @1083704094 http://slashdot.org/comments.pl?sid=106332&cid=9051932 @1083705562 heh .. I've got 5 mod points -- I could mod you down to zero... @1083706225 -niven.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1083706303 Note to self: Debugging Melange's parser is tedious. @1083706640 I put in a format() to see what's going on, and, sure enough, it's parsing the trailing comment as part of the character literal, e.g. in "myEnum = 'a' /* ' */" the literal is parsed as "'a' /* '". Whee! @1083707015 Say, is there documentation for the regexp library? @1083707502 ...on the website. Doesn't matter, the source code more or less says, "look at Perl." @1083707593 -niven.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083710021 -niven.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1083710264 -niven.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083710351 [housel!housel@cantor.gwydiondylan.org] ACTION notes bhoult's stealth FD open-source announcement on c.l.l @1083710635 Hmm. Melange uses this pattern for character literals: '(\\\\?.)+' @1083710642 "'(\\\\?.)+'" @1083710681 Apparently, it's greedy, and so matches all interior apostrophes on a line. @1083710699 It would make much more sense to match [^'] instead of .. @1083710731 It also needs to consume escaped apostrophes. @1083710759 yes @1083710777 I'm open to suggestions for how to best correct the expression. @1083710991 From the C lexer I'm using to test the lexer-generator in Monday's simple-parser library: @1083710992 name c-char @1083710992 = "[^'\\\\\n]|\\\\(['\"?\\abfnrtv]|[0-7]([0-7][0-7]?)?|x[0-9a-fA-F]+)"; @1083710992 token CHARACTER-CONSTANT = "L?'{c-char}+'", @1083710992 semantic-value-function: extract-action; @1083711043 Maybe this?: '((\\')|[^'])+' @1083711175 Yeah, I think we're talking about the same pattern, if you simplify that. @1083711175 still incomplete... mine should handle everything except \u and \U @1083711197 This is within the context of a larger pattern that handles the other literals, too. @1083711255 To clarify: The Melange pattern for character literals only needs to identify the start/stop of the literal. Other code picks it apart. @1083711280 (the same applies to mine) @1083711419 I guess what I mean is, it looks like yours actually describes the entire syntax for character literals so a lexer can parse it with high fidelity, whereas Melange just uses regexp to find the boundaries, then it parses the interior separately. @1083711489 yes @1083711584 BTW, I just submitted bug 7000 as a tracking bug for the 2.3.12 release @1083711607 Interestingly, Melange's pattern for strings is: "(([^\\"]|\\.)*)" @1083711636 If there are any bugs that anyone thinks needs to be fixed before we release, please mark them as blocking bug 7000. @1083711663 So I guess whoever extended the character literal pattern just didn't notice the string pattern. @1083711700 (Extended the character literal pattern to handle multiple characters. There's a note in the sources about handling it as a non-standard C extension.) @1083711806 The grammar in the C standard allows multiple characters, but the interpretation implementation-dependent @1083711826 Interesting. I didn't know that. @1083711936 I'm going to try a pattern that mimics the string pattern: '(([^\\']|\\.)+)' @1083711965 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083712193 BTW, I had a typo and omitted a closing paren, which, of course, I didn't find out about until the code ran. @1083712219 This reminds me that some have asked me whether a Dylan compiler checks format strings at compile time. @1083712258 Of course, you could use something more like C++'s stream syntax (<<) to allow the compiler to parse and handle type-checking, but the code can be verbose. @1083712348 I wonder whether there could be a language feature where functions that accept strings that adhere to some DSL could describe the syntax to the compiler in the function definition. @1083712377 http://www.common-lisp.net/paste/display/{537,539,542} @1083712429 (I don't like format strings, by the way, in case you couldn't tell from those...) @1083712443 The HTTP server complains about that URL. @1083712488 This works: http://www.common-lisp.net/paste/display/537,539,542 @1083712524 Um. @1083712540 The {x,y,z} notation means 'look at .../x, .../y, .../z', not that exact URL. @1083712556 Oh! @1083712565 You're treating me like curl. :) @1083712616 no, like bash or csh @1083712676 "no" or "also"? @1083712739 [housel!housel@cantor.gwydiondylan.org] ACTION admits ignorance wrt Curl @1083712750 In that case, it's "also". :) @1083712756 No, curl, not Curl. @1083712776 Welcome to Pedants Anonymous. @1083712781 My name is Chris. @1083712784 Curl is a web programming language (with an _EXTREMELY_ lame payment scheme) and the company that owns it. @1083712795 I have been pedantry-free for about five seconds. @1083712833 I'm still refusing to admit that I have a problem @1083712838 activity! @1083712846 Anyhow, have you people looked at my argument against format strings? @1083712854 Riastradh: So, what are your thoughts wrt those Lisp snippets? @1083712854 (partially mine and partially chandler's) @1083712857 nope @1083712861 Do so, then! @1083712867 Certainly the format string version is more compact. @1083712877 cpage, can you understand what it does? @1083712889 I couldn't. chandler had to make the second paste, the really verbose, vanilla Scheme one. @1083712895 ...for me to understand it, I mean. @1083712896 I can't understand what the verbose version does without a lot of reading, either. @1083712926 What about the last one? @1083712931 so the basic argument is that -- like FORTRAN's format specifiers -- you can go too far and have an entire language within the format string? @1083712965 bhoult, the argument is against those entire languages, not that you can have them. @1083712998 (Read SRFI 42 if you're interested in seeing how MYTHICAL-FORMAT's iteraction constructs work, by the way.) @1083713039 Dylan format strings are currently less powerful than printf @1083713065 a lot of code seems to avoid using them @1083713067 ...I see. @1083713077 I suppose the last one (542) begins to strike a balance between "all in a string" and "all in code". @1083713085 cpage, yes. @1083713094 It's more like C++ stream syntax than the others. @1083713105 It's supposed to be understandable without being as verbose as the Scheme one. @1083713134 as someone who codes in C++ all day, I'd usually far rather use printf than cout @1083713143 .. even with the type-unsafeness @1083713145 Not really. C++'s stream syntax is very mild syntactic sugar with no sophisticated _formatting_. @1083713162 bhoult, what about MYTHICAL-FORMAT? @1083713194 .. because it is SUCH a PITA to type all the quotes and << to replace a simple format string with a few inserts @1083713200 The real issue is that a static, linear text presentation doesn't fully meet the needs of the reader. @1083713220 I must depart now. I'll read comments later. @1083713240 Sometimes, a format string will be clearest. It probably depends on how much literal text you have vs. how many formatting directives. @1083713340 One thing I'd appreciate, as I look at these regexp's that contain escaped characters that are further escaped when placed in Dylan string literals, is a way to specify a different escape character or different characters for the start/end of the string, so the interior can be simplified. @1083713410 yes... Lua uses % as its regexp escape character for that reason @1083713471 Maybe the regexp library functions could take an escape-character: keyword @1083713478 Yeah, one way to approach this would be to have a way to select a different escape character for the regexp library. @1083713481 Jynx! @1083713850 I'm getting some runtime exception messages complaining about the type of some argument, but it doesn't say which one. Is there a way to find out which argument is the problem? @1083714786 other than running in gdb and looking at the backtrace? no @1083715120 Why not use a macrological regexp package, like a Dylanized SRE facility? @1083715221 I've thought about that but couldn't come up with a syntax I liked @1083715252 Fine, then: revert Dylan to S-expressions and use SREs! @1083715280 I didn't say I liked SREs @1083715292 ...what don't you like about them? @1083715371 not as clear and compact as traditional regexp syntax @1083715434 I agree on the compactness, but I find that issue hardly very important; I vehemently disagree on the clarity, especially regarding the problems you were just discussing. @1083715473 I find it important to be able to express simple patterns compactly. @1083715499 If the verbose version is much longer than the string, it can be harder for the human to verify correctness. @1083715500 Simple patterns, fine: use POSIX regexps. But for anything more complicated POSIX regexps get to be a complete mess. @1083715524 If the string version is much less expressive than the SRE, it can be harder for the human to verify correctness. @1083715527 The trick is to come up with a system that allows both humans and compilers to verify correctness. @1083715554 'Less expressive' wasn't the phrase I wanted, but I can't think of it right now... @1083715576 What is "SRE", btw? @1083715586 Symbolic Regular Expression. @1083715606 invented by Olin Shivers for scheme shell @1083716345 housel pasted "My C lexer" at http://www.common-lisp.net/paste/display/876 @1083718326 -niven.freenode.net- buggs^z (~noidentd@pD9E9752C.dip.t-dialin.net) joined the channel @1083726078 Anybody have a reference for SRE? I can't find anything definitive in Google. @1083726130 http://www.ai.mit.edu/~shivers/sre.txt @1083726204 http://www.scsh.net/docu/html/man-Z-H-8.html or so. @1083726227 7, rather, not 8. @1083728823 -dircproxy- You disconnected @1083734679 -dircproxy- You connected @1083737644 Morning! @1083737915 hi andreas @1083737930 HI Bruce! @1083743210 -niven.freenode.net- brucehoult (~bruce@202-0-45-94.adsl.paradise.net.nz) joined the channel @1083744054 morning @1083745234 Morning Hannes. @1083745678 hi andreas @1083749772 Quick poll: Is 0 a positive integer or merely non-negative? @1083749800 F, T @1083749898 So, do both positive? and negative? return false for 0? @1083749923 i'd hope so @1083749929 And what about even? and odd? ? The DRM doesn't cover these details, unfortunately. @1083749961 I'd certain;y expect 0 to be even @1083749978 anyway, it's very easy for you to find out what Gwydion does for all these cases @1083749992 Sure, but I'm wondering what the answers *should* be. @1083750018 I'm wondering whether the DRM should have these points clarified. @1083750068 it wouldn't hurt @1083750114 define inline sealed method even? (a :: ) => res :: ; @1083750118 zero?(logand(a, 1)); @1083750118 end; @1083750185 BTW, I'm reading about SRE's. I agree it would be good to have a Dylan implementation. @1083750199 Not sure what the syntax would be, though. @1083750293 define sealed inline method positive? (num :: ) => res :: ; @1083750297 num > 0; @1083750297 end; @1083750297 define sealed inline method negative? (num :: ) => res :: ; @1083750297 num < 0; @1083750297 end; @1083750332 [brucehoult!~bruce@202-0-45-94.adsl.paradise.net.nz] ACTION would have been shocked had it been otherwise @1083750351 this from: http://gwydiondylan.org/cgi-bin/viewcvs.cgi/src/d2c/runtime/dylan/num.dylan?rev=1.8.2.4&content-type=text/vnd.viewcvs-markup @1083750978 Thanks. @1083751919 Another detail I'm reminded of from looking at those definitions: The DRM doesn't say what happens if you call the logical bitwise operators with no arguments. @1083751967 hmm @1083751978 I thought they were defined to take exactly two (unlike in CL) @1083751982 am I mistaken? @1083752034 No, they take #rest. The source file you pointed at above shows implementation functions binary-foo() that take two args and and logfoo() uses reduce() on #rest. @1083752201 The DRM does say they take "zero or more...", which leaves me to conclude they should return zero, though an examination of the implementation of logand() shows it should return -1. @1083752202 ah @1083752231 i'd expect OR to return 0 and AND to return all 1's @1083752255 it's the only logical result for zero arguments @1083752275 I'd expect AND to return all 0's, because there are no 1's for it to AND with. @1083752288 bad logic :-) @1083752321 Not that I think it matters too much, except that this should be specified in the DRM for completeness, or the functions should take two required args in addition to #rest. @1083752323 bitand(a, b, c, d) = bitand( bitand(a, b, c), d) @1083752375 reduce that a few times and you get bitand(bitand(), a) in the middle @1083752381 .. whch must return a @1083752406 ... which means bitand() must be all 1's @1083752435 sorry, they're called logand. YTWIM @1083752461 er, YKWIM @1083752478 I don't see how that necessarily follows. In fact, speaking abstractly, why doesn't logand() return no value or the empty list? @1083752491 Yes, IKWYM :-) @1083752523 isn't the return type defined as ? @1083752550 Yes. I was "speaking abstractly". @1083752576 Not that I'm suggesting it should do either of those things, I'm just saying I don't necessarily see a clear reason for saying it should return all 1's. @1083752576 personally, i'd probably prefer it was defined to take (a, #rest b), not (#rest b) @1083752592 Why not (a, b, #rest r) ? @1083752595 and then the question wouldn't arise @1083752613 Why leave open the question of what the default value is when only one or zero args are supplied? @1083752625 that would be OK, too, but it might force some special cases in some code @1083752630 Oh, I guess we mean the same thing. @1083752691 BTW, the math operators are strictly binary. @1083752748 I'd kinda like to see a consistency here. Either they all take #rest or two args, etc., or they all have two flavors, one with two args and one with #rest. @1083752827 Actually, ideally I'd like to see them all take just #rest and have some guarantee that the compiler will always optimize the common case of two args. @1083752832 hard to make infix operators take a #rest @1083752900 Are they infix? Isn't it just the expression syntax that's infix? The functions themselves don't have to be binary, do they/ @1083752901 ? @1083752918 so you could call \+(1, 2, 3, 4) ?? @1083752922 maybe so @1083752967 I just don't see any difference between \+ and \logior in that regard. @1083753018 ...except that Dylan is defined to be efficient rather then philosophically pure, so it makes sense to have two required args for the common math operators. @1083753086 ...unless, of course, you could figure out a way to make sure the compiler would always produce the same code even if you defined them to take #rest instead. @1083753122 One thing I've been mulling over is proposing support for methods that take varying numbers of required args. @1083753148 That could help with efficiency in these cases. You could define the generic with #rest, but have methods with two required args for the common cases. @1083753257 There may or may not be any real advantage, though. I have to think about it some more. @1083753292 The basic idea comes from overloading in C++. It's sometimes useful to be able to differentiate methods based upon the number of args supplied. @1083753303 -niven.freenode.net- pritlove (~pritlove@194.95.203.217) joined the channel @1083753384 brucehoult: Actually, it just dawned on my that you're right about logand(), but I'm seeing it from another angle: logand(a) returns a, implying that it's ANDed with all 1's. @1083753444 ...so logand() must return all 1's. @1083753815 that's right @1083753859 [brucehoult!~bruce@202-0-45-94.adsl.paradise.net.nz] ACTION to bed @1083753886 g'night! @1083753912 and unless I'm mistaken it 0400 there! @1083753928 Almost. @1083755345 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083756286 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083759061 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083759820 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083766743 minimal-console-compiler leaves a lot to be desired in terms of error reporting...it stuffs them away into log files and doesn't tell you where they are. @1083766780 I vaguely remember there was a script to grovel through the logs and find them, but I guess it should just display them directly. @1083766836 the errors ought to go to *standard-output* as well as the log @1083766851 yeah @1083766951 in fact, i can't even find the "3 serious warnings" in the logs... @1083766979 they should be in library-name-build/library-name.log @1083767004 (or Build/library-name/library-name.log, depending) @1083767079 yeah, they aren't there @1083767153 hmmm.... could that be what the release notes (and bug 6981) were referring to? @1083767181 i'm probably screwing up somehow. i'll poke around more @1083767236 hmm. the koala-build dir has today's date, but all the files in it haven't changed since Mar 20 @1083767278 did you start using personal-root? in which case there should be a Build dir under that @1083767356 yes. i'm building koala-app and the output for koala-app itself is in /Build/koala-app @1083767366 but no warnings in there about the subprojects @1083767403 could it be the 'build' vs. 'Build' problem I wonder? @1083767418 need to add that to bugzilla... @1083767425 bingo! @1083767445 i hadn't typed 'g' in my dired, so i didn't see the 'build' dir @1083767496 so it seems to use 'build' for the subprojects and 'Build' for the top-level library @1083767509 bletch @1083767805 there aren't many occurrances of 'Build'. i'm tempted to just go change them all and try rebuilding fd. @1083767836 at any rate, i'll bugzilla it @1083767928 i wish bugzilla wouldn't ellipsize summaries :( @1083769061 i think fd should make it much easier to specify loose/tight mode when building, both in the IDE and in the command line @1083769143 how would you change it? build-tight and build-loose, "Build interactive mode" menu item etc? @1083769164 one ought to be able to do 'build -tight myapp" just before doing a checkin, for example @1083769182 (i just found a bug that would have been caught that way) @1083769211 in the IDE you have to go to Project -> Settings and change it. and it's not clear how that affects subprojects either @1083769440 (I just think the Settings tab is way too verbose... tooltips would be a better way of expressing all the effects of those options) @1083769495 in the IDE there's a "Build..." (or something like that) menu item that puts up a dialog first. that would be a good place to do it. just a radio button for tight and loose, and a checkbox that says 'for subprojects too' @1083769853 "Advanced Build..." I think @1083769888 yuk @1083770211 do you know if the IDE designers used HCI consultants or did user walkthroughs? @1083770290 i think there was some of that. cpage would know. @1083770782 -niven.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1083771839 -dircproxy- You disconnected @1083772403 -dircproxy- You connected @1083772448 -dircproxy- You disconnected @1083773515 Re. @1083776233 -niven.freenode.net- pritlove (~pritlove@port-212-202-201-16.dynamic.qsc.de) joined the channel @1083781929 re @1083782015 I'm happy to say we did do a round of user-testing. We used a company in MA and I flew out to attend. Andy, Scott, Hotchkiss, and myself were there (I don't recall if there was anyone else). @1083782174 We got some valuable feedback. Unfortunately, we only did one round, we later added some things, and the tests were not as detailed as we'd have liked. @1083782355 On the one hand, we really were concerned with providing a good user experience, but on the other, we had time constraints and needed to ship something. @1083782449 Another issue is that several people contributed to the UI and, not to insult anyone, but not everyone was as experienced with doing UI. @1083782576 Also, when you have several people with strong opinions (and I mean that in a good way), you don't always get complete consensus on every detail. @1083782613 [That's my way of saying: If there's anything about the UI you like, I did it, but if you don't like it, it's somebody else's fault. :-] @1083782849 Actually, Hqn Dylan was my first real Windows app, and I must say I found several ways in which Windows put constraints on what we could do, forcing less than desirable UI in some cases. For example, I did the search feature, modeling it on CodeWarrior. It uses the Shift key to change commands between forward and backwards search. Unfortunately, Windows doesn't support dynamic menu items that change as you toggle modifier keys, so @1083782849 all the menu items had to be in the menu at all times, doubling the number of items. @1083782898 CodeWarrior for Windows has the same problem. @1083782915 that is good for discoverability though @1083782977 Sure, which is why I insisted on putting them in the menu instead of going the other way and invisibly handling the shift key. @1083783108 i'm just saying i wouldn't consider that a problem for Windows...more like a problem for the Mac (i assume it's the Mac) @1083783109 Now that we have the sources I'd love to revisit the UI, especially any decisions I made that I may now disagree with. @1083783226 I don't know if it's a problem for new users, but this Shift convention started probably ten or more years ago, so every experienced Mac programmer is certainly aware of it. @1083783271 ...and nowadays, using Shift to reverse search direction is in the Apple HI guidelines and appears in every Cocoa app by default. @1083783328 Of course, the standard Find menu only contains a few items, so they put the "Search Backwards" command in the menu. @1083783404 CodeWarrior has enough menu items it's important to be able to simplify the menu. Perhaps they could put just "Search Backwards" in the menu to aid in discoverability of the other reversed commands. @1083783493 I actually considered that for HD, but this isn't/wasn't a standard convention for Windows apps (most of the search commands and associated keys are non-standard for Windows), so I felt it was important for that audience to put them all in the menu. @1083783597 BTW, the last time I looked at FunDev I came to the conclusion that Windows simply looks ugly and forces bad UI overall, no matter how good your designs. :-( @1083783636 yeah, i can understand it in the Mac, where it's been the convention since the dawn of time. @1083783694 i consider the recent 'innovation' in Windows menus, where they remove items that haven't been used for a long time, to be horrible UI. i instantly turn it off whenever i get a new Windows install. @1083783704 except you can't turn it off everywhere :( @1083783706 +1 @1083783713 They remove items that haven't been used in a long time!!!? @1083783719 Some items. @1083783727 That's _horrible_! @1083783737 then if you leave the mouse there for a while, like you can't find something, they expand the menu to show all items @1083783745 They're placed in a section at the bottom of the menu represented by a single item. You click it and the other items appear below. @1083783745 icky icky icky patoo! @1083783776 The problem, of course, is apps with too many menu items. @1083783803 MS Word comes to mind. (i haven't found a way to turn that feature off in it) @1083783830 Einstein's quote regarding geniuses and making things simple comes to mind...there aren't enough geniuses to keep apps simple enough. @1083784010 On the other hand, some people on more than one occasion argued against putting everything in menu items, simply to not clutter the menus, which isn't the right answer, either. @1083784041 It certainly takes a lot of time and effort to make good UI. @1083784118 ...rather: argued against making everything discoverable in the UI (which most often means "in a menu item", but not always). @1083784199 -niven.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1083784202 heya @1083784397 [Looking at streams.dylan] I've come across a place where the Mindy version of some code uses several methods with singleton specializers, but there's one method for d2c, which uses a select statement, with the following comment: @1083784406 / The compiler can't deal with singleton(). @1083784433 Is that still true? Should this code be revisited, or is it still necessary for bootstrapping? @1083784442 @1083784492 -dircproxy- You connected @1083784496 (it's the implementation of type-for-sequence()) @1083784828 It's still true @1083784842 ... and I'll explain why after I eat lunch @1083784853 Excellent. :) @1083784953 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083784955 re @1083787321 ok, here's the deal... @1083787402 to specialize on singleton(something) the compiler needs to be able to guarantee at compile-time that something is \== to an equivalent something-else @1083787426 define constant = limited(, min: 0, max: 255); @1083787458 right now d2c doesn't guarantee that any two values returned by limited(, min: 0, max: 255) will be \== to each other @1083787511 that would require memoization tables at both compile-time and run-time @1083787543 ... something we're not doing yet @1083787611 -dircproxy- You disconnected @1083787861 -dircproxy- You connected @1083789015 -niven.freenode.net- hannes (~hannes@pD9E7BD85.dip.t-dialin.net) joined the channel @1083789016 re @1083789174 hi hannes @1083789180 hi peter @1083789801 morning! @1083790008 hi bruce @1083790163 the MPW cmd-F G H and shift for backwards seems to have been widely copied. F= find dialog box, G = find again, H = find the selected text @1083790229 The SYmantec products (THINK C/Pascal) used cmd-E for "enter the selection as the search string, but don't actually look for it yet", and that seems to have often been picked up as a (simultaneous) alternative to MPWs cmd-H @1083791142 housel: I don't understand how that impacts the code in question, though. If you define a constant and use it everywhere, it'll always be ==, won't it? @1083791281 no, it's the *type* that isn't always == @1083791289 Right. @1083791300 let = limited(); @1083791309 let = limited(); @1083791327 a and b should (perhaps) be == @1083791327 if you do it, it will work, but the compiler will give you a warning every time you use a library with that method @1083791339 If you use "limited(, min: 0, max: 255)" more than once, they may not be ==, but if you assign it to a constant and use "" everywhere it should be okay, right? @1083791350 that's currently a minor wart in newio @1083791379 cpage: I think so @1083791406 Oh! The problem is the type singleton(). @1083791420 actually, I'd prefer it that way. There used to be disagreement between Pascal implementors about whether composite types had name equivilence or structure equivilence @1083791476 ...or is it? @1083791487 d2c tends to take the tack that functional objects are to be made \== whenever possible @1083791516 so fixing this would be a good thing @1083791523 name equivilence means that you can go "type personName = char[20], address = char[20];" and the type types aren't assignment compatable @1083791574 I think perhaps name equivalence only makes sense for static languages. @1083791600 that's possible, though I don't see it @1083791628 Perhaps I have it reversed, because the word "equivalence" threw me off. @1083791701 Two instantiations with the same arguments to a type constructor may not produce the same value in a dynamic language, but in a statically-typed language there is no such thing as runtime instances of types. @1083791748 So, anyway, does "singleton()" memoize? @1083791787 Do "f(x == )" and "g(x == )" have the same signature? @1083791862 ...er...actually, those are unrelated questions, I guess. @1083791866 if you replaced with or or almost anything else , then, yes @1083791927 I still don't understand why it's a problem with . @1083791953 because the compiler doesn't think it knows the address of that instance @1083792001 Even if it gets the type from a constant? @1083792029 yes @1083792035 Why? @1083792049 (Pardon me if I seem dense.) @1083792053 define constant $my-table = make(); @1083792062 it doesn't know the address of $my-table either @1083792082 because make() isn't compile-time evaluable @1083792136 it's the same priniciple as far as d2c is concerned @1083792205 What does d2c do with type specifiers that are not compile-time evaluable? @1083792232 (I must admit I'm not sure what the DRM says about this.) @1083792239 it evaluates them at run-time @1083792259 Okay, so there's an efficiency issue, but is there a semantic problem? @1083792287 no, as I said, the code does in fact work @1083792296 Oh, I didn't notice you'd said that. @1083792316 That explains my apparent density. :) @1083792411 So, do I understand correctly that the issue is that \select is faster than method dispatch for runtime types? @1083792465 ...that == isn't a problem, since \select is using it for the comparison. @1083792486 hard to say without timing it @1083792532 Okay, so, I'm sorry if this sounds like we're going in circles, but: Why does this version of type-for-file-stream() exist? @1083792670 ...and perhaps more relevantly, type-for-sequence(), which uses singleton(). @1083792693 you'd have to ask Ben Folk-Williams or whoever wrote that code to be sure @1083792727 I think I did make some improvements in the behaviour of specializing on singletons of limited types last fall, but I can't remember now @1083792735 so things might have been worse then @1083792762 AH. @1083792769 s/H/h @1083793048 hmmm... looks like what I fixed was , which is an internal magic type @1083799490 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083799648 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1083800317 -dircproxy- You disconnected @1083800666 -dircproxy- You connected @1083803346 -dircproxy- You disconnected @1083803708 -dircproxy- You connected @1083804570 according to "svn blame", Ben Folk-Williams is indeed responsible for the #if(mindy) in question @1083804749 -niven.freenode.net- buggs|afk (~noidentd@pD9E95F69.dip.t-dialin.net) joined the channel @1083806530 -dircproxy- You disconnected @1083806847 -niven.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1083806899 housel: are you here? @1083808720 -dircproxy- You connected @1083808774 I am now @1083811662 -niven.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1083816276 -dircproxy- You disconnected @1083820149 -dircproxy- You connected @1083822421 commit by housel to src: Bug: 7002 @1083822421 Start of work to make bootstrapping (both mindy and d2c) possible. @1083822714 commit by housel to src: Bug: 7002 @1083822715 Merge in changes made between Linux Alpha 3 and the full @1083822715 open-source release. @1083823013 commit by housel to src: Bug: 7002 @1083823013 Start of work to make bootstrapping (both mindy and d2c) possible. @1083823426 commit by housel to src: Bug: 7002 @1083823426 Merge in changes made between Linux Alpha 3 and the full @1083823426 open-source release. @1083830633 <^self!~fn@66.209.66.105> so, you have the tree imported into svn? @1083836822 re @1083838541 hi chris. just getting up? or still up? @1083838840 -niven.freenode.net- brucehoult (~bruce@202-0-60-199.adsl.paradise.net.nz) joined the channel @1083839759 Still up. Hoping to go to bed soon. @1083839797 Discovering one more problem with Melange's parser each time I fix one. @1083839878 The latest problem is it chokes on lines split with a '\'. It isn't ignoring the backslash like it should and it throws off the token lexer. @1083840073 fun fun fun @1083840095 i woke up at 4am for some reason and couldn't sleep, so i'm hacking on koala @1083840279 well, it might only be 10:45 here, but I think I'm off to bed anyway... @1083840924 hi @1083841455 -niven.freenode.net- OneSadCookie (~keith@203-79-121-211.cable.paradise.net.nz) joined the channel @1083841470 any melange gurus here? @1083841537 anybody at all here? @1083841803 [hannes!~hannes@port-195-158-171-122.dynamic.qsc.de] ACTION is here but is no melange guru @1083841865 :) @1083842083 same here @1083842458 anyway, not a melange problem at the moment @1083842466 d2c doesn't like my 4000-line exports file :( @1083842510 it segfaults almost immediately with 15000 stack frames @1083842614 I thought it was due to too many things exported from one export statement @1083842624 but reducing it to one item per statement doesn't change anything @1083843036 Hi! @1083843056 howdy @1083843063 OneSadCookie: Macro expansion is handled recursively, with one recursion per entry in the statement. @1083843069 Play with ulimit -s. @1083843088 so that applies at the define module level? @1083843105 'cos putting only one exported name into each export statement had no effect @1083843124 Yes, it's about expanding the "define module" macro. @1083843156 [OneSadCookie!~keith@203-79-121-211.cable.paradise.net.nz] ACTION does ulimit -s 65536 @1083843166 yay, no segfaul @1083843168 +t @1083843196 One day, we will have guard pages and proper exceptions on stack overrun. :) @1083843274 I'd prefer it just handled it iteratively :p @1083843313 You're welcome to submit an implementation. :) @1083843363 thanks :) @1083843376 [OneSadCookie!~keith@203-79-121-211.cable.paradise.net.nz] ACTION puts on to-do list for 2059 @1083851614 commit by cgay to libraries: job: minor @1083851617 Clean up http error response codes a bit. This way it's clear at the call site @1083851617 what the arguments to the error function are. @1083851868 commit by cgay to libraries: job: minor @1083851868 Use system:operating-system:load-library instead of @1083851868 win32-kernel:win32-kernel:LoadLibrary. Comment out body of unload-module @1083851868 because there isn't a corresponding unload-library function in the os @1083851868 module yet (and unload-module really isn't needed now anyway). @1083853722 cgay: btw, i think #key headers is not used (and will not be used) in http-error definer macro @1083853741 yes, it's used in one place @1083853801 -niven.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083853802 in static-files.dylan: not-modified(headers: ...) @1083853803 re @1083853871 i hope i didn't just break something with that checkin...i'm getting this weird error now: @1083853883 [bin] mars| ./koala-app @1083853883 Cannot add-method {: ??? ()} in {} to sealed generic {: avalue-alist}. @1083853883 zsh: 17458 trace trap ./koala-app @1083853883 exit status: 133 @1083853910 but i did see it before, in windows. come to think of it, i think it is related to compiling in tight mode. @1083854012 [hannes!~hannes@port-195-158-171-122.dynamic.qsc.de] ACTION hit ctrl + alt + backspace accidentaly :( @1083854043 does that restart X ? (vague memories...) @1083854052 it quits X @1083854082 i wanted to hit ctrl + alt + enter for a new xterm ;) @1083854136 yikes. you might want to consider changing some key bindings @1083854227 he, alt + enter also opens a new xterm... so i already changed key bindings, but still used the old binding ;) @1083854274 it seems to be a frequent prank to ask people to do a backward-kill-sexp in emacs (M-C-Backspace) @1083854474 -dircproxy- You disconnected @1083854507 -dircproxy- You connected @1083854896 -dircproxy- You disconnected @1083855214 -dircproxy- You connected @1083855396 -dircproxy- You disconnected @1083855415 -dircproxy- You connected @1083858038 -niven.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1083858063 re. @1083858108 hi gabor @1083858119 hi peter! @1083858800 -dircproxy- You disconnected @1083862343 -niven.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1083862704 -dircproxy- You connected @1083863470 -niven.freenode.net- hannes (~hannes@217.231.182.22) joined the channel @1083863471 re @1083864047 <^self!~fn@66.209.66.105> hi @1083866179 Hi! @1083866257 I've just been trying out the new fsfs backend of subversion on the gd repository @1083866264 It's a lot more space-efficient: @1083866274 225012 gd/db @1083866274 556286 gd-bdb/db @1083866326 398886 /var/lib/cvs @1083866644 (actually the CVS figure is an underestimate, because the subversion databases are the result of merging the old CMU RCS repository and the current CVS one) @1083868378 -niven.freenode.net- pritlove (~pritlove@d213-102-40-241.cust.tele2.ch) joined the channel @1083868627 hi tim @1083872410 -niven.freenode.net- bfulgham (~chatzilla@63.192.83.15) joined the channel @1083875353 hi brent @1083875353 <^self!~fn@66.209.66.105> eh. @1083875790 Re. @1083875816 With the new backend, I'm inclined to reconsider subversion. @1083875816 hi andreas @1083875856 yes... I think we should switch over when 1.1 is released @1083876443 -niven.freenode.net- pritlove (~pritlove@10.24.76.83.cust.bluewin.ch) joined the channel @1083876828 -niven.freenode.net- jemfinch|lambda (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1083876855 where can I find more information on this statement about Dylan: "Exceptions are object-based. Handlers can resume or abort the code that signaled the exception. The exception system is built on a documented substrate for non-local flow of control." @1083876894 you could read the Dylan Reference Manual, or you could ask us... @1083876973 how about I do both? :) Where's the Dylan Reference Manual? @1083876976 http://www.gwydiondylan.org/books/drm/drm_52.html is the chapter on the exception system @1083881346 -niven.freenode.net- bhoult (~bhoult@morannon.eservglobal.co.nz) left the channel @1083881393 -niven.freenode.net- bhoult (~bhoult@morannon.eservglobal.co.nz) joined the channel @1083883027 -niven.freenode.net- buggs^z (~noidentd@pD9E95F69.dip.t-dialin.net) joined the channel @1083885657 -niven.freenode.net- pritlove (~pritlove@152.191.62.81.cust.bluewin.ch) joined the channel @1083893302 -dircproxy- You disconnected @1083893320 -kornbluth.freenode.net- You joined the channel @1083894491 -kornbluth.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083894562 Is there a writeup for the 2000 ICFP? We're talking about it over in a private chat and I wanted to relay the details of what happened WRT OpenGL. I know some of you have been working on improved OpenGL support since then. @1083895245 -kornbluth.freenode.net- pritlove (~pritlove@152.191.62.81.cust.bluewin.ch) joined the channel @1083898265 No, I don't think we have a writeup for 2000 @1083898284 I manage to get motivated to write one when we're hours from getting slashdotted @1083898295 no one else has yet been motivated to write one @1083898322 slashdotting didn't happen in 2000 or 2002 because we didn't do that well @1083898975 Can you remind me what the issue was? I thought there was some problem where it couldn't be done (completely?) in Dylan. @1083899865 problem? @1083899866 no @1083899868 in 2000? @1083899889 we just didn't get all the features finished in time @1083899960 http://www.cis.upenn.edu/proj/plclub/contest/faq.php @1083899981 The ICFP contest is again (like last year) going to be ab offline one, with just a text result file submitted @1083899999 that may mean that safety again doesn't matter :-( @1083900012 It may mean that people with lots of CPUs have an advantage @1083900041 I just had a really evil idea, and Keither an Alex and I are following up with our various contacts at the moment. @1083900064 Clue: http://news.bbc.co.uk/2/hi/technology/3672887.stm @1083905928 -dircproxy- You connected @1083906218 hmmm @1083906266 ? @1083906347 your clue... it has a ring of plausibility @1083906384 I'd hate for ICFP to just be an arms race @1083906397 .. but if it is, why take a knife to a gunfight? @1083906607 It would make for a good /. story too :-) @1083906659 anyway, we're asking. THe worst that can happen is they say "no" @1083909776 -kornbluth.freenode.net- brucehoult (~bruce@202-0-61-111.adsl.paradise.net.nz) joined the channel @1083912268 commit by housel to fundev: Bug: 7003 @1083912268 Until the old build-system is eliminated, document the confusing array @1083912268 of substitution variables it uses. @1083920665 bruce: what OS is that renderfarm running? @1083920704 [gabor!root@cantor.gwydiondylan.org] ACTION thinks "IRIX" is the wrong answer @1083920764 isn't there an XGrid for trial somewhere? @1083920970 -kornbluth.freenode.net- pritlove (~pritlove@56.254.186.195.cust.bluewin.ch) joined the channel @1083920981 hi tim @1083923954 -kornbluth.freenode.net- brucehoult (~bruce@202-0-60-209.adsl.paradise.net.nz) joined the channel @1083924148 gabor: linux I think @1083924406 hi bruce! x86 linux? @1083924567 I don't knot @1083924568 know @1083924588 may be ppc @1083924675 it's a long shot anyway @1083926293 -kornbluth.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1083926295 hi @1083927479 -kornbluth.freenode.net- jemfinch|lambda (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1083927499 hi hannes, jem @1083940565 -kornbluth.freenode.net- jemfinch|lambda (~jfincher@140.254.57.33) joined the channel @1083940665 hmm. @1083941257 -kornbluth.freenode.net- hannes (~hannes@pD9E7B830.dip.t-dialin.net) joined the channel @1083941519 hmmm? @1083941540 hmmm. @1083941632 I was wondering how easy it would be to implement Python in Dylan. @1083941637 re @1083941637 and how fast the resulting interpreter would go. @1083942488 just try it. I once wrote a mc68k assembler interpreter in dylan, it was interesting @1083942524 gabor: meh, I'm probably not good enough, especially since I don't know Dylan right now. @1083942539 gabor: Dylan can do dynamic classes, though, right? @1083942594 not d2c. FD can. But you probably won't map python classes to dylan classes anyway @1083942705 why not? @1083942721 Dylan can do metaclasses, can't it? @1083942947 because a pyton class may better be modelled as a in dylan. Esp. in an interpreter. @1083942988 no, dylan has only one metaclass: , and since it has no MOP, you cannot create more @1083943014 see the FAQ in wiki: monday.sf.net/wiki @1083943036 why does Dylan have no MOP? @1083943143 it is hidden in the compiler. you open a can of worms (performancewise, not conceptually) when you make the MOP accessible to users @1083943173 yeah. @1083943194 I don't know if I'd make the same trade-off if I were writing my own language, though. @1083943293 anyway, I gotta run :) @1083943298 thanks for the help. @1083943299 -kornbluth.freenode.net- jemfinch|lambda (~jfincher@140.254.57.33) left the channel @1083944343 -kornbluth.freenode.net- pritlove (~pritlove@81.218.186.195.cust.bluewin.ch) joined the channel @1083946938 -dircproxy- You disconnected @1083948535 -dircproxy- You connected @1083950404 -kornbluth.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1083951252 -kornbluth.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1083951253 re @1083953482 -kornbluth.freenode.net- buggs^z (~noidentd@pD9E97D1E.dip.t-dialin.net) joined the channel @1083954757 re @1083954790 Sometimes it seems like you can't win. Either somebody complains Dylan isn't dynamic and introspective enough, or it isn't "static enough." @1083954822 Just yesterday someone was arguing that Dylan allowed "accidental dynamism @1083954828 [ignore that] @1083954859 accidental dynamism? @1083954894 Just yesterday someone was arguing that Dylan allowed "accidental dynamism," in the sense that if there was a function named, say, "open()," and you defined your own method with the same name, you might unintentionally introduce dispatching overhead at runtime. @1083954911 I said that was simply not likely to occur and was never a problem in real-world programming. @1083954948 that's what fine-grained control over namespaces is for @1083954991 Yeah, well, then he complained when I said a real-world program would probably have open-file() and open-window(), not just an open() function for both. He balked that meant you had to put "warts" on names. @1083955012 bah @1083955050 I argued that a certain amount of disambiguation makes code more readable, and that "creating a file descriptor" and "displaying a UI window" are two separate concepts, anyway. @1083955075 Anyway, can you see the stuff I have to deal with? Feh! :-) @1083955087 where was that discussion taking place? @1083955114 Private chat. @1083955151 To be fair, I remember thinking something similar when someone explained generic functions to me back in 1989. @1083955248 But what's really going on here is he's coming from the C++ world where you really care about micro-performance and you only use "virtual" when you're sure you need it. There's a certain level of paranoia about performance, which I can understand, but switching to Dylan means having to become comfortable with a slightly different way to look at programming. @1083955345 I also appreciate the desire to be able to use variables to indicate namespaces so you could write my-window.open() or some-file.open() as in C++. However, that's just not compatible with the idea of dynamic typing and optional type declarations. @1083955414 The real trick is that it's necessary to get someone to commit to learn enough Dylan that they can look at real-world programs to become familiar enough with Dylan to decide to pursue it further. @1083955439 ...for many people, at least. @1083955594 To do that, you often need a "killer app." Either a library that does something they need enough to warrant writing application code in Dylan, or a program they want to use and modify. But everybody wants something different. So when I have these discussions about Dylan I get a million different "does it have X" questions, which can sometimes be a little overwhelming. @1083955612 yes @1083955719 People are simply skeptical when I claim Dylan is better, and when I try to show small examples I may get some "oh, yes, I see" responses, but I also often get "but that's just one small thing." The killer feature of Dylan is its sum total. There isn't really one feature you can point at and have most people go, "oh, yes, that's what I need." @1083955795 So the trick is getting someone to listen long enough to see the overall picture of Dylan. Maybe I should host a Dylan class and give away a free lunch with it. @1083955818 btw, where are docs about the new svn backend andreas mentioned yesterday? @1083955823 right... it was built by people with experience using dynamic programming languages, and knowing what worked, not as a one-trick pony @1083955850 hannes: just as sec, let me find the URL @1083955939 To be more accurate, there are several people who keep coming back for more discussions and to ask more questions, but most of them have yet to actually try the language. @1083955952 why has NFS been causing X applications to hang since 1991 or earlier? argh. @1083955969 http://web.mit.edu/ghudson/info/fsfs @1083956573 The open-window, open-file, open-fire example is informative. I remember asking how to get a ~delete-style destructor on Dylan objects so I could deallocate window resources. Then I realised that hiding the lifecycle with what is, in effect, a big fat virtual method called delete(), could be Considered Harmful. Clear, explicit naming is a win over ambiguous, overly-overloaded short names. @1083956628 I haven't been a grad student, but I still find this funny: @1083956788 http://www.phdcomics.com/comics/archive.php?comicid=296 is probably my favorite @1083956806 that's about where I am in my Ph.D. program right now... @1083956930 Well, in the specific case of delete, I think that may not be an issue. New and delete are so ubiquitous it's pretty clear what's going on. For comparison, most of the standard Dylan names are short. This is fine when the concepts are very generic and commonly used, like make(). In fact, I've always been a little bothered by object-class(). Why isn't it just class()? @1083957029 To answer my own question, although "foo.class" might seem nicer than "foo.object-class", the fact is you shouldn't be looking directly at classes very often (instead, you should use instance?() or a purpose-built predicate for your class). @1083957076 housel: heh @1083957176 But delete's ubiquity makes it tempting to use it to hide lifecycle rather than just as a failsafe clean-up mechanism. Which bites you when you move from C++ to Java... @1083957299 with-open-frobozz()...end; is a much nicer way of managing lifetimes @1083957317 I'm not sure how delete hides lifetime. @1083957336 Yes, I generally prefer with- macros to make the scope/lifetime more visible. @1083957342 I've argued that, myself. @1083957367 I think delete actually makes the lifetime more visible than using stack allocation. @1083957378 Yes, I like with.... @1083957442 I agree with others who complain that Java doesn't have destructors, because it also doesn't have with- macros. @1083957451 I think you really must have one or the other. @1083957464 But delete is the very, very end of the lifecycle. It's more for the compiler or malloc(). You want close-window(), shut-file(), cease-fire() long before then. And in Java, the finalizer may not get called for ages, or at all, so the paradigm breaks there, (Erm, Java has finalise(), but it won't get called until GC, or perhaps not at all). @1083957471 Requiring everyone to write explicit cleanup clauses is just asking for bugs. @1083957517 with-* is better than delete(). Scope guards in C++ are the equivalent of with-*. @1083957522 Right, finalization isn't lifetime management. @1083957547 But delete gets used as both finalization & lifecycle... @1083957647 The problem with { MyType x; } is that it isn't clear there's a life-cycle really going on there. In real-world code where you have a bunch of locals, it isn't clear which ones are "just variables" and which ones are "executing functions at start/end of lifetime." Perhaps this is also more of a concern in a language that leans towards side-effecting code. @1083957700 ...especially when you consider { MyType x, *y; }. x is automatically deleted, y isn't. @1083957770 I use WithWhatever whateverGuard(whatever); @1083957774 robmyers: I'm still not clear on how delete hides life-cycle, though. It's clear that delete ends the life of an object, just as it's clear that new (or make) is the beginning. @1083957785 Which looks like a with-macro() @1083957800 It doesn't neccessarily hide it, but misuse by programmers means that it does. @1083957809 Yes, that's closer to with-. @1083957829 The classic example being the C++ programmer who converts to Java and writes a database class that disposes of the connection in finalize()... @1083957973 On a separate subject, have you seen Moon's comments on s-expresions being a bad representation for programs (at the data level, not syntactically): http://lispmeister.com/cgi-bin/blosxom/lisp-news/moon-on-s-expressions.html @1083958008 yes I saw that (on cll yesterday) @1083958034 I agree completely, though I think a lot of c.l.l people don't get it @1083958037 There's a whole page of comments on Paul Graham's site. I'm intrigued by the idea that Moon worked on a Dylan compiler after leaving Apple. @1083958046 Really? That's interesting. I'll have to read that. @1083958053 Well they're so used to bracket trolls... :-) @1083958117 I thought a lot of the problems could be worked around by fatteningf up symbols to allow more data to be attached. @1083958164 with proplists, symbols are already fat enough @1083958261 True. So you could add the source to the proplist, maybe... @1083958276 conses don't have proplists, though @1083958386 But a funtion name symbol would, wouldn't it? @1083958408 the main pain is all of the unnecessary destructuring you have to do over and over again @1083958441 it's better to build a parse tree that has exactly the fields you need in its AST nodes @1083958475 and where you can distinguish between different constructs by looking at the AST node type @1083958509 "Maybe someday I can explain to you the representation of programs I used @1083958509 in the Dylan compiler I wrote (never finished) after I left Apple." @1083958518 I wonder what he's referring to. @1083958528 ME tOO @1083958538 he says later he'd have to fetch it from backup @1083958542 Liam, get off the caps lock0... @1083958576 But he wrote that ages ago, it's from the ARC suggestions page. Maybe we can gently remind him. :-) @1083958594 2 years ago I think @1083958748 So CLOS would be better for writing a Lisp compiler. But that's still built on Lisp. @1083958762 sure @1083958825 Right. A compiler and compiled code are abstractions and should have the insulation of an interface. @1083958967 Hmmm. You could still represent the code as mutable data through an interface. @1083959376 [housel!housel@cantor.gwydiondylan.org] ACTION wishes he knew where fundev/Sources/lib/run-time/pentium-win32/make-reloc.exe came from @1083959609 housel: from /pizza/mushroom/noer/beta17/build/i386-cygwin32-x-i386-cygwin32/newlib/libc/sys/cygwin32/ ;) @1083959703 heh @1083960383 cpage: Regarding new IDEs - http://acg.media.mit.edu/people/jarfish/codefocus/ @1083960967 Thanks. I've seen those before. I especially love Plate. @1083961018 Prolog is interesting. It's s-expressions under the hood (well, clauses), remapped by its operator system. so foo([1,2,3], X):- X = 1. becomes something like :-(foo, .(1 .(2) .(3)), X, =(X, 1)). Arc wants something similar for its "syntax". @1083961029 I'm anxious to see more of their work. @1083961064 Now, Dylan could be represented clausally (everything's a function call), and \+ . \:= etc. could be remapped by an operator system, just like Prolog. It would make macros easier. :-) @1083961075 (When I wrote that I meant codefocus, but I'm also interested in Arc.) @1083961093 cpage: Yes, they haven't done much recently (both cases. :-) ) @1083961138 whoops, .(1 .(2 .(3))), well, you get the idea... @1083961315 While I'm too worn out at this point in the week to have an intense argument, I think _Moon_ doesn't get it, not Lispers. S-expressions aren't intended to be the actual AST that the compiler operates on; I don't know of any compilers that use S-expressions as the actual AST representation, except for Twobit (where S-expressions are just a convenient representation when it was written; the AST code could be rewritten to use it @1083961363 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION tries to imagine Moon not getting Lisp. ;-) @1083961454 Moon's point isn't about what compilers use, it's about what program-writing programs use. @1083961467 He's saying that cons cells aren't abstract enough. @1083961483 With which I agree. @1083961522 I think Scheme is a lot better in this regard, because Scheme makes an explicit program/data distinction @1083961528 How much more abstract can you get? A single cell? :-) @1083961534 An explicit program/data distinction? @1083961589 Cons cells are implementation details. You don't usually get much lower-level than a single cell. @1083961590 if you look at RnRS, it never says that load calls read or anything like that @1083961618 the semantics are defined in terms of program syntax, not in terms of symbols and cons cells @1083961641 Nor is LOAD particularly useful in arguments such as these, as it is well-known that it is both optional and a bad design. @1083961722 plus, as Moon notes, hygienic macros require something more @1083961823 Certainly; I'm not disputing that. But that's not an argument against using S-expressions for syntax. Macro implementations, and compilers, are free to choose whatever AST representation they like. @1083961856 Moon explicitly says he's talking about compiling, not syntax. @1083961900 Then he's not really arguing anything useful, is he? As I said, rarely do any Lisp compilers really use S-expressions for the AST. @1083962075 -kornbluth.freenode.net- brucehoult (~bruce@202-0-60-62.adsl.paradise.net.nz) joined the channel @1083962164 No, I think the point is what program-writing programs use, and that includes macros. @1083963713 Hmmm... How do I access a class slot in CLOS without having an instance of the class? @1083963830 I assume it's the same as in Dylan: You don't. @1083963864 Ew. @1083963898 Class allocation is an implementation detail you aren't supposed to be concerned with. @1083963917 OK, I'll move the instances hashtable to a global, then. :-) @1083963936 If an interface wants to give you access to something not requiring an object, it exports a function that doesn't require an object, along with the class and its slot accessors. @1083963977 (Speaking from a Dylan perspective. I can't speak authoritatively about CLOS.) @1083964168 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION makes a mental note of the pattern. @1083964260 If you want class slots -- and not each subclass slots --, just use a global variable. @1083964270 In contrast, in C++ or Java almost everything is inside one class declaration or another. In Dylan (and I presume CLOS) class definitions are much simpler entities and you use a combination of pieces to define an interface, orthogonally to class definitions. @1083964314 Oh, yes, classes aren't namespaces in Dylan/CLOS. They are in C++/Java. I often find myself torn between a namespace and a class in C++... @1083964387 Scott Meyers essentially recommends leaning the Dylan way. Keep your class declarations simpler and use non-member functions when possible. @1083965800 Goodnight, all. @1083971599 -kornbluth.freenode.net- pritlove (~pritlove@26.152.62.81.cust.bluewin.ch) joined the channel @1083975750 -kornbluth.freenode.net- hannes (~hannes@217.231.162.242) joined the channel @1083975752 re @1083978920 -dircproxy- You disconnected @1083982479 -kornbluth.freenode.net- pritlove (~pritlove@26.152.62.81.cust.bluewin.ch) joined the channel @1083982479 -kornbluth.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083982479 -kornbluth.freenode.net- chandler (~chandler@64-145-60-36.client.dsl.net) joined the channel @1083982582 -kornbluth.freenode.net- pritlove (~pritlove@26.152.62.81.cust.bluewin.ch) joined the channel @1083982582 -kornbluth.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1083982582 -kornbluth.freenode.net- chandler (~chandler@64-145-60-36.client.dsl.net) joined the channel @1083985097 -dircproxy- You connected @1083985522 -dircproxy- You disconnected @1083986607 -dircproxy- You connected @1083986617 re @1083987073 -dircproxy- You disconnected @1083987188 -dircproxy- You connected @1083989169 commit by housel to fundev: Job: minor @1083989171 Remove a patch artifact. @1083990014 -dircproxy- You disconnected @1083992997 -dircproxy- You connected @1083995276 -kornbluth.freenode.net- brucehoult (~bruce@202-0-45-13.adsl.paradise.net.nz) joined the channel @1083997932 What's a "Job," anyway? I've seen "Job: foo" in some commit comments. @1083998363 it's just alternative syntax to "Bug:" @1083998385 and there are some fixed names you can use instead of bug humbers @1083998428 http://gwydiondylan.org/cgi-bin/cvszilla/job.cgi @1083998493 So if I correct spelling errors on a web page I don't have to open a bug? I can just commit the change with "Job: website"? @1083998556 yes @1083998569 Excellent. @1083998602 BTW, the link on that page that says it goes to a description of each job is b0rken. @1083998671 The "click here" link. @1083998902 BTW unless there are objections I'm going to commit bug 7004 (removing fundev/build) tomorrow morning (PDT) @1083998930 The build directory got into the repository? @1083999029 [Looks at the bug.] OIC. @1084010150 cpage: re. object-class, you cannot have class here because it is a define-word @1084011616 I thought define words were only significant after "define". No? @1084011646 In fact, the name of the macro is "class-definer". @1084012634 -kornbluth.freenode.net- pritlove (~pritlove@26.152.62.81.cust.bluewin.ch) joined the channel @1084013018 -dircproxy- You disconnected @1084013540 yes, but class-definer macro reserves a define-word "class" (IIRC) @1084013565 not that sure anymore ;-) @1084014085 yes, but aren't define words only significant within a "define"? @1084016063 [gabor!root@cantor.gwydiondylan.org] ACTION does not know @1084016090 I'm pretty sure "define words" don't exist. @1084016119 I'm pretty sure "define" takes the define word, adds the "-definer" suffix, then resolves the name to get the appropriate macro. @1084016176 ie., "class" is not a name in the dylan module. @1084016233 However, from the human perspective, it may make more sense to give the function object-class() this longer name, because it should rarely be used. @1084016360 the BNF specifies define-body-word and define-list-word @1084016422 Sure, the compiler stores the names in a table, but they aren't in the module namespace. They're looked up explicitly within certain contexts. (AFAIAA.) @1084016572 This is surprising: I was looking through the DRM index for "define word" when I came across "define inert domain". The page it points to correctly calls it "define sealed domain". Somebody forgot to delete the old "inert" index entry. @1084016752 @1084016772 "The name bound to a definition macro is the macro's define-body-word or define-list-word suffixed by "-definer". This suffixing convention is analogous to the naming convention for setters and allows the define-body-word or define-list-word to be used for another purpose." @1084016809 inert ---> typo this is in the errata @1084016855 good reference, btw. @1084016890 In the BNF, define-body-word is only in the grammar for "define ..." and "end ...". @1084016895 @1084016907 anyway, overloading \class in a way you suggest is not healthy. I still prefer object-class. @1084016974 The following reserved words are exported by the Dylan module: @1084016975 begin-word: @1084016976 one of begin block case for if method @1084016979 one of select unless until while @1084016980 function-word: @1084016981 (none) @1084016983 define-body-word: @1084016984 one of class library method module @1084016986 define-list-word: @1084016987 one of constant variable domain @1084017004 I didn't "suggest" it, though, I merely discussed it. @1084017005 from http://www.gwydiondylan.org/drm/drm_117.htm#HEADING117-0 @1084017018 ok :-) @1084017129 The core set: define end handler let local macro otherwise @1084017140 I love that that's smaller than the keywords list of C. @1084017183 'Course, I think it would be even better if handler, let, local, and otherwise weren't core words. @1084017513 but we agree now that "class" is reserved? @1084017628 "reserved" in what sense? As far as I am aware, "class" only means something when in the define-boyd-word position in the grammar. @1084017735 There is no module binding "class," and it is not a core word recognized specially by the compiler as is "end," for example. @1084017752 at least d2c handles "class" (as verbatim) specially as opposed to \class @1084017784 so you can write "let \class = 42" but not "let class = 42" @1084017831 they belong to different syntactic categories @1084017855 The DRM discussion of "reserved words" is actually referring only to the "core words" in the grammar. @1084017902 Are you saying that if I define a definer "define macro i ..." that I could no longer use "i" as a local variable name? @1084018027 basically yes. (for sure when it is a function macro, or a statement macro) @1084018055 Well, of course for function and statement macros. They define unadorned names. @1084018069 [gabor!root@cantor.gwydiondylan.org] ACTION needs to check whether this is true for definition macros too @1084018075 But "define macro foo" defines "foo-definer", not "foo". @1084018137 @1084018200 [Ignore that URL. @1084018202 ] @1084018205 @1084018219 "A reserved word is a syntactic token that has the form of a name but is reserved by the Dylan language and so cannot be given a binding and cannot be used as a named value reference. There are seven reserved words in Dylan: define, end, handler, let, local, macro, and otherwise." @1084018238 @1084018293 "A user-defined defining macro is a macro that defines a definition in terms of other constructs. A call to a user-defined defining macro always begins with the word define and includes the name of the defining macro. This name when suffixed by "-definer" is the name of a visible binding whose value is the defining macro." @1084018351 // definition-syntax-info{} @1084018353 // -- method on imported GF @1084018354 // @1084018356 // For body-style define macros, strip off the -definer. @1084018357 // @1084018359 define method definition-syntax-info @1084018360 (defn :: , name :: ) @1084018362 => (real-name :: false-or(), category :: ); @1084018363 values(sans-definer(name), #"define-body"); @1084018365 end method definition-syntax-info; @1084018408 this is from the CVS @1084018412 @1084018431 "The new define-body-word or define-list-word becomes a partially reserved word in each module where the macro definition is visible. In particular a define-body-word or define-list-word cannot be used as a modifier in a definition. It can still be used as a variable-name." @1084018482 yes: It can still be used as a variable-name. @1084018519 define variable class = 4; @1084018525 [gabor!root@cantor.gwydiondylan.org] ACTION has to look whether d2c does the right thing @1084018594 I wonder whether the grammar parses that as "define {adjectives} class..." or "define variable {name}...". @1084018654 That quote seems to be saying you can't use "variable" as a modifier of "class," implying that it would be parsed as "define variable {name}..." but those could be orthogonal. @1084018856 define variable class = 0; @1084018857 begin @1084018859 let class = 0; @1084018860 end; @1084018861 Both work in d2c :-) @1084018877 cpage: you win @1084018900 Yay! :-) @1084018944 And that answers my question about how it parses "variable class". @1084018965 variable cannot be an adjective (it is partially reserved) so it is the second parse @1084018988 Phew! I was concerned it might mean define words collide with modifier words. @1084019013 Oh, I got that wrong. @1084019113 There *is* a collision between modifiers and define body words, but the result is that it handles the first word it finds that matches a define body word as a...define body word. @1084019149 ...rather than meaning it would prohibit "variable" from appearing before the word "class". @1084019193 So, now we can write: @1084019210 define constant class = object-class; @1084019231 and everybody who thinks "object-class" is too long are happy. @1084019256 right @1084019270 or just rename on import @1084019303 That's cheating. :-) @1084019358 Speaking of grammars and parsing, I found and fixed another bug in Melange. @1084019476 If I can get it to parse all of the Mac OS X Carbon headers, my next goal will be to have it handle umbrella frameworks automatically. @1084019533 You currently have to list every single framework that is indirectly used, making for long command line option lists and massive wasted time finding out which frameworks are used. @1084019550 good idea @1084019574 I've been at it for days. @1084019600 (Well, including the time spent fixing parser errors.) @1084019675 I was trying to build an interface for , but it took forever to get to the errors. @1084019722 I'm now just working with , but it surprisingly uses things like CFNetwork indirectly. @1084019886 Just added another --framework to my ever-longer command line. If this takes much longer I'm just going to implement umbrella support before proceeding. @1084019906 -kornbluth.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084019908 hi @1084019912 howdy @1084020489 In fact, it isn't clear to me why you have to supply --framework to Melange at all. @1084020518 It already has a list of paths to search for frameworks, and the #include path tells it the name of the framework to use. @1084025602 -dircproxy- You connected @1084025806 -kornbluth.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084025812 re @1084025850 hi rob @1084026184 Heya Peter @1084030765 commit by housel to fundev: Bug: 7004 @1084030765 Remove these files; they are (obsolete) copies of @1084030765 fundev/Sources/dfmc/c-run-time. @1084032397 -kornbluth.freenode.net- pritlove (~pritlove@86.152.186.195.cust.bluewin.ch) joined the channel @1084032864 -kornbluth.freenode.net- hannes (~hannes@pD9E7A2F2.dip.t-dialin.net) joined the channel @1084032866 re @1084039894 -kornbluth.freenode.net- buggs^z (~noidentd@pD9E97F25.dip.t-dialin.net) joined the channel @1084040249 -kornbluth.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1084040265 hi y'all @1084041143 hi rayiner @1084042464 oh, design question: What's the most Dylan-esque way to parse an XML file? @1084042523 In Python, I have the parsers be more or less auto-generated, using a lot of getattr/setattr's. Dylan doesn't have dynamic classes, though, IIRC @1084042558 commit by housel to fundev: Job: minor @1084042558 Remove this sparc executable; gema is easy to build. @1084042619 I've designed a SAX-like interface based on protocols @1084042657 FunDev does support class creation at runtime, though I've never been in a situation where I wanted to use it @1084042715 I didn't know fundev did that. I use it quite a lot in Python, but treating classes as tables is a Python idiom @1084042920 its pretty useful for this particular sort of thing, though --- my parser for gcc-xml's output files is driven by a big description table auto-generated by a script that analyzes a bunch of sample files to determine their format @1084043088 You might want to look at fundev/Sources/web/expat @1084044282 -kornbluth.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) left the channel @1084048300 Didn't Andreas write an XML system? @1084049724 Dylan supports class and type creation at runtime. AFAIR, FunDev is a complete implementation of Dylan. d2c, unfortunately, is missing this feature. @1084049794 I've always wondered whether creating classes at runtime was really something an application should do, or if that's just something useful for the development environment. @1084049845 ie., creating classes to represent your data at runtime seems a bit like self-modification, which can make programs harder to understand. @1084052475 The Fun-O documentation for "keyed-by" is terse. I can't figure out what it's supposed to do: @1084053982 what's so hard to understand about it? @1084054102 The description is completely opaque to me. What does "allows iteration over table elements" mean? @1084054122 What is the type of "my-key"? Is it a function? @1084054244 if you have a table with #"a" => 1, #"b" => 2, then for(value keyed-by key in table) ... end will execute once with value=1 key=#"a", once with value=2 key=#"b" @1084054285 it works for too, in which case the key argument will be integers @1084054346 Oh, so "keyed-by foo" introduces a binding "foo" and is assigned the key of the current element. @1084054370 yes @1084054417 So, I found it misleading that the description only says "allows iteration over table elements," as if that's all it did. @1084054442 I also find the name "keyed-by" misleading, as it sounds to me like select's "by". @1084054462 what would you call it? @1084054475 I've been trying to decide. @1084054507 What about changing the syntax so it looks more like a multiple-value let? @1084054526 for ((my-element, my-key) in my-collection) @1084054559 it's not clear in that case whether the key or the value should come first @1084054565 Right. @1084054586 for ((my-element, #key my-key) in my-collection) :-) @1084054677 "key," "and-key" @1084054777 for (e and-key k in my-collection) @1084054835 or with-key maybe @1084054867 Maybe, although that sounds a bit like the key is a filter or a parameter, when it's really a binding just like the element. @1084054895 ie., the problem I have with the syntax is that it isn't clear what's being bound and what's a "parameter" for the iteration. @1084055077 BTW, if "using" is almost always used for the backward-iteration-protocol, I'd like to see "backward" supported to make the common case clearer. @1084055096 for (e in my-sequence backward) @1084055380 In fact, the name "keyed-by" kinda makes me want: @1084055382 for (e in c keyed-by k) @1084055390 where k is a sequence of keys. @1084055671 ...or a function that generates keys. @1084055712 for (e each-key k in c) for (e with-key k in c) for (e and k in c) @1084055804 for (e key: k in c) @1084056296 for (key k and e in c) @1084056432 for (key k element e in c) @1084056617 [housel!housel@cantor.gwydiondylan.org] ACTION has been using it the way it is for 7 years with no complaints @1084056640 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION hasn't been using it because it's so hard to fathom @1084056645 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION :-P @1084056697 I'm certain it can be learned and used correctly without a huge effort, but as someone coming to it fresh I find it a little unobvious. @1084056717 If there was a clear winner it would be worth finding out what it was. @1084056771 It certainly sticks out a little compared to all the other words supported by "for". It's the only one that's hyphenated. @1084056792 When I first saw it I just remember thinking "oh, neat, they found a way of exposing some otherwise hard-to-access iterator-protocol functionality" @1084056820 Well, the documentation certainly didn't lead me to that reaction. Better documentation would help. @1084056860 But in the context of the language I really do find "keyed-by" leading me to think of "select (x by f)", and it bothers me that the meanings are disjoint. @1084056953 Aha! The Gwydion documentation is much better: @1084057135 I find the documentation a little weird, though, in that it says "Gwydion compilers support...", which I guess is true of Mindy, but in the case of d2c it's about what's exported by the Gwydion-supplied dylan module, rather than "the compiler," right? @1084057154 obviously @1084057202 "compiler" is being used loosely here @1084057245 Is subclass() an alias for limited(, subclass-of: ) ? @1084057279 yes @1084058168 Actually I think subclass() is the primitive nowadays, I doubt limited() would work @1084058598 So that documentation is defunct? @1084059456 I think maybe it works with Mindy but not d2c @1084059488 (or dfmc, for that matter) @1084063163 -kornbluth.freenode.net- hannes (~hannes@pD9E7A611.dip.t-dialin.net) joined the channel @1084063166 re @1084064444 Hmm. Melange doesn't handle this correctly: @1084064467 typedef int foo; struct { char foo; } @1084064498 It determines that the struct member "foo" is a type, making it a parse error. @1084065309 are you sure it's not? @1084065321 It's a standard system header. @1084065367 The data member "foo" is in the namespace of the struct, so x.foo refers to the data member, not the type "foo". @1084065931 I mean, the actual code that triggers this is in a standard system header. @1084065972 So, it looks like fixing it could require percolating some changes up through the grammar. I'll have to stair at it some more. @1084066044 s/stair/stare @1084066085 Or maybe the solution requires introducing namespaces per struct, if it doesn't already do that. @1084066144 (In terms of parsing, not Dylan code generation. Melange knows how to generate unique names for the resulting slot accessors.) @1084067689 Just did some experimentation and verified that at least one C compiler treats it exactly as a namespace issue. ie., the type "foo" is in the global namespace, but x.foo names "foo" in the struct namespace. The type "foo" does prevent me from using "foo" as a name for something else in the global namespace. @1084067755 typedef int foo; int foo; // not allowed, even though the second "foo" is obviously not a type name @1084068327 Is there any external documentation for parsergen? Do I need to go read the docs for the Lisp implementation? @1084071549 -kornbluth.freenode.net- hannes (~hannes@pD9E7A611.dip.t-dialin.net) joined the channel @1084071551 re @1084077154 -kornbluth.freenode.net- hannes (~hannes@pD9E7A611.dip.t-dialin.net) joined the channel @1084077155 re @1084079683 cpage: you could read the literate source of Son of Parsergen, found on the Monday website @1084080455 -kornbluth.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084085767 housel: I found an info-dylan message from you about Son of Parsergen, as it happens. Is /src/tools/parsergen/ Son of Parsergen? @1084088585 -kornbluth.freenode.net- brucehoult (~bruce@202-0-61-59.adsl.paradise.net.nz) joined the channel @1084093383 So, the C grammars I've found just use IDENTIFIER, whereas Melange uses both IDENTIFIER and TYPEDEF and only allows IDENTIFIER for struct member names. @1084093467 I'm trying to decide whether to adjust the grammar to allow either of IDENTIFIER or TYPEDEF in the struct name position, or just have it only deal with identifiers and check whether it's a typedef name elsewhere in the code. @1084093740 -kornbluth.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084093745 re @1084093751 hi @1084093772 NickServ says that IDNETIFY is an unrecognised message @1084093776 Heya Chris. @1084093861 I wonder why it would complain about "IDNETIFY". @1084098060 Well I can see why, but I actually typed IDENTIFY . :-) @1084098071 :-) @1084098082 -kornbluth.freenode.net- activist (~activist@dsl-dt-208-38-4-i187-cgy.nucleus.com) joined the channel @1084098105 is there a mod_dylan for Apache available? @1084098249 Andreas is working on one IIRC. @1084098278 status? (beta, dev, cruchy ;-) ...) @1084098288 ^cruchy/crunchy @1084098323 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION goes to bed to prevent keyboard marks on his forehead @1084098332 Erm. I don't know, you'd need to ask him (or someone better informed than I :-) ). There's a Dylan CGI library, and the Koala web server written in Dylan with its Dylan Server Page system. @1084098337 G'night Chris. @1084098381 Contact? (I'm not a Dylanist - yet. Chris has been lobbying, so I'm checking it out) @1084098391 Redarding mod_dylan, ask on the gd-hackers mailing list or try later when both the US and Europe are up. Erm, again. :-) @1084098416 I'm looking for a way to use Dylan in an Apache setup (not as an alternate server like Koala). @1084098444 OK. There doesn't seem to be anything in CVS for mod_dylan. You could try out with the CGI lib. @1084098463 Thanks for the pointers - I'll look around later. @1084098463 Actually, try to stick to a wider audience if possible. comp.lang.dylan is ideal, then info-dylan, then gd-hackers for Gwydion-specific discussion. I think it's important to maximize visibility. @1084098471 The list is on http://www.gwydiondylan.org/cgi-bin/mailman/listinfo/gd-hackers . @1084098480 thx. @1084098517 Or Peter (housel) will probably know more know if Andreas isn't around later (they're two of our most core people). @1084098521 OK. @1084098685 thx for the pointers. bye. @1084100906 -kornbluth.freenode.net- pritlove (~pritlove@73.101.202.62.cust.bluewin.ch) joined the channel @1084110017 -kornbluth.freenode.net- pritlove (~pritlove@114.123.77.83.cust.bluewin.ch) joined the channel @1084112072 -kornbluth.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084119166 -kornbluth.freenode.net- pritlove (~pritlove@203.117.76.83.cust.bluewin.ch) joined the channel @1084127887 -kornbluth.freenode.net- hannes (~hannes@pD9E7A611.dip.t-dialin.net) joined the channel @1084129066 -kornbluth.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1084129103 <^self!~fn@66.209.66.105> hi @1084133850 hi ^self @1084145491 -kornbluth.freenode.net- hannes_ (~hannes@pD9E7A902.dip.t-dialin.net) joined the channel @1084152440 -dircproxy- You disconnected @1084154462 -dircproxy- You connected @1084165434 -dircproxy- You disconnected @1084167550 -kornbluth.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084170932 -kornbluth.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084171678 e @1084171680 re @1084172659 -kornbluth.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1084172662 Morning! @1084172707 Evening! @1084172714 Hi Chris! @1084174663 -kornbluth.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084174707 I fired up my Newton 2000 and I'm reading some notes I wrote about Dylan in 1996 just after I joined Harlequin. It's interesting to see that they're still worth answering. @1084174723 s/notes/questions @1084174802 chris: put them on a web page. :) @1084174808 [andreas!andreas@cantor.gwydiondylan.org] ACTION has to leave now, later! @1084174855 "Does \let or \local have a value?" @1084175011 "Concrete subclasses of and vector>, and the types of elements of and are essentially unspecified..." @1084175211 "Can macros define macros?" @1084175221 Some of this stuff might already be in a FAQ. @1084175272 Some I should probably post for comment on c.l.d and publish the questions and answers afterwards. @1084179668 -kornbluth.freenode.net- pritlove (~pritlove@194.95.203.213) joined the channel @1084180664 re. @1084180678 chris: publish it in the wiki @1084180710 Can macros define macros? ---> sure, why not? @1084180732 It wasn't clear at the time from my reading of the DRM. @1084180856 but d2c probably cannot handle this yet @1084181983 <^self!~fn@66.209.66.105> hi. @1084197931 -kornbluth.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084197933 hi @1084198589 -kornbluth.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1084198677 -kornbluth.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1084200525 -dircproxy- You connected @1084201052 <^self!~fn@66.209.66.105> my pearpc attempt with macppccd.iso: @1084201052 <^self!~fn@66.209.66.105> http://web.nilpotent.org/tmp/root1.png @1084201052 <^self!~fn@66.209.66.105> a few seconds later: @1084201052 <^self!~fn@66.209.66.105> http://web.nilpotent.org/tmp/output.txt @1084201559 what is pearpc? @1084204267 -dircproxy- You disconnected @1084206136 -kornbluth.freenode.net- pritlove (~pritlove@dsl-082-082-097-189.arcor-ip.net) joined the channel @1084206955 -dircproxy- You connected @1084207050 -dircproxy- You disconnected @1084207093 -dircproxy- You connected @1084209375 -kornbluth.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084209503 -kornbluth.freenode.net- bhoult (~bhoult@morannon.eservglobal.co.nz) joined the channel @1084209707 -kornbluth.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1084214343 -kornbluth.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084215951 -dircproxy- You disconnected @1084222385 -dircproxy- You connected @1084222556 re @1084226557 -kornbluth.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084227249 -kornbluth.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084233631 -kornbluth.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084235756 http://en.wikipedia.org/wiki/Dylan_programming_language @1084235764 there are a few things here that should be corrected @1084235789 no links to Gwydion! @1084235808 init-keyword does *not* set getter and setter names @1084235832 most Lisps are *not* interpreters @1084235854 (but it's hard to generate tight compiled code) @1084235945 'The primary advantage of Lisp-like systems is that everything in the system, including the language itself, can be modified in the language.' -- uh, that depends on having a CLOS-based system with a MOP, which not even the CL standard mandates... @1084235958 right @1084236000 w.color-setter(.blue) means something *totally* different in Dylan! @1084236095 '...whereas in Dylan this completely unrelated concept is completely unrelated.' @1084236100 [housel!housel@cantor.gwydiondylan.org] ACTION tries to remember his wikipedia login... @1084236106 not all *that* happy with the general tone in paces either, but factual accuracy should at least be possible @1084236155 .blue? Huh? @1084236181 yuh @1084236213 looks like history doesn't go back far enough to find out who is responsible for these errors @1084236344 I"m not sure the aspect stuff makes sense either, but then I feel that way about aspect-oriented waffle in general @1084236971 AOP is very similar to exceptions. They allow you to enforce policies without spreading code all over the place to implement them. @1084237009 ie., the opposite of AOP and exceptions is having every function return an error result and pass along the results of all functions it calls. @1084237047 ...or having every function call a "before" and an "after" function around every function they call. @1084237157 I agree about the Wikipedia page tone. Wikipedia is generally very neutral when discussing hot topics like "syntax" and "dynamic vs. static". That page seems a little angry. @1084237188 Subjective? Where?? @1084237289 Even this quote right at the start of the entry seems contentious: " It was originally intended for use with Apple's Newton computer, but their implementation did not reach sufficient maturity in time, and they instead developed NewtonScript for that project." @1084237332 "developers avoided it even at the $29 price" Well, duh! It was unfinished and unsupported. @1084237368 That makes it seem like Apple couldn't sell Apple Dylan even at a cheap price, reflecting poorly on Dylan. @1084237400 Argh! That reminds me that I _really_ ought to get around to trying out the copy of Apple Dylan that Felix sent me. @1084237413 What copy is that? The TR? @1084237434 Yes, I believe so. @1084237456 "...and a university implemented..." Do you think it would kill them to mention CMU by name? @1084237477 Of course it would. @1084237488 Isn't that obvious? @1084237512 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION chuckles a little @1084237551 [housel!housel@cantor.gwydiondylan.org] ACTION remembers the trouble he went through to buy a copy of the Apple Dylan TR while living in Taiwan @1084237562 I think "terribly confusing syntax that most LISP systems use" is overdoing it. @1084237568 Indeed. @1084237586 way over the top, in fact @1084237871 "were quite good"? last I checked they still are @1084238135 Besides, "most"? @1084238510 -dircproxy- You disconnected @1084240010 -dircproxy- You connected @1084252521 -dircproxy- You disconnected @1084253977 -dircproxy- You connected @1084262329 -kornbluth.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084266717 -kornbluth.freenode.net- pritlove (~pritlove@194.95.203.200) joined the channel @1084267462 -kornbluth.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084267462 -kornbluth.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1084272542 -dircproxy- You disconnected @1084274875 Morning! @1084275033 <^self!~fn@66.209.66.105> hi @1084275866 <^self!~fn@66.209.66.105> http://www.omino.com/~poly/art/monominoes/movies/k20040509.mov -- 2mb @1084275998 [andreas!andreas@cantor.gwydiondylan.org] ACTION launches mplayer. @1084276446 -dircproxy- You connected @1084278867 hi @1084283466 -kornbluth.freenode.net- pritlove_ (~pritlove@194.95.203.200) joined the channel @1084286456 -kornbluth.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084290095 -dircproxy- You disconnected @1084293185 -dircproxy- You connected @1084293303 -kornbluth.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084299088 -kornbluth.freenode.net- pritlove (~pritlove@dsl-213-023-156-188.arcor-ip.net) joined the channel @1084299898 -kornbluth.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084299899 re @1084300936 -kornbluth.freenode.net- hannes (~hannes@pD9E7B389.dip.t-dialin.net) joined the channel @1084300938 re @1084301575 -kornbluth.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1084302644 Re. @1084302880 Heya Andreas. @1084302888 Hey Rob! @1084302904 Someone was asking after a mod_dylan on Sunday, did they catch you? @1084303441 Nope, not yet. @1084305555 -kornbluth.freenode.net- pritlove (~pritlove@pD9E7B389.dip.t-dialin.net) joined the channel @1084306367 -kornbluth.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084307660 -kornbluth.freenode.net- cpage (~Chris@67.118.119.204) joined the channel @1084307688 hi chris @1084308111 Hello Chris, Peter. @1084308146 hi @1084308176 Yeah, someone I know wanted to know if there was an Apache mod_dylan. What would it take to make one? @1084308208 one could use mod_lisp I think @1084308210 There's a hack to turn a Dylan application into a shared library with a defined entry point. @1084308213 What would such a mod_dylan do? @1084311332 the same thing most other apache mods do, stay resident in mem to prevent the overhead of loading on every request? @1084311347 Hi Carl. @1084311373 also it could be easier to convince management to go with mod_foo + apache than, say, Koala @1084311380 hi andreas @1084311469 were you actually working on mod_dylan? @1084311548 does NZ have koalas? or just AU? @1084311601 What I did was implementing support for producing shared libraries. There's no way to create predictable names for C convention call entries yes. @1084311619 yet @1084311651 It's a SMOP. :) @1084311664 andreas: smop? @1084311671 simple matter of programming @1084311687 unfortunately we have so many SMOPs :) @1084311731 cgay: Could you add any of the Fun-O people who might care to the CC: list of bug 6986? That's the bug I'm using to track the new splash screen, copyright dates changes, and edition-based restrictions changes @1084311733 well, _you_, really. seeing as how i'm not qualified for most of the low-level hacking that needs to be done @1084311794 I'm currently working on a list of all of the things in the code that differ between basic/enhanced/internal editions @1084311965 The technique I used for exporting entry points was to make a C global for the entry point, get it with the Melange interfaces, then set it to a callback entry. Voila, predictable entry point naming (as long as you start the Dylan runtime up). @1084312162 By the way, some of the weirdness in the handling of warning/error messages is because we have been building internal editions @1084312249 (the linux betas were internal editions too). @1084312401 cgay: NZ only has Koalas in the zoos @1084312415 Morning Bruce! @1084312427 we do have some wallabies in the wild -- introduced by man, and doing well. @1084312432 hi Andreas! @1084312453 commit by andreas to src: Bug: 7005 @1084312453 A is a standin for representations we know @1084312453 nothing but the C name of. @1084312463 Can't locate /var/lib/bugzilla/data/versioncache at @1084312463 /usr/share/bugzilla/lib/globals.pl line 636 (#1) @1084312466 Eek! @1084312472 that again :-( @1084312492 when someone edits stuff in bugzilla, that file is regenerated by root, without world read permissions @1084312522 I've been wondering what the best solution is @1084312541 perhaps making the cvs checking scripts setuid? @1084312570 fixing the umask of the generator would be better @1084312905 This time, I get: @1084312907 [Tue May 11 21:59:45 2004] processmail: Error in tempfile() using /var/lib/bugzilla/data/versioncache.XXXXX: Parent directory (/var/lib/bugzilla/data/) is not writable @1084313025 what was that from? @1084313030 CIA? @1084313032 [Tue May 11 21:59:45 2004] processmail: at /usr/share/bugzilla/lib/globals.pl line 529 @1084313076 hmm @1084313084 this stuff is actually in bugzilla itself, isn't it @1084313108 -kornbluth.freenode.net- prom_ (~prom@217.13.206.33) joined the channel @1084313110 re @1084313113 prom. @1084313115 re Prom @1084313117 hi prom @1084313250 my shell server is back so ill let this client running... just waiting for the user occopying my nick to change his nick, should he be there, so i dont have to kick them... @1084313267 s/them/him/ *gaga* @1084314185 commit by andreas to src: Bug: 7005 @1084314185 Implement passing C structs by value. @1084314187 commit by andreas to src: Bug: 7006 @1084314189 Porting latest work on GTK2 over from 2.5 branch to HEAD. @1084314624 -kornbluth.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084314779 -kornbluth.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084314781 re @1084314858 re hannes. @1084315984 commit by andreas to src: Bug: 7006 @1084315984 Fix dependency. @1084316133 http://www.gwydiondylan.org/cgi-bin/bugzilla/show_bug.cgi?id=6986 now contains the full list of what you can and cannot do in various editions of Functional Developer @1084316290 I think we need to maintain two editions (internal and ~internal), primarily for the debugging/error trapping related stuff @1084316300 most of the other restrictions can be removed @1084316867 commit by andreas to src: Bug: 7005 @1084316867 Special case for magic representations. @1084317499 -kornbluth.freenode.net- pritlove (~pritlove@pD9E7B389.dip.t-dialin.net) joined the channel @1084317517 housel: did you succeed in building on windows while i was gone? ill have a windows workstation in a couple of days... @1084317543 yes, see http://www.gwydiondylan.org/~housel/fundev-snapshot.html @1084317562 you need VC++6 to use it at the moment @1084317625 also it sometimes crashes in the garbage collector for reasons I haven't identified yet @1084317670 (Actually you can use it with VC++7, but the debugging info is incomplete) @1084317719 I now have my own copy of VC6 ($150 on ebay) so building snapshots should go a bit more smoothly in the near future @1084317731 The command line compiler doesn't seem to crash, so I suspect thread problems. @1084317736 housel: cool. @1084317752 andreas: *sigh* not again. i still havent solved the problems i had with libgc in framerd. @1084317777 andreas: the debugging.html file didnt help... as did the other documentation. @1084317866 housel: ah. cool that you own a copy. so we can make public release builds ;) @1084317922 Once I have the Jam-based build system going, I hope to make everything buildable with MinGW @1084318158 housel: wow. didnt notice jam before. the example on the homepage is nice. @1084318180 housel: do you intend to let jam know about dylan dependencies? is this easily possible? @1084318360 For now Jam is going to be used as a replacement for the build-system and linker-support libraries in FunDev, which are responsible for linking object files, running the resource compiler, running the C compiler, etc. as the final stages of a project build @1084318370 (also copying and installing files) @1084318386 Ok, I have backported the latest GTK2.0 version plus associated modifications to d2c and melange. @1084318425 Right now these libraries are a confusing mix of hard-coded logic and *.script files (which contain a confusing array of substitution variables) @1084318433 And will go home and to sleep now. Night! @1084318445 n8 @1084318728 housel: yeah, ive seen that. @1084318776 -kornbluth.freenode.net- pritlove (~pritlove@217.231.156.162) joined the channel @1084318934 why does almost everything having to do with building software end up in a confusing nightmarish shell-make-autofoo-dungeon which has to be fixed almost daily? *g* @1084319006 :-] @1084319013 -dircproxy- You disconnected @1084319099 i mean... the rest of FD is quite nice... it has its dark corners, but nothing is as buggy and hardcoded-supercomplex as the build system. @1084319432 but it is a complex problem... too many specific needs, hidden information, hacks.... its kinda like a mirror of the software world out there. building touches a large number of systems, which results in it having to deal with a lot of problems from different systems. @1084320709 -dircproxy- You connected @1084320826 using a real scripting language (Jam) should at least make porting and modification a lot more transparent than it is now @1084322912 commit by housel to fundev: Bug: 7007 @1084322919 Remove these obsolete binaries and include files. @1084324198 -dircproxy- You disconnected @1084325777 -kornbluth.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1084325821 -kornbluth.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1084326369 *lol* i just found out that VT102 terminals scroll faster in the USA than in Europe. @1084326381 at least in smooth scrolling mode. @1084326398 in the use its 6 lines per second (60 Hz), in europe 5 (50 Hz). @1084326466 s/use/us/ @1084333884 -dircproxy- You connected @1084333904 -zelazny.freenode.net- You joined the channel @1084333924 re Peter @1084333960 hi @1084355941 -zelazny.freenode.net- pritlove (~pritlove@194.95.203.225) joined the channel @1084367153 <^self!~fn@66.209.66.105> vonnegut: http://www.inthesetimes.com/site/main/article/cold_turkey/ @1084375695 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1084376342 oh man, it's too bad koala/linux isn't ready for prime time. we have so many web projects to do here and "oddball" languages are no problem @1084377092 so close... I've spent some time trying to get MPS to work on linux, but so far it keeps crashing @1084377157 :( @1084377191 I'll keep at it @1084377209 i'm just glad someone is working on it finally. i wish i had gotten started earlier on open sourcing @1084377240 I just updated http://www.gwydiondylan.org/cgi-bin/bugzilla/show_bug.cgi?id=6986 with more info about copyright dates, license texts, and edition-based restrictions @1084377245 i think you've made amazing progress on the whole thing @1084377289 I'd appreciate it if you could add Fun-O people to the CC: list to encourage them to comment @1084377516 i found a License.txt in the fun-o sources @1084377662 -dircproxy- You disconnected @1084377680 I attached it to the bug report @1084378588 I sent mail to fun-o folks about the bug. i don't want to add them to the cc list, as it may cause them to get spam (?) @1084379664 -dircproxy- You connected @1084379700 ok thanks @1084379799 are you guys getting "rhashem has changed their status to {away, online}" messages? Or is it just my IRC client? @1084379854 no, I don't see those (from you anyway, just cpage) @1084379885 good @1084380449 heh. i guess perl's version of (ignore-errors ...) is local *CORE::GLOBAL::die = sub {}; @1084380461 Hi folks! @1084380477 (from a recommended patch to File::Temp to work around Bugzilla errors) @1084380480 hi andreas @1084380484 Hi Carl! @1084381417 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084389244 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084389900 -dircproxy- You disconnected @1084390108 -zelazny.freenode.net- pritlove (~pritlove@pD9E79CA2.dip.t-dialin.net) joined the channel @1084393145 -dircproxy- You connected @1084393851 -zelazny.freenode.net- hannes (~hannes@pD9E79CA2.dip.t-dialin.net) joined the channel @1084393856 re @1084393994 hi hannes @1084394001 hi peter @1084397067 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084397069 re @1084397496 I can die happy @1084397506 I found out that kdevelop has a fullscreen mode @1084397511 1600x1200 of pure code! @1084397880 Boot into it and have a codeOS. :-) @1084397926 rhashem: btw, does kdevelop support dylan highlighting? @1084398385 hannes: nope :( @1084398464 But you can always use the VIM KPart in KDevelop @1084398515 bleah... I have enough trouble with code that exceeds 80 columns... in full-screen mode who knows what people would do... @1084398541 C-x 3 @1084398574 that's what i would do :) @1084398608 kdevelop (actually, KatePart) has incredibly good wrapping, though @1084398631 it wraps to the last level of indentation, instead of wrapping to the beginning @1084398691 I hope that 1600x1200 of pure code can be three columns showing different files! @1084398700 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION normally has 2 x 80 col emacs full-height frames, plus a stack of three xterms on the RHS @1084398713 bhoult: not an a 15" laptop screen... @1084399387 why not? 15" LCD is pretty similar to 17" CRT in actual size @1084399525 but three columns? @1084399573 80 lines is a nice ideal, but right now the file i'm looking at has 120 @1084399580 err, characters @1084399635 std::cout << foo::bar::baz::message << std::endl --- C++ uses up horizontal space real quick @1084399636 I've never seen a good reason to go over 80. @1084399722 your example is less than 80 @1084399746 if you have more things to print then put each one (plus any whitespace/delimiter) on a new line @1084399763 use'ing some namespaces wouldn't hurt either :-) @1084399773 ideally yes. @1084399789 In practice, other people aren't so nice to you @1084399802 then beat them with a clue stick :-) @1084399844 I don't think 100 or 120 is too excessive... @1084399887 ... but the single biggest reason I have for sticking religiously to 80 chars is that it allowed you to do 2 column printouts on A4 paper at a readable size, without wrapping/truncation issues @1084399891 i think _strictly_ limiting to 80 chars (as in a previous Java-coding job I had) is bad. Often there are times (error message strings come to mind) when going a bit wider doesn't hurt anything. @1084399928 C++ does make things worse, though. Namespaces have some annoying design deficiencies, such as not having a sane definition of 'using' in header files @1084399929 error message strings can be triviall split, as C/C++ lexers concatenate adjacent string literals @1084399941 hmm. i never print out code. @1084399954 but i know some people who like to @1084399958 bhoult: remember to use a \ though :) @1084399965 no! @1084399970 no \ @1084399982 G++ 3.3 doesn't accept it otherwise @1084399993 printf("this is a" @1084399999 "long literal"); @1084400009 oops .. needed a space, though :-) @1084400024 heh. i've run into that bug many times @1084400077 that g++ 3.3 won't accept is a run-on multi line literal @1084400082 that's a quite different thing @1084400087 .. which breaks indentation @1084400100 how so? @1084400118 because the run-on part starts right from the 1st column @1084400160 I don't have any problem with code that goes over 80 occasionally, it's mainly code written by people whose windows are so wide they have no idea where 80 is that annoys me @1084400176 it's usually worse for assembly than for C @1084400220 whoa. Good point. I have no idea how I missed that @1084400241 probably because I've never had occasion to use it that way... @1084400250 some editors have a nice feature of drawing a line down the target column (normally 80) @1084400278 (at least, i think it's a nice feature, but i've never actually used it so i don't know how annoying it would be) @1084400297 hmmm... maybe we can implement that in deuce @1084400337 cgay: hmm, you know if vim has this feature? @1084400352 no, never used vim @1084400367 I do admit that smart wrapping in the editor and/or print program would help a lot @1084400382 SlickEdit is where I saw it @1084400425 the last time I used Emacs FORTRAN mode (1989 or so) it drew a line down column 72 @1084400433 not so much when writing new code, but if you need to work with someone else's excessively wide code @1084400479 bhoult: For long XML documents, a smart wrapping editor is the only way to go @1084400577 otherwise, if you try to keep the XML-style indentation going, you need to keep reformatting your paragraph when you add something in the middle @1084400639 M-q works fine for me in PSGML-Emacs @1084400759 all statements regarding editors should usually be prefaced with 'excepting emacs' @1084400770 :-) @1084400952 Once again, using plain text files for program editing and presentation imposes unfortunate limits on readability. @1084400974 [cgay!~cgay@ita4fw1.itasoftware.com] ACTION sets his line prefix to 'excepting emacs' @1084400976 You want line-wrapping to be dynamic. @1084400995 I do? @1084401013 Well, either that you want to suffer through code with lines too wide for you to view in some instances. :-) @1084401049 But more important: We don't want just line wrapping, we need smart line-breaking that maximizes readibility. @1084401167 katepart does that @1084401171 eg: breaks at commas, spaces @1084401238 does it work well in practice? i mean does it get it right all the time? @1084401257 i assume if you explicitly enter a \n it respects it? @1084401371 I don't follow @1084401417 sorry. do you have to explicitly ask it to do the wrapping, or it does it automatically? @1084401448 it does it whenever the line runs over either the width of the window, or a pre-specified length @1084401491 ok. if you have explicitly typed a Newline will it ever remove that Newline? @1084401519 I've never seen it do that @1084401681 i c. so it probably just wraps from the beginning of line to the end of the line when certain chars (Space, Comma) are typed, and doesn't touch any other lines. I think Chris had in mind something a bit more radical @1084401950 I guess @1084401972 Well, bye all. Tomorrow's session: CVS log messages and why you should use them... @1084401991 c u @1084402233 bhoult: can cvszilla automatically resolve bugs based on the log message? @1084402247 If not would that be a desirable feature? @1084402948 can you expand on that? @1084402968 do you mean close the bug if you say "fixed", or the like? @1084402984 yes @1084402995 it doesn't do that @1084403012 "Bug: 7003 (Resolved)" maybe @1084403038 I expect it could be enhanced to do that easily enough @1084403063 just a matter of putting the appropriate entries into the appropriate sql tables @1084403233 Do you think that would be a good idea? @1084403316 I find that I often want to put a comment into bugzilla when closing a bug anyway -- one separate from the cvs commit comment, espeiclaly if there was more than one cvs commit against the bug @1084404368 heh. just asked a few people around here. Universal reaction was "why would yu want to do that?" @1084404421 Part of that may be because we give customers access to bugzillla, but have modified it so that cvs commit comments aren't visible to customers, and we have internal bugzilla comments the customer can't see as well. @1084404445 .. so if the cvs commit closed the bug the person who raised it would only se that it had been closed, not why @1084404461 none of which applies to gwydion @1084404524 hmmm @1084404538 -zelazny.freenode.net- hannes_ (~hannes@pD9E7A98E.dip.t-dialin.net) joined the channel @1084404544 re @1084404611 [hannes_!~hannes@pD9E7A98E.dip.t-dialin.net] ACTION thinks closing bugs with cvs commit is a good idea. @1084404615 more sensible people might wellof course make a distinction between a call tracking system and a bug tracking system @1084404646 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION doesn't object if someone wants to implement it :-) @1084405104 one problem is you'd want to change both the "resolution" and "bug_status" columns in the bugs table @1084405105 -zelazny.freenode.net- pritlove_ (~pritlove@pD9E7A98E.dip.t-dialin.net) joined the channel @1084405120 right @1084405211 so what you'd probably want to put is one of 'FIXED','INVALID','WONTFIX','DUPLICATE','WORKSFORME' and then set bug_status to 'RESOLVED' @1084405290 do we have any process for moving from RESOLVED to VERIFIED and/or CLOSED? @1084405380 not really... at work the release manager does it (back when we used to have one) @1084405469 I think we have quite a few bugs in RESOLVED/FIXED state that could be CLOSED because we have subsequently done a release @1084405497 exactly. here the tester sets VERIFIED and then the customer sets CLOSED when it's installed in production and they're happy with the fix @1084406535 -zelazny.freenode.net- pritlove (~pritlove@pD9E7A98E.dip.t-dialin.net) joined the channel @1084408529 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084410052 -zelazny.freenode.net- cpage_ (~Chris@208.240.243.170) joined the channel @1084412780 -zelazny.freenode.net- cpage__ (~Chris@67.118.119.204) joined the channel @1084413618 -zelazny.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084414260 -dircproxy- You disconnected @1084417629 -dircproxy- You connected @1084430207 -zelazny.freenode.net- bhoult (~bhoult@morannon.eservglobal.co.nz) joined the channel @1084438644 -zelazny.freenode.net- cpage_ (~Chris@208.240.243.170) joined the channel @1084438678 Moin! @1084440924 -zelazny.freenode.net- cpage__ (~Chris@67.118.119.204) joined the channel @1084440963 -zelazny.freenode.net- cpage (~Chris@67.118.119.204) joined the channel @1084443434 commit by cgay to fundev: job: 7001 @1084443435 "Build" -> "build", where appropriate @1084444864 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084445254 -zelazny.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1084445670 -zelazny.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084448348 -zelazny.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084448421 -zelazny.freenode.net- pritlove (~pritlove@194.95.203.203) joined the channel @1084451918 -zelazny.freenode.net- pritlove (~pritlove@194.95.203.203) joined the channel @1084454117 -zelazny.freenode.net- pritlove (~pritlove@194.95.203.203) joined the channel @1084454657 hey channel @1084454680 hi prom @1084454911 Hi prom, Peter. @1084456769 @1084456774 *grrrr* @1084458740 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1084459785 hi @1084461449 does anyone remember if FD has weak tables? what about GD? @1084461719 http://www.functionalobjects.com/products/doc/core/core_11.htm @1084461725 FunDev seems to have them @1084461783 GD doesn't @1084461824 thanks @1084463554 -zelazny.freenode.net- wm3 (~wm3@ZF129022.ppp.dion.ne.jp) joined the channel @1084464217 -dircproxy- You disconnected @1084464465 Hi. @1084464713 Bootstrapping failed. @1084464838 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084465165 . Bye. @1084467162 -dircproxy- You connected @1084467235 That was helpful... @1084468461 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084473114 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1084473360 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1084474744 -zelazny.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1084474864 -zelazny.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084475533 -zelazny.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084476745 -zelazny.freenode.net- hannes (~hannes@pD9E7A98E.dip.t-dialin.net) joined the channel @1084476749 re @1084476974 hi hannes @1084477035 it looks like MPS on linux is actually working (to some degree) on "real" linux, but isn't working in the FreeBSD linuxulator because the page fault sigcontext isn't being filled in properly @1084477082 haven't tried multi-threading yet @1084478795 fortunately fixing the linuxulator looks like a 1-line change @1084482166 maybe not so easy... the FreeBSD page fault handler throws away some information @1084482425 I can hack MPS for now though @1084484051 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084488000 -zelazny.freenode.net- hannes_ (~hannes@pD9E7B9E2.dip.t-dialin.net) joined the channel @1084488548 -zelazny.freenode.net- hannes__ (~hannes@pD9E7B759.dip.t-dialin.net) joined the channel @1084489274 aha... an MPS assertion failure while running the compiler @1084489292 hope it's related to the crashes on windows... should be easier to debug here @1084489416 good good... @1084491100 -zelazny.freenode.net- pritlove (~pritlove@212.222.128.123) joined the channel @1084493307 -zelazny.freenode.net- hannes (~hannes@pD9E7B759.dip.t-dialin.net) joined the channel @1084494844 -zelazny.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1084495295 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084495298 re @1084495780 hi hannes @1084495805 hi peter @1084496929 -zelazny.freenode.net- cpage__ (~Chris@67.118.119.204) joined the channel @1084497006 -zelazny.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084498169 -dircproxy- You disconnected @1084501064 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1084501102 cpage, if you see this, the following line causes dylan-mode to break: @1084501123 if (looking-at?("http://", buffer, bpos, qpos | epos)) @1084501148 if I remove the :// the problem goes away @1084501387 re chan @1084501393 [prom!~prom@217.13.206.33] ACTION has windows now ;) @1084501406 lucky dog @1084501437 too bad i dont have my vs 6.0 yet. @1084501504 did you get a new machine with windows? @1084501517 or installed it on an old box? @1084501593 i installed it on my workstation. on a spare disk i didnt need anywhere else. @1084502609 carlgay_: Yeah, I think it may be a general problem with how it parses strings. It's not ignoring stuff inside strings that it should. @1084502632 (or maybe I'm thinking of how it parses stuff inside comments incorrectly.) @1084502662 Please log a bug about this specific case. @1084502684 I'm doing some work on Melange. Once I'm done there I should have time to look at dylan-mode some more. @1084503129 ok @1084503462 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION just ordered a new machine @1084503527 Athlon XP3200+, Asus A7N8X-X MB. Should be a bit quicker than my current 700 MHz one @1084505363 bugzilla is glacial @1084505401 more likely to be the net connection @1084505413 it might be Perl, but it's on a 1.2 GHz machine @1084505496 hmm @1084505526 load average is over 5 @1084505551 what the hell is "logtail" and why is it using over a GB of RAM?? @1084505599 well I killed it @1084505606 we had essentially zero swap space left @1084505610 i just found out recently that our bugzilla at work is running on a 400MHz Celeron. :) it's also glacial @1084505631 thanks @1084505658 now lpd is using 30% cpu @1084505661 wtf? @1084505777 good luck and g'night @1084506800 Maybe the server needs a cron job that looks for unexpected processes and kills them. @1084507288 well, someone or something must have started it! @1084507306 oh f*ck @1084507312 load avg back up near 7 @1084507315 And delete their account. :-) @1084507318 kswapd working hard @1084507338 logtail back again and up to 239 MB @1084508059 /var/log/messages and /var/log/syslog were 1.7 GB!!! (I've nuked them to reclaim diskspace) @1084508257 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION thinks tinderbox went nuts somehow, but doesn't understand it @1084508283 load average now back under 1.0, plenty of free swap and disk @1084508333 logtail appears to be part of tinderbox. I suspect it reads the whole syslog into RAM @1084511351 -dircproxy- You connected @1084511562 why is the syslog that long? @1084511566 what was in it? @1084511575 well I didn't read *all* of it @1084511594 but if it's still happening we'll soon have some more :-) @1084511625 heh @1084511863 meanwhile the system is looking much healthier :-) @1084514059 debugging garbage collectors is such a pain @1084521877 <^self!~fn@66.209.66.105> hi. @1084526726 Morning! @1084529552 -zelazny.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1084529586 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084530950 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084530953 morning @1084531986 cgay: around? @1084532588 -zelazny.freenode.net- pritlove (~pritlove@217.225.3.135) joined the channel @1084533453 <^self!~fn@66.209.66.105> hmm. @1084533620 +1 @1084536156 -zelazny.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1084539832 -zelazny.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1084540453 -zelazny.freenode.net- hannes (~hannes@pD9E7B759.dip.t-dialin.net) joined the channel @1084542159 hannes: what's up? @1084542250 cgay: about virtualhosting, i already added request-host to request class, so we only have to prefix the document root with request-host. @1084542328 I think the main issue is making it all configurable @1084542454 I'm planning to make invoke-handler dispatch on and i think @1084542670 actually, your log message showing the Request-Host was what got me started working on it @1084542680 i like how virtual hosting is done in thttpd, you've one directory for each virtual host which name is the hostname. you can only configure to enable virtual hosting or not, if you enable virtual hosting, it looks in document-root/hostname/ @1084542759 do they allow for different security policies for different vhosts? @1084542863 hey, i found an amusing bug in the directory listing code. you (or tim?) aren't in a negative timezone offset, i guess :) @1084542953 cgay: yes, we're both in gmt+1/2 (depending on daylight saving). what do you mean with security policies? @1084543005 what we need are configurable status codes (for redirects,...) @1084543044 just that apache allows you to specify different authorization types for each vhost. different password files etc @1084543150 i guess thttpd must canonicalize the host name to fqdn before looking up docs @1084543263 apache has for each directory a htacess/passwd. i don't like the idea of htaccess/passwd, one (or more) config file(s) where you specify user + password + url are better (these files should be in the config-directory) @1084543370 can you expand on that? what's the url for? @1084543579 isn't that basically what htaccess/passwd _is_? one or more config files where you specific username/password @1084543589 sth like foobar. you need a unique identifier if you have all access lists in one file and not one file per directory @1084543650 specific -> specify @1084543693 XML is soooo ugly. i'm of two minds about using it sometimes. @1084543941 i don't see anything in the thttpd docs about what happens if the site is reached by an alias hostname @1084543955 i guess you just create links to the main dir @1084543982 that sounds reasonable @1084544143 (will that work on Windows?) @1084544534 not really @1084544737 i really want to keep it cross-platform @1084546539 my take on xml is that it's The Right Thing for documents, but overkill for config files or communications protocols @1084546869 sounds reasonable @1084547122 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084548601 commit by cgay to libraries: job:minor @1084548601 minor mods @1084548688 commit by cgay to libraries: job:minor @1084548688 Fix minor bugs in directory listing @1084548793 commit by cgay to libraries: job: 7010 @1084548793 checkpoint vhost.dylan (not yet included in build) @1084548818 versioncache schmersioncache @1084548847 -dircproxy- You disconnected @1084549005 Hi Carl! @1084549142 I've done some more research on the Linux FD crashes. It happens when a new thread is created while another one collects garbage. I'm not entirely sure what the mechanics are yet, but it might have to do with recent design changes in glibc, in the form of a "manager" thread that's actually responsible for spawning new threads. @1084549194 Both the GC'ing thread and the manager thread throw around signals. There's core running where Boehm expects none to be active. @1084549200 s/core/code/. @1084549216 I'll try to add some gratitious locking to Boehm. Maybe this helps. @1084549271 [andreas!andreas@cantor.gwydiondylan.org] ACTION is going to CCC, brb. @1084549308 hi andreas @1084551287 Re. @1084551449 -dircproxy- You connected @1084551501 hi andreas @1084551553 Hi Peter. @1084551593 Garbage collector problems are tough, I agree. What's your state with MPS on Linux? @1084551646 I've made quite a bit of progress, but it's dieing with an assertion failure in the middle of a collection @1084551670 while running the compiler @1084551711 Related to the problems we see on Win32, or something different? @1084551715 one part of MPS thinks something should be an object, but it no longer is @1084551738 I think it's not unlikely that they are the same problem @1084551774 I hope so, because my un*x low-level debugging skills are much better than my corresponding win32 skills @1084551883 Hm, the tools available for win32 are certainly easier to use than gdb. @1084551935 MSVC doesn't like FunDev symbol tables though @1084552039 I could debug FunDev with itself, but the debugger doesn't get along with the "cold" MPS due to the stack check @1084552088 I think I could get the authors of OllyDbg (http://home.t-online.de/home/Ollydbg/) to include support for weird symbol tables. @1084552177 nifty @1084552850 [andreas!andreas@cantor.gwydiondylan.org] ACTION is reading MPS documentation. @1084552994 [housel!housel@cantor.gwydiondylan.org] ACTION is writing a message asking people to fix the linuxulator @1084553840 I'm deeply impressed by MPS. Lots of people must have thought really hard for a long time about this. @1084553953 yes... it is quite impressive... I just wish I could admire it from a distance and not have to try to debug its innards :-) @1084554200 Oh, you will learn more about it this way. :) @1084556156 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084556851 gah... I dropped run-time/pentium-linux from -O2 to -O1 and it worked @1084556882 *sigh* @1084556896 gcc is great. @1084556901 :( @1084556907 What version of MPS were you using? @1084556922 cold (ci) @1084556944 1.100.1, or the one you downloaded with wget? @1084556948 the latter @1084556986 Ok, I'll try 1.100.1, and your version if it fails. @1084557016 you want a diff? @1084557026 Yep. @1084557039 (to the run-time, I mean) @1084557091 You could as well commit it, if it doesn't break the Boehm variant. @1084557104 if it didn't, I would @1084557145 (need to make it configurable, or (ideally) build two libdylan.so's, one for each gc) @1084557199 If MPS works, would we want to continue supporting Boehm? @1084557278 yes, so people can develop non-free software @1084557290 Ok. @1084557298 (not that I'd encourage them to do that, but...) @1084557304 Do you happen to know how to regenerate runtime.s? @1084557317 yes @1084557329 pentium-linux-rtg @1084557365 later I'll fix the bootstrap process to build that and use it @1084557391 I have my doubts about the quality of the get_current_teb implementation. @1084557436 http://www.gwydiondylan.org/~housel/run-time.diff @1084557988 Why did you disable the sigactions? @1084559095 -zelazny.freenode.net- maestro (~vitaminn@clusterfw.beeline3G.ru) joined the channel @1084559219 -zelazny.freenode.net- maestro (~vitaminn@clusterfw.beeline3G.ru) left the channel @1084559490 I don't remember now why I did that... it wasn't working in the linuxulator, maybe @1084559577 Ok. It seems to work for me so far. There is a weird problem with the sleep() function: it sleeps way too long. Probably a miscalculation in case of interrupted sleeps (which happens all of the time due to signal handlers for the garbage collector). @1084559690 you built koala? @1084559718 No, gctest. koala is a good idea, wait... @1084559772 xfd: fmtdy.c:121: dylan_wrapper_check: Assertion `ww[0] == w[0]' failed. @1084559772 Aborted @1084559801 bummer... that's the same problem I've been seeing @1084559848 it's trying to scan or skip an object that has been overwritten @1084559891 Which went away after reducing optimizer settings? @1084559904 for my limited test, yes @1084559937 I'm going to try a full compiler bootstrap, which should exercise it a lot more @1084560137 I understand the problem with sleep(). It is implemented using nanosleep, which returns a remaining time in case it gets interrupted by a signal, returning EINTR. @1084560182 The returned value is rounded up to the next multiple of 1/HZ, which is 10 ms. @1084560213 Now if you receive lots of signals, as is the case with the barriers in the garbage collector, the error adds up. @1084560224 hmmm @1084560230 Up to 260 seconds for 1 second sleep in my test case. @1084560245 so we should include our own sleep() implementation @1084560288 You'd have to pull the remaining wait time from some other time source. @1084560335 Implementation is in linux-threads-primitives.c, function primitive_sleep(). @1084560337 you could store an absolute start time in a thread-local variable, and base the nanosleep request time on the difference @1084560839 I've filed a bug report. @1084561197 I'm seeing the failure too with a heavier load (minimal-console-compiler compiling dylan) @1084561212 I'll keep at it @1084561634 Ok, so I now have two hard GC problems to choose from... @1084561694 :-) @1084562052 Oh, and gctest becomes incredibly slow after awhile. @1084562164 one of the changes in my test (the additional calls to dylan_wrapper_check() at allocation time) makes things slower than necessary... I recommend removing those, since it's obviously not an allocation-time problem @1084562178 s/in my test/in my patch/ @1084562191 -zelazny.freenode.net- _8jean (~user@wallstrasse.knowledgetools.de) joined the channel @1084562225 <_8jean!~user@wallstrasse.knowledgetools.de> Wow, has this channel grown bigger? @1084562246 Hi 8jean. Yes, it seems. :) @1084562310 <_8jean!~user@wallstrasse.knowledgetools.de> Good to see. Many check-in messages, too. @1084562377 <_8jean!~user@wallstrasse.knowledgetools.de> (Well, perhaps not as many as would be optimal, but more active again.) @1084562880 gabor has been idle of late... more activity from him would be nice @1084562915 e @1084562918 re @1084563056 hi chris @1084563078 Hi Chris! @1084563290 <_8jean!~user@wallstrasse.knowledgetools.de> Is anyone actually _using_ Dylan here? @1084563312 <_8jean!~user@wallstrasse.knowledgetools.de> Other than "I wrote a 100-liner three years ago for a company that didn't know what I was doing". :-) @1084563359 I know that there's a substantial project being run in Israel, using Fundev. @1084563362 <_8jean!~user@wallstrasse.knowledgetools.de> Anyone running a webserver? Rewriting CIA in Dylan? @1084563428 as soon as we can get the gc fixed we can do just that @1084563479 what does CIA stand for again? @1084563524 it's a pun on the Central Intelligence Agency @1084563533 "A mindless robot that watches subversion" @1084563552 (the first version was done for the picogui svn repository) @1084563557 <_8jean!~user@wallstrasse.knowledgetools.de> Mr. Tenet looking for WMD on the CVS server? @1084563560 i c :) @1084563608 Ok, my SO is waiting for me. See you! @1084563614 i thought it also meant "CVS I-something A-something" @1084563669 a retcon I'm sure @1084564271 hmmm... for me the failure always seems to happen in primitive-make-closure, and some of the offending objects seem to be closures... I wonder if that's a coincidence @1084565236 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084565237 re @1084565262 hi rob @1084565273 Heya Peter. @1084565335 -zelazny.freenode.net- _8jean (~user@wallstrasse.knowledgetools.de) left the channel @1084567803 hmmm... primitive_copy_r() initializes the header portion of the closure, and sets the size field, but leaves the repeated slots uninitialized @1084567849 ... and then commits the whole thing @1084567855 looks suspicious to me @1084567893 peter, have you been in contact with Ravenbrook to see if they have any ideas? @1084568009 not about this @1084568057 it took them two weeks to get to my last e-mail, I want to get thoroughly and undeniably stuck before I bother them @1084568084 well, that's a laudible goal. ;-) @1084568169 -dircproxy- You disconnected @1084569323 -dircproxy- You connected @1084572055 I added code to fill the closure variable slots with NULL before it commits... that's *way* less efficient than only initializing it once, but it actually seems to work @1084572093 happy happy happy @1084572143 I can make it efficient later @1084572169 -dircproxy- You disconnected @1084572243 cool! @1084572305 -dircproxy- You connected @1084572315 -dircproxy- You disconnected @1084574306 -dircproxy- You connected @1084574647 -zelazny.freenode.net- hannes__ (~hannes@pD9E7B555.dip.t-dialin.net) joined the channel @1084581061 -zelazny.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1084582830 -zelazny.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1084585828 http://www.gwydiondylan.org/~housel/gcbench has some benchmark results @1084585849 it's a little slower due to the overhead of the page fault handler, but not much @1084585898 (here it = MPS) @1084587591 -zelazny.freenode.net- iehon (~char@vsat-148-63-65-106.c002.t7.mrt.starband.net) joined the channel @1084587765 hi @1084587796 Hi. @1084588230 -zelazny.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1084590104 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084590476 re @1084590486 hi hannes @1084590768 commit by housel to fundev: Bug: 6995 @1084590768 Fix and improve the integration with the MPS garbage collector. @1084590768 * collector.c @1084590768 (primitive_copy_r): Stop violating the allocator contract by @1084590768 <...> @1084591788 -dircproxy- You disconnected @1084597448 -dircproxy- You connected @1084598928 commit by housel to fundev: Bug: 7012 @1084598929 Don't count both the intermediate warning count and the final warnings/errors @1084598929 count output lines from the compiler. @1084599440 -dircproxy- You disconnected @1084600152 -dircproxy- You connected @1084604524 commit by housel to fundev: Bug: 7007 @1084604525 Restore this file, which the Win32 release scripts seem to think they @1084604525 need. I have no idea where this DLL came from or what it does, though. @1084606152 -zelazny.freenode.net- iehon (~char@vsat-148-63-65-106.c002.t7.mrt.starband.net) left the channel @1084610764 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084610765 re @1084614463 re @1084614493 If I fix more than one bug with a single commit, how do I indicate all the bugs in the check-in comment? @1084614991 commit by cpage to src: Bug: 7013 @1084614991 Added support for casting unsigned values to signed integer types. Melange didn't used to differentiate signed and unsigned types. Note that Melange may still need additional code to handle casting from signed to unsigned. @1084615580 commit by cpage to src: Bug: 7014 7015 @1084615580 Fixed parsing of backslash line continuations and character @1084615580 literals. Backslashes used to indicate line continuation were only @1084615580 handled on preprocessor lines. Character literals were greedy and @1084615580 <...> @1084615869 -zelazny.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1084615901 re. @1084617514 Morning! @1084620313 hi andreas! @1084620331 [gabor!root@cantor.gwydiondylan.org] ACTION just had lunch @1084621194 Hi Gabor! I'm about to prepare lunch, it's asparagus with sauce hollandaise today. @1084621276 -zelazny.freenode.net- brucehoult (~bruce@202-0-60-44.adsl.paradise.net.nz) joined the channel @1084621338 Good evening Bruce! @1084621354 hi Andreas! @1084621362 Peter's stats are interesting. @1084621373 makes Boehm look quite good, actually @1084621377 morning * @1084621387 andreas: I had that thursday evening. today I had a pizza @1084621407 hi * @1084621417 Hi Hannes. @1084621422 which stats? @1084621428 What stats? I must have missed them... @1084621434 http://www.gwydiondylan.org/~housel/gcbench @1084621496 The overhead I'm observing is *much* bigger, something like a factor of 10. I'm trying the hot MPS, to see whether that makes a difference. @1084621525 My guess is that the read/write barriers are horribly inefficient. @1084621632 Of course, it would be a fairer comparison if Boehm were oeprated in incremental mode too. @1084621662 it's taking around 4 min more user time than Boehm, and receiving 10,000 signals for each second of that @1084621699 I can easily believe 100 uS per signal @1084621751 Yes,. Time for some mprotects/munprotects and the appropriate context switches must be added to the signal delivery overhead too. @1084621835 I have a hard time seeing incremental GC being of much use, except in *very* demanding realtime applications @1084621856 Like games, for instance. @1084621879 when you have a CPU with 2 - 3 GB/sec of memory bandwidth, and programs are stil lonly in the tens or hundreds of MB ... what, really, is the problem with stop-the-world? @1084621899 games. pfft. they're only ~60 Hz realtime @1084621913 ok, 85 - 100 :-) @1084621928 I *did* notice the difference that turning on incremental mode made. @1084621941 in what? @1084621950 In the VRML viewer. @1084621950 in smoothness? @1084621960 Yes. @1084621968 did you try doing a forced gc() in the main loop? @1084621974 Nope. @1084621986 Might have been worth a try. @1084621987 that's often all it takes @1084622143 cpage: there is no mechanism for committing to more than one bug at a time @1084622177 if the fix naturally fixes several bugs then commit to one of them and close the others as duplicates of the first one @1084622295 I might be able to start working on d2c more soon, with a decent speed machine at home @1084622342 Good! @1084622354 (AMD XP3200) @1084622365 .. and a dual 2.0 G5 at work :-) @1084622366 "decent" is an euphemism then. @1084622409 Hm, even with the hot MPS, compiling the dylan library already took 2 minutes, and isn't finished yet. It was done with Boehm in under a minute. @1084622467 Ok, I'm off for cooking. Later! @1084622481 I think I've had my current Athlon 700 for four years now. A pretty good run. @1084636550 those stats were with hot mps @1084636620 I sent Richard Brooksby a question about tuning the generational gc... the values in there are a bit arbitrary @1084637336 Morning Peter! Good work with the GC, it doesn't crash anymore now. @1084637391 Although I still observe the speed problems. Programs are crawling to a halt after a while. It takes about an hour to build the Dylan library, compared to about a minute with Boehm. @1084637672 hmmm... obviously it didn't take that long for me @1084637673 An strace on the process contains the same few lines over and over again: @1084637683 --- SIGSEGV (Segmentation fault) @ 0 (0) --- @1084637683 mprotect(0x5dff2000, 28672, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 @1084637683 mprotect(0x5dff2000, 28672, PROT_READ|PROT_EXEC) = 0 @1084637683 sigreturn() = ? (mask now [PIPE RTMIN]) @1084637705 That in an endless loop. The addresses don't even vary. @1084637719 bleah @1084637730 Oh wait, it doesn't even ever finish. Seems to hand. @1084637734 hang even. @1084637748 Maybe you should try the trunk development MPS @1084637764 Yes. @1084637855 Where do I get it from? @1084637911 http://www.ravenbrook.com/project/mps/master/code I think @1084638061 http://www.ravenbrook.com/project/mps/version/1.104/ is a release snapshot @1084638061 'k. Maybe it has to do with the sigaction code you commented out, though. I've re-enabled it. I try to turn it off again. @1084638612 Do you happen to know what the wi and ti versions are? @1084638632 wi = white-hot @1084638637 ti = telemetry @1084638812 What's the difference between hot and white-hot? @1084638825 optimization flags I think @1084638984 BTW: the linux runtime stores the TEB pointer at (end-of-stack - 0xff). I really wonder whether that is safe. @1084639066 Ok, disabling the sigaction calls didn't do it. Now trying the trunk code... @1084639359 Ok, I'm confused. What is mmdw.a, and how is it built? @1084639395 mmdw.a is a non-default target @1084639421 I see. @1084639422 use "make -f lii4gc.gmk mmdw.a mpsliban.a" @1084639450 "mpsliban"? @1084639493 it's the plinth library @1084639500 mpsplan, for sure. @1084639531 right (I'm in win32, that was from memory) @1084639544 you need to copy both libs into pentium-linux @1084639580 None of the script files references either mps.a or mpsplan.a. You're sure they're actually needed? @1084639613 mps.a isn't needed @1084639634 I can't remember how the plinth gets included but I'm sure it does @1084639667 What's a plinth? @1084639897 low-level platform layer @1084639984 I/O, mostly @1084640495 *sigh* Same problem again. Removing all the Bootstrap directories and trying again... @1084640600 hmmm @1084640642 but cold works? @1084640700 It used to work this morning, and now it doesn't. I simply suspect I've mixed up some .a files. @1084641164 hmmm @1084641202 the MPS page fault stuff is pretty nifty... it actually disassembles the faulting instruction and executes it @1084641261 Oh, now *that*s something I'd want to port to a new architecture. :) @1084641311 But nifty indeed. @1084641329 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084641330 Probably beats makring the whole page as grey again. @1084641336 Hi Tim! @1084641476 ARGH! The problem persists! @1084641505 that's weird @1084641523 try building the MPS tests and see if they work @1084641541 Ok. What target? @1084641553 [housel!housel@cantor.gwydiondylan.org] ACTION checks @1084641642 look in comm.gmk iin the section labeled "genuine targets" @1084641650 all of those are tests @1084641665 oh... try target "testrun" @1084642053 Ok, after exporting VARIETY tests run. Look good so far. @1084642118 -zelazny.freenode.net- hannes (~hannes@pD9E7B555.dip.t-dialin.net) joined the channel @1084642119 Conclusion: Failed to find any defects. @1084642121 re @1084642145 Hi Hannes. MPS on Linux works for Peter, did work for me this morning. @1084642165 andreas: great, also with multiple threads? @1084642174 Yes. @1084642199 I *did* mention it stopped working for me for no apparent reason? @1084642209 housel: with linux emulation on FreeBSD or with a "real" linux? @1084642214 you might want to try running "cvspurge" in lib/run-time @1084642249 I'm using linux emulation, but I had to hack MPS because the linuxulator gets page fault sigcontext wrong @1084642252 I have no such command. @1084642261 it's in the cvsutils package @1084642304 housel: i read your mail to freebsd-hackers ;) @1084642385 no responses though, sigh @1084643348 Ok. This morning, I used a Boehm stage 2 bootstrap to build a stage 3, and used the result of that to build gctest. Later, I tried to build an MPS stage 2, and this results in a non-working compiler. @1084643399 hmmm @1084643399 Now, I've tried to build gctest in stage 2. This sort of works, the master threads does its work, but all the other threads hang, waiting for a lock in a hash table. @1084643654 With just a single thread, gctest works fine, including weak links. @1084643663 I'll try gctest in win32 as soon as this build finishes @1084643736 the compiler doesn't use weak tables BTW @1084643826 With one master thread and one spawned thread, I get a looping garbage collector, again mprotecting the same address as seen before over and over again. @1084644515 Hmmmm. There's code from x86-linux-exceptions.c being called. Maybe I try disabling more there. @1084644531 It keeps segfaulting on the same address over and over again, btw. @1084644591 what's at that address? @1084644600 is it really one of MPS's protected pages? @1084644624 It looks like it's some valid data, yes. @1084644773 If I dereference the address three times, I end up at KLsimple_object_vectorGVKdW. @1084644802 ok @1084644830 You said that MPS actually disassembles the faulting instruction? @1084644837 yes @1084644849 proti3.c IIRC @1084644857 So its usual mode of operation is returning to the instruction after the faulting one? @1084644879 I think so @1084644888 if it's a move instruction it recognizes @1084644899 Well, it keeps returning to the faulting address. @1084644912 0x40368fe2 : mov %ecx,0xb(%edi,%esi,1) @1084644951 hmmm... I think it should be able to recognize that @1084644988 What mechanism does it use to set the address at which the code is supposed to continue? @1084644994 interesting that I remember seeing that very instruction at one point @1084645011 it munges the sigcontext and calls sigreturn @1084645060 Which is highly non-POSIXish. @1084645106 which is why the file is called protlii3.c @1084645129 [andreas!andreas@cantor.gwydiondylan.org] ACTION pulls that into the editor. @1084645797 Ok, I'm removing all traces of signaÃl handling from the runtime. @1084645972 you don't have to rebuild everything if you rebuild the runtime... just kill bin/dylan, lib/libdylan.so, and Build/dylan/dylan.so @1084645987 saves time @1084646002 Ok. @1084646619 Ok. Now gctest with two threads works. Again I see the pattern that the master thread is quite fast, and the second thread crawls. @1084646625 heh... I just got an error under win32 at: mov edi,dword ptr [ebx+edi+0Bh] @1084646646 Weird. @1084646656 Bootstrap phase 2 proceeds. @1084646848 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1084648120 Still waiting for stage 2. I have a serious performance problem in the GC here. @1084648786 Building linker-support... @1084648787 MPS ASSERTION FAILURE: res == 0 @1084648787 lockli.c @1084648787 140 @1084648791 *sigh* @1084648815 that's something, I guess @1084648859 *that* is something that isn't supposed to happen @1084648865 stack trace? @1084649006 Hmmm... need to tweak env vars to run the compiler in gdb... @1084649419 re @1084649424 "cpage: there is no mechanism for committing to more than one bug at a time" @1084649432 hi chris @1084649437 Actually, there is: I took a guess and just put the numbers on the same line and it worked. @1084649453 "Bug: 1234 5321" @1084649462 nifty @1084649486 My first guess was with a comma, and it refused to accept the commit. That's nice. @1084649499 (Nice that it simply refused the commit in the case of an error.) @1084649571 IIRC, MPS required some tuning for HD. There's a setting for the amount of memory it's allowed to allocate before it starts collecting. I remember we had to adjust that number higher and higher over time. @1084649595 ...to balance between avoiding collections and VM paging. @1084649654 Also, I'm not entirely sure what did and didn't get implemented, but we talked about several different strategies for allocation, and the compiler was supposed to choose from among them using information it had about the program. @1084649676 One obvious one is stack-based allocation. @1084649748 As a general comment, unless you can guarantee GC will take less than a tenth of a second, incremental is vital for any interactive application that has to respond to user input. That includes HD itself, which never suffered user-detectable delays. @1084649752 Hi Chris! For now, I could live with a less-than-optimal performance, if it worked at all without crashing. @1084649825 Crashing = Infinitely slow performance @1084649834 :-) @1084649898 Does MPS actually require a signal to do incremental GC? I thought the strategy was to just run the collector a little bit every time the program entered the allocator? @1084649914 It needs signals to implement read and write barriers. @1084650085 andreas: is your collector.c exactly what is in the repos now, or does it contain some of the changes from my patch yesterday? @1084650091 Why are barriers involved in the performance test under discussion? What needs to be blocked from reading/writing? @1084650119 read section 6.3 of the paper @1084650190 basically to do scanning incrementally you need to make sure work you've already done hasn't been invalidated by the mutator @1084650193 I still have the asserts in there, the rest is as in the CVS. @1084650215 kill those, they're unnecessary @1084650227 that's where your performance went @1084650235 I hope so. @1084650288 So discourage mutation! @1084650303 +1 @1084650306 Certainly! Hi Riastradh. @1084650349 Hi. @1084650366 If that's really the performance killer, it sounds like either there's too much mutation or the mutation patterns in this case are at odds with the collector patterns. @1084650383 BTW: there are read barriers too... @1084650396 Is there a way to tune MPS to reduce the number of signals, I wonder? @1084650413 There's probably too much mutation. In general, when reading & writing Dylan code (well, to the extent that I write it), I find myself seeing & using much more mutation than with Scheme. @1084650523 I'm a little puzzled, though: It's also generational, right? Shouldn't the number of signals go down once it's moved a lot of the mutating stuff into an older generation? @1084650578 Well, once the code works, we can play with the telemetry stuff and generate nice graphs. @1084650624 But no, this won't help you with read barriers at all. @1084650688 Well, there has to be a way to tune it to reduce barrier signalling, one way or another. That things got more options than a new car. @1084650719 I assume there's also a way to get it to be non-incremental, if desirable. @1084650936 that's not clear from the paper @1084650967 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is looking at the paper @1084651519 hey all @1084651540 Hi! @1084651553 "Harlequin's DylanWorks?" Heh. I think that name was considered, but was never actually used for Harlequin Dylan. @1084651559 cpage: Excellent comment about crashing = infinitely slow @1084651565 more C++ programmers should understand that @1084651587 minimal-pentium-dw? @1084651597 DW = DylanWorks @1084651699 I mean the name "DylanWorks" was never used for the shipping product. @1084651738 why not? @1084651769 I don't know that there's an answer to that, other than we went with "Harlequin Dylan". @1084651829 IMO, I think "LispWorks" sounds fine, but "DylanWorks" has one-too-many syllables. @1084651851 But I didn't choose the name, in any case. @1084651991 And I certainly didn't choose "Liquid Common Lisp". :-) @1084652096 DylanWorks has a ring to it, but so does Harlequin Dylan @1084652104 Hmm. The MPS paper has links to Dylan and ScriptWorks requirements, but they're dead. @1084652122 Harlequin is an awesome name @1084652142 yes... I wrote a letter to richard brooksby asking him to put the dylan requirements online @1084652148 Well, it probably wouldn't just be "DylanWorks," it would be, "Harlequin DylanWorks," which is quite a mouthful. @1084652165 true @1084652188 Microsoft Office System? (7 syllables) @1084652237 my, aren't I random today @1084652275 "MSN Messenger for Mac version 4.0" @1084652297 Microsoft Windows for Workgroups version 3.11 @1084652320 ...Service Pack 3 Release 2 @1084652395 Looks like MS has actually shortened some names. e.g., "Office v. X" @1084652626 Section 5.1 is interesting. Describes the types of pools HD used. @1084652658 uses @1084652664 +1 @1084652671 AMC, AWL, and LO @1084652750 The "A" pool isn't in the sources? Too bad. That'd be a handy pool for some things. @1084652752 cpage: Are you keeping score :) @1084652770 is the API to MPS exposed in FD? @1084652793 some of it, through primitive-* functions @1084652806 There's a memory-manager library. Never looked into it. @1084652864 rhashem: The total will be announced at Milliways. @1084652906 I just looked at it... it calls primitive-* functions @1084652984 Is primitive-* a compiler primitive? @1084652995 milliways? @1084652997 s/is/are @1084653005 I'm glad you asked: @1084653064 yes... the compiler emits HARP instructions for them @1084653088 most of these particular HARP instrucitons are implemented as C calls @1084653090 Actually, some are implemented in C. @1084653098 cpage: heh @1084653164 in regards to the recent discussion on the dylan mailing list about alternate backends --- it seems to be that having full control over the code generator as you do with HARP is very useful @1084653242 Now *that's* an understatement. ;) @1084653248 I don't see other back-ends having that same degree of control @1084653866 do any of you guys have any opinions on bug 6986? @1084653980 Which part? That's a pretty long bug report. @1084653992 all of it @1084654032 mostly about which edition restrictions to remove @1084654066 [Reading through it.] I'd change the Register button (the name and the action) to just go to GwydionDylan.org. @1084654078 ...until we have some other use for it. @1084654143 I'm not fond of the About Box. @1084654154 If I get time I'll propose something for it. @1084654223 Why have editions any more? @1084654326 I think we still need to distinguish "Internal" as a version for developing the environment itself. @1084654386 I wouldn't strip out the predicates wholesale (why throw away information?), but I'd reduce it to a single edition. @1084654401 "Dispatch color ".el" files are written in the build directory if release-internal?() is true." @1084654423 Is that separate from the dispatch coloring in the IDE or is it the same thing? @1084654451 I think it's for dispatch coloring in emacs? @1084654460 yes @1084654500 If that works, I say turn it into a user preference and make it available in non-internal releases. @1084654559 On the other hand, it's important to make the IDE stand on it's own, and seduce people away from other tools. :-) @1084654582 But it sounds like something worth having in the command-line compiler. @1084654600 I think the plan was turning Deuce into a full-blown Emacs replacement. :) @1084654644 For editing code, sure, although I hope "full-blown" doesn't actually mean "full-blown" :-O @1084654659 eDylan, anyone? @1084654669 I confess that I still use Emacs even when using the IDE @1084654689 Why should the extension languae be any different from the implementation language? See Multics Emacs. @1084654716 No, I just meant that code editing is only about 10% of emacs. @1084654741 (Maybe less.) @1084654772 I *would* like to see the IDE support plugins and/or "scripts" written in various languages, including an interpreted or JIT-compiled Dylan. @1084654788 Now the ultra secret master plan of course is eliminating the need for anything written in C, inclduing UNIX/Windows. In that respect, it is like emacs. @1084654811 Shhhh! You'll blow our cover. @1084654837 ...um...don't you, uh...compile to C? @1084654846 Not with FD. @1084654847 That's only temporary. @1084654864 Of course what you want to do is compile to low-level Dylan. :) @1084654866 "written in" != "compiled to". @1084654996 What will the run-time system, garbage collector, et cetera be written in? @1084655025 FD has a run-time generator @1084655064 'Run-time generator?' @1084655087 input = definitions for run-time operations and utility functions @1084655099 output = dylan-support.o @1084655100 et cetera will be written in Dylan. The garbage collector *could* be written in Dylan, although I think MPS will serve us quite some time. @1084655500 back to editions... I think we need to have two editions, but it's hard to decide what to call them @1084655801 Hm, you're sure one edition isn't enough? @1084656081 internal at least would preserve #4, #7, #8, #9, #10, #11, #14, #15 @1084656125 The other distinctions can go away @1084656420 What is #4? @1084656480 Is #7 something useful outside of developing the IDE? Should it be a user preference instead? @1084656495 I think (haven't researched it) that's what causes warning messages to go to build/library-name.log instead of *standard-output* @1084656519 -zelazny.freenode.net- CIA-5 (micah@hyperreal.info) joined the channel @1084656574 #7 could be a user-preference I guess @1084656583 #9 definitely looks to me like either a user preference or it should depend on whether or not you have the sources around. @1084656613 You'll have the sources around. :) @1084656645 The real question is why do the system projects produce warnings at all? They should probably be addressed one way (fixing them) or another (suppressing them to indicate that they're acceptable.) @1084656677 that's a bit harder to do @1084656720 Why should there be a difference between system and user projects? @1084656740 Even though I do have sources around, I don't always want to know that Dylan has 18 warnings and 4 serious warnings @1084656781 That goes for *all* libraries, doesn't it? @1084656796 andreas: I agree in general, but it depends. If the "system" projects are used everywhere, and using them produces a lot of warnings, I can imagine wanting to preserve the option to suppress them. @1084656826 Yes, andreas. I'm just saying for now let's leave the existing behavior in place and worry about solving the more general problem later. @1084656873 IMO, though, the longer-term solution is to resolve all warnings. @1084656905 -zelazny.freenode.net- CIA-5 (micah@hyperreal.info) joined the channel @1084657023 I think #10 might make more sense as a context-dependent behavior: If the environment itself is attached to a debugger, go directly to the debugger, else let serious condition handlers do their thing. @1084657078 Actually, I think that should just be a debugger option (e.g., "Stop on serious conditions"), if possible. @1084657182 #14 sounds like another user preference (to be specific, a "View" setting that can be changed in a lightweight manner, rather than literally in the preferences window.) @1084657232 #15 sounds like something that needs to be fixed before it's ready for the release edition. @1084657275 ... if we only understood exactly what it meant @1084657293 Well, yeah, there's that, too. @1084657309 I imagine preserving object identity is hard to do in the presence of a relocating gc @1084657317 Is #22 just commands that help developing the IDE itself? @1084657355 the only one I've ever used is "Open Registry Project" @1084657363 What's that do? @1084657391 opens a project via the Sources/registry entries (rather than a .lid/.hdp) @1084657403 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is getting more anxious about buying a PC or VirtualPC so he can use FunDev @1084657450 heh... just buy me a 12" iMac and you'll get FunDev for mac :-) @1084657551 I might be able to arrange to loan you one. @1084657611 Also, just let me know what needs work and I'll contribute. I was waiting because I was under the impression that we hadn't got it bootstrapping easily yet. @1084657688 that's true enough... I (at least) haven't researched how to do cross-builds yet @1084657756 For Mac support, what tasks are there? Does it first need a PowerPC backend? @1084657782 it has one, but it looks like the details of low-level thread-local storage have been left undone @1084657790 (or one could use the C backend) @1084657795 Should be doable, though. @1084657828 Okay, so if there's a workable backend, what then? Build system? Libraries? @1084657881 An MPS port? Maybe "just" making it all work together? @1084657893 yes, I think that's about right @1084657929 a matter of hacking at it until it works @1084658007 Does it have to be cross-targeted from Windows? @1084658021 Or from Linux. @1084658028 Is the IDE working on Linux? @1084658045 Nope. Neither is building the compiler from the IDE working. :) @1084658066 Yeah, I don't think we ever got the IDE to build the compiler. @1084658111 I assume what was missing was for the IDE build system to support more actions than just "compile" and "link". @1084658155 maybe so @1084658183 the Jam build-system may fix some of that @1084658719 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is off to see Gojira @1084658803 @1084658809 Enjoy the weekend. @1084658822 cul @1084658824 Bye Chris! @1084658910 Chris: Hey it *did* work, you're right! I did not know that. @1084658920 What worked? @1084658925 the commit message is on both bugs @1084658929 Ah. @1084658943 7014/7015 @1084658978 and: http://www.gwydiondylan.org/cgi-bin/cvszilla/transaction.cgi?id=68 @1084661380 -zelazny.freenode.net- hannes_ (~hannes@pD9E7AC0E.dip.t-dialin.net) joined the channel @1084675422 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084676259 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084680102 -zelazny.freenode.net- brucehoult (~bruce@202-0-60-44.adsl.paradise.net.nz) joined the channel @1084687836 -zelazny.freenode.net- brucehoult_ (~bruce@202-0-60-37.adsl.paradise.net.nz) joined the channel @1084688381 re @1084691275 -zelazny.freenode.net- brucehoult (~bruce@202.0.60.37) joined the channel @1084693674 -zelazny.freenode.net- IRCMonkey (~chatzilla@wg02.ucr.edu) joined the channel @1084693686 -zelazny.freenode.net- IRCMonkey (~chatzilla@wg02.ucr.edu) left the channel @1084712344 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084712349 heya @1084714078 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084714519 Hi! @1084714581 We have name server trouble again. I'm working on it, might need a reboot of a machine a few hundred km away, though. @1084714719 Ew. @1084714739 So when do we start using Koala as our webs server? ;-) @1084714795 Andreas, were you doing some work on getting Dylan running atop the L4 kernel? @1084717259 Hi Rob! We'll use koala as soon as the garbage collector runs stable with threads. @1084717291 And I did some work with Dylan on L4, but didn't get around doing much with it in the last few months. I'm thinking about porting MPS to L4, though. @1084718109 Cool. @1084718146 I noticed ioL4, and it made me think about running language environments on hardware (like Lisp Machines). @1084718194 Although I don't know how much Dylan would benefit from custome microcode (maybe for GF dispatch?) @1084718312 In fact, one could run Dylan on the bare hardware. The benefit of L4 is that it is already there, has a reasonable abstraction, and allows a Linux system to run in a sandbox next to the Dylan OS. @1084718332 I see. @1084718376 reading up on Lisp Machines, I notided that code was always debuggable and editable for any process on the system, and that you could get a reference to any GUI widget in the editor by clicking on it. @1084718397 notide -> noted | noticed . :-) @1084718398 That's how things are supposed to be. :) @1084718439 That doesn't seem impossible with a Dylan system, particularly if there's a single DUIM server? @1084718466 Right. Dylan is semantically so close to Lisp that many of the concepts can be translated. @1084718501 One of the key insights is that the UNIXish concept of separate address spaces is the beginning of madness and confusion. @1084718502 But is it dynamic enough to replace running code modularly? @1084718546 The language definition doesn't prevent it, and FD has some support for replacing code in running applications. @1084718559 Cool. @1084718608 UNIX spaces are quite nice when you've been used to MacOS's cross-process memory corruption, and you can bet that there'd be secuirty FUD over single-memory-space systems. But I suppose with a language that doesn't allow you to trash other people's objects with rogue pointers both cases are less of a problem. @1084718637 Right. Except that UNIX confuses the concept of address spaces and protection domains. @1084718897 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION goes boss-eyed. @1084718928 Hwo do you mean? Is there any other reason for having multiple address spaces other than hardware limitations or security? @1084718993 Yes: so every process can pretend it is alone on the system, starting at address zero, etc. @1084719072 In ancient times, there always was only one program running on a computer. Then, the concept of timesharing was invented, but all the old software was supposed to run unmodified. @1084719110 But you could have addresses valid across all processes in the system, and map/unmap pages depending on which process is active. @1084719145 So instead of writing lots of IPC code, you just pass pointers and call functions. @1084719195 there's also the issue of "each process wants 4GB of addressable space" @1084719220 32 bit of address space is simply too small these days. @1084719240 yes @1084721211 Good news: with MPS 1.104 (as opposed to the trunk version) bootstrapping works. @1084721334 But can't you just use one ultra-large address space with a single object-graph root? If there's no dealing with memory and no way of grabbing pointers, you don't need separate address spaces, surely? @1084721401 For sure. Back when Clinton lived in the White House, he had a Lispm for a web server. It was never rooted, despite having a single address space. @1084721510 Well, that and there being very few people who'd know how to hack it. ;-) @1084721643 Well, the only weakness yo tend to find on Lisp systems is programmers using READ to communicate with the outside world, and forgetting to turn off the special 'eval' mechanism that allows to execute arbitrary Lisp code. @1084721651 andreas@unuk:~/fd-build/bin$ ./dsp-basics @1084721651 dsp-basics: fmtdy.c:141: dylan_wrapper_check: Assertion `version == 2' failed. @1084721651 Aborted @1084721727 Hey, this would be a plus for a Dylan-based system. No 'eval'. :-) @1084721751 Actually, we need eval sooner or later for an interactive system. @1084721769 How so? @1084721770 It's just not part of the core language, but it can be a library. @1084721784 Don't we just compile on the fly? @1084721799 I mean, I know REPLs can compile in Lisp. @1084721806 That's an implementation detail. Conceptually, it's still eval. @1084721839 But can we sandbox a Dylan REPL or make its effects transient. Or even read-only? @1084721896 I think that the sealing concepts can be applied here. @1084721954 That's a good idea. Indeed a Dylan Machine could seal particular processes and sections of the file system. @1084722004 As well as system calls, so you couldn't spoof them. @1084722029 For certain kinds of protection mechanisms, the concept of capabilities can be applied. Simply spoken: if you cannot get hold of a reference to an object, you can't reach it. @1084723222 And since Methods are objects this works well in Dylan. But you need to make sure that people don't pass objects by IPC, circumventing such security. There's a Java attack where you can get a reference to an object by adding a "reference to previous object" bytecode to a serialisation stream and then reading it back (or something like that). It's quite hard to think of all the eventualities for a sufficeintly powerful environ @1084723344 Serializing byte code sounds like inviting trouble. @1084723553 Well, using Java is inviting trouble, but I digress... :-) @1084723720 At least they have the problem of buffer overflows under control. @1084723896 True. @1084724661 Now all we need is sql-inject-lint... @1084724753 IIRC, the Dylan ODBC API makes it very hard to produce SQL injection bugs. @1084724926 -zelazny.freenode.net- CIA-5 (micah@hyperreal.info) joined the channel @1084725036 That would be good. We had an injection bug at work this week (in an ASP). I'd much rather be using Dylan. @1084726107 Are there still DNS problems? @1084726230 Yes. And I'm afraid they will continue until I can call the housing privoder during work hours. @1084726296 rob: I think koala on Linux will work within weeks, if not days. On Windows, it might be usable even today. @1084726357 do you have a backtrace for the assertion failure you just pasted? @1084726383 andreas pasted "assertion failure in koala" at http://www.common-lisp.net/paste/display/967 @1084726440 andreas annotated #967 with "walking up the stack to show inlined functions too" at http://www.common-lisp.net/paste/display/967#1 @1084726499 what does it think "version" is in frame #6? @1084726538 0. @1084726547 What are wrappers, and how are they initialized? @1084726564 wrappers tell the gc about the layout of the class @1084726576 They're what word 0 of every object points to @1084726693 hmmm... I added that call to dylan_wrapper_check... I wonder if it's valid? @1084726724 (the one at line 1258) @1084726749 try getting rid of it and see if anything bad happens @1084726774 That's what I did. Now I get the same problem with a check in line 198. @1084726785 Inside dylan_check, that is. @1084726803 ok @1084726815 [housel!housel@cantor.gwydiondylan.org] ACTION goes to church... back in ~3 hours @1084726830 See you! (or not, maybe we go to the movies) @1084727296 Koala? Good. @1084727310 What are you going to see? @1084727377 Troy. Want to see Brad Pitt with 10kg extra muscles. :) @1084727436 Heh. I think I'm going to let Evie take Tom to see that one. I have a lower Brad tolerance than her. :-) @1084727464 Brad Pitt is actually a good actor...it's just that rarely do any directors want him to act. @1084727581 he was good in "Interview". And 12 monkeys. Which Bruce Willis was good in as well (I was shocked how good he was in Pulp Fiction). Now I just need to find a way of relating this back to Dylan. :-) @1084727618 Hmmmm. @1084727775 Well...if we consider the strongly hyped languages of atrocious design to be like the virus that wiped out civilization in _The 12 Monkeys_, and civilization to be the software industry (at least, that of it that isn't a horrid mess)... @1084727987 -zelazny.freenode.net- pritlove (~pritlove@212.222.128.123) joined the channel @1084728380 Riastradh: http://www.dw-world.de/english/0,3367,1446_A_1201704_1_A,00.html @1084728507 The answer is clear. Compulsory licensing and training for scriptkiddies. @1084728672 We do what we can. We'll get involved into the civil lawsuit, to make sure the judge honors the responsibility Microsoft has for the damage being done by the worm. @1084728708 That's good. Have you been lobbying over Software Patents? @1084728729 Is there a *PowerPC* VM for MacOSX? Something like Virtual PC on Windows or Mac-On-Linux on LinuxPPC? Something I could use to play with kernels on MacosX with... @1084728759 Yes, we did. The main work was done by the FFII folks, but we supported them. @1084728838 What really worries me about the software patent issue is that the European Commission is free to ignore decisions by the European Parliament. @1084729045 Ok, cinema time. Later! @1084729083 -zelazny.freenode.net- hannes (~hannes@pD9E7AC0E.dip.t-dialin.net) joined the channel @1084730105 'The hacker hierarchy, composed of hackers, crackers, and script kiddies' -- what crack is that moron smoking? @1084730137 'Hackers hack websites to bring attention to security holes' -- ... @1084731228 Standard journalistic nonsense. Hacker == cracker. Hacking == cracking. @1084731266 But he even uses the term 'cracker' to be something entirely different. @1084734587 -zelazny.freenode.net- CIA-5 (micah@hyperreal.info) joined the channel @1084734710 re @1084734731 robmeyers: "Is there a *PowerPC* VM for MacOSX?" @1084734741 You mean VirtualPC? @1084734781 The only problem is it doesn't work on G5's, but of course you want the fastest machine possible to make sure it runs decently. @1084734836 I think it's important to stress that Dylan was designed for interactive development. Just look at Apple Dylan and FunDev. @1084734860 But it was designed with a focus on separating the dev runtime from the target runtime. @1084734943 Re Separate address spaces: You definitely want them to allow larger virtual spaces. It's effectively a kind of "extended addressing" like on x86, giving each process it's own "window." @1084735001 -zelazny.freenode.net- pritlove (~pritlove@212.222.128.123) joined the channel @1084735088 Also, even if you make it impossible to unwittingly write code with buffer overflows, opening yourself up to that kind of attack, there's a security issue unless you either disallow machine instructions that access arbitrary addresses or introduce a protection scheme that makes most addresses read-only or inaccessible. @1084735148 If you do the latter, then you have to change the set of accessible pages as you switch from one process/thread to another. @1084735180 If you do that, and "extended" address spaces are still useful, then I think you end up with a system pretty much like UNIX, anyway. @1084735249 The UNIX model allows sharing segments of addresses, so I don't see how having a single address space gives you something you can't get with the UNIX model. @1084735359 It seems to me it's only a slight difference in the details. @1084740414 -zelazny.freenode.net- CIA-5 (micah@hyperreal.info) joined the channel @1084740774 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1084742647 robmyers: there is a ppc system emulator in qemu (http://fabrice.bellard.free.fr/qemu/) @1084742658 re... just for a moment. @1084743446 <^self!~fn@66.209.66.105> how abotu pearpc? http://pearpc.sf.net/ @1084743451 <^self!~fn@66.209.66.105> "about" @1084743502 I saw a piece on PearPC on TechTV, and they warned that it's still pretty buggy right now. @1084743527 <^self!~fn@66.209.66.105> yeah, it's way incomplete. @1084743541 <^self!~fn@66.209.66.105> doesn't even boot netbsd @1084743546 I thought the question was about emulators running on PowerPC. @1084743560 prom: thanks @1084743563 <^self!~fn@66.209.66.105> oh, oops. @1084743589 Yes, I need a window in macOSX I can play eith kernels in. :-) @1084743595 eith -> with. @1084743639 VirtualPC @1084743653 <^self!~fn@66.209.66.105> offtopic: bochs is pretty good now, if you run it on linux/x86. it does some virtualization. so, bochs on my 1.4ghz athlon emulates a 200mhz box, instead of a 6mhz one. @1084743773 VPC doesn't run PPC... @1084743780 heya chris. @1084743790 I thought you wanted an x86 emulator. @1084743799 No, PPC. @1084743813 I use VPC as an X86 emulator at work. @1084744232 VirtualPC for Mac running VirtualPC for Windows. @1084744244 Be sure to use an overclocked Mac. ;-) @1084744280 Rather: VirtualPC for Mac running PearPC for Windows. @1084745085 That's sick. ;-) @1084745152 I want to play with L4 and HURD but I don't want to reboot. I know, I'm lazy. @1084745622 were you saying there is something wrong with cantor? @1084745646 tinderbox is keeping it busy, but other than that it looks ok @1084745686 plenty of free swap, plenty of free disk. No free CPU... @1084745828 it's not in the DNS, but is responding fine on 212.40.165.86 @1084746431 Well, almost midnight local. Goodnight. @1084746657 Last night I couldn't get to gwydiondylan.org @1084746688 Make that: Right now... @1084746692 I cna't get to it now, by hostname @1084746698 but it works by IP @1084746713 What's the IP? @1084746720 212.40.165.86 @1084746728 Re. @1084746757 hi Andreas @1084746766 Hi Bruce! @1084746793 I'll have somebody reboot the name server tomorrow morning. @1084746887 So, Melange doesn't handle the case where a struct member name is the same as a typename. After a lot of experimentation, I'm unsure whether it's the grammar or the parser code that needs to change. @1084746894 BTW: The only excuse to go and see Troy is seeing Orlando Bloom and Brad Pitt naked. Other than that, it's only average entertainment... @1084746908 Any help with this would be appreciated. @1084746939 Chris: do you have some easy-to-reproduce sample code? @1084746960 typedef int Foo; struct { char Foo; }; @1084747015 Will look into it tomorrow. I'm about to go to bed... shouldn't be too hard to fix, though. @1084747016 The grammar for structs expects an identifier token for the member name, but the lexer is returning a typename token. @1084747359 Ok, time for bed. Night! @1084747756 Anybody here familiar with Melange's --framework option? @1084747779 no. I think Rob added it. @1084747887 -zelazny.freenode.net- hannes_ (~hannes@pD9E79F8E.dip.t-dialin.net) joined the channel @1084747900 Okay, I'll ask him. The thing is, it's tedious to have to supply the name of every framework that's used directly or indirectly, and it isn't how gcc works. @1084747944 I thought I'd align it with gcc (and CodeWarrior) behavior, but I wanted to check whether there's a reason for the current behavior. @1084748423 re @1084749882 cpage: you haven't been sending p p p Powerbooks to London, have you? @1084749932 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION looking at your iChat thumbnail @1084750224 heh @1084756113 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1084756189 hi. anyone else having trouble getting to the gd web pages? @1084756205 yeah, the DNS is down @1084756226 won't get rebooted until AM .de time @1084756236 oh, ok @1084756249 meantime you can use 212.40.165.86 @1084756262 ah, thanks! @1084756342 if you put that in /etc/hosts then cvs etc will work too @1084756378 unless you're in windows, in which case you have to remember where the hosts file is @1084756401 doesn't it vary from version to version? @1084756415 maybe @1084756455 yes, it does: @1084756456 *sigh* i see what the dns problem comes from. andreas still didnt replace the primary DNS, which is in a dead subnet. @1084756457 Windows 95/98/Me c:\windows\hosts @1084756457 Windows NT/2000/XP Pro c:\winnt\system32\drivers\etc\hosts @1084756457 Windows XP Home c:\windows\system32\drivers\etc\hosts @1084757434 wow, stranhe that it varies between xp pro and xp home @1084757452 toplevel named as in 95/98, but contents are as in NT-series? @1084758066 I don't buy that actually, I'm in XP pro right now and it uses C:\WINDOWS @1084758153 well I sure don't have a clue -- I've only used 3 of those 7 OS's @1084758268 Windows XP Pro is apparently the same as XP Home @1084758572 oh, i didn't see you said they were different. anyway, mine is XP Pro and it's in \Windows\System32\drivers\etc @1084762132 I've used all 7 @1084762182 (plus 3.0, 3.1, and WFW 3.11) @1084762480 well I've used 4 if you count both NT3.5.1 and NT4 (which the original list doesn't seem to) @1084762492 plus 95 and 2K @1084766468 what is the purpose of /etc/cron.weekly/find ?? @1084766490 it's using all the cpu time, and is up to 482 minutes of CPU time so far @1084766510 pid 22406 @1084767373 ah, I see. It's updating the "locate" database. looks stuck, though. @1084767526 how could it possibly get stuck? @1084768662 I don't know @1084768684 could it be following a symlink to a point higher int he dir tree? @1084768736 could 8.6 hours (and counting) of CPU time for a "find" possibly be correct? @1084769649 -zelazny.freenode.net- hannes_ (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084770203 One wouldn't think so, then again there could be some seriously nested directory structure somewhere @1084770491 the current locatedb is 12076451 bytes @1084770822 I'm also confused about why there is an lpd that has used 964 min of CPU time @1084770965 ah yes that... somebody (brent) accidentally tried to print something a few months ago, and so it's still trying to send those jobs to a nonexistent printer @1084771084 user brent has 22 open shells !? @1084771095 lshd doesnt write utmp.... *sigh* @1084771140 I removed the print jobs and disabled the print queue @1084771164 this machine has to be re-setup. andreas agreed. ill poke him to let me get started with it... @1084771197 housel: i think you could just purge lpd... there is no printer there. this must have been left over from the base install. @1084771647 w00000t. this box has all kinds of ports open. this machine would make a good administrative horror movie. @1084771676 heh @1084771875 also, i think pserver is a bad idea. anonymous ssh is the way to go. savannah switched a while ago. but i think stuff like that can be done after the resetup. @1084771926 yeah I guess so @1084772121 well the find is up to 9.5 hours of CPU time now @1084772136 does anyone actually use locate? @1084772159 I use it, but it's not worth *that* high a price @1084772177 bhoult: for me, the question is who got a stupid umask ;) @1084772307 [prom!~prom@217.13.206.33] ACTION uses locate on all kinds of occasions. there is no real reason for not having it. exposing big build trees to it is just not necessary. what else could there be that has so many files? @1084773871 hmmm... I think the MPS disassembly code can't properly handle "mov edi,dword ptr [ebx+edi+0Bh]" @1084773929 [prom!~prom@217.13.206.33] ACTION goes home. bbl. @1084774946 -dircproxy- You disconnected @1084775190 -dircproxy- You connected @1084777315 Morning! @1084777335 morning @1084777535 dylan_wrapper_check is called from everywhere. Just disabling the test in onw or two places doesn't help. @1084777555 I really wonder why the compiler itself doesn't trigger the bug, but koala does. @1084777563 that must mean the wrapper really is invalid in this case @1084777703 I think fmtdy.c describes what dylan wrappers should look like @1084777722 bedtime for me... good night @1084778239 Night Peter! @1084784222 -zelazny.freenode.net- brucehoult (~bruce@202.0.59.204) joined the channel @1084785634 -zelazny.freenode.net- brucehoult_ (~bruce@202.0.59.121) joined the channel @1084797132 Re. @1084797155 morning! @1084797161 Morning Bruce! @1084797186 we going to get that DNS kicked in the guts soon? @1084797225 Didn't reach anybody yet. There were rumors about the ISP being in financial trouble, but I had expected to get advance warning... @1084797249 This is my personal mail server too, so the issue is sufficiently urgent for me too. @1084797297 well cantor itself is perfectly reachable and working fine @1084797330 by IP @1084797332 Yes, it is, and of course we could run the DNS there. It's just that redirecting DNS entries is difficult without being able to receive mail. @1084797340 Rats. @1084797378 ah. your incoming mail won't get there. that *is* a problem @1084797743 -zelazny.freenode.net- pritlove (~pritlove@pD9E6B641.dip.t-dialin.net) joined the channel @1084799812 morning @1084806048 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084807794 g'day @1084808621 morning carl @1084808653 hey. how goes the MPS battle? @1084808727 it's mostly working, but it looks like there are cases that the page fault handler doesn't handle properly @1084808737 Shouldn't be too hard to fix @1084808805 cool. did you have to make changes in both the fd runtime and MPS? @1084808813 I got a letter from nick barnes, saying that the generation configuration is reasonable, and that they don't have a tarball release planned @1084808832 So far all the changes were in collector.c @1084808843 Though this bug I'm chasing might be in MPS @1084808881 (not a bug really, but maybe an unhandled case) @1084809007 i c. well i was just thinking it would be simpler if they're in our runtime so we don't have to get changes back into the MPS source @1084810214 -dircproxy- You disconnected @1084811397 -dircproxy- You connected @1084811713 i'm thinking of adding a generic funcion "file-system-case-sensitive?" to the file-system module, but i'm not 100% sure it's justified yet. i.e., does the fact that i find it necessary mean there's a limitation to the locators library that should be fixed... @1084811852 [cgay!~cgay@ita4fw1.itasoftware.com] ACTION goes to check the URL RFC to verify that the 'path' portion of a URL can be case-(in)sensitive depending on platform... @1084812572 ah, i guess they are case-sensitive always. thought i remembered it depending on OS. @1084812715 a client could never tell whether the server would be case-sensitive or not @1084812774 i'm just worried about doing regex matching on the URLs in the correct way @1084813152 also, whether on windows a filename that matches (but with the wrong case) should be 404... @1084813392 in practice, I imagine it usually isn't a 404 if it can actually find the file, but if matches in config files are involved then all bets are off @1084813397 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084818181 oh great. now i'm getting versioncache problems here too @1084818194 they're contagious! @1084818225 don't worry about the messages, I don't think anything is affected @1084818241 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1084818294 my problem is slightly different, but seems related to the versioncache generation @1084818312 losing group write perms on the data dir @1084818350 it's not just group write perm, it's also other read perms @1084818716 Re. @1084818770 I have made substantial progress with the MPS problem that is triggered by koala. @1084818792 pray tell! @1084818804 The very first call to primitive-allocate-wrapper fails. @1084818836 The wrapper passed is .class-instance-header, which turns out to be $undefined. @1084818865 So it is a problem of order of startup initializations, probably triggered by some construct in koala. @1084818888 hmmm @1084818910 I suspect it's this line: @1084818912 define constant log-copious = curry(log-message, $log-copious); @1084818946 if you change that to an explicit function definition does it work? @1084818951 But that's only speculation based on seeing this symbol at one point in the compiler. @1084818961 Didn't try yet, will do next. @1084818962 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084818965 re @1084818974 Hi Rob! @1084819050 Heya Andreas. @1084819063 l4 comes with a ppc emulator you can run it on. :-) @1084819107 Don't think it'll do HURD yet, but it's something to play with anyway. @1084819118 I happen to be able to use the vmware license my employer bought. Befre, I was using bochs for experiments. @1084819150 I just need a PPC emulator. Well, want. :-) @1084819171 I use VPC extensively at work to switch between Linux and Windows distributions. @1084819475 Carl: Are you still here? @1084819482 yes, hi @1084819526 Carl: I think you need a generic mechanism to make sure an attacker cannot trick his way through protection mechanisms by using different names for the same file. @1084819538 Are you aware of the poisoned NULL byte? @1084819554 no, but it sounds bad :) @1084819649 Imagine a web server written in a language that keeps expÃlicit track of string lengths. Like Dylan. Running on top of a OS with a system interface inspired by C, such as UNIX oder Windows, where strings are NULL-terminated. @1084819669 Now imagine what happens when you handle a request like foo.exe%00.txt @1084819746 you pass that string to the OS open() and all hell breaks loose? @1084819791 What usually happens is that you map from filename extensions to MIME types, and from there to request handlers. @1084819814 Say that .exe maps to application/cgi-bin, and .txt maps to text/plain. @1084819833 YOu have that CGI there, which of course contains your database passwords. @1084819887 The %00 gets converted into a NULL byte, which is a legal part of the string. SO your code thinks the user requests a txt file, and calls the appropriate handler. @1084819905 Which calls open() on the string it gets, and delivers the contents to the user. @1084819923 Of course, at this moment, the .txt is lost, and your server happily delivers the application binary. @1084819923 <^self!~fn@66.209.66.105> i see. @1084819938 ah @1084819996 WIndows has a couple more gotchas like that. There once was the problem that you could append $00 to a filename to do some magic, and that $00 was stripped by the OS before opening the file. @1084820021 So you need a generic pathname canonicalization mechanism to protect against this problem in a systematic manner. @1084820046 This needs to be carefully worked out for every platform, including all of these gotchas. @1084820079 -dircproxy- You disconnected @1084820090 i c. do you have a good source for this info? otherwise i'll just search for 'poisoned null byte' @1084820133 i wonder if CL-HTTP has already done something like this... @1084820158 I have explained all there is to know about that. The hard part is coming up with a design that allows for central maintenance of platform rules, so the user code doesn't have to worry anymore. @1084820175 You need to fight the whole class of bugs, not just this single instance. @1084820303 yup @1084820389 I've seen that you did well on preventing directory traversal, btw. :) @1084820445 There are web servers you can fool with %2e%2f%2f @1084820458 Err... %2e%2e%2f that is. @1084820481 which must be ../ @1084820530 I'll make a note of your comments and try to get to that soon @1084820585 Cool. :) Meanwhile, I'll continue to tame MPS for koala on Linux. It's progressing... @1084820670 I almost have virtual hosts working, and a sort of generic directory policy mechanism @1084820698 I mention unification of legacy composite characters in UNICODE as another joyful problem in the same category. @1084820746 Just for your notes, not that we have much of UNICODE support at the moment. :) @1084821044 Regarding the directory policy: do you have a notion of a generic protection policy? @1084821045 URL-encoding characters used to be good for getting the source to ASP pages. It was particularly bad as they'd already "ficed" the bug by refusing the ASCII that caused the same problem. :-) @1084821052 "fixed", even. @1084821393 Oh, koala comes with yet another implementation of string-to-float! :) @1084821414 i think i stole it from chris double @1084821471 haven't done much of anything with security yet @1084821540 There's string-to-float and float-to-string in common-dylan. The Gwydion implementation is carefully written to be precise, in the sense that concatenate(string-to-float, float-to-string) and vice versa is the identity function. @1084821616 ok. i also need to stop using the copies of anaphora, meta, xml-parser, etc that are in the koala dir @1084821653 Probably. Which reminds me taht we need some generic library distribution and installation mechanism. @1084821676 Sooner or later. :) @1084821736 do you mean something like CPAN? @1084821745 Yes. @1084821768 CPAN was a major factor in perl's success. @1084821790 i've used it a lot lately. it's probably the best thing about perl. ;-) @1084821828 Oh, it has powerful code obfuscation facilities for job security. :) @1084821891 at this point i'd settle for a manually maintained library repository, which could be automated later @1084821900 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084821913 Yes. @1084822029 does CPAN do dependency tracking? @1084822038 Yes. @1084822089 so it wouldn't install a too-new version... @1084822128 Not sure if they can do that. @1084822182 Something like a too-new version shouldn't happen. If a version breaks backwards compatibility, that is a major version change, which warrants a new, non-conflicting library name, so you can have both versions coexist for old and new code. @1084822394 -zelazny.freenode.net- hannes_ (~hannes@pD9E79F8E.dip.t-dialin.net) joined the channel @1084822395 re @1084822415 Re Hannes. @1084822422 hi andreas @1084822472 -dircproxy- You connected @1084822472 Ok, the error happens when define-class() is run an program startup time, while finalizing the class inheritance. @1084822854 If I remove from the code, the problem reappears during define-class for something in xml-rpc-common. @1084823564 In fact, the minimal code to trigger the bug is: *tada* @1084823565 define class () end; @1084823742 The thing is: the whole compiler is built with itself, and works fine. The only difference is that the compiler is built as a system project, where the above is compiled in a user project. @1084823792 -dircproxy- You disconnected @1084824176 re @1084824192 re prom. @1084825098 -dircproxy- You connected @1084825315 -zelazny.freenode.net- jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined the channel @1084825329 are you sure? the current build instructions in koala.html have it being built as a system project using the registry @1084825336 anything new? @1084825350 since when? @1084825368 Peter: I don't follow those. Maybe I should. :) @1084825371 Since thy holy god created Dylan... @1084825374 Hi jdrake. @1084825397 About a million lines of source code in our CVS, I guess. @1084825521 Hm. The problem doesn't go away when compiled as a system library. @1084825539 so that's not it then @1084825581 how about using LD_PRELOAD to insure that libdylan.so gets loaded first? @1084825626 what does ldd say? @1084825637 Might bw worth a try. But I still want to figure out what the difference between my one line of code and all the rest of the whole compiler is that makes the one line crash. @1084825643 ldd looks good. @1084825789 I'm very relieved that this looks like it is *not* a gc-related problem. @1084825901 my "jam-build" program works fine when compiled with MPS @1084826038 Ok, it is one of the lines in the .hdp file that triggers the problem. @1084826111 what line? @1084826128 I'm trying to find out right that. @1084827233 I was distracted by a new bug. When compiling a project from the command line of minimal-console-compiler, I get: @1084827234 Internal error: : 4 is not of type {: } @1084827248 during linking. Batch compiling works fine, though. @1084827770 How do I get a decent stack trace out of the compiler? @1084828069 I'm not sure @1084828114 I'd find where the Internal error: is being printed, and make it call break() @1084831427 Hm. I was able to get rid of the bug in two libraries by changing compiler mode from loose to tight. @1084831544 hmmm indeed @1084831557 Yes! Removing a call to limited in koala finally gives some startup! @1084831672 interesting. i ran into some strange problems (method not congruent during add-method) when in tight mode @1084831675 But crashes as soon as I try to connect to the port. @1084831771 Ok, but we're getting there! @1084832556 -zelazny.freenode.net- hannes (~hannes@pD9E79F8E.dip.t-dialin.net) joined the channel @1084833074 Ok, the bug now is that the network library doesn't properly handle EINTR. @1084833208 why does the network library have to handle EINTR? @1084833233 Because the garbage collector throws around signals, interrupting the syscall to accept(). @1084833251 ah yes @1084833273 should be easy to fix though @1084833279 yesyes. tasty unixy syscall interruption. @1084833329 "define interruptible-syscall accept ... end" @1084833419 unix-socket-accessor.dylan is full of comments describing windows return codes @1084833545 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1084834194 -zelazny.freenode.net- hannes__ (~hannes@pD9E7A4C8.dip.t-dialin.net) joined the channel @1084834261 One workaround later, and koala is happily serving pages to me. @1084834480 yaay! @1084834569 Remind you: I still see the crawling-to-a-halt problem with gctest, and I worked around the problem of initialization order for the wrapper wrapper. @1084834588 But I keep seeing milestones here. :) @1084835137 FINISHED --01:04:34-- @1084835137 Downloaded: 231,622 bytes in 59 files @1084835141 Output from wget. @1084835336 it couldn't do that with Boehm? @1084835379 Nope. The startup race condition I've been hunting for weeks! @1084835952 Ok, when I run wget in an endless loop, koala eventually crashes. After serving thousands of requests, though. @1084836144 could that be due to some other syscall being interrupted? @1084836199 No. The crash destroys the pthread structures. The stack looks smashed too. @1084836226 Again, the crashes are threads-related. The same I saw with the other garbage collector. @1084836293 I have an uneasy feeling about the runtime blatantly placing the current_teb pointer at a fixed address from the stack bottom. I mean, this memory range has been allocated for some purpose, probably for pthread internal data structures! @1084836359 Anyways, I think I've made progress, and need to go to bed. Night! @1084836382 'night @1084836811 our friendly "find" is up to 27 hours CPU @1084836862 gack @1084836874 enough is enough. it's dying. now. @1084836930 wonder how much output it produced. I'd better keep an eye on that "sort" @1084836979 noope .. it finished quickly, as did mandb @1084837017 still no DNS? @1084837041 no @1084837088 -zelazny.freenode.net- bhoult (~bhoult@morannon.eservglobal.co.nz) joined the channel @1084840127 -zelazny.freenode.net- cpage_ (~Chris@208.240.243.170) joined the channel @1084840445 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084840793 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084841294 -zelazny.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1084842438 -dircproxy- You disconnected @1084843896 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1084843939 is gwydiondylan.org down? @1084844207 DNS isn't working. You can reach the server by IP: 212.40.165.86 @1084844359 I see @1084844579 we're working on restoring full service... but I don't think we have an ETA @1084844741 hosting problem? @1084845350 -zelazny.freenode.net- jdrake (irc_user@CPE00045afdd0e8-CM014410113717.cpe.net.cable.rogers.com) joined the channel @1084846100 -dircproxy- You connected @1084846773 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) left the channel @1084846848 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1084848154 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1084849810 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) left the channel @1084853370 -dircproxy- You disconnected @1084853384 -dircproxy- You connected @1084855941 -zelazny.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1084864563 morning * @1084864856 -zelazny.freenode.net- brucehoult (~bruce@202-0-61-22.adsl.paradise.net.nz) joined the channel @1084866162 re @1084866173 re Chris @1084866972 -dircproxy- You disconnected @1084867789 re. @1084870366 -zelazny.freenode.net- brucehoult (~bruce@202-0-61-78.adsl.paradise.net.nz) joined the channel @1084873656 Morning! @1084873683 morning @1084873832 any news on DNS? @1084873852 Nope. WIll start my calls right now. :/ @1084874087 Finally, a techie at the ISP is on the phone! Now let's hope the machine isn't physically broken... @1084874698 Ok, the machine doesn't make a broken impression: fans are ok, hard disks too. It's probably right in the middle of an fsck now. If it isn't up within a quarter of an hour, I'll call again. @1084875048 Ok, the host is back up. The vmwares need manual intervention, IIRC... @1084875098 what machine is this? @1084875137 adrenochrome. A system I'm operationg in Amsterdam for a couple of friends. It is also my backup DNS and mail server. @1084875159 ah @1084875188 My main mail and DNS server is unreachable, since the ISP went bankrupt. @1084875205 :-( @1084875653 re @1084875660 Hi hannes. @1084875679 hi andreas @1084876592 Ok, DNS is back up. @1084876604 oh @1084876605 I just got a first reply from "host www.gwydiondylan.org" @1084876634 4 times it timed out, I thougth the 5th was going to too, but eventually worked @1084876654 Yes, it took a while to fsck all the file systems. @1084884165 -zelazny.freenode.net- cpage (~Chris@67.118.119.204) joined the channel @1084887413 looks like andreas made good progress yesterday. woo hoo @1084887484 cgay: yes, koala was much faster and much more stable with mps :) (i saw it on andreas laptop) @1084887759 great! @1084889606 Hi Carl, re Hannes! @1084889710 What really needs work now is the error handling of all the syscalls in the network library, as well as proper error handling in koala itself. @1084890028 -dircproxy- You connected @1084890532 Nick Barnes gave me the Dylan MM requirements document; it's up at http://www.gwydiondylan.org/~housel/req.dylan.txt @1084890578 Cool! @1084890907 Hm. The 1270th thread koala is spawning never makes it through startup, hanging in thre pthread start, waiting for a signal that never arrives. @1084890946 I have reproduced that exact count numerous times, with either one or two wget processed generating load. @1084890971 that's a strange number @1084891000 Yes indeed. @1084891572 Ah, I think I know where the problem comes from. ps shows a lot of koala zombie processes. So the threads are never correctly terminated. @1084891652 threads are terminated with join(), right? isn't there some sort of known limitation with join()? @1084891682 I think the creator has to call join. Threads terminate themselves by returning from the thread function. @1084891737 does the creator call join? @1084891771 (it's bug 6978 BTW) @1084891897 No, nobody is calling join. @1084892115 Interesting. No zombies when not running under gdb. @1084892364 does it die at 1270 when not under gdb? @1084892460 Hard to tell, because it was gdb keeping track of thread count. But PIDs should gve a clue... @1084892655 Ok, PID difference is > 1500, and it is still running. @1084892665 It did get slower, though. @1084892779 is it really a good idea to create that many threads? Doesn't apache have a pool of live threads it passes things to? @1084892797 that would be less overhead, too @1084892814 (mutex wait overhead vs. thread startup overhead) @1084892814 Ok, and finally it hangs, with PID difference between first and last thread of about 1600. @1084892888 Still, you'd expect it to work. It's not that the 1000 threads are all active at the same time. @1084892931 yeah, but how are their stacks being allocated? @1084892964 does glibc notice they've gone away and re-use the stack space? @1084892970 Good question. @1084892995 It does. @1084893077 Does dylan_mm_deregister_thread_from_teb() get called for each thread that has gone away? @1084893094 I think so. Didn't verify it, though. @1084893117 The problem is in the communication between the newly created thread, and the pthread manager thread. @1084893118 <^self!~fn@66.209.66.105> yowzalicious! @1084893229 Ok, have to leave. Later! @1084893234 cul @1084895683 commit by andreas to src configure.in,1.152,1.153: bug: 7017 @1084895683 Better regexp for matching Linux on PC. @1084895686 commit by andreas to src: bug: 7018 @1084895686 Add implementation. @1084896073 -dircproxy- You disconnected @1084899576 Re. @1084899590 CIA obviously has lag. @1084900313 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084900728 -dircproxy- You connected @1084900806 maybe it was refusing messages from gwydiondylan.org until DNS came up @1084900913 The commit was after DNS came up again. @1084900934 TODO: Real errno accessor @1084900935 define method unix-errno () 99 end; @1084900978 yes, I remember that @1084900983 I'm just working on implementing that. We need to handle EINTR, it's breaking everything, including stream reading and writing. @1084901492 use c-expr() ? @1084901500 on d2c @1084901508 Hi Gabor! No, FD in this case. @1084901526 ok @1084901555 fortunately for the network library you can use C-FFI @1084901556 then this sounds like a primitive @1084901566 ok @1084901582 Yes. Unfortunately, errno is implemented as a macro in glibc. @1084901592 no problem, write a C function to fetch it @1084901602 Use C-Source-File: errno.c in the LID file @1084901610 that is the portable way, yes @1084901618 I'll call __errno_location for now. @1084901886 streams and file-system will have to use primitive-* though, sigh @1084901902 though I think they already have code to retrieve errno properly @1084901964 Hm. I did see spurious read errors when two threads were active. I'll look into that later. @1084902011 I don't think they're chechking EINTR properly, but at least there is a way to retrieve errno @1084902028 Ok. So it won't be too hard to fix. @1084905229 re @1084905235 Re Chris. @1084905461 Ok, handling EINTR everywhere solved the problem of koala becoming slower over time. Maybe there is a problem with non-local exits and signal delivery. @1084905533 It didn't solve the full-stop problem after 1270 threads. I think the problem is that nobody ever says join, and the thread isn't created detached either, so a descriptor is kept around. @1084906316 Ok, it seems that somebody needs to call pthread_detach if nobody is ever going to call pthread_join. @1084906340 Unfortunately, there's no notion of saying "I won't ever call join". @1084906439 -zelazny.freenode.net- hannes (~hannes@pD9E7A4C8.dip.t-dialin.net) joined the channel @1084906442 re @1084906627 Re hannes. @1084908391 -zelazny.freenode.net- hannes (~hannes@pD9E7A4C8.dip.t-dialin.net) joined the channel @1084909617 maybe a new init-keyword on would be appropriate @1084909668 I've settled for calling pthread_detach in the finalizer of , or actually in primitive_destroy_thread, which is called from there. @1084909685 If there's no reference left, nobody will be able to call join, right? @1084909702 Compile run to test the theory is on the way. @1084912009 -zelazny.freenode.net- pritlove (~pritlove@217.231.164.200) joined the channel @1084912241 -dircproxy- You disconnected @1084913442 Ok, looks like the finalizer isn't properly invoked. When calling it manually, koala becomes rock solid. @1084913612 -dircproxy- You connected @1084913634 don't we have the same problem as java finalizers? i.e., there's no guarantee when a gc will be done? @1084913713 [cgay!~cgay@ita4fw1.itasoftware.com] ACTION should really just shut up since he doesn't have time to _think_ @1084913715 That could very well be. @1084913743 BTW: I have koala running for 20 minutes straight now, serving about 50 requests per second. @1084913784 sah-weet :) @1084913788 How are you calling it manually? @1084913796 finalize(thread) @1084913807 ah @1084914833 I'll look into finalization this evening @1084914864 I have an instance here that looks like the finalizer was actually called. @1084914943 I imagine the threads are ending up in Generation 2, which is 2MB, and so it takes awhile for things to get cleaned out of that @1084914995 Might be. If you could figure out a way to fine-tune finalization behaviour, that would be good. @1084915018 Meanwhile, I just ignore the error from the second pthread_detach. @1084916413 commit by andreas to fundev: Bug: 7019 @1084916413 Improve error handling somewhat. Especially EINTR is handled correctly @1084916413 now (or so I hope). @1084916805 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084916807 re @1084916817 Hi Rob! @1084916823 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION Software patents approved in EU http://kwiki.ffii.org/?Cons040518En :-< @1084916830 Heya Andreas. @1084916860 Was Troy any good? Work are dragging me to see Van Helsing next week. :-) @1084916956 The movie is about average, but you can safely take somebody there who enjoys a view of Brad Pitt or Orlando Bloom naked. @1084917000 heh @1084917004 I may need to restrain someone. :-) @1084917246 What about that patent vote, though. What happened there? I thought Deutschland was going to do the sane thing. :-( @1084917276 I was thinking that too. The maneuver completely surprises me. @1084917281 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION lives in the Fuedal part of the EU known as the UK. @1084917324 But what really boggles my mind is that the Commission is more powerful than the parliament. That's not how democracy is supposed to work. @1084917332 I think I'm going to patent patentability. Then any patentees will have to pay me to patent anything. @1084917387 time to really raise a protest @1084917406 for democratic governance, as well as patents @1084918355 "Better regexp for matching Linux on PC." @1084918365 Newsflash: that star was not a Kleene star... @1084918378 Eek! @1084918964 Eh? @1084919020 Globbing patterns are not regular expressions. I used the wrong terminology in my commit message. @1084919032 Ah. @1084919061 Regarding the Comission, yes the EU is run by unelected, unaccountable, corrupt bureacrats. Who have voted to hold themselves immune from corruption. And, joy, the UK sends their worst failed politicians to be the best of the corrupt (Kinnock, Patten). @1084919103 The EU is a wonderful ideal, but the Comission needs massive reform. Shame it would be in charge of any reform. :-) @1084919215 Manyhow, I'm sending some cash to FFII and writing to my MPs... @1084919236 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION Bit late, obviously... @1084919348 [robmyers!~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com] ACTION rant, rant. Sorry.... :-) @1084919373 No problem. I share your concerns. @1084919637 Back on topic, would a flag to melange to make it declare functions rather than methods make sense? It might speed up the OpenGL bindings, for instance. @1084919676 I doubt that would make much of a difference @1084919719 the methods are going to be in sealed GFs @1084919825 +1 on ROb @1084919850 anything generated automatically from a C interface will *always* be able to be a simple function @1084919873 it will save a lot of codespace and link time to not have the general entries @1084919882 Except for struct accessors, if you drop the prefixes. @1084919892 exactly @1084919916 there are several gf struct accessors in the gtk1 binding @1084919952 There are zero struct accessors in the GTK2 binding. :) @1084919989 by design? @1084919997 It might also be good to have the option of the glue functions being inlined @1084920020 hopefully they won't be needed for DUIM @1084920041 the current gtk-duim did need them in several places @1084920046 Yes. The GTK2 API is fully usable without any access to structs. @1084920072 I suspected as much @1084920075 Accessing struct members directly is highly discouraged. @1084920141 that, and enum values, were the main reasons I had to write gobject-tool @1084920551 -zelazny.freenode.net- pritlove (~pritlove@pD9E79E7A.dip.t-dialin.net) joined the channel @1084920808 -zelazny.freenode.net- hannes_ (~hannes@pD9E79E7A.dip.t-dialin.net) joined the channel @1084921118 Inlined? @1084921189 that's a question? @1084921214 Yes. :-) What's inlined in a d2c context? @1084921215 The options for --functions would be none , functions , all [functions & accessors]. So you could avoid accessors without prefixes, and manualy rename any collisions on functions. @1084921387 housel: where does mps_lib_abort() in the runtime come from? it's used in collector.c, but i can't find a lib which provides it. @1084921510 in linux, it's provided by mpsplan.a @1084921518 in Win32, it's part of plinth.c @1084921602 (If memory serves me correctly) @1084921674 yes, in win32/plinth.c i found it, but my mpsplan.a doesn't provide it and in my mps-sourcedir there is no match for mps_lib_abort. @1084921820 hmmm... I think I may have added one to one of the other files... let me check @1084921901 I added this to the beginning of linux-support.c: @1084921903 void mps_lib_abort(void) @1084921903 { @1084921903 fflush(stdout); @1084921903 abort(); @1084921903 } @1084921993 We should probably go the other direction and eliminate its use, it's not part of the mpslib.h interface anymore @1084922019 thanks @1084922922 how did you fix the linuxulator (to run mps on FreeBSD)? @1084923067 I wasn't able to fix that @1084923092 I hacked MPS to read the page fault address from the err field of sigcontext rather than the cr2 field @1084923110 I think there were 2 functions I had to change @1084923130 housel: ah, ok. can you mail me a diff? @1084923149 ok @1084923825 hannes_: see http://www.gwydiondylan.org/~housel/mps-code.diff @1084924079 you also use the version downloaded with wget from http://www.ravenbrook.com/project/mps/master/code/ ? @1084924092 yes @1084924186 andreas koala just responded to ~100 requests per second with a static file. @1084924230 nifty! @1084925127 -dircproxy- You disconnected @1084926333 -zelazny.freenode.net- hannes_ (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1084926866 -dircproxy- You connected @1084927997 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1084928688 -dircproxy- You disconnected @1084942108 -dircproxy- You connected @1084942109 -dircproxy- You disconnected @1084942242 -dircproxy- You connected @1084943690 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084943691 re @1084944280 -zelazny.freenode.net- Enometh (~Dadaism@adsl-66-159-224-83.dslextreme.com) joined the channel @1084944348 morning rob @1084944409 -zelazny.freenode.net- Enometh (~Dadaism@adsl-66-159-224-83.dslextreme.com) left the channel @1084944923 Morning. Early wake-up call from Liam this morning. :-) @1084956183 -dircproxy- You disconnected @1084956207 -dircproxy- You connected @1084957221 -dircproxy- You disconnected @1084957236 -dircproxy- You connected @1084961293 Morning! @1084962086 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1084967862 -zelazny.freenode.net- pritlove (~pritlove@194.95.203.200) joined the channel @1084971764 -zelazny.freenode.net- pritlove (~pritlove@194.95.203.200) left the channel @1084972160 <^self!~fn@66.209.66.105> hmm. bored. @1084973729 go and read dilbert @1084974043 andreas: http://security.e-matters.de/advisories/072004.html @1084975451 <^self!~fn@66.209.66.105> dilbert! haven't read that in a while. thanks. @1084976140 Re. @1084976150 koala on http://www.gwydiondylan.org:8000 @1084977406 re @1084977427 Hi Hannes. @1084977494 hi andreas @1084978194 hi all @1084978223 Hi Carl! @1084978244 nice to see koala up on a real web site :) @1084978290 Yes, indeed! @1084978366 It's pretty stable now. I've seen a very rare crash, but it seems to be an unhandled condition, not a runtime fault. @1084978399 "very rare" means running for an hour, serving 50 requests per second. @1084978437 There's one other problem: if there are too many concurrent threads (more than 10 or so), the garbage collector becomes *really* slow. @1084979229 awesome. i'm going to rebuild with your network changes @1084979301 nice body painting, by the way :) @1084979493 Heh, thanks! @1084979522 I think you will need some more changes, especially regarding the MPS integration. @1084979594 [hannes!~hannes@port-195-158-171-122.dynamic.qsc.de] ACTION still has only a minimal-console-compiler with mps which allocates memory and does nothing :( @1084979726 andreas, could you update the README.txt with the latest instructions? @1084979828 (when you get a chance) @1084980747 I will. But I also need to unroll about half a dozen workarounds, write bug reports, commit changes, etc. @1084980962 ok @1084983260 -dircproxy- You disconnected @1084985483 -dircproxy- You connected @1084985622 for some of the changes, we need to figure out "why" before committing to them @1084985752 anybody seen this: " - Linking shared-object dfmc-modeling.so\n Killed" during phase 1 bootstrap (trying to get mps working with fundev, mps tests run ok). @1084985806 which platform? @1084985819 FreeBSD in linuxulator @1084985948 do you have a core dump? @1084986044 no, can't find a core file @1084986113 hmmm @1084986216 it tries to link minimal-console-compiler. @1084986383 Phase 1 doesn't involve MPS, everything uses the 2.1alpha3 fdcompile @1084986452 I haven't done a Phase 1 lately, let me try it @1084986511 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1084987495 I'm getting weird responses from the CVS server lately @1084987507 "nothing known about Samples" @1084987518 "nothing known about admin" @1084988877 hmm, running fdcompile with strace prints the following before dying: fork() = 7803 @1084988877 sendmsg?(673047680, {msg_name(-1010172835)={sa_family=0x75 /* AF_??? */, sa_data="\213E\10\203\370\1\213U\f\213u\20\17\204"}, msg_iov(1347675529)=No memory, msg_controllen=3280034560, msg_control=0xe8, , msg_flags=MSG_PEEK|MSG_CTRUNC|MSG_DONTWAIT|0x7c400}, MSG_OOB|MSG_PEEK|MSG_CTRUNC|MSG_EOR|MSG_WAITALL|MSG_TRUNC|0x1e00 @1084990032 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1084990034 re @1084990499 cgay: That's very cool, seeing Koala running. @1084990861 that's andreas' work, but yes! @1084990886 -zelazny.freenode.net- hannes (~hannes@pD9E79E7A.dip.t-dialin.net) joined the channel @1084990889 re @1084990921 hi hannes @1084990924 hi carl @1084991926 does bsd strace work for linuxulator binaries? @1084992020 not sure about that @1084992208 btw, anyone updated cvs on cantor? there is a remote heap buffer overflow in pserver @1084993429 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1084993802 hmm, stage1 works on a linux box. @1084993850 the whole thing works fine for me... I'm in the middle of a Stage3 (final) @1084993878 i'm trying with a fresh cvs repository on my laptop @1084993937 [hannes!~hannes@pD9E79E7A.dip.t-dialin.net] ACTION has no idea why it is broken :( @1084999567 hmm, with a fresh installed functional-developer rpm and a freshly checked out fundev tree i can't bootstrap on FreeBSD-current :( @1084999601 Should fundev bootstrap on BSD? @1084999608 Indeed should it boostrap at all? @1084999629 robmyers: it did in linuxulator ~2 months ago ;) @1084999645 Ah. @1084999654 robmyers: bootstrapping with functional-developer-linux-alpha-rpm i've installed @1084999699 Where does it fail? GC, build system? @1084999728 it fails during linking and says only 'Killed' not by whom. @1084999751 ..linking minimal-console-compiler @1084999797 Can you gdb that step of the build? (says the UNIX expert ;-) ) @1084999867 it did in linuxlator ~2 hours ago @1084999900 "Killed" often means "out of swap space" @1084999909 anything in dmesg? @1084999914 housel: i've 512m ram @1084999946 resource limits? ("unlimit") @1084999950 housel: ah, yes, i removed my swap partition, so it needs more than 512m ram @1085000001 why would you want to remove your swap partition? @1085000041 due security reasons: it can contain private information when anybody gets access to my laptop. @1085000061 and i thought 512m ram would be enough for me ;) @1085000082 can't you swap on an encrypted swap partition using bde? @1085000125 yes, i could. i already use bde for my crypto filesystems (my ~) ;) @1085000252 and i'd have no chance to get kernel dumps on a raw device (you can't dump to an encrypted swap partition and restore it) @1085000720 that's ok, I've gotten maybe 2 useful kernel dumps in the 7 years I've been running FreeBSD @1085000776 housel: yes, this functionality would be a really nice feature if it would work ;) @1085001599 so does it work when you enable swap space? @1085001634 yes, just finished Bootstrap.1 :) @1085001808 re @1085002434 hi chris @1085002479 andreas: I think koala needs to have "automatic-finalization-enabled?() := #t;" before it will do the finalization @1085002610 that creates an extra thread that just sits around and waits for finalization messages from MPS @1085003690 hmm, should we mention that > 512MB ram is needed for fundev bootstrapping ;) @1085003790 s/;)/?/ @1085003802 dunno @1085003812 s/ram/VM ? @1085003864 cgay: yes. @1085005720 ok, stage2 finished, but minimal-console-compiler from stage2 doesn't run @1085005821 hannes pasted "gdb backtrace of running stage2 minimal-console-compiler" at http://www.common-lisp.net/paste/display/1000 @1085006184 eek. 512 MB! @1085006196 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION remembers building d2c on a 32 MB machine. @1085006210 OK, that was painful, but 128 MB is plenty :-) @1085006235 bhoult: with 512MB it fails to compile, it needs more. @1085006264 more total address space, yes I see that now @1085006290 but does 512 physical + swap perform OK (for those with swap :-) ?? @1085006366 bhoult: yes. it needs 530 MB vm @1085006699 -zelazny.freenode.net- hannes_ (~hannes@pD9E7B019.dip.t-dialin.net) joined the channel @1085006701 re @1085007007 [prom!~prom@217.13.206.33] ACTION once tried to mindy-boot on an 80mb hppa box. but it was just too slow. i gave up after a week or so into the run when i wanted to move the machine... @1085007190 hannes: could you tell me the instruction at eip in frame #10? @1085007342 (I suspect I know already) @1085007547 also the values of src and dest in frame #0 @1085007554 uhm, what was the gdb command to show the instruction? @1085007943 disassemble @1085007990 yes, found it @1085008157 must have been an old hppa. The ones here aren't fast, but a mindystrap is only overnight @1085008174 HP-UX rand B.11.00 A 9000/785 @1085008183 bhoult: the only reason it needs 512MB is that Phase 1 builds the entire compiler in one swell foop @1085008192 later phases do it library-at-a-time @1085008233 my std CPU speed test takes 4.4 seconds on the 9000/785 @1085008240 hannes annotated #1000 with "more info for peter" at http://www.common-lisp.net/paste/display/1000#1 @1085008242 that's: time perl -e 'for($i=0;$i<=1000000;++$i){$t+=$i}print"$t\n"' @1085008287 that's just *slightly* faster than my 266 MHz G3 laptop @1085008956 another try gives me: #0 0x28175c0a in __mprotect () at __mprotect:-1 @1085009016 hmmm @1085010618 -zelazny.freenode.net- hannes_ (~hannes@pD9E7B019.dip.t-dialin.net) joined the channel @1085011482 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085012563 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085012565 re @1085013618 bhoult: yeah. it was an old one. just a gecko. with a slow scsi hard disk, swapping all the time... @1085013635 but not on hpux. i had linux on it. @1085014000 (a gecko 60 or 80. 712/60 or 712/80. very small, light and nice workstation. but pretty slow ;) ) @1085014053 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085015254 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1085015350 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) left the channel @1085018585 -dircproxy- You disconnected @1085023058 -dircproxy- You connected @1085031435 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085031435 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085032003 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085032003 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085033406 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085033406 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085037050 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085037050 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085045568 morning @1085048946 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085048946 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085051221 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085051258 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085062274 ok, fundev works with mps on freebsd if i comment out dylan exception handlers for sigfpe and sigsegv (in x86-linux-exceptions.c) @1085066042 http://www.gwydiondylan.org/cgi-bin/bugzilla/show_bug.cgi?id=6202 is nasty @1085066786 probably best to fix it looking for all classes with repeated slots, and adding Dylan-level checks, rather than fixing it in collector.c @1085067916 -dircproxy- You disconnected @1085071594 -dircproxy- You connected @1085072957 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1085073322 -dircproxy- You disconnected @1085073447 -dircproxy- You connected @1085074088 actually maybe the Dylan-level layer (found in boot.dylan) that calls the primitive allocators would be even better @1085074404 -dircproxy- You disconnected @1085075074 -zelazny.freenode.net- hannes (~hannes@pD9E7B019.dip.t-dialin.net) joined the channel @1085075118 re @1085076968 while runnning koala and serving a directory listing i get MPS ASSERTION FAILURE: base != NULL (trace.c:1303). anyone seen this? @1085082020 -dircproxy- You connected @1085082370 hannes: no, I haven't seen that particular problem @1085082437 housel: hmm, it is not really easy to trace, cause FreeBSD gdb doesn't know anything about glibc and linux gdb is not fully able to read FreeBSD .core files :( @1085082511 I imagine it could figure out glibc with a little manual coaxing @1085082529 so far I haven't needed to know exactly which libc function I was in @1085083171 housel: hmm, the FreeBSD gdb is also confused because there are signals he doesn't know @1085083614 when running MPS programs under gdb you have to do "handle SIGSEGV noprint nostop", or are you referring to some other signal? @1085083639 i refer to "Program received signal ?, Unknown signal." @1085083669 oh, I think that's related to multithreading @1085083685 yes, I imagine it does get confused @1085083765 "warning: Signal ? does not exist on this system." is also a nice warning ;) @1085087594 re @1085088931 hi chris @1085089461 morning @1085089491 so: I have a new machine at home, which came with Mandrake 10 on. But there's a problem... @1085089536 gcc -static doesn't work for building (static) executables. It fails because it can't find -ldl @1085089551 (and others, if I remove the -ldl from the link line) @1085089585 I see that Andreas had put "gcc -static" on a number of platforms about 9 months ago, and then abcked out all but x86-linux-gcc, saying that it worked there @1085089714 didn't work on FreeBSD either @1085089801 it works on some x86 linuxes @1085089917 or, at least, I assume it does @1085089954 it was left on x86-linux-gcc and x86-linux-gcc33, and l come to think of i I don't have one of those (I have gcc32) @1085090240 [bhoult!~bhoult@morannon.eservglobal.co.nz] ACTION thinks that "gcc-Xlinker -Bstatic" does work @1085090254 or, at least well enough for our ICFP entries in 2000 and 2001 @1085090305 I think I had trouble with that too, at least I always removed it at the time @1085090323 or -Wl,-Bstatic maybe it was @1085090421 well, gnu ld accepts -Bstatic or -dn or -non_shared or -static as the same meaning @1085090464 the -Wl, and -Xlinker are just variants for gcc, yes? @1085090594 [housel!housel@cantor.gwydiondylan.org] ACTION checks @1085090682 looks like they're similar, -Wl splits args at commas, -Xlinker can be repeated @1085090928 hmm. why do we have "/usr/local/lib/libgc.so: and not "-lgc" ?? @1085090951 both work :-) @1085090976 but only the 2nd lets you statically link the gc @1085090994 so now "nm -u hello" is down to: @1085091003 _dl_hwcap @1085091003 dl_iterate_phdr @1085091004 _dl_rtld_map @1085091006 _DYNAMIC @1085091008 __gmon_start__ @1085091010 _Jv_RegisterClasses @1085091012 __pthread_rwlock_rdlock @1085091014 __pthread_rwlock_unlock @1085091053 .. but that's enough for "file hello" to say it's statically linked @1085091142 guess I'll raise a bug and then fix it ... saying "-L/usr/local/lib -lgc" should be more than satisfactory @1085091162 .. where the -L is the configured GC_PREFIX, of course @1085092188 Well, moving the -Xlinker -Bstatic to platforms.descr instead of the .lid file means that if something else works on another platform then that can be captured in the appropriate platforms.descr entry @1085092217 anyway I've raised bug 7021 for it @1085093371 -zelazny.freenode.net- hannes_ (~hannes@pD9E7AA8E.dip.t-dialin.net) joined the channel @1085097042 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085101731 -zelazny.freenode.net- Riastradh (~riastradh@pool-141-154-214-206.bos.east.verizon.net) joined the channel @1085105913 -zelazny.freenode.net- bhoult (~bhoult@morannon.eservglobal.co.nz) left the channel @1085106219 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085106299 hi @1085106347 hi carl @1085106391 I've been going through the Libraries/* bugzilla entries and figuring out which ones still apply @1085106459 are a lot obsolete? @1085106523 not many... of 128 I closed maybe 8 or 9 @1085106560 i've been wavering back and forth on whether to add file-system-case-sensitive? to the file-system module, or something like compare-filename to locators... @1085106584 i'm leaning toward the former because i can't think of a good name for the latter @1085106595 \= @1085106669 i'd have to do a ton of coersion to/from locators in koala to find out if index.html exists. that's what i'd like to avoid @1085106957 i've never used OS X. i just read something about it having an _optional_ case-sensitive file system. do you know how that works? i guess we would have to do something to support it in the system lib @1085107113 i would've thought it was all case-sensitive @1085107159 POSIX provides pathconf() which allows you to determine whether a particular path is case-sensitive or not @1085107344 no, I'm wrong, it does no such thing @1085107408 Anyway, the same thing can happen on Linux or BSD if a file is located on a VFAT filesystem @1085107641 ok, i can just use \=. i shouldn't be worrying about optimizing anything yet anyway @1085108261 speaking of optimizing, have you thought about the "pool of pre-initialized worker threads" idea? @1085108976 not really. i have a simple resource pool protocol that could probably be used. @1085109136 [carlgay_!~chatzilla@h00a0c5e1f619.ne.client2.attbi.com] ACTION checks the logs... @1085109318 i can't tell from the logs if you guys thought it was required for the creator to call join() @1085109392 andreas figured out that it wasn't necessary, but he had to call release or something like that if join was not to be called @1085109412 so he called release in the thread finalizer primitive @1085109505 but then the finalizer wasn't being called @1085109510 so he called the finalizer manually @1085109524 then I figured out that he needed to start the automatic finalization thread @1085109534 and that's where it stands right now @1085109665 what's the auto finalization thread? @1085109715 that's what gets started when you do "automatic-finalization-enabled?() := #t;" @1085109875 it waits around for finalization events from MPS and calls finalize() when it receives them @1085109966 and it's even documented :) @1085109979 i was gonna say...will it work under boehm? @1085110023 I don't think the current FunDev-Boehm integration supports finalization @1085110053 it has its own way of doing finalizers, but I don't think that way is being used right now @1085110150 i c. at any rate, koala should use a thread pool. and if not, it should at least call join @1085114686 The HFS+ file system, which is the default on Mac OS X, is case preserving, but insensitive...just like Dylan :-) @1085114716 You can mount case-sensitive volumes, of course. @1085114728 You can optionally format the root volume using UFS, which is case-sensitive. @1085114760 And more recently, Apple introduced an option to make an HFS+ volume that is case-sensitive, but it's for special cases. @1085114819 Case-sensitive file systems still break some Mac applications, so Apple warns against using one for the root volume except for special cass. @1085114824 s/cass/cases @1085114851 And with that, I'm off to dinner. @1085116589 -dircproxy- You disconnected @1085116599 -dircproxy- You connected @1085119807 -zelazny.freenode.net- Riastradh (~riastradh@pool-141-154-214-206.bos.east.verizon.net) joined the channel @1085131573 Morning! @1085131745 Regarding the finalization: the finalization queue is manually darined on thread startup, so enabling automatic finalization shouldn't make muchof a difference. @1085132538 And yes, I've updated the CVS service. @1085135886 hi @1085143225 ~. @1085144194 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085144215 http://www.oreilly.com/news/graphics/prog_lang_poster.pdf @1085145226 -zelazny.freenode.net- hannes (~hannes@pD9E7AA8E.dip.t-dialin.net) joined the channel @1085145229 re @1085146054 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1085146529 -zelazny.freenode.net- pritlove_ (~pritlove@pD9E7AA8E.dip.t-dialin.net) joined the channel @1085150244 its lisp history is pretty lame @1085150515 Hi Peter! @1085150790 morning @1085151605 -zelazny.freenode.net- pritlove__ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085151668 I still think it would make sense to add a joinable?: init-keyword to @1085152231 -zelazny.freenode.net- pritlove (~pritlove@pD9E7AA8E.dip.t-dialin.net) joined the channel @1085152806 Probably. @1085154311 -zelazny.freenode.net- pritlove (~pritlove@pD9E7AA8E.dip.t-dialin.net) joined the channel @1085155332 -dircproxy- You disconnected @1085155380 -dircproxy- You connected @1085159621 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1085165103 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1085165106 heya @1085165231 I'm wondering how to solve the "multiple args to join" problem. I'm thinking maybe we could give up on calling pthread_join entirely, and have a condition variable for thread termination that would replace it @1085165296 Can't you just pass a big fat object in through the pointer? @1085165392 the problem is that pthread_join only lets you wait for one particular thread to terminate, and Dylan join wants to be able to wait for one-of-n particular threads @1085165489 http://www.functionalobjects.com/products/doc/core/core_133.htm#HEADING133-0 @1085166007 fixing this particular limitation is probably not a high priority, though @1085166502 Can you terminate them asynchronously and have them notify something as their final act? @1085166512 yes, that's the idea @1085166543 Been doing threads at work this week. Oh the joys of mapping from Win32 to Posix. :-) @1085166633 indeed @1085167541 You could always use a thread variable. :-) @1085167695 re @1085167869 Heya chris @1085167897 Just looking at pictures of Lisp Machines hosted in Macs (MacII-era). Scary stuff. @1085171084 Which pictures? @1085173914 rob: andreas has one of these. a symbolics ivory nubus card. @1085173956 [Riastradh!~riastradh@pool-141-154-214-206.bos.east.verizon.net] ACTION wants to get one of those. @1085173969 I think I'll look for one in the June flea at MIT. @1085173990 Of course, people probably wouldn't want to give them up... @1085174023 riastradh: iirc you can still buy them for a painfull price from symbolics. but andreas seems to have gotten the last symbolics mouse-and-kbd-to-adb converter they had for sale. @1085174023 <^self!~fn@66.209.66.105> indeed. @1085174060 riastradh: without this you cant use the great, strange symbolics kbd. it doesnt even have cursor keys ;) @1085174160 but it has circle, triangle and rectanglge keys. and, of course, the hyper super meta modifiers. @1085174185 If someone has a NuBus Lisp machine card, there will probably also be a Symbolics keyboard. @1085174217 riastradh: yes. but you cant buy the adapter from symbolics... so youll have to find one in the wild. @1085174256 [prom!~prom@217.13.206.33] ACTION tried to use genera with xforwarding, but the pc keyboard sucked for it. @1085174257 ...on the slim chances that I find the card & the keyboard, I suspect that whatever other equipment is necessary will be findable. @1085174309 riastradh: yeah. just an old mac. and memory cards for the ivory. but that should come with the cpu card. @1085174388 there is, of course, opengenera for the alpha. @1085174416 it might be easier to get an alpha with a lot of memory and disk than an ivory card. @1085174444 it certainly is easier... @1085174503 Eh. That wouldn't be nearly as cool. @1085174544 And I already have plenty of old Macs; I have no Alpha already. @1085174618 [prom!~prom@217.13.206.33] ACTION only has a multia. but there is an alpha standing behind the couch here that has opengenera installed. @1085174667 And I recently bought a computer for running an old Lisp, so I'll wait a bit more before buying yet another computer for an old Lisp. @1085174761 (where 'recently' = 'one month ago') @1085174934 riastradh: what kind of machine was thatß @1085174937 ? even @1085174955 A SPARC. @1085175174 this reminds me of the situation on cantor and the fact that it wont be around for long. @1085175213 the only alternative i can provide is a sun enterprise 450 with 2 CPUS @ 300 MHz and 1.7G ram. @1085175248 of course, fd wouldnt run on that without the c backend running... @1085175267 (The old Lisp was T, whose linker I'm hacking now.) @1085176213 that would be a good incentive to get the C backend running again @1085176228 Just make a SPARC port! @1085176257 of course, but that can come later @1085176280 once we're sure Sun will survive :-) @1085176281 <^self!~fn@66.209.66.105> you don't say. @1085176284 How soon do you suppose a working PPC port will be ready for serious use? @1085176330 it wouldn't take very long if someone were to start seriously hacking on it @1085176353 What would it take to convince one of you to do so? @1085176371 buy me a 12" iMac :-) @1085176382 I'm up for it, but all I currently have are PPC machines, so I either need to get an x86 or VirtualPC. @1085176400 I find it hard to believe you can't get a shell on an x86 box anywhere. @1085176455 Me? I suppose, but I have a hard time imagining that being a pleasant development environment. @1085176499 Emacs works fine remotely for me on my SPARC. (I got a broken keyboard and haven't gotten around to getting a new one and setting up the windowing environment.) @1085176512 In fact, offhand I don't know of one. Who wants to volunteer me one? :-) @1085176565 [cpage!~Chris@67.118.119.204] ACTION does not consider emacs via ssh "pleasant," despite using emacs quite a lot recently and contributing to dylan-mode :-) @1085176608 Well, I guess it's more pleasant with T, since it's pretty much the same environment the original developers used, whereas with FunDev, there's a whole GUI development environment geared towards Windows... @1085176626 Or rather, not 'more pleasant,' but 'less comparatively unpleasant.' @1085176929 Double-plus unpleasant? @1085176961 There's the added pain of not having use of a meta key when going over ssh. Is there a way to work around having to type Esc separately? @1085177058 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1085177137 cpage: emacs vi ssh doesn't float your boat? Right now, I'm dealing with an environment (complex and fragile CORBA-based system) that doesn't allow gdb debugging @1085177146 its so barbarian @1085177322 Ouch. @1085177524 speaking of debugging --- does gdb work with fundev under Linux yet? @1085177687 -zelazny.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1085178261 cpage: you have a cantor account, right? @1085178442 ,exit @1085178446 Er, wrong window. @1085178472 What was that window? Scheme48? @1085178478 Yup. @1085178623 housel: Yes. @1085178880 that should be sufficient I think @1085179713 There are sufficient CPU and storage resources that builds wouldn't impact the web site or CVS usage? @1085179999 Just had a thought: Does [] get turned into element() before or after the compiler looks at the arguments? The reason I ask is I'm wondering whether you could write a function macro named element() to mimic Perl's "list comprehension" syntax. @1085180022 Perl has a list comprehension syntax? @1085180032 ...where you can write "[x**2 for x in rang(10)]" or "[x for x in S if x % 2 == 0]" @1085180038 Sorry, I meant Python. @1085180078 you could write such a macro I imagine @1085180081 I think you should do something more like SRFI 42. @1085180136 When I see this kind of thing in other languages, it makes me wish Dylan macros could define more fine-grained syntax, like operators. @1085180150 ...or "expressions". @1085180229 ie., I'm sure I could write a function macro, but I think the square bracket syntax is lighter-weight and stands out more than "foo(...)". @1085180301 So don't write a function macro. @1085180315 What's the alternative? @1085180324 Uh, the other kinds of macros. @1085180334 ...which are heavier-weight than even function macros. @1085180341 foo ... end; @1085181283 [cpage!~Chris@67.118.119.204] ACTION takes a look at SRFI 42 @1085181352 BTW, why are for's "while:" and "until:" symbols, while "in", "then", etc. aren't? @1085181387 Does that work around potential conflicts? @1085181419 yeah, probably @1085181455 Any ideas about the kind of conflicts that could occur? @1085181505 while, at least, is already a statement-macro-word @1085181584 Hmm. So, would "while" get parsed as a statement macro begin word in the context of such an hypothetical "for" macro? @1085181628 I guess you want the start of the iteration clauses to allow arbitrary expressions? @1085181644 I'm not sure exactly, I haven't thought about it much @1085181666 I'm wondering because this would be useful to know for macro writers. @1085181698 Perhaps it would be best to experiment @1085181701 We could really use a more comprehensive macro tutorial. @1085182114 -zelazny.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1085182557 I just killed off a bunch of tinderbox-related processes, cantor's load is going down to something reasonable @1085185206 -zelazny.freenode.net- hannes (~hannes@62.206.114.179) joined the channel @1085185209 re @1085185345 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085185369 buenas tardes @1085185485 [housel!housel@cantor.gwydiondylan.org] ACTION just noticed that Yahoo maps has WiFi info @1085185775 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1085185783 hi carl @1085185933 rhashem: in answer to your question, gdb works if all you want is a backtrace, and can live with mangled names @1085185953 ok, thanks @1085185968 there's not been any debugger nub work for 2-3 weeks @1085185981 I think that's pretty much what I saw when I was trying to debug win32-duim under wine @1085186806 -zelazny.freenode.net- cpage (~Chris@charger.intuit.com) joined the channel @1085188917 -zelazny.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1085189561 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085189606 -dircproxy- You disconnected @1085189813 -zelazny.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085189835 -zelazny.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) left the channel @1085189872 -zelazny.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085191249 -dircproxy- You connected @1085195441 erm, is there any way to get gdb to show me some local variables? @1085195456 i guess the info just isn't there @1085196166 -zelazny.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1085196818 no, it isn't @1085196954 right now HARP can only generate CodeView debugging info @1085196998 for ELF output we need DWARF2 debugging info @1085197251 there's so much i don't understand in those two sentences, i don't know where to start. :) @1085197290 where does fundev/windows stand now? @1085198053 very reliable @1085198065 I'll try to do a release tomorrow @1085198092 -zelazny.freenode.net- brucehoult (~bruce@202.0.59.8) joined the channel @1085198161 cool. g'night @1085198882 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) left the channel @1085199000 -zelazny.freenode.net- enometh (~Dadaism@adsl-66-159-224-83.dslextreme.com) joined the channel @1085199419 -dircproxy- You disconnected @1085199549 -zelazny.freenode.net- enometh (~Dadaism@adsl-66-159-224-83.dslextreme.com) left the channel @1085207695 -zelazny.freenode.net- brucehoult_ (~bruce@202-0-60-23.adsl.paradise.net.nz) joined the channel @1085208012 -dircproxy- You connected @1085225477 -zelazny.freenode.net- lisppaste (~lisppaste@69.55.225.112) joined the channel @1085225477 -zelazny.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1085225477 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085225477 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085225477 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085225477 -zelazny.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085225477 -zelazny.freenode.net- Riastradh (~riastradh@pool-141-154-214-206.bos.east.verizon.net) joined the channel @1085225499 -zelazny.freenode.net- prom (~prom@217.13.206.33) joined the channel @1085227601 -zelazny.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1085232551 -zelazny.freenode.net- hannes (~hannes@62.206.114.179) joined the channel @1085232554 re @1085242169 -zelazny.freenode.net- pritlove (~pritlove@213.73.92.110) joined the channel @1085242781 cpage: ping @1085243922 it's a little early for him perhaps @1085244051 Where is he? @1085244261 I thought he was in the US? @1085246810 he's here on the west coast, but he seems to keep later hours than I do @1085251464 Yes, how I can chat to him sunday lunchtimes is beyond me. :-) @1085253691 OK, he really ought to be up by now. @1085253692 cpage: ping @1085253762 Maybe if you get him some coffee... @1085253792 Well, I can't DCC him any if he's not at his IRC client ready to receive it, so that plan won't work. @1085257924 Riastradh: pong @1085258008 Terrible latency there... :-) @1085258092 Sorry, I don't always go first thing to the computer on Saturdays. ;-) @1085260457 -zelazny.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1085260629 -zelazny.freenode.net- brucehoult (~bruce@202-0-60-175.adsl.paradise.net.nz) joined the channel @1085262620 cpage, did you look at SRFI 42 in much depth? @1085263491 Just a quick look. I've still got it open in my browser, though. @1085263686 What do you think of it so far? @1085263759 Looks useful. Syntax isn't as nice as Python's. @1085263797 I'm thinking about implementing it for Dylan. @1085263806 I'm thinking about how to improve it. @1085263835 And how to implement modularly it without syntax-rules -- its current implementation depends on CPS syntax-rules macros --. @1085263884 you'd rather use ? @1085263910 ? @1085264144 commit by housel to fundev: Bug: 7023 @1085264144 Remove this binary; it can be built using open-source MPS. @1085264274 you want to use syntax-case, or standard syntax-rules, or what? @1085264358 Right now, with T's macro system, which is essentially defmacro. @1085264405 (I'm not exactly a fan of syntax-case, by the way, to put it, ah, lightly.) @1085264777 if you've read http://ftp.cs.indiana.edu/pub/scheme-repository/doc/misc/macros-*.txt I'm sure you're aware that I am a fan of syntax-case @1085264819 (11 years... where has the time gone?) @1085264833 Over there. @1085264836 [Riastradh!~riastradh@pool-141-154-214-206.bos.east.verizon.net] ACTION gestures vaguely. @1085264838 bad URL? @1085264852 robmyers, no, you're just supposed to be a shell. @1085264859 strip off the filename, there's a glob @1085264895 Ahhhh. My globbing skills have gone to hell. @1085264927 anyone know and love libtool? @1085264942 I know and tolerate libtool @1085264945 Mutually exclusive, surely. What's up? @1085264964 I'm trying to figure out how to persuade d2c/libtool/gcc to make a statically linked executable on Mandrake 10 @1085265008 the stuff in platforms.descr that says "gcc -static" doesn't work, because it can't find -ldl -lpthreads -lm @1085265040 they either don't *have* a .a lib version, or else it's named differently! @1085265074 I don't think libtool worries about "fully static"... it just makes sure what you compile with it is static, if you want statically linked libc etc you have to go outside it @1085265080 saying "libtool --mode=link gcc -static" works, but still dynamically links against the above @1085265098 I suspect that libdl and libpthreads really don't have static versions @1085265104 Is the static lib a link to the dynamic (shudder)? @1085265123 well, it also has a -all-static flag, which then expands to "gcc -static", which doesn't work @1085265160 on Redhat8 it does work, sufficiently to persuade "file" that it is a statically linked program @1085265200 could those static libs be in some RPM you haven't installed yet? @1085265220 possible, i guess. I didn't do the OS install, the vendor did @1085265261 it's pleasantly quick, btw :-) 6:40 for a d2c regular build @1085265262 Why doesn't gcc -static work when expanded but ok when in a libtool call? (I f I've read correctly). @1085265310 when you do "libtool --mode=link gcc -static ..." libtool removes the -static and replaces various things e.g. -lgc with the full path to the .a file @1085265383 there is e.g. a libpthread.so @1085265391 and a libpthread_unshared.a @1085265470 but it seems that libtool doesnt know to look for the _unshared name @1085265557 I wouldn't know to look for that either... @1085265595 er, "nonshared" @1085265599 sorry @1085265605 but I wouldn't know either @1085265607 make a link from libpthread.a to libpthread_unshared.a? (hack, hack) @1085265624 there's a libc_nonshared.a as well @1085265661 rob: yeah I know, that might well work, but I'd like to set up gwydion so it works out of the box on similar systems @1085265672 [brucehoult!~bruce@202-0-60-175.adsl.paradise.net.nz] ACTION might just nuke it all and install debian... @1085265689 housel, what don't you like about syntactic closures? @1085265841 I don't have anything against them @1085265856 Oh, OK. @1085265906 My preference is either syntactic closures or explicit renaming, with destructuring syntax at the Scheme level. (Of course, syntax-rules is fine too, for most macros.) @1085266140 interesting @1085266153 brucehoult: set up a *local* link for the lib as part of the config, or change the library name searched for on Mandrake? @1085266164 the -ldl is neded for Boehm. but when you statically link to gc then you don't need -ldl @1085266166 so that's ok @1085266197 .. annnnd, if you leave -lpthread off the command then libtool puts it back in! @1085266231 ... annnnd, if you put -lpthread_nonshared instead then libtool puts -lpthread -lpthread_nonshared :-( @1085266232 Is that the locally made libtool as in "making libtool"? Where's the config for that? @1085266302 I'm trying both the libtool that came with the system (/usr/bin/libtool) and one I've built myself (/usr/local/bin/libtool). no difference @1085266323 how about the one that was built when you ran configure? @1085266337 d2c's one? @1085266346 ja @1085266347 that's only used when you build d2c, right? @1085266356 ja @1085266357 This is the one I was meaning. :-) @1085266361 and it's not installed anywhere? @1085266370 richtig @1085266373 I'm not trying to build, d2c, but to build hello-world @1085266425 -zelazny.freenode.net- oudeis (~oudeis@bzq-218-95-152.red.bezeqint.net) joined the channel @1085266430 in any case, it's the same results :-) @1085266437 hmmm @1085266485 Hack the Makefile to get libtool to just run --version? @1085266536 why? @1085266546 I'm running libtool manually at the moment anyway @1085266558 /usr/bin/libtool is 1.4.3 @1085266577 hello. anyone here with exper ience with fun-o functional developer? @1085266579 /usr/local/bin/libtool and gwydion's one are both 1.5.6 @1085266618 Oh, OK, just to make sure: used to screw up builds on MacOSX if libtool rather than glibtool got called, version was the only way to make sure. Thought version might illuminate here.... @1085266680 so cantor, as you migth expect, has libpthread.a and libpthread.so @1085266687 .. and libc.a and libc.so @1085266689 oudeis: yes, I'm building a Functional Developer release right now @1085266697 none of this _nonshared crap @1085266744 ROFL; someone's self-description on Amazon.com: (somebody ((who) likes) LISP) @1085266760 that's not valid CL @1085266764 needs a funcall @1085266802 Hey, they don't say it's CL. :-) @1085266809 well, unless "somebody" is a macro, I guess @1085266828 housel: i've just installed the trial version and am having problems with building standalone-deuce example. it doesn't find rc.exe to compile the resource files. i've copied rc.exe from my visual studio installation on another machine to dylan's bin directory, but it din't help. do you have an idea what might be the problem? @1085266897 hmmm... that's always worked for me, provided I had rc.exe (and the rest of Visual Studio) in my path @1085266948 let me try it on the release I built yesterday @1085266975 i don't have visual studio installed on this machine. but i've put fun-o bin on the path @1085267021 You also need link.exe from Visual Studio, and to choose "Microsoft Linker" in the Environment Options @1085267066 ah, yes, it says in the build log it's using gnu linker @1085267066 and to have the MSLinker library pack installed @1085267068 housel: I think perhaps oudeis isn't aware of some significant news @1085267117 i'm not aware of any news: it's my day 0 with dylan :) @1085267129 yes: be sure to check http://www.gwydiondylan.org/~housel/fundev-snapshot.html later today, or tomorrow @1085267191 (don't bother downloading the snapshot that's there right now, it is known to crash occasionally) @1085267402 wow @1085267431 does this mean gwydion group is in charge of it now and it is actively developed again? @1085267462 yes @1085267483 and it is going completely open-source? @1085267509 exactly @1085267574 somebody should put a warning sign on the functional objects site - someone might shell USD400 for it in the meantime @1085267608 there's one there already... if you try to buy something it says the store is closed or something like that @1085267636 Go to Help... About and click the Purchase License button @1085267647 Register button, sorry @1085267670 it is so good this excellent thing don't just die like many others... @1085267690 yes, that's how we feel @1085267762 btw i'm a fairly proficient c++ programmer. if you need any (for now light) help, i am willing to participate @1085267783 great! @1085267847 -zelazny.freenode.net- brucehoult (~bruce@202-0-60-175.adsl.paradise.net.nz) joined the channel @1085267851 i also have some background in cl, if that matters @1085267892 that's a big plus @1085268075 gwydion isn't exactly "in charge" of Fun-Dev now @1085268084 we have it in our cvs, and can do anything we like with it, true @1085268119 .. but Fun-O are still planning to sell it if you want an actual CD etc @1085268159 I don't know what would happen if we made changes to it that the Fun-O guys didn't like :-) @1085268170 but they don't do any development? @1085268197 well, they *can*, of course, but ... how much have they done the last few years? :-( @1085268215 your relationship with them is governed by some kind of contract? @1085268230 only the source license @1085268238 .. and goodwill @1085268324 well people, if you think i might do something useful for starters in the next 2 hours, tell me @1085268355 I submitted bug#6986 for their approval and comment but got no response @1085268376 where's the bug database? @1085268406 http://www.gwydiondylan.org/cgi-bin/bugzilla/index.cgi @1085268412 recent comments from a Fun-O guy: @1085268424 [cgay] i'm just glad someone is working on it finally. i wish i had gotten started earlier on open sourcing @1085268458 Search for Product="FunDev" @1085268484 we've imported their old interanal bug database @1085268553 this search string doesn't bring anything up @1085268617 ok got it hte other route @1085268673 currently 1484 bugs @1085268779 who are fun-o now? is scott mckay still there? @1085268780 -zelazny.freenode.net- brucehoult_ (~bruce@202-0-60-85.adsl.paradise.net.nz) joined the channel @1085268818 Scott McKay is at ITA software, the people who wrote the Orbitz travel search system @1085268818 <^self!~fn@66.209.66.105> word. @1085268869 run away, little bot @1085268894 i mean are they just 2-3 management guys now, holding the rights to ip? @1085268926 they are (some of) the people who wrote it, at Harlequin @1085268931 but they all have day jobs @1085269000 and what is your development model? is it structured in any way, or you prefer not to think of these matters now? @1085269047 we each work on whatever interests us or seems urgent @1085269058 like all open-source projects, we all work on what interests us most @1085269065 we prefer to center work around Bugzilla entries @1085269091 are you the antipodes who took 2nd place on last year icfp contest? @1085269099 that doesn't necessarily get the right stuff done, but there's no stick to make people work on stuff they don't want to do @1085269099 We're trying to institute more review, where the developer posts patches to the bugzilla entry before committing them @1085269109 I am @1085269118 and it's was Judges' Prize @1085269143 myself, working with two friends here in Wellington, NZ @1085269176 some other of the Gwydion people (Andreas and I put in the most time) got 2nd place in ICFP in 2001 @1085269216 i think i mean that one, with race tracks @1085269232 race tracks was last year. And judges' Prize. @1085269242 kinda a 3rd place, except we were actually 5th :-) @1085269254 we beat the winner on 4 of the 9 tracks :-) @1085269267 ... but really really sucked on one of them @1085269279 ok. got it sorted out. i've read your account of the development @1085269307 next contest is in 2 weeks... @1085269344 if i enter, it will be in cl ;) @1085269345 2001 was the lame markup one, wasn't it? @1085269351 right @1085269364 2002 was the robot game. I rather liked that one; I wish I had participated. @1085269393 we sucked in 2002. there were too many cooks @1085269401 Cooks? @1085269437 after our success in 2001, everyone and his dog wanted to be in the team in 2002 @1085269443 it was a disaster @1085269450 Ah. @1085269478 -zelazny.freenode.net- hannes (~hannes@62.206.114.179) joined the channel @1085269483 I got fed up after 24 hours and resigned from the team and started a new team with friends working in my house @1085269500 not enough time, though, and we got only 35th @1085269504 hi @1085269513 the original team got 99th or 100th @1085269533 Do you know what rank Studio Ghibli (or however it's spelled) got? @1085269542 no @1085269576 who was that? @1085269579 and what were they using? @1085269593 It would be nice to see a strong Scheme and/or CL team @1085269603 there were several of each last year, but none did very well @1085269611 My brother, a friend of his (he showed up in this channel once or twice under the nick pknodle (and he still has my Dylan books, argh!)), and some guy from BU; they used Scheme. @1085269624 housel: is there a way to turn on color-coding in deuce? @1085269680 What kind? there are color-coded dispatch markers, but no color-coded keywords @1085269694 color-coded keywords @1085269713 Last year the #scheme team didn't do very well (although I hear we got first place on one of the tracks), but instead of writing a path finder, we wrote a path figurer given an approximate sequence of points and a GUI app for picking the points. @1085269724 I'm a little unhappy that we used some C++ last year. It was necessary only because our guy who knew OpenGL hadn't done any in Dylan himself, though we have OpenGL bindings for d2c @1085269770 housel: do you think it might be straigtforward to implement? @1085269780 I wonder what this year's contest will be about. @1085269786 +1 @1085269799 ? @1085269806 will know soon enough @1085269814 not sure... I haven't spent much time looking at Deuce sources @1085269828 I *hope* those with access to supercomputer clusters won't have a big advantage @1085269838 Too soon. I haven't had time to manage to cross-compile Stalin to the PPC, in case we need it... @1085269872 housel: do you think it is a desirable feature to anyone but me? @1085269913 we have color-coding in our emacs dylan-mode @1085269932 it probably is a desirable feature. (I usually use emacs, and that's probably one of the reasons) @1085269941 [brucehoult!~bruce@202-0-60-85.adsl.paradise.net.nz] ACTION rants about editors that emulate emacs in the trivial aspects, but not the ones that make emacs emacs @1085270067 [Riastradh!~riastradh@pool-141-154-214-206.bos.east.verizon.net] ACTION rants about elisp. @1085270110 so how do i grab the sources from the cvs? @1085270120 for fun-dev? @1085270124 yes @1085270132 if i can... @1085270135 same instructions as d2c, but different module name @1085270157 http://www.gwydiondylan.org/cgi-bin/viewcvs.cgi @1085270163 module is called "fundev" @1085270187 http://www.gwydiondylan.org/downloading.phtml @1085270215 so something like @1085270226 cvs -d :pserver:anoncvs@cvs.gwydiondylan.org:/var/lib/cvs co fundev @1085270259 prolly want a -z3 or soemthing in there too @1085270279 .. and need to cvs login first, of course @1085270291 cvs -d :pserver:anoncvs@cvs.gwydiondylan.org:/var/lib/cvs login @1085270293 anoncvs @1085270322 what cvs client do you use on windows? @1085270344 well, I don't, but I expect I'd use cygwin's one @1085270485 pardon my ignorance, what does -z3 do? @1085270499 compression @1085270519 ok @1085270520 3 is an arbitrary level from 1 - 9 @1085270528 source code compresses well :-) @1085270550 If you choose something too low, it's slow to download; if you choose something too high, you annoy nearly everyone here who is using the server at the time. @1085270550 well i'm on a fairly fast link anyway @1085270569 so i won't annoy you :) @1085270572 our server is a pretty fast machine, so high compression is ok @1085270582 z5 is usually the highest I ever use. @1085270586 (celery 1.2, which is better than most web servers) @1085270698 Hey, one of the ICFP 2004 contest organizers bought my t-shirt! @1085270713 ? @1085270728 http://www.cafeshops.com/skicalc @1085270736 and, why do you need Stalin? Won't Chicken do? @1085270737 (the front of the shirt is uninteresting; see the back) @1085270761 If I really need speed, I'll use Stalin; if not, we'll use Scheme48. (We'll be using Scheme48 anyways.) @1085270798 yeah but Stalin will take all 72 hours to compile the program! @1085270814 your cvs server does not support module lists :( @1085270828 Yes...that's why we'll use Scheme48 anyways, except at the very end. @1085270845 (I might also try it in parallel with T.) @1085270926 huh? @1085270932 ? @1085270954 like "cvs co src fundev www", you mean? @1085270977 well i have no idea, but i use a nice gui client @1085270993 (A couple quick benchmarks (admittedly not particularly accurate) demonstrated that Orbit is considerably faster, in both compilation speed and generated code, than Chicken.) @1085271005 which has an option to fetch available modules from cvs server, if server provides the list in some file @1085271022 ah @1085271029 no, we don't have that, i think @1085271056 viewcvs/cvsweb can get the module list, but only because it has direct filesystem access to the repository @1085271058 anyway, i just put "fundev" in the appropriate textbox and it is churning away right now @1085271079 cvs is so simple I cna't see a reason to put a GUI on it @1085271108 ... and I'm a guy who jumped right onto the Mac way in 1984 when it came out @1085271115 well, when i was looking for a cvs client for windows, i could find only gui ones :) @1085271148 this particular one is called tortoisecvs and it is integrated nicely with windows explorer @1085271180 it even colors cvs-controlled folders in irritating green @1085271213 The DSP engineers at my work use WinCVS (and can't use it any other way) @1085271229 the only cvs GUI I use is vc.el :-) @1085271352 i think ishould have taken your advice about -z option. how big is it? @1085271461 the fundev module repository is 294172 KB @1085271477 a checkout should be smaller than that :-) @1085271485 why? @1085271493 becasue that has all versions @1085271499 ah @1085271503 and some old files that you won't get @1085271503 Sources alone is 29M @1085271577 you're using about 2% CPU. feel free to try again with compression :-) @1085271592 it should just carry on from where it got to @1085271604 if it is 29M, it is just a few more minutes @1085271674 but strangely, the checkout is >50M already @1085271692 doc is another 26M @1085271744 ok, I'm just doing a local checkout of fundev @1085271970 yep it's big :-) @1085272021 bruce@cantor:~$ du -ks fundev/* @1085272021 16 fundev/CVS @1085272022 28 fundev/Functional Objects Library Public License.txt @1085272022 28 fundev/GNU Lesser General Public License.txt @1085272022 8 fundev/Makefile.in @1085272022 4 fundev/README.txt @1085272024 124 fundev/Samples @1085272026 192 fundev/Setup.bmp @1085272028 78128 fundev/Sources @1085272030 1608 fundev/admin @1085272032 4 fundev/autogen.sh @1085272034 260 fundev/build @1085272036 4 fundev/configure.ac @1085272038 183708 fundev/doc @1085272040 4492 fundev/experimental @1085272042 2140 fundev/install @1085272044 20 fundev/local @1085272046 10320 fundev/old @1085272048 132 fundev/project @1085272050 2004 fundev/releases @1085272052 2244 fundev/tools @1085272054 3400 fundev/training @1085272056 @1085272075 where did you get those numbers from, Peter? @1085272083 dir/s on Win32 @1085272107 but I misread the doc number @1085272138 can you build from just fundev/Sources? @1085272152 no @1085272165 admin/ is needed too, and install on Win32 @1085272186 they're small @1085272237 do you think we should rearrange our repository to put the gd stuff into a subdirectory? @1085272259 .. like it used to be on berlin.ccc.de @1085272266 you mean other than "src"? @1085272308 I'm recommending that we switch to Subversion when 1.1 comes out, then we can rearrange things any way we want @1085272352 hmm. I guess most of it is actually compiler.neutral @1085272371 ref isn't though @1085272411 are hd-sources and fd-sources still useful? @1085272436 no @1085272461 they're duplicates of stuff in fundev? @1085272465 yes @1085272628 we'll want to rationalize src/duim and fundev/Sources/duim at some point too, I guess @1085272640 .. possibly into libraries @1085272650 possibly @1085272676 and qa @1085272783 re: putting proposed patches into bugs... @1085272798 ... I'm doubtfull that's useful @1085272816 unless we expect many of them to be rejected @1085272825 sorry to bother you, i have just rerun cvs from the command line with -z9 option - how's server health? here on the client side it is suddenly very slow @1085272829 I mean, OK, sure, for people without cvs write access @1085272867 6274 pubcvs 17 0 52412 51M 864 R 32.3 20.4 1:01 cvs @1085272867 6336 pubcvs 8 0 36588 35M 1024 S 16.0 14.3 0:47 cvs @1085272880 I don't know why there are two of them @1085272909 -z9 is probably a bit much @1085272915 I use -z3 :-) @1085272932 enough to get all the cheap compression (of which there is plenty) @1085273054 I've gotten strange errors when using -z9, and have lately throttled back down to -z5 @1085273459 cool: with a statically-linked (almost) d2c installed, I can build d2c in 6:12 @1085273515 that's about 40s difference between statically-linked and dynamic @1085273570 [brucehoult!~bruce@202-0-60-85.adsl.paradise.net.nz] ACTION can't believe he put up with 30 min builds for so long... @1085273718 ok i've got it - the final count is 242M. how do i build it? it is surely a trivial operation :) @1085273747 well, as we got it from Fun-O, you basically couldn't build it @1085273765 but housel has been working hard at it @1085273787 Basically, I think the plan is a big public announcement when it builds easily @1085273858 stat with fundev/README.txt :-) @1085273868 ok @1085274677 oudeis pasted "mps build fails" at http://www.common-lisp.net/paste/display/1038 @1085274708 any idea why? @1085275688 anyone built it with VS7? @1085276080 well of course: static const char digit[16]="0123456789abcdef"; @1085276146 17 @1085276166 got it already:) @1085276227 strange vs6 compiler haven't got it @1085276309 shall i submit bug report to ravenbrook? @1085276485 also, to whoever wrote the readme: @1085276596 there's a mistake in mps building directions for win32, in the copy incantation: @1085276617 s/mmdw.a/mmdv.lib @1085276636 s/mmdw.a/mmdw.lib @1085276645 I'm sure they'd appreciate bug reports @1085277814 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085278281 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085278286 cpage: the meta key works just fine over ssh. If it doesn't then it's a problem with your terminal, not ssh @1085278498 pretty tough task to get to Nick Levine with the bug reports @1085278533 his junk mail filter bounces *anything* you throw at it @1085280783 -zelazny.freenode.net- brucehoult_ (~bruce@202-0-45-5.adsl.paradise.net.nz) joined the channel @1085285891 -zelazny.freenode.net- Riastradh (~riastradh@pool-141-154-214-206.bos.east.verizon.net) joined the channel @1085286149 -zelazny.freenode.net- Riastradh (~riastradh@pool-141-154-214-206.bos.east.verizon.net) joined the channel @1085291157 -zelazny.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085293021 I'll finish my release tomorrow afternoon @1085293031 once I fix bug 7024 @1085293032 cool! @1085297135 -zelazny.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085297135 -zelazny.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1085301496 commit by bruce to src: Bug: 7021 @1085301496 Safer, but slightly less static, version for x86-gcc and x86-gcc33 @1085301782 commit by bruce to src: Bug: 7021 @1085301782 Merge Transaction 73 to gd25 @1085302243 How is the meta key typically transmitted over an ssh connection? @1085302273 I don't know. but it certainly works fine @1085302305 At work I ssh from linux to solaris and hpux and run emacs sessions up the gazoo @1085302385 are you using the OSX terminal program? @1085302404 I just tested it, sshing into both Linux and another OSX, and meta works just fine @1085302424 Yeah, it's working for me now. Other times I've tried emacs via ssh I've had to use an explicit Esc instead. Maybe Terminal is set up differently now. @1085302433 (it's option, rather than my prefered command, but you can't have everything) @1085302512 Yeah, that's a little annoying. The option key isn't as easy to use. @1085312572 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085319841 -zelazny.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1085320094 -zelazny.freenode.net- hannes (~hannes@62.206.114.179) joined the channel @1085320934 -zelazny.freenode.net- hannes_ (~hannes@62.206.114.179) joined the channel @1085325447 commit by cpage to src: Bug: 7025 7026 @1085325447 Added support for fontification of sealed domain definitions. @1085325447 Added support for applying separate faces to the names of module @1085325447 <...> @1085335301 -zelazny.freenode.net- brucehoult (~bruce@202-0-45-5.adsl.paradise.net.nz) joined the channel @1085335303 -zelazny.freenode.net- hannes__ (~hannes@pD9E7A3DD.dip.t-dialin.net) joined the channel @1085335775 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085335775 -zelazny.freenode.net- lisppaste (~lisppaste@69.55.225.112) joined the channel @1085336342 -zelazny.freenode.net- brucehoult (~bruce@202-0-45-5.adsl.paradise.net.nz) joined the channel @1085336437 -zelazny.freenode.net- brucehoult (~bruce@202-0-45-5.adsl.paradise.net.nz) joined the channel @1085336437 -zelazny.freenode.net- lisppaste (~lisppaste@69.55.225.112) joined the channel @1085336437 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085336437 -zelazny.freenode.net- hannes__ (~hannes@pD9E7A3DD.dip.t-dialin.net) joined the channel @1085336656 -zelazny.freenode.net- lisppaste (~lisppaste@69.55.225.112) joined the channel @1085336656 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085336656 -zelazny.freenode.net- hannes__ (~hannes@pD9E7A3DD.dip.t-dialin.net) joined the channel @1085337445 -zelazny.freenode.net- lisppaste (~lisppaste@69.55.225.112) joined the channel @1085337445 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085337445 -zelazny.freenode.net- hannes (~hannes@pD9E7A3DD.dip.t-dialin.net) joined the channel @1085346210 -zelazny.freenode.net- pritlove (~pritlove@pD9E7A3DD.dip.t-dialin.net) joined the channel @1085348879 re @1085349303 brucehoult: the point of review isn't that the code might be rejected, it's to give other people opportunity to suggest improvements, or to point out style violations that can be fixed @1085349387 housel: What's that in reply to? @1085349445 (I don't see anything in the log.) @1085349791 something he said yesterday @1085349881 re: putting proposed patches into bugs... @1085349881 ... I'm doubtfull that's useful @1085349881 unless we expect many of them to be rejected @1085349934 I'd only be concerned about the possibility of having a lot of large patches adding noise and storage requirements to the bug database. Would they be inline or attachments? @1085350016 attachments @1085350027 I'm also inclined to instead have people work on branches where reviewers could see it in situ before integrating to a main branch (or trunk), but I guess CVS isn't amenable to that. Perforce makes working that way rather easy. @1085350110 yes, that's the plan... small patches go in bz, larger work gets its own branch @1085350128 Ah. @1085350155 What's the cutoff point for "small"? @1085350187 that's open to interpretation @1085350272 Do you always speak in tautologies? :-) @1085350337 btw, I'm working on dylan-mode, trying to figure out how to fix indenting of "local method" (it's broken in three or four ways) and that code is quite the twisty little maze. @1085350349 I can imagine @1085350440 For me currently the most annoying dylan-mode bug is '-matching @1085350478 apostrophes in comments or the header end up fontifying larget blocks of code as character constants @1085350504 s/larget/large/ @1085350538 As it happens, I was considering whether comments and headers should just be treated entirely as comments and suppress all interior fontification. @1085350553 What's typical in an emacs mode? @1085350585 no fontification in ocmments @1085350629 seeing "define method" fontified in comments is kind of consusing sometimes too @1085350666 Oh, actually, I see that at least lisp-mode highlights binding names in comments. That still seems useful. @1085350667 I like being able to see at a glance when a block has been commented out, and fontified keywords makes one do a double-take @1085350676 +1 @1085350776 btw, I'd kind of like more faces, to allow more differentiation. Currently, almost everything is given "function name" or "keyword" faces. Is it possible for modes to define mode-specific faces? (ie., that show up in Customize.) @1085350827 I'll look into the apostrophe issue, since the indenting issue doesn't look like something I'll figure out soon. @1085350929 yes, modes can define more faces @1085351002 Okay, thanks, I'll look into that. @1085351052 I see the apostrophe bug if I put on in a "copyright:" header, but not if I put one in a /* block comment */. @1085351058 s/on/one @1085351073 hmmm... how about // comments? @1085351098 Nope. @1085351117 hmmm... I might have misremembered, or it might be something else @1085351122 I'll keep an eye out @1085351147 I thought I'd seen it, too, but I can't repro it at this moment. @1085351188 Quotes " are a problem in headers, too. @1085351213 fortunately they are usually balanced there @1085351312 Yeah. It should just not parse anything in a header value, though. @1085351333 What do you think of the idea of applying either the comment or document face to header values? @1085351351 what's the document face? @1085351378 In lisp-mode, it's used for top-level definition doc strings. @1085351417 By default, the comment and document face have the same settings. @1085351447 ...er, what I meant was: By default, the string and document faces have the same settings. @1085351465 so I see @1085351469 Where the string face is applied to string literals. @1085351498 doc-face seems fine to me @1085351530 The main thing for me is to try to use different faces where it makes sense, so users can decide whether to format them differently. @1085351634 e.g., I set the string face to courier, dark gray, but the default font--for comments and code--is monaco, which I find much easier to read, generally. @1085351690 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085351692 This makes string literals stand out a bit and gives the characters more serifs, etc. to differentiate characters that may appear ambiguous in monaco. @1085351740 ...and then I set the comment face to use the default font, but dark green, which isn't as noisome as the default bright red. @1085351809 Oh, that reminds me: lisp-mode uses the "warning" face (bold, bright red) for "error", "abort", et al. Do you think it makes sense to follow lisp-mode's lead here for dylan-mode? @1085351865 ie., it highlights calls to the error/abort functions. @1085351964 Say, this can't be right: dylan-mode checks "(> emacs-minor-version 30)" to decide whether or not to highlight in the header. Shouldn't it be comparing the major version as well? @1085352522 indeed it should @1085352552 who knows whether major-version was 18 or 19 when that was written @1085352588 yes, I like that idea (highlighting signal() and error()) @1085352604 So, I changed it, and now nothing is highlighted, including the keywords, yet the apostrophe still causes the body to be treated like the inside of a character literal. Feh. @1085353162 So, it turns out dylan-mode was intended to not highlight header contents (including keywords) on emacs 19.31 and later. I've fixed the test so it "works" now. However, I think I prefer having keywords highlighted. I'm wondering why they wanted everything off. @1085359947 -zelazny.freenode.net- Riastradh (~riastradh@pool-141-154-214-206.bos.east.verizon.net) joined the channel @1085364783 -zelazny.freenode.net- hannes (~hannes@port-195-158-171-122.dynamic.qsc.de) joined the channel @1085375015 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is quickly coming to the conclusion that emacs modes are futile to pursue @1085375067 This stuff would be much simpler if the font-lock code worked on an AST instead of introducing all these ad-hoc, incomplete parsers. @1085375787 of course @1085375824 I told you about Semantic Bovinator before, right? @1085375863 -dircproxy- You disconnected @1085375987 Sounds familiar; can you remind me? @1085376058 -dircproxy- You connected @1085376112 http://cedet.sourceforge.net/semantic.shtml @1085376311 That looks...useful. @1085377906 To somebody's credit, font-lock.el has a lot of useful commentary. I'm thinking the best approach may be to turn off font-lock's automatic fontification of strings and comments and add code to dylan-mode to handle them. @1085378848 -zelazny.freenode.net- brucehoult (~chatzilla@metnet.met.co.nz) joined the channel @1085379141 hi bruce @1085379412 hi Peter @1085379428 speaking at you from the new job @1085379453 ... mindystrap proceeding... @1085379643 .. and going home :-) @1085380993 -zelazny.freenode.net- bhoult (~bruce@202-0-60-58.adsl.paradise.net.nz) joined the channel @1085387090 Yay! I figured out how to suppress fontification of interchange file headers. This prevents apostrophes and other things from "leaking" into the body. @1085387214 The trick was to figure out which font-lock default function to override in order to restrict it to only fontifying the body of the file. @1085387253 And then there's a global variable you have to set to prevent it from ignoring you. @1085387259 Whee! @1085391476 Morning! @1085393177 <^self!~fn@66.209.66.105> bot bot bot. @1085393184 <^self!~fn@66.209.66.105> i need lunch. @1085394569 Evening! @1085395152 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is off to bed after several hours of battling it out with emacs @1085396330 -zelazny.freenode.net- bhoult (~bruce@202-0-61-1.adsl.paradise.net.nz) joined the channel @1085396354 -zelazny.freenode.net- bhoult (~bruce@202-0-61-1.adsl.paradise.net.nz) joined the channel @1085396530 -zelazny.freenode.net- bhoult (~bruce@202-0-61-1.adsl.paradise.net.nz) left the channel @1085396667 -zelazny.freenode.net- bhoult (~bruce@202-0-61-1.adsl.paradise.net.nz) joined the channel @1085396691 so Chris's recent change to melange breaks mindystrapping because of the #e2 @1085396705 what's the best approach to fix it? @1085396712 conditional code in melange? @1085396816 extend the Mindy lexer to accept bignum syntax for literals but just make a regular integer? @1085396899 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085400892 -zelazny.freenode.net- Riastradh (~riastradh@pool-151-203-222-80.bos.east.verizon.net) joined the channel @1085401259 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085401267 <^self!~fn@66.209.66.105> hi @1085401274 g'day @1085401428 <^self!~fn@66.209.66.105> the output of python Mnet, you mean? @1085401434 cpage: besides fontifying signal and error, it would be cool to highlight the use of exit variables in 'block's. e.g., block(return) ... return(foo) end @1085406730 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085409368 <^self!~fn@66.209.66.105> ok. @1085409832 -dircproxy- You disconnected @1085410994 -dircproxy- You connected @1085414833 -dircproxy- You disconnected @1085416819 -dircproxy- You connected @1085418232 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1085420704 -zelazny.freenode.net- hannes (hannes@cantor.gwydiondylan.org) joined the channel @1085420708 hi @1085420804 hi hannes @1085424405 bhoult: I guess either approach is fine for getting Mindy to handle Melange. For the short term I guess just use conditional code. It doesn't seem that the case that code handles shows up in a bootstrap, and rarely elsewhere. @1085424491 cgay: Do you mean specifically that you want block exit functions to be given font-lock-warning-face like "error"? @1085424513 calls to them, yes @1085424545 Would it suffice to just highlight calls to any function named "return"? @1085424565 in java mode i turned off all colorizing except new bindings and non-local exits and it worked quite nicely. @1085424624 i often name the exit function "break" if i'm using it in such a way that it doesn't exit the entire method @1085424653 maybe break, return, exit, and continue, if that's a lot easier. but i've seen them named exit-inner, exit-outer, etc @1085424823 <^self!~fn@66.209.66.105> hmm. @1085424838 <^self!~fn@66.209.66.105> is andreas porting fun-o's networking library to gd? @1085424853 Actually parsing and keeping track of binding names would be a bit harder. AFAICT, none of the modes really do that sort of thing during fontification. Although, dylan-mode looks for begin words in order to fill in "end ..." while editing. @1085424937 In fact, lisp-mode and c-mode mostly only highlight things at point of definition, not usage. @1085424982 i guess that's the only reason i've ever seen that having everything be a reserved word is a win ;-) @1085425005 Well, yes, having an underpowered language makes it easier to write cheap parsers for them. :-) @1085425024 yeah @1085425051 or having a prefix syntax @1085425058 Actually, c-mode is quite complicated, not necessarily due to the language power, but due to the irregularity and complexity of the syntax, which is really the deciding factor. @1085425105 AFAICT there's not a huge difference in the complexity of lisp-mode vs. dylan-mode so far. Lisp is deceptively complex. @1085425166 you mean deceptively simple and actually complex @1085425179 If you just used an editor that edited S-expressions instead of text, a lisp-mode would be very easy... @1085425179 <^self!~fn@66.209.66.105> i see. @1085425180 It is complex, and deceptive about it. :-) @1085425224 If you just used an editor that edited ASTs instead of text, most modes would be much easier. @1085425271 i think ^self is having a conversation with ^himself @1085425293 "S-expressions" is another way of saying "some parsed form where semantic parsing devolves into looking up the definition of each already-parsed lexeme." @1085425369 The problem with text-based modes is that there is no full compiler around with definition tables, so you have to do the lexing and parsing over and over. @1085425411 At some point I'm going to see what Semantic Bovinator offers as an alternative and how much work it would take to add Dylan support. @1085425808 ^self: the FD network library is partially ported to d2c in the newio branch, but it's not finished yet and it wouldn't be very useful without threads @1085427406 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085427481 <^self!~fn@66.209.66.105> yeah, i was wondering about threads. @1085427994 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085428175 -zelazny.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1085428987 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085429736 -zelazny.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1085430451 -zelazny.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1085430814 -zelazny.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1085432559 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085435296 cpage: so in the end I replaced your #e2 with as(, 2) @1085435313 Which will be a tad slower, but as you say it's a rare case anyway @1085435353 It's very strange that Mindy has but doesn't have either a syntax for literals or a way to represent them in the bytecode. @1085436675 bruceholt: Yeah, I saw that. That's fine. @1085436848 BTW, are just a vector of integers? @1085437019 in d2c, a vector of 16-bit (short) integers @1085437053 (thanks to Bruce; before, it was 8-bit bytes) @1085437101 16-bit, eh? What's the advantage over, say, native machine words? @1085437124 (Or just whatever a non-extended integer uses.) @1085437332 32 x 32 = 64 bit result @1085437351 not guaranteed representable in C @1085437381 also 32 + 32 = 33 @1085437414 relatively inefficient to determine using C @1085437471 Ah. "32 + 32 = 33"? @1085437521 carry bit on addition/subtraction @1085437710 Ah. @1085437774 It's kind of surprising that C doesn't readily support implementing math at that level. There's no explicit way to get the carry bit. @1085437983 c-- has that capability @1085438038 I wouldn't say it's all that suprising, it would require a builtin function like ldiv(), or multiple values, or some similar solution, and very few people need it @1085438241 I'm surprised because C is such a low-level language in other respects. I'm looking forward to seeing C-- used everywhere. @1085438319 -zelazny.freenode.net- pritlove_ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085438411 yeah, I first extended it from 8 to 15 bits @1085438420 .. and then realised that 16 was no problem @1085438426 oh! @1085438462 I remember fixing a bug in the division code ... and last night I saw similar-looking code in Mindy interp. I wonnder if it has the same bug? @1085438506 pardon my ignorance, but what is C--? @1085438516 http://www.cminusminus.org/ @1085438550 it's a language (and a compiler, QC--) intended to replace C as a "high-level assembly language" target of code generators @1085438581 cool @1085439013 peter, did you have a chance to work on the Windows release? @1085439043 I did, but I encountered bug 7024, and spent a lot of time trying to fix it so I didn't quite finish @1085439054 I'll try again this evening @1085439155 7024, 7024... ah, ok @1085443828 -zelazny.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1085446870 I can't believe I'm asking this, but someone asked me and I realized I don't know definitively: Does d2c do tail-call optimization? @1085447553 -zelazny.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085448113 yes, within a single function or a group of local functions @1085448485 Great, thanks. @1085450657 -dircproxy- You disconnected @1085457838 -zelazny.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1085458450 -dircproxy- You connected @1085466271 <^self!~fn@66.209.66.105> hmm. @1085466273 <^self!~fn@66.209.66.105> From: Davinator (dpassage@63.90.156.234) @1085466275 <^self!~fn@66.209.66.105> Air New Zealand has bought ad signs in the BART stations in San Francisco that say "Defectors Welcome". @1085467776 -zelazny.freenode.net- bhoult (~bruce@202-0-60-173.adsl.paradise.net.nz) joined the channel @1085468057 Ouch! @1085468060 I like it :-) @1085468346 hmm? @1085468423 -dircproxy- You disconnected @1085468493 [bhoult!~bruce@202-0-60-173.adsl.paradise.net.nz] ACTION just checked the log @1085468525 [bhoult!~bruce@202-0-60-173.adsl.paradise.net.nz] ACTION not sure that we want NZ to be californicated @1085468535 heh @1085468566 those from AZ/NM/CO/NV/OR/WA definitely welcome :-) @1085468573 BC, too... @1085468605 You're just saying that because there's less of them. :-) @1085468621 well, each of those states is about the same population as NZ @1085468651 well AZ and OR anyway. WA is quite a bit bigger @1085468657 And probably less than the population of CA in total. (Just a WAG.) @1085468684 CA folk ... well a lot of them I'd welcome... If I can give them a quick quiz first @1085468834 -dircproxy- You connected @1085468849 e.g.? @1085468905 habla engles? @1085469033 e.g., what would be on the quiz? @1085469208 I'd have to think about the exact questions, but they might concern desired tax rates, tendency to attempt to get laws passed to make people do what's good for them, attitude towards gun control. That sort of thing. @1085469286 oh yeah: "so why do you want to move to NZ rather than to AZ/NM/CO/NV/OR/WA?" migth be one of them :-) @1085469641 <^self!~fn@66.209.66.105> is "lord of the rings" a good answer for that question? @1085469649 Shouldn't the answer to the last question be obvious? @1085469667 It's interesting to compare gwydion running on my new dual 2.0 GHz G5 at work and my new 2.2 GHz Athlon XP at home @1085469669 "Because it's NZ." @1085469678 Morning! @1085469687 morning Andreas! @1085469697 How do they compare? @1085469730 I don't have the G5 mindystrap time at the moment, but for doing d2c stuff the Athlon is twice as fast @1085469759 regular build of d2c: Athon 6:05, G5 12:30 @1085469784 build hello-world: Athlon 3.3 sec, G5 6 sec @1085469809 the Athlon does a mindystrap in 1:56 @1085469844 <^self!~fn@66.209.66.105> that's...not what i would've expected. @1085469849 <^self!~fn@66.209.66.105> is os x really that bad? @1085469880 that makes the G5 pretty comparable to a 3 or 3.2 GHz P4 @1085469904 a *little* slower, perhaps. @1085469931 I tried a d2c regular build on Chris Double's P4 3.2 and it took 10:30 @1085469947 <^self!~fn@66.209.66.105> i guess i expected the g5 to trounce the athlon. @1085469958 I went ahead and updated http://www.gwydiondylan.org/~housel/fundev-snapshot.html for the release I did this evening, but the upload won't be done for another hour or so @1085469969 and it's way past my bedtime @1085469984 Are the hard drives, RAM, and busses comparable? Did you compare VM swapping activity? @1085469994 Hi Peter! I'll test drive it today. @1085470012 no VM activity and the G5 has twice the RAM anyway (1.5 GB) @1085470023 both have 160 GB disks @1085470027 No VM activity during a bootstrap? @1085470037 not even close to VM activity @1085470042 What about the RPM and buss of the hard drives? @1085470043 hundreds of MB free @1085470075 both AT100 I think @1085470082 it's irrelevant anyway @1085470096 hard disk speed isn't afactor for running d2c @1085470117 That's surprising. @1085470162 the Athlon has a 200 MHz FSB (advertised as 400). The G5 has a 1 GHz FSB @1085470171 both have 512 KB L2 cache @1085470211 if you want to look at RAM streaming speeds, the Athlon does 3.2 GB/sec max @1085470219 the G5 is .. uh ... 6 or 8 GB/sec @1085470229 so is a P4, btw @1085470261 here's what I suspect the difference is: @1085470275 the Athlon has 10 pipe stages, the G5 and P4 20+ @1085470318 Which makes branches much cheaper on the Athlon. @1085470325 if we could get rid of a bunch of branches from d2c code, or make them better predicted then I think it would be a lot more even @1085470338 I can only assume prediction would be a big factor. @1085470345 yep @1085470351 It's hard to get the branch prediction across the C code. :) @1085470352 gcc 3.4 can do profiling-based feedback @1085470357 The PowerPC can do some unnecessary speculation without a big speed hit. @1085470370 our code has a ton of branches, especuially for error checking @1085470372 haven't actually tried it yet @1085470386 PPC has a bit to indicate whether branches are expected to be taken or not. @1085470404 I suspect that if we took all those inlined tests and put them in functions it would speed up all three current architectures @1085470411 ... but especially the P4 and G5 @1085470418 [housel!housel@cantor.gwydiondylan.org] ACTION goes to bed... upload ETA 00:47:05 @1085470426 I plan to try it anyway @1085470430 Night Peter! @1085470439 morning @1085470444 Why would removing inlining improve the branching situation? @1085470455 I thought inlining removed branching overhead? @1085470467 Less load on the 1st level cache? @1085470467 because there would then be far fewer distinct branches executed @1085470487 which means all those error-checking tests would be correctly predicted @1085470495 (as no error) @1085470514 I don't follow. That's okay, though. I believe you. @1085470517 and each CPU has a branch prediction cache that can hold maybe 512 different branches @1085470540 it's not *branches* that is the problem ... it's CONDITIONAL branches @1085470561 unconditional ones such as subroutine call/return are fine @1085470577 It's not *conditional* branches...it's MIS-PREDICTED conditional branches ;-) @1085470586 true @1085470601 I see your point, but still find it surprising. @1085470614 the G5 has some extra static branch prediction bits btw @1085470637 In a register, you mean? @1085470641 you can say "predict this branch as taken -- and dont' even bother to put it in the branch prediction tables" @1085470658 no: two bits in the opcode that were previously undefined @1085470664 Oh. @1085470676 I guess I better go read up on the new CPU. @1085470708 if we could get the C code to set those bits for the error tests that would be the best @1085470714 Does that mean that you can say "predict as taken -- but if you subsequently discover it's usually not, ignore this flag"? @1085470732 that's what the *old* hints bits did @1085470746 "bits" or "bit"? @1085470747 the ones first on the 601 @1085470776 well, you need two @1085470807 no, wait, that was just one bit @1085470826 the PPC601 by default predicted backward branches as taken, forward ones as not taken @1085470841 the bit in the instruction could say "reverse your prediction" @1085470853 Right. @1085470891 the 603/604/750/7400 just built on that, adding caches and so forth @1085470904 Yeah, that was what I was getting at. @1085470913 if there was history in the cache they used it, otherwise they did a static prediciton like the 601 @1085470939 but the 970 has entirely new bits added to that @1085470942 So the G5 has one new bit to say "only pay attention to the flag bit"? @1085470972 not sure @1085470982 I thought I read it was two new ones, but maybe it's only two total @1085471002 [bhoult!~bruce@202-0-60-173.adsl.paradise.net.nz] ACTION never had access to a 970 until yesterday, so didn't care @1085471044 [bhoult!~bruce@202-0-60-173.adsl.paradise.net.nz] ACTION wonders whether gcc has a directive @1085471050 brb @1085471068 The Mac OS X developer tools includes some really nice performance tools. @1085471087 I think there's a way to see if there are lots of mis-predictions. @1085471438 yeah, I'll put CHUD onto it shortly @1085471487 btw, my reply to people who answer "Lord of the Rings" would be to make sure they've seen _Meet the Feebles_ as well @1085471524 It's on my list. @1085471536 <^self!~fn@66.209.66.105> heh. @1085471543 We should contribute to this: http://pleac.sourceforge.net/ @1085471604 did you know I knew Nathan Torkington before he was famous? @1085471608 he's a VUW grad @1085473411 From a comparison of my older Motorola PowerPC manual and the 970 manual, the older CPUs have a single branch-prediction bit, which inverts the default behavior of the CPU, as we mentioned... @1085473436 ...the 970 adds one new bit, the "a" bit, which is used in concert with the existing bit "t" to produce four values: @1085473452 00 - No hint is given @1085473456 01 - Reserved @1085473463 10 - The branch is very likely not to be taken @1085473472 11 - The branch is very likely to be taken @1085473536 I dont' see any way to make that encoding play nicely with the older encoding @1085473547 From a quick reading it seems that existing code will have either 00 or 01, making them effectively ignored on the 970. @1085473582 00 is compatible in the sense that the old 0 meant "no hint given". @1085473589 which means that 01 can not in fact be reserved ... it's used in lots of existing code @1085473601 I presume they mean they intend to repurpose it in the future. @1085473610 .. and means "reverse your default static hint" @1085473643 Right, so I think what this means is the 970 ignores those old hints. @1085473668 Because they probably weren't as useful as the branch prediction cache. @1085473691 ...or aren't, on the 970. @1085473802 Ah, there's a Compatibility Note a couple pages later. @1085473877 From the note: @1085473880 "Because these bits have always been defined either to be ignored or to be treated as hints, a given program will produce the same result on any implementation regardless of the values of the bits. Also, because even the ? y ? bit is ignored, in practice, by most processors that implement versions of the architecture that precede Version 2.00, the performance of a given program on those processors will not be affected by the va @1085473880 lues of the bits." @1085474022 I think what they're saying here is "y was noise, but now we've added another bit you can use to really provide hints" ;-) @1085474121 except the new one isn't a hint @1085474155 It's a mask for the existing hint bit. :-) @1085474165 if you set it to 10 or 11 then the 970 *will* follow the branch you tell it to @1085474183 What it really does is give you a tristate value instead of the .5 value you had before. @1085474191 right @1085474251 In the 980 those bits will be ignored, too, and a bit in the previous instruction will give you 8 values. :-) @1085474402 The 970 manual doesn't mention whether it actually ignores the prediction cache, though. @1085474409 Where'd you read that? @1085474420 (that I can see) @1085474464 <^self!~fn@66.209.66.105> i'm just hoping for a g5 to fall out of the back of a truck or something. @1085474600 I paid for the Select program, which gets me a hardware discount (~20%). I'm trying to decide whether to wait until after WWDC to see what new comes along, or buy one now. I've put off buying a new machine for a couple years and my 500MHz G4 is really starting to feel creaky as I work on newer, bigger projects. @1085474676 I really love OSX, but I really love the cheep speed of a self-built x86 machine @1085474725 the new Athlon box cost me about US$1k @1085474750 and, for d2c right now, it's twice the speed of a $3k box from Apple @1085474812 for everything *except* Dylan development, my 266 MHz PowerBook runs OSX just fine @1085476871 [^self!~fn@66.209.66.105] ACTION shakes fist at linux's traffic shaping @1085486537 -zelazny.freenode.net- hannes (hannes@cantor.gwydiondylan.org) joined the channel @1085492298 -zelazny.freenode.net- lisppaste (~lisppaste@lamancha.opendarwin.org) joined the channel @1085492840 -zelazny.freenode.net- chandler (~chandler@chandler.registered) joined the channel @1085493943 <^self!~fn@66.209.66.105> home, must feed. @1085494978 -dircproxy- You disconnected @1085497774 housel: thanks for putting up the new windows release @1085497838 one minor problem that was easy to work around: the zipped folder was "Functional Developer" instead of "Functional Objects". @1085497922 also, i guess fun-o used to distribute the gnu linker with FD but now we don't @1085499285 looks like one just needs to install binutils. i'll give that a whack later @1085501227 -zelazny.freenode.net- CIA-8 (micah@hyperreal.info) joined the channel @1085503633 -dircproxy- You connected @1085503683 actually, I haven't had much luck getting it to work with the gnu linker @1085503697 I'm sure I'm doing something wrong in my build, but I'm not sure what @1085503972 also, the zip file is intended to be unzipped within C:\Program Files\Functional Objects @1085504018 hmmm... I guess I'd better change the web page then @1085504487 done. @1085504719 this suggests one can't get the MS linker without VC++ anymore... http://www.ai.mit.edu/~gregs/info-dylan-archive-html-2001/msg00547.html @1085504740 i wonder if i should even try installing the latest Core SDK @1085504876 The latest core SDK (the Feb. 2003 edition) comes with a 64-bit linker and C compiler @1085504887 I don't know if they work with 32-bit targets or not @1085504960 duh... I should have read that article first @1085505022 I suspect it may be subject to the same problem that the VC7 linker is, namely it will only produce separate debugging info in .PDB files, and we're not properly copying the .PDB @1085505056 I plan on fixing all of these problems when/as I finish the new build system @1085505862 lovely... Linda Scheimann is continuing to serve as comp.lang.dylan's "resident kook" @1085505934 -zelazny.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1085506938 sort of seems like she's replying to some other thread. @1085507000 it must be too deep for me @1085507032 no, she's completely off in left field @1085507047 as far as I can tell @1085507062 all of her postings are like that @1085507086 at least she's not too Naggumesque @1085507459 -zelazny.freenode.net- pritlove (~pritlove@62.80.42.113) joined the channel @1085511554 -zelazny.freenode.net- pritlove (~pritlove@dsl-213-023-157-111.arcor-ip.net) joined the channel @1085512195 I think Linda's a bot. @1085512211 Where else does she post? @1085512623 just being able to use the IDE, without linking, is still quite useful :) @1085515937 -zelazny.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1085516146 -zelazny.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085516154 hmmm... looks like she's all over the map, but heavily into "microsoft.test" @1085516347 heh... she has also been known to post to "alt.usenet.kooks" @1085516363 but enough of that... @1085518733 -zelazny.freenode.net- oudeis (~oudeis@bzq-218-95-152.red.bezeqint.net) joined the channel @1085518773 hi @1085519255 hello @1085520247 housel: i've installed the hacker release (20040524). built mps. now i try to build-release and can't make it do it without cvs access @1085522219 re @1085522236 what's it trying to check out? @1085522354 library-packs @1085522438 That should be in Sources\Library-Packs; is it not? @1085522486 it is. maybe i specified sources incorrectly @1085522499 can you give me the incantation you use? @1085522511 cd admin\builds @1085522528 build-release.bat c:\fundev /generations 1 /exports /target internal-release @1085522613 make sure there are no spaces in the path to the source dir; I use "c:\fundev" for that reason @1085522632 well it keeps complaining i don't have cvs installed on my path (i don't) @1085522656 i think there's an option (or env var) for turning off cvs checks @1085522692 I haven't tried it with cvs removed from my path yet @1085522823 hmm. looks like i was mis-remembering @1085522864 -zelazny.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1085522911 those batch files are annoyingly complex @1085522946 ok. i'll just try to install cvs on the path then @1085522946 yeah @1085522964 you could try hacking cvs-checkout.bat with "goto :end" :) @1085522979 fdmake.pl is a lot simpler, but it doesn't yet account very well for all of the various tools that need to be run (parser-compiler, console-scepter) @1085523015 or for the stuff that happens at the end of a release build (preparing Examples and Redistributable directories etc.) @1085523128 we should be able to write this stuff in dylan @1085523133 could't all this be written in dylan may i ask? @1085523147 :):):) @1085523192 of course it could, the compiler's project manager can already do most of it, but it might well run out of memory in the process @1085523295 that's why I wrote fdmake.pl; otherwise you could set the environment-variables and do "console-compiler -build console-compiler" @1085523426 do programs compiled with FunDev and MPS always give 0.5GB coredumps on linux? @1085523435 they do in the linuxulator @1085523497 oudeis: it's also worth noting that the release contains some uncommitted patches @1085523532 housel: hi, did you try to run a program with threads on linuxulator with mps-fd? @1085523558 hannes: I tried gctest but it didn't work very well @1085523792 oudeis: Functional Developer\Sources in the release zipfile contains the sources used to build the release, though @1085523861 housel: i've installed cvs, it is churning on now @1085524322 got error linking dxdylan.dll @1085524336 what does the log file say? @1085524359 lots of things @1085524382 at the end? @1085524387 can't connect to lisppaste to paste it @1085524423 it's kinda hard for me to paste it now - my irc is on unix box @1085524431 just a moment @1085524589 i've put the log at oudeis.maclisp.org/compile-dylan.log @1085524726 got it @1085524763 is "link" in your path? what version does it say it is? @1085524815 7.10.3077 @1085524871 this is visual studio 7 - may this be the problem? as far as i understand, you use vs6 @1085524888 I use VS6 to build the release, yes @1085524931 As the web page explains, VS7 doesn't work for building releases @1085524989 yes, soory, now i see it @1085524994 I'm able to build programs in the IDE with VS7, but not releases @1085525024 also programs built in the IDE with the VS7 linker don't have debugging info so you can't single-step them @1085525102 ok, i'll try to find vs6 installation. maybe this will happen only day after tomorrow when i get to work :( @1085525140 btw does anyone work on nice windows installer for the snapshot release? @1085525205 not yet, that I know of @1085525216 InstallShield costs $1000 or so @1085525222 i think i'll look into it in the meantime @1085525231 microsoft installer is free @1085525244 microsoft installer is just a bunch of APIs @1085525252 we could come up with bindings for them, of course @1085525258 that might be a good way to go @1085525272 nullsoft install system is simple, but works @1085525282 the one used for winamp @1085525321 URL? @1085525335 just google for it @1085525377 nsis.sourceforge.net/home @1085525452 shoutcast, divx. city of heroes are listed as users @1085525469 must be pretty sound stuff @1085525563 nifty @1085525623 do you want me to try and build a simple script - just implementing your installation instructions + file assics for hdp and dylan? @1085525639 s/assics/associations @1085525678 sure @1085525693 ok @1085525722 (I keep meaning to copy the file associations from FD2.0 into my fd.reg but never got around to it) @1085525766 there's small bug in this release - it doesn't find standalone-deuce example, even though it is there @1085525792 i mean if you try to open it from the startup dialog @1085525817 yes, I'd noticed that myself @1085525835 I'll submit a bug entry @1085525933 browsing to find the source and building it works, though @1085525973 yes @1085526139 no, sorry - it can't find gnu installation, presumably for linking, even though i have cygwin installed @1085526151 where do i give it the path to cygwin? @1085526357 You could copy the "tools" directory from FD2.0SP3 @1085526368 that's one of the places it looks for it @1085526384 It wouldn't work at all with a modern cygwin @1085526398 ok @1085526415 why didn't you include it in the snapshot? @1085526444 because it didn't work for me, even when I did that @1085526449 otherwise I would have @1085526476 I'll have to do a bit more experimentation @1085526506 ok, it's bug 7029 @1085526511 i don't understand. what linker do you use then? msvc6? @1085526533 yes @1085526557 and when i install it, what should i do to make fundev use it? @1085526574 just make sure it's in your path @1085526578 ok @1085526585 to build a release, you need the System SDK too @1085526607 and its directories should be included in the VC search path directories INCLUDE and LIB @1085526653 i have converted all my projects (10+, work) from vs6 to vs7 and thought i'll never use it again :-) @1085526684 I bought a copy of VS6 on eBay expressly for this purpose @1085526838 which version of system sdk do i need? do you have the url? @1085527001 February 2003 version @1085527004 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm @1085527034 ok @1085528842 -dircproxy- You disconnected @1085530067 -dircproxy- You connected @1085530930 G5 mindystrap takes 2h26 @1085530950 on my XP3200+ it's 1h56 @1085530966 so they're much closer on that than they are for d2c builds @1085531306 it would be interesting to try out gcc's new profile-directed optimization feedback to see how much of a difference that makes @1085532358 housel: what license should the installer show - fun-o LPL or LGPL? or both? @1085532575 both... see the comments for bug #6986 @1085532594 ok @1085533600 -dircproxy- You disconnected @1085534979 housel: can you send me the reg script to establish file associations or tell me where can i find it? @1085535667 -zelazny.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085537532 -zelazny.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1085537848 -zelazny.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085537862 hi @1085538311 -dircproxy- You connected @1085538337 re @1085538365 I haven't got a .reg file for the associations yet @1085538401 The FD2.0 installer puts some in the registry, you can find them in the usual place @1085538441 ok @1085538445 If you can't figure it out, I'll try to work on adding them to fd.reg later this evening @1085538455 btw what timezone you are in? @1085538467 US west coast time @1085538499 i think i can figure ir out - i thought you have it somewhere @1085538524 i am in gmt+2, so it is probably the time to sleep @1085538558 quite @1085538581 i have almost finished it, except the dual-license part - i have to concoct some kind of dialog to present the choice, and then display one or the other @1085538608 alternatively, i can stuff them one after the other on the same screen @1085538670 what do you think is the best? @1085538684 I think I'll try to write a License.txt later, that contains both of those licenses, plus the MPS license @1085538698 so choice 2 @1085538716 ok. it is also *vastly* simpler @1085538775 when i finish, i'll put it up at oudeis.maclisp.org @1085538789 great @1085538794 (if i haven't exceeded my quota there) @1085538858 i tink it's ok, it will be about 90M, i have 100M left there @1085538885 WHOA! It really offers free accounts on machines that run Genera?? @1085538905 no, not quite @1085538919 ...oh. @1085538927 they have genera, but don't give public access to it @1085538934 Hrmph. @1085538945 its openbsd on alphas @1085538960 [Riastradh!~riastradh@pool-151-203-222-80.bos.east.verizon.net] ACTION is uninterested in BSD... @1085538974 (or free UNIX shells in general) @1085539203 -dircproxy- You disconnected @1085539238 -dircproxy- You connected @1085539303 I can't imagine that logging into genera over telnet would be all that enjoyable @1085539311