* Logging started Fri, 28 May 2004 07:00:13 +0000 @1085727615 -dircproxy- You connected @1085727616 -calvino.freenode.net- You joined the channel @1085727712 log rolled over... previous log is in http://www.gwydiondylan.org/~housel/irc/dylan-hc @1085727814 -dircproxy- You disconnected @1085739957 What was Andy doing to the project manager? Any changes in behavior or just a cleanup of the code? @1085743193 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085745314 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085747429 <^self!~fn@66.209.66.105> hi @1085747544 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085747544 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085747597 -calvino.freenode.net- CIA-4 (micah@hyperreal.info) joined the channel @1085748163 housel: that must be what happened. I did do a Remove Build Products. @1085748832 -calvino.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085748924 I can't create a tag on the koala sources. CVS complains: Sorry, you can't tag a subdirectory in isolation. Tag the whole module instead. @1085748949 So, i tried tagging all of 'libraries' but it gives the same message. @1085753259 -calvino.freenode.net- hannes (hannes@cantor.gwydiondylan.org) joined the channel @1085753316 hi @1085755181 -calvino.freenode.net- jemfinch|lambda (~jfincher@wlan-be-140-254-233-124.osuweb.net) joined the channel @1085756041 -dircproxy- You connected @1085758041 I filed bug 7035 for the Remove Build Products problem @1085760689 -dircproxy- You disconnected @1085761512 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085763029 -dircproxy- You connected @1085764502 -calvino.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1085769350 -calvino.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1085769350 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1085769350 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085769350 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085769350 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1085769350 -calvino.freenode.net- oudeis (~oudeis@bzq-218-95-152.red.bezeqint.net) joined the channel @1085769350 -calvino.freenode.net- chandler (~chandler@chandler.registered) joined the channel @1085769350 -calvino.freenode.net- Riastradh (~riastradh@pool-151-203-222-80.bos.east.verizon.net) joined the channel @1085769350 -calvino.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085769350 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1085769350 -calvino.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1085769976 chandler: for linux or windows? sources or installer? @1085769990 windows, and installer or binary .zip (preferably latter) @1085770056 [chandler!~chandler@chandler.registered] ACTION would think there would be a directory or so @1085770061 housel just put up a new installer at http://www.gwydiondylan.org/~housel/fundev-snapshot.html @1085770103 is there a .zip by any chance? @1085770129 there's a zip, but the code is ever-so-slightly different @1085770139 [chandler!~chandler@chandler.registered] ACTION doesn't care :-) @1085770151 I've never played with it before; I won't notice the difference @1085770153 look in http://www.gwydiondylan.org/~housel/, it should be in the dir listing @1085770173 the 5/24 version was a .zip @1085770186 thanks! @1085770437 -calvino.freenode.net- oudeis_ (~irc@bzq-218-95-152.red.bezeqint.net) joined the channel @1085770443 -calvino.freenode.net- pritlove (~pritlove@194.95.203.210) joined the channel @1085770785 housel: i'm working on the new install script, planned changes are: 1. adding path modification 2. fixing file associations - it points to the default install dir, and there are problems with some icons; 3. putting the registry stuff, path etc under separate sections, so that user may skip whatever he/she/it doesn't want @1085770833 housel: 4. fixing the ununstaller - it doesn't delete 'Functional Objects' folder (a kind of conceptual problem with this install system) @1085770855 housel: i may need to parse install logs manually in order to fix that @1085770916 and adding an option 'just unzip' for people like chandler @1085771076 -calvino.freenode.net- lisppaste (~lisppaste@lamancha.opendarwin.org) joined the channel @1085771430 hey, what is fun-o gonna charge for now? ;-) @1085771465 heya channel. @1085771479 cgay: :-) @1085771493 [prom!~prom@217.13.206.33] ACTION is trying to compile GD with icc (the intel c++ compiler). @1085772030 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1085772562 -dircproxy- You disconnected @1085772661 -dircproxy- You connected @1085773928 -dircproxy- You disconnected @1085776215 -dircproxy- You connected @1085778047 -calvino.freenode.net- oudeis_ (~irc@bzq-218-95-152.red.bezeqint.net) joined the channel @1085793232 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085794042 -dircproxy- You disconnected @1085798293 -calvino.freenode.net- rhashem (~gtg990h@ip68-100-5-48.dc.dc.cox.net) joined the channel @1085798773 -dircproxy- You connected @1085798997 hey, does anybody know if d2c implements generic-function-methods on sealed methods? @1085799007 The DRM leaves it up to the implementation... @1085799415 I think it does @1085799491 excellent. I'm trying it on fundev now, but don't have a machine with d2c on it within reach @1085799521 oh, the new installer is really spiffy @1085805216 -calvino.freenode.net- jemfinch|lambda (~jfincher@acs-24-239-114-198.zoominternet.net) joined the channel @1085814163 Why do you need generic-function-methods to work on sealed generics? @1085817103 ...or sealed methods. @1085818982 -calvino.freenode.net- buggs (~noidentd@pD9E96097.dip.t-dialin.net) joined the channel @1085820366 commit by cpage to src: Bug: 7027 7028 @1085820367 Suppress fontification of interchange file headers. More importantly, this prevents header contents from interacting with fontification of the file body. @1085820367 Fontify type definition names (e.g., the "" in "define class ") with the font-lock-type-face instead of font-lock-function-name-face. @1085832705 -calvino.freenode.net- wm3 (~wm3@ZF129022.ppp.dion.ne.jp) joined the channel @1085839900 -calvino.freenode.net- carlgay_ (~chatzilla@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085848928 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1085848972 cpage: to answer the question you posed yesterday about why I need to access the methods of sealed generics: @1085849017 In my copious minutes of free-time, I'm still trying to work on my C++ -> Dylan bindings generator @1085849057 in order to avoid copying every v-table for every class parsed, I'd like a way to know when methods get overridden @1085849117 so I don't need access to the method, just a simple question of "does this method contain any functions besides the original stub emitted by the generator" @1085849478 -calvino.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1085850997 neat. i just joined #dylan and i'm not even in the office @1085853889 how do people get by without macros? @1085853916 especially in the languages that need that need them most (C++, Java) @1085854238 +1 @1085854266 rhashem: So, you're generating Dylan code, then optimizing, is that it? @1085854388 And do you mean "overridden" or "overload"? Non-virtual member functions can only be overloaded, and I wonder exactly how you'd translate them to Dylan, since they can vary in the number of required parameters. @1085854587 cpage: what's happening is that for each C++ virtual function, you get a dylan GF @1085854619 that GF could be sealed, at the programmer's discretion @1085854671 In fact, if the goal is simply to translate C++ to Dylan, wouldn't it always be sealed, since C++ doesn't have openness? @1085854682 the goal isn't to translate C++ to dylan @1085854695 its to generate Dylan bindings for C++ APIs @1085854731 it wouldn't necessarily be sealed, because the Dylan programmer could inherit from a C++ class and define methods for that @1085854754 but it could be sealed, if the dylan programmer doesn't want to define any methods for that GF outside the library @1085854798 Are you going to generate C++ code that exports C ABI functions for calling member functions? @1085854851 there will need to be some C stub code, but I was planning on seeing if I could call the C++ virtual functions directly from dylan code @1085854860 I have a decent understanding of the gcc v-table layout @1085856322 So, you don't mind tying it to gcc? Or are you going to use the latest stuff, which as I understand it is going to be part of the C++ standard. @1085856636 not for awhile @1085856642 it should be an easily-pluggable bit @1085856658 err, the new C++ stuff won't be out for years @1085856695 On x86, Linux, *BSD, and Windows all have pretty well-established C++ ABIs @1085856774 on platforms that don't have an established C++ ABI, C++ binaries are tied to one compiler anyway @1085856902 Well, the standard won't be finalized and published for a while, but my understanding is that the latest gcc supports what's supposed to be in the standard. @1085857082 I don't think so --- a lot of the standard hasn't been even worked out yet. They're projecting it as a 2006-2007 thing. There are some things like typeinfo that gcc does support already, but those are pretty minor @1085857118 Xtended Type Info would make things trivial, but GCC-XML has pretty good emulation of other compilers, so its not a big deal @1085857184 I'm just talking about name-mangling and v-table format. @1085857684 ah. I don't think that's getting standardized. ABI is up to the platform. Linux/x86 uses the Intel IA-64 ABI, which both Intel C++ and G++ supports. For now, that's the target @1085857748 well, I finally get to go home for the day @1085857749 bye @1085857772 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1085868855 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1085868857 Re. @1085873070 -calvino.freenode.net- pritlove_ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1085873733 -calvino.freenode.net- brucehoult (~bruce@202-0-60-162.adsl.paradise.net.nz) joined the channel @1085886655 -calvino.freenode.net- brucehoult_ (~bruce@202-0-60-162.adsl.paradise.net.nz) joined the channel @1085887577 cantor is not responding for me @1085887583 I can ping it, but that's about it @1085887764 Same here. @1085887791 I used it sometime in the last couple of hours to do a CVS compare. @1085889536 -calvino.freenode.net- brucehoult_ (~bruce@202-0-45-47.adsl.paradise.net.nz) joined the channel @1085889754 sh*t .. the load average is 20!! @1085890351 ok, I've killed everything owned by "tinderbox" and the swapper has stopped and the load average is dropping nicely @1085890751 ok, I think it's back to normal... @1085890851 good morning @1085890877 morning @1085890898 is mr.housel here? @1085890923 not recently @1085891124 i've fixed the install script a bit, and am putting it under oudeis.maclisp.org/fundev-install.zip @1085891465 what's housel's email? @1085891958 brucehoult: i'll be absent for 2 days, if housel wants to release another snapshot in the meantime it is preferable that he'll use the new installer script as it fixes a few things @1085894538 I'm sure he'll read this @1085901631 -calvino.freenode.net- buggs^z (~noidentd@pD9E95672.dip.t-dialin.net) joined the channel @1085909719 -calvino.freenode.net- robmyers (~robmyers@spc1-pete2-5-0-cust77.lond.broadband.ntl.com) joined the channel @1085909720 re @1085910782 -calvino.freenode.net- buggs^z (~noidentd@pD9E97BEE.dip.t-dialin.net) joined the channel @1085914681 commit by cpage to src: Bug: 7016 @1085914681 Added a production to allow a type name token for the name of a @1085914681 struct/union member in addition to an identifier. This is in line with @1085914681 the ANSI C grammar found in The Annotated ANSI C Standard, and allows @1085914681 <...> @1085953172 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1085954403 -calvino.freenode.net- cgay_ (~cgay@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1085961794 commit by cpage to src: Bug: 7036 @1085961795 Changed the Melange framework headers search algorithm so that it @1085961795 automatically locates top-level frameworks in the frameworks include @1085961795 path, and child frameworks within parent frameworks already seen, @1085961795 <...> @1085962840 Okay, with my recent changes to Melange I'm now ready to start writing Carbon interface definitions. @1085963030 Interestingly, my most recent commit didn't seem to get posted here by CIA, although the CIA log page shows it. @1085963385 Has anybody tried using Melange's "-m" option? It doesn't work for me. It writes an empty module file. @1085963998 [Looks at source code.] D'oh! The default case, where Melange writes glue for both Mindy and d2c, is buggy. @1085964012 I guess that's not used normally. @1085968245 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) left the channel @1085968406 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1085989463 -calvino.freenode.net- brucehoult (~bruce@202-0-61-57.adsl.paradise.net.nz) joined the channel @1085993872 -calvino.freenode.net- brucehoult_ (~bruce@202.0.59.197) joined the channel @1085997668 Morning! @1085999726 Morning @1086004019 -calvino.freenode.net- buggs (~noidentd@pD9E95A03.dip.t-dialin.net) joined the channel @1086004204 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1086004204 -calvino.freenode.net- oudeis_ (~irc@bzq-218-95-152.red.bezeqint.net) joined the channel @1086004204 -calvino.freenode.net- Riastradh (~riastradh@pool-151-203-222-80.bos.east.verizon.net) joined the channel @1086004204 -calvino.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1086004204 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086004217 Evening! @1086005000 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086005032 -calvino.freenode.net- Riastradh (~riastradh@pool-151-203-222-80.bos.east.verizon.net) joined the channel @1086005176 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086005176 -calvino.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1086005176 -calvino.freenode.net- oudeis_ (~irc@bzq-218-95-152.red.bezeqint.net) joined the channel @1086005176 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1086014002 <^self!~fn@66.209.66.105> this is cool: http://users.rcn.com/python/download/Descriptor.htm @1086015353 -calvino.freenode.net- Riastrad1 (~riastradh@pool-141-154-52-5.bos.east.verizon.net) joined the channel @1086017428 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086021852 -calvino.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1086029576 <^self!~fn@66.209.66.105> http://www.dieselsweeties.com/archive.php?s=963 @1086045163 [housel!housel@cantor.gwydiondylan.org] ACTION is back from two days camping in the mountains @1086045626 -dircproxy- You disconnected @1086046158 -dircproxy- You connected @1086049871 commit by housel to fundev: Bug: 6971 @1086049872 Move the "Environment Options..." menu item to the "Tools" menu, instead @1086049872 of putting it by itself in the "Options" menu. @1086055993 -calvino.freenode.net- buggs (~noidentd@pD9E95A03.dip.t-dialin.net) joined the channel @1086061542 -calvino.freenode.net- badon (KC7YCL@skoubye.dsl.xmission.com) joined the channel @1086061553 [badon!KC7YCL@skoubye.dsl.xmission.com] ACTION lurks @1086061959 hello lurker @1086062507 howdy @1086062515 I'm makin' food @1086062522 and reading about programming @1086062527 (languages, et al) @1086063277 hi badon @1086063289 hi carl @1086063310 hi peter, how's it going? @1086063317 hi cgay @1086063353 not bad, trying to figure out why the gnu linker doesn't work @1086063373 badon, are you new to #dylan? never seen you here before @1086063376 and committing my as-yet uncommitted patches @1086063409 cgay: yep, brand-spankin' new @1086063431 how did you hear about dylan? @1086063462 accidentally while perusing google @1086063491 then, usenet, and today, I saw it mentioned in an old slashdot post @1086063497 so, I decided to have a look here @1086063517 good ol' google @1086063570 so poo and stuff @1086063581 dylan > C++ ? @1086063598 #t @1086063636 ? @1086063639 http://homepage.mac.com/chrispage/iblog/index.html @1086063646 looking @1086063648 #T is the Dylan canonical true constant. @1086063747 hmm... 1 usually works for me @1086063780 1 is true in Dylan, but then so is 0 @1086063791 only #f is false @1086063805 http://www.bash.org/?10958 @1086063817 That's why I said 'canonical.' @1086063829 how can that BE? I've decided dylan sucks @1086063834 ;) @1086063906 what's yer fave? @1086063966 perhaps we can work on converting you :) @1086063984 one sec @1086064426 ok back @1086064431 begin the conversion process @1086064452 Does dylan work with c/c++? @1086064475 What do you mean 'work with?' @1086064488 well, in any sense. @1086064495 wrappers, libs, whatever @1086064528 hmm, Riastradh, your nick looks familiar @1086064543 I think I saw it on the web somewhere @1086064548 The only channel we're both in is #scheme. @1086064555 ah, k @1086064583 My nick is all over the web, either in references to me or in Gaelic-related texts that are completely unrelated to me. @1086064596 ah, it's from the #scheme webpage @1086064673 i don't know any details about C/C++ integration, but there is a C FFI in Functional Developer and Gwydion Dylan compiles to C, so integration is very good there i believe. @1086064741 oh, it compiles to C, and then compiles the C? @1086064743 That's funky @1086064753 it's a common trick @1086064760 yeah,chicken does it @1086064784 Well, that'd make dylan accessible to C/C++ @1086064793 FFI? @1086064798 unfortunately it leaves us at the mercy of the gcc developers @1086064802 Foreign Function Interface @1086064808 k @1086064874 what do you mean about GCC? @1086064884 what sorts of troubles does that cause? @1086064930 when gcc has bugs, so do we @1086065158 k @1086065397 the problem with interfacing to C++ is that there is no standard for things such as vtable layout or name mangling in C++ @1086065422 *nothing* can interface to arbitrary C++ compilers, unless it produces C++ itself @1086065483 I did manage to persuade Felix to modify Chicken's code generation to be C++ compatible, so I could at least do "inline C++" in Scheme. He's since taken it further. @1086065515 For example, if I want to use a C/C++ lib with dylan, is there a way to do it that's not terribly difficult or expensive, cpu wise? @1086065517 I needed that for my job. I haven't actally needed it for what I use Dylan for yet :-) @1086065526 if it's C it's easy @1086065555 if its implemented in C++ but exports an ANSI C interface then it's easy @1086065575 hmm....ok @1086065588 So, why the mess with compiling to C? @1086065605 it gets you a new language quickly I suppose.... @1086065609 we just haven't had time to write a native backend yet @1086065615 ok @1086065620 that's what I suspected @1086065626 if it's arbitrary C++ then it's very painful to interface to from *any* language, whether you're talking C or Perl or whatever @1086065638 yeah @1086065650 unless swig supports it @1086065658 compiling to C means we work on x86, PowerPC, SPARC, HPPA, ... @1086065665 yep @1086065684 Are there plans for a C-- back end? @1086065710 sort of... gabor and I are at least keeping an eye on c-- @1086065728 --? @1086065738 http://www.cminusminus.org/ @1086065743 looking @1086065782 it's a C-inspired language designed for use as a backend language, in the same way we're currently using C @1086065827 It is designed specifically to be a portable assembly language, unlike C, and so it has many fewer of the shortcomings that C has when used as a portable assembly language. @1086065944 well put @1086065978 yeah, that looks useful @1086065984 as a general tool for new languages @1086066352 OK, so dylan is targeted as a replacement for C/C++ then? @1086066380 pretty much... a general-purpose application development language @1086066742 woo hoo. got virtual hosts basically workin' @1086066767 nifty! @1086066777 g'night all @1086066783 'night @1086066794 [badon!KC7YCL@skoubye.dsl.xmission.com] ACTION lurks @1086067075 -dircproxy- You disconnected @1086067357 -dircproxy- You connected @1086070186 Morning! @1086071649 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086075060 -calvino.freenode.net- brucehoult (~bruce@202.0.59.212) joined the channel @1086077547 Re. @1086083509 commit by cpage to src: Bug: 7037 7038 @1086083511 Added a --defines option to show the default C preprocessor @1086083512 definitions; they are no longer shown as part of --help. @1086083514 <...> @1086084246 -calvino.freenode.net- brucehoult (~bruce@202-0-45-70.adsl.paradise.net.nz) joined the channel @1086086601 Hi Bruce! Is that you, or just a script reconnecting? :) @1086086616 it's a bot @1086086628 Too bad... @1086086632 yeah @1086086637 how goes it? @1086086663 Vincent will stay with my parents for the summer. So I'll have time this weekend. @1086086671 I've created a directory in cvs for the contest @1086086683 at the moment there's a readme @1086086704 I'm also playing games with the user/group of the directory @1086086715 don't want a repeat of 2002 @1086086730 I see. Do we have a canonical bug to submit against? @1086086749 job: icfp @1086086803 commit by andreas to examples: job: icfp @1086086803 Dangerous territory there. :) @1086086813 Alex & Keith & Chris & I had lunch today @1086086821 Hey, no error messages during commit, and CIA works too! @1086086844 Do you have a place to hack? VU? @1086086848 I think we're ready to go @1086086856 we're going to start out at my place @1086086871 might use a bunch of machines at VUW if necesary @1086086907 or *maybe* if we really really need it and ask really really nicely at the other place @1086086914 they're really busy with I Robot at the moment @1086086925 if it was the end of June we could have 3000+ machines @1086086941 Which would gve a certain edge, for sure. @1086086951 BTW: Which employer did you end up? @1086086958 Metservice @1086086971 into my 2nd week @1086087011 So you're responsible for global warming now? :) @1086087027 we just put XCode 1.2 onto the Macs there, and it comes with a hacked version of distcc that uses Rendevous to find distcc servers @1086087043 Cool. @1086087058 there are only 3 people with dual 2 GHz G5's, but that's enough to help :) @1086087075 ... especially if you're the guy who only has a G4 under his desk :-) @1086087230 blame Alex for not being able to spell :-) @1086087244 [andreas!andreas@cantor.gwydiondylan.org] ACTION talks to the phone company, hoping they will restore his DSL service until the weekend. @1086087262 you mean "before"? @1086087271 I do. :) @1086087398 hi @1086087411 Hi Hannes! @1086087545 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086087555 hi andreas @1086087567 Hi Gabor! @1086087574 helloo @1086087623 Gabor! @1086087648 [gabor!root@cantor.gwydiondylan.org] ACTION made the unpleasant discovery (again) that problems multiply when you return from vacation :-( @1086087656 hi bruce! @1086087702 Don't you have any colleagues? :) @1086087703 andreas: thanks for correcting _that_ typo! :-) @1086087717 Good Greif! @1086087741 andreas: yes, they worked along nicely, but we have too many testers :-) @1086087771 rate of bugs found < rate of bugs fixed ? @1086087780 No, > @1086087793 hi gabor @1086087803 you're having trouble with your inequalities today! @1086087810 >, but we had heaps of features finished up lately @1086087814 < and >. And "until" and "before" @1086087836 Blame the heat. Summer actually started this weekend. @1086087859 it's warm here tonight. 14.3 at 11pm @1086087876 also, many of the study MRs got a thorough look by now, which often implies bugfixes that need to be done @1086087880 typical for cloudy nights, actually. clear ones are 7 - 8 @1086087925 [gabor!root@cantor.gwydiondylan.org] ACTION goes implementing, syl @1086087983 [andreas!andreas@cantor.gwydiondylan.org] ACTION winks. @1086088003 Ok, I have some work to do too. Later! @1086088016 and I'm off to bed shortly @1086088024 Night! @1086088954 -calvino.freenode.net- oudeis (~oudeis@p11811120.orange.net.il) joined the channel @1086089934 <^self!~fn@66.209.66.105> hmm. dylan doesn't like sqrt(-1); @1086089935 <^self!~fn@66.209.66.105> as in @1086089936 <^self!~fn@66.209.66.105> let i = -1; @1086089936 <^self!~fn@66.209.66.105> let s = sqrt(i); @1086089960 Why would it like that? @1086089971 we don't do complex numbers @1086090014 cpage: It would if d2c supported complex numbers. :-) @1086090016 <^self!~fn@66.209.66.105> why don't we do complex numbers? @1086090068 probably because no one has implemented them? @1086090077 <^self!~fn@66.209.66.105> good answer! @1086090086 which is proabbly because they're not easy to do in a way that satisfies everyone @1086090108 Mathematically, syntactically, ...? @1086090113 <^self!~fn@66.209.66.105> in d2c, the sqrt method seems to call the c sqrtf() @1086090117 <^self!~fn@66.209.66.105> function @1086090123 yep @1086090164 if you want a full mathematically corrct numeric tower then use CL @1086090185 <^self!~fn@66.209.66.105> or fix dylan? heh. @1086090186 or one of the better Schemes @1086090208 <^self!~fn@66.209.66.105> yeah, i use scheme48 and it has complex numbers. @1086090212 different people would have different opinions on what was "fixed" @1086090260 Should the supplied sqrt methods specialize only on positive numbers? @1086090448 -calvino.freenode.net- buggs^z (~noidentd@pD9E95B6C.dip.t-dialin.net) joined the channel @1086090472 <^self!~fn@66.209.66.105> a complex type will need to be added to "fix" sqrt for negative numbers. @1086090487 <^self!~fn@66.209.66.105> which probably implies fixing up sin, cos, etc to work on complex numbers. @1086090512 which means that either sqrt always returns complex, or else it returns different types depending on the argument @1086090528 .. which makes it really hard to generate efficient code, either way @1086090544 where "efficient" means: competes with C and FORTRAN @1086090608 Doesn't method dispatch optimization take care of that? The result type should be deterministic based upon the input args, no? @1086090616 <^self!~fn@66.209.66.105> i thought cmucl or sbcl were pretty efficient with floats. can't we steal their code? @1086090634 how @1086090654 method foo(n) sqrt(n) end @1086090659 what's the return type? @1086090675 make it "n :: ". Still doesn't help with the return type @1086090687 <^self!~fn@66.209.66.105> hmm. @1086090688 Either you can optimize that or you can't. Adding support for complex doesn't alter the situation. Does it? @1086090779 You'd have to use dispatch optimization and/or inlining to figure out the method of sqrt, even if all you support are single and double floats. Or am I missing something? @1086090858 <^self!~fn@66.209.66.105> what does fd do? that's closer to home than sbcl @1086090860 <^self!~fn@66.209.66.105> or cmucl @1086091443 <^self!~fn@66.209.66.105> heh. neither smalltalk nor goo handle (sqrt -1) @1086091490 mathematically sqrt is not defined for negative reals @1086091570 it can be interpreted as a relation with two solutions (+-i*sqrt(abs(r))), though @1086091645 (make that +- to conjugate complex) @1086091713 in my opinion sqrt should signal a for negative values @1086091818 Wouldn't it be better to specialize it on positive values so the compiler could complain? @1086091906 Anybody here used Melange? @1086091981 Melange produces Dylan glue for every definition in a header file *and* for every definition used by those definitions. This is problematic because it means, for example, that the Mac OS type Boolean gets defined in every interface. @1086092038 Is there a way to tell Melange not to emit FFI code for every referenced item? @1086092134 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is up late tonight/this morning. Good night! @1086092165 -calvino.freenode.net- badon (KC7YCL@skoubye.dsl.xmission.com) joined the channel @1086092297 <^self!~fn@66.209.66.105> night @1086092325 cpage: night @1086092332 badon: hi @1086092471 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086092579 <^self!~fn@66.209.66.105> hmm. pydoc raise works for me. @1086092602 <^self!~fn@66.209.66.105> ...on debian. but not freebsd. @1086092637 <^self!~fn@66.209.66.105> well, you'd hardly impress members of the opposite sex with pydoc. @1086092671 <^self!~fn@66.209.66.105> and, of course, #dylan isn't #mnet. sigh. @1086093313 <^self!~fn@66.209.66.105> it will? i didn't know that. @1086093421 <^self!~fn@66.209.66.105> argh @1086094134 -calvino.freenode.net- pritlove (~pritlove@194.95.203.174) joined the channel @1086101213 -calvino.freenode.net- pritlove (~pritlove@194.95.203.174) joined the channel @1086101626 -calvino.freenode.net- lisppaste (~lisppaste@common-lisp.net) joined the channel @1086103846 -dircproxy- You disconnected @1086106775 -dircproxy- You connected @1086106809 re @1086106963 hi peter! @1086107029 hey gabor @1086107058 looks like you are getting along with OD nicely! @1086107089 we're making some good progress @1086107123 lots of old bugs to go through and evaluate @1086107142 after leaving the initial windows release behind, could you look into the subclass on linux? @1086107188 sure @1086107204 then I could possibly start building on cantor with the gdb/mi stuff @1086107210 yes @1086107232 it would be nice if we could get the ppc backend working, so maybe you could build on MacOS too @1086107251 thanks! (it is not urgent, though, this w/e I am committed with ICFP) @1086107273 that would be great, yes @1086107333 I have a hard time getting into the contest mindset, so I'll sit out the contest on the sidelines, and help out with compiler/core library support if needed @1086107900 [prom!~prom@217.13.206.33] ACTION thinks the c-backend might be a better choice since cantor wont be there for long and the only replacement in sight is a sun machine with ultrasparc CPUs ;) @1086108356 true enough @1086108516 also, the C-backend MIGHT produce better code with gcc. @1086108539 and it would ease porting. @1086109017 I wonder about emitting "asm" where finer control is desired in the C backend. @1086109073 that might be useful for things like retrieving the carry bit @1086109222 [housel!housel@cantor.gwydiondylan.org] ACTION laments the fact that gcc's asm statement doesn't parse the included instructions, and thus requires all sorts of error-prone annotations @1086109325 the apple guys wanted to change that, but it was basically turned down. They might produce another attempt, though @1086109369 they have my vote @1086109435 at work I recently converted a pile of ARM embedded code from ARM CC (which parses asm statements) to gcc 3.x @1086109852 -calvino.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1086109873 hi sprout @1086109890 morning gabor @1086110165 OK, what's the licensing culture around dylan like? I really hate the GPL, but BSD'ish things suit me better.... @1086110213 Here's my take on things - http://www.zesiger.com/license/ @1086110221 Gwydion has a BSDish license @1086110243 ah, fantastuc @1086110244 ic @1086110252 FunDev is dual-licensed under the LGPL and a Mozilla-like license @1086110330 I just hate the people who say "Business is bad, communism is good" @1086111031 housel: LGPL or a clarified LGPL? IIRC the LGPL is /very/ hand-wavy about what constitutes linking, to the point that Franz wrote the Lisp LGPL (clarified for dynamic languages) @1086111206 straight LGPL... linking is a lot more clearly-defined in Dylan than in Lisp @1086111333 though strictly speaking when using the LGPL terms, one should probably compile in "loose" mode @1086111403 ok :-) @1086111767 -calvino.freenode.net- cpage (~Chris@charger.intuit.com) joined the channel @1086112634 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086113056 inline asm doesnt do the trick in many cases... @1086113099 c misses several important things. like add-with-carry, proper union initialization.... @1086113101 housel: http://www.gwydiondylan.org/~housel/fundev-snapshot.html ---> what about providing MD5sums? @1086113159 gabor: the md5sums and the exe files are both provided on cantor. as long as its not gpg signing i dont think its worth caring about. @1086113189 gabor: cantor is insecure as hell. this will be fixed on the new box. @1086113281 (i will have the box in a few days. itll be installed within the next month or so. we have to bring the machine from berlin to nuremberg...) @1086113499 badon: my opinion about licenses: GPL sucks, LGPL sucks less, BSD is great. @1086113795 prom: awesome. @1086113823 I think the BSD license is the most appealing, from my perspective @1086113878 badon: i guess i could tell you the details... but i guess it will just be just yet another combination of different sub-opinions on licenses you will find everywhere out there. @1086113887 yeah @1086113905 I think they all have their purposes, I just hate it when everyone chooses the GPL. @1086113928 I think this license is the least "special purpose" - http://www.zesiger.com/license/ @1086113940 badon: and BSD suits most... @1086113945 It seems to be the happy medium that accommodates everyone @1086113956 prom: yeah, BSD is a good one @1086113968 badon: GPL is really bad. LGPL is ok. at least everybody can use the software... @1086113972 I'll feel comfortable getting involved with anything that's BSD @1086114065 badon: but LGPL seems to be ok for me only because you dont want to extend most of the packages out there because they are... well.... dirty c code ;) @1086114104 yeah @1086114326 LGPL is bad in practice in some situations, because its wording is very handwavy @1086114453 handwavy? @1086115040 The Zesiger license seems too dependent upon a particular corporation. I think the license is basically okay, but I wouldn't use it unless it were defined and arbitrated by a non-profit organization with public board members. @1086115074 cpage: agreed, it needs an independent foundation. @1086115268 cpage: I wrote that license, and I'll talk to some people and see if we can take some steps to move it away from the company. @1086115664 BTW, "rediculous" is misspelled on the Zesiger license page. @1086115673 where? @1086115686 I'm anal about that stuff @1086115926 Well, "ridiculous" is misspelled. ;-) @1086115938 ri? @1086115940 looking... @1086115971 It's in the Q&A section. @1086115986 which part? :) @1086115988 Three times, in fact. @1086116028 I see three usages of the word, and they're all spelled right...right? @1086116061 they're all spelled redi. should be ridi @1086116074 oh? @1086116078 looking... @1086116117 Just think "ridicule." You wouldn't spell that "redicule." @1086116137 yeah, you're right. @1086116153 I'm a bit of a word-guru, I can't believe I didn't know how to spell that :)( @1086116170 thanks for pointing it out @1086116179 quick, how do you spell tendinitis? @1086116186 [cpage!~Chris@charger.intuit.com] ACTION only started spelling ridiculous correctly on a consistently basis sometime in the past few months. @1086116186 tendonitis @1086116191 heh @1086116204 [cpage!~Chris@charger.intuit.com] ACTION still has a way to go with grammar, though. @1086116212 For YEARS I've been spelling it rediculous, and NO ONE's ever called it wrong. @1086116358 OK, fixed @1086116425 It helps that Mac OS X has a system-wide spelling checker and most apps support it. @1086116452 I never use spell checkers. @1086116468 You don't say? ;-) @1086116501 I told my elementary school teachers they can keep their stupid spell checkers. I always had less errors in my work that people who used them. mostly because of the variations on the word 'their' @1086116505 I'm just always correct in my speling. @1086116509 badon, _fewer_ errors. @1086116517 Riastradh: shuttup @1086116519 :) @1086116526 And _than_ people who used them, not _that_! @1086116543 yeah, and I didnt capitaloze mostly @1086116550 :) @1086116550 No wonder spell chequers didn't help you. @1086116559 And yor mising a period at the end @1086116564 IRC is forgiveable @1086116564 Yor? @1086116577 You're @1086116577 Indeed. @1086116607 heh, felix on EFnet goes around chans and corrects people all day long - he's banned from a bunch of them, haha. @1086116615 But none of that's important, anyway. What's important is whether you use apostrophes correctly. @1086116630 thats improtant? @1086116636 poo @1086116661 http://www.angryflower.com/bobsqu.gif @1086116676 +1 @1086116789 -calvino.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086117772 +2 @1086117799 (analogous to 'me 3') @1086117836 anywho, i wish Angry Flower would do a bit on then/than @1086117848 I believe he did. @1086117853 Although I'm not sure. @1086119176 Riastradh: gud lnk! phaps he will do 1 4 ppl who cant b bothered 2 learn proppr English . @1086119937 English is almost by definition improper. @1086120839 yes... let's use Loglan instead @1086120981 -calvino.freenode.net- lisppaste (~lisppaste@common-lisp.net) joined the channel @1086133379 [housel!housel@cantor.gwydiondylan.org] ACTION just posted a reply to cpage's c.l.d article @1086133951 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION just read housel's reply :-) @1086134009 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is looking at the c-to-dylan name mapper; the user's guide didn't lead him to believe that would do anything useful @1086134073 that's the one I usually use @1086134091 BTW, it sorta seems to me there ought to be a way to pass parameters to the name mappers. Seems a shame to have to specify a completely different mapper for smaller variations. @1086134191 I just used c-to-dylan and I see it omits enum prefixes. However, the user's guide didn't mention this difference from the others. @1086134231 Also, it's weird that it inserts hyphens but leaves capital letters, and it's especially weird how it renames constants using the common "k" prefix: @1086134247 kCurrentProcess => $k-Current-Process @1086134251 it says that it (and minimal-name-mapping) omit the struct name, and melange treats enums and structs almost identically @1086134266 OIC. That wasn't clear to me. @1086134317 you'd like a style that drops the k in Apple-style constant names? @1086134330 Yes. The k should be replaced with $. @1086134343 [housel!housel@cantor.gwydiondylan.org] ACTION checks the Apple Dylan manuals to see if Creole could do that @1086134349 Or, it shouldn't hyphenate the name. @1086134374 I've been intending to look at the interfaces generated in Apple Dylan, but it requires booting in Mac OS 9 and I haven't had a good time to do that yet. @1086134382 if you don't want hyphens you can use minimal-name-mapping @1086134516 Apple Dylan had a MacApp-to-Dylan name mapper @1086134545 Well, I'd either like lower case, hyphenated names to match Dylan conventions, or names that closely match Apple's documentation, e.g.: @1086134585 that removed initial T in types, initial k in constants, f in struct fields @1086134613 GetCurrentProcess, $kCurrentProcess or get-current-process, $current-process @1086134632 their examples: @1086134642 SampleFunction => Sample-Function @1086134651 TSampleType => @1086134662 kSampleConstant => $Sample-Constant @1086134677 fSampleField => get-Sample-Field @1086134738 I guess the answer is that I should consider implementing a name mapper that works well with Apple naming conventions. @1086134752 So that's what Apple's interfaces looked like? Interesting. @1086134782 they also had C-to-Dylan and minimal-name-mapping identical to what melange does now @1086134796 BTW, the existing, hand-built Carbon interfaces use a "-value" suffix instead of a "get-" prefix. @1086134836 get-Sample-Field := foo; // seems a little weird to me. @1086134849 that's probably inspired by the C-FFI code used by the DUIM ports @1086134863 yes, I agree @1086135046 I'll consider implementing a name mapper like MacApp-to-Dylan (although the name is probably archaic these days.) @1086135112 I have several questions about the intended use of Melange and what its output should be like. @1086135179 Putting aside the naming issues, one thing seems to be a problem to me is that Melange emits definitions referenced by the "target" header. @1086135215 I don't see a way to convince it wholesale that referenced names will be imported. @1086135234 It seems to require individually excluding specific header files or names. @1086135271 equate: { "char *" => } for instance @1086135276 e.g., every Apple header indirectly uses "Boolean". @1086135311 Is it intended that interfaces should have one module per header? @1086135313 I strongly recommend using explicit import: { ... } @1086135366 that's entirely up to whoever does the wrapping @1086135409 Well, it seems to me that if I'm going to generate Carbon interfaces, there should be one module that exports the Dylan equivalents of OSType and Boolean, for example. @1086135433 yes, that makes sense @1086135447 Is there any reason there shouldn't be a way to have Melange only emit definitions for names directly declared in the target header? @1086135496 Perhaps I'm thinking this is all supposed to be more automated than it really can be. @1086135541 If new headers are released with new names, should it require updating an .intr file? @1086135571 in my opinion, yes, since you're going to have to add them to the module definition anyway @1086135590 Not if you have Melange generate the module definition. @1086135603 that's a relatively new feature @1086135607 Ah. @1086135629 I thought I remembered Apple Dylan requiring a manually-created module definition. @1086135655 yes, it probably did @1086135697 ...which seemed ridiculously tedious to me. Perhaps it's not that big of a deal after the initial creation. @1086135753 in my experience, relying on import: all has caused a lot of problems @1086135772 especially with different library versions, Linux vs. FreeBSD vs. Solaris, etc. @1086135780 I think the ideal would be that you just write an interface definition that says how to map things, and then run Melange again when new headers are released. Do you think that's not practical? @1086135809 What sort of problems? @1086135885 one example is inadvertently importing "select", which fails to compile because select is already a statement macro @1086135939 Why not just resolve the collisions as they're encountered? (As opposed to explicitly importing every name.) @1086136005 because you'll have different conflicts on every platform... better to start with a minimal import and add to it as necessary @1086136046 Oh, you mean when you're writing interfaces for cross-platform headers like, say, OpenGL? That makes sense. @1086136107 also, with explicit imports you can stick to wrapping the published APIs, and won't end up inadvertently including internal functions @1086136142 Does it ever happen that internal functions are in headers? @1086136183 Still, it might be useful if there were an automated way to generate the import list and only require you to pare it down when initially creating an interface definition. Carbon has thousands (tens of thousands?) of declarations. @1086136246 If I use explicit import will Melange still emit referenced names? @1086136254 yes @1086136256 (I couldn't figure this out from the documentation.) @1086136342 for Creole I'm considering having something like "define C-interface-module" which is a combined "define module" and "define interface" @1086136350 So what's the expected way to resolve the situation where, say, multiple headers refer to "struct Point {int x; int y;}", which is defined in a shared header? @1086136383 For Creole? @1086136404 sorry, I mean Collage @1086136430 it's a little late to do anything to Creole @1086136436 heh @1086136448 depends on how you do your interfaces @1086136459 It sounds like Melange is already nearly the equivalent of Creole, anyway. @1086136518 Well, how do I go about defining an interface for a header that refers to Point, and have Point defined and exported by the interface for whatever header declares it? @1086136524 you might do the whole wrapper in a single implementation-module, in which case you could #include { "foo-common.h", "foo-a.h", "foo-b.h", "foo-c.h" } @1086136543 For Carbon that would mean dozens (hundreds?) of header files. @1086136574 there's no overarching "Carbon.h" file that recursively includes them all? @1086136611 There is, but my point is that'd make for a "huge" interface. @1086136623 I'm not sure whether it's best to have a carbon library with separate modules for each header, or one module. @1086136650 What about typical C headers that include , though? @1086136683 that makes import: all-recursive dangerous @1086136689 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is trying to grok melange @1086136733 What makes "import: all-recursive" dangerous? @1086136757 Anyway, you've convinced me explicit imports is the way to go. @1086136760 I would have one "define module" for each header, which "create"s each exported name, then import all of those into a blah-internals module that contains the "define interface" @1086136775 Ah. @1086137795 I guess it's worth noting that that style wouldn't fit very well into my proposed "define C-interface-module" @1086138053 I wonder what Apple Dylan's interfaces look like. @1086138091 I tried to take a look yesterday only to be thwarted by source databases. First thing we do after the revolution: Standardize a source database format. @1086138114 the manuals were in PDF on the CD, you could read that @1086138126 First thing I do once I boot into 9: Export all of the Apple Dylan sources to interchange files. @1086138181 BTW, I'm unclear on the difference between "map" and "equate". The names seem a little indistinct to me, and the documentation didn't help straighten me out. @1086138200 Ah, good point. The manuals may be enough for now. @1086138240 map: "melange, when you do a mapping for Q, call it q @1086138262 equate: assume a pre-existing mapping for Q called q @1086138297 map just affects the emitted name? @1086138328 I think so, don't quote me on that @1086138333 The user guide refers to them as "low-level" and "high-level." @1086138398 that is confusing @1086138764 -dircproxy- You disconnected @1086139628 Another thing comes to mind: Most Mac APIs return an error result and use output args for other results. I can tell Melange to use multiple values to turn output args into results, but it's a little awkward to have the error result there. @1086139668 I wonder whether it would make sense to have a way to change the order of results, or even have Melange emit code that checks the error result and signals exceptions as appropriate. @1086139692 Or is this the type of thing that's supposed to be done in a wrapper around the generated interfaces? @1086139777 I'd say it should be something that's supposed to be done in the wrapper. @1086139787 When you're talking thousands of APIs, automating this is important, but how much should be Melange's job and how much should be provided some other way? @1086139847 Actually, no: you should be able to define Melange macros or something that would do this junk for you. @1086139958 Speaking of macros, is it safe to assume that it would be entirely desirable to define -definer macros to wrap up the various definitions a single C definition generates, and have Melange (or whatever the tool of the future is) emit macro calls instead of individual definitions? @1086140041 e.g., c-struct-definer, c-enum-definer, c-variable-definer, etc. @1086140121 I guess it depends on whether the generated code is meant for human consumption. @1086141898 [bhoult!~Bruce_Hou@metnet.met.co.nz] ACTION doesn't think that's *quite* what "map" and "equate" mean. @1086142066 "equate" is like C++'s reinterpret_cast. It means "take the external bag of bits and use THIS Dylan type to interpret them" @1086142134 "map" is like C++'s static_cast. It means "convert the special type you got from 'equate' and use as() to turn it into a more conventional Dylan value for the user" @1086142153 ... and the reverse on output @1086142204 So, the obvious example is equate'ing char* to a special class that knows about null termination, and then map'ing it into a regular Dylan @1086142258 or the same for C++ bool -> Dylan to Dylan @1086143879 Okay, that makes sense. Thanks. @1086148335 -dircproxy- You connected @1086149755 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086151624 gwydion and harlequin support using existing C++ libraries? @1086151628 Is this true? @1086151635 http://groups.google.com/groups?q=dylan+c%2B%2B+replace+OR+replacement+OR+better+OR+best&hl=en&lr=&ie=UTF-8&selm=bruce-2706992114560001%40bruce.bgh&rnum=10 @1086153200 anyone awake? @1086153583 -calvino.freenode.net- rourea (~chatzilla@ACC264E8.ipt.aol.com) joined the channel @1086156742 C, yes; C++ requires that you wrap in C first @1086157653 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086158538 housel: OK, if I've got a native C lib I want to use, how straightforward is it to use it in Dylan? @1086158931 commit by cgay to libraries: Directory /var/lib/cvs/libraries/koala/sources/koala-app/config added to the repository @1086159627 commit by cgay to libraries: job: 7010 @1086159627 Checkpointing basic virtual host support. @1086160060 badon: digest the .h file with melange and use the resulting module definition. (assuming you are working with d2c) @1086160084 k @1086160107 badon: you might want to look into melange invocations in the d2c CVS tree @1086160203 instances where d2c is using C libs? @1086160281 runtime/time I think @1086160339 find . -name GNUMakefile -print -exec grep melange {} \; @1086160393 [gabor!root@cantor.gwydiondylan.org] ACTION goes in working mode. will check back regularlz @1086160417 y @1086164441 -calvino.freenode.net- brucehoult (~bruce@202-0-60-121.adsl.paradise.net.nz) joined the channel @1086164919 hi bruce @1086164930 re Gabor @1086164960 how is your new job? @1086164969 pretty good @1086164976 still finding my way around stuff... @1086164985 better than eserv? @1086165000 too early to say @1086165020 eserv was fine except that it was getting big enough to have serious politics @1086165063 MetService is a similar size organization, but the Weatherscape team is run as a seperate business @1086165160 It's nice having a Mac at work :-) @1086165270 are you ready for the weekend? @1086165334 6 pm - 6 pm should be quite convenient for you @1086165356 I'll be getting up for 4 am the first day, and then staying up until 4 am the last day... @1086165360 well, that's the plan, anyway @1086165843 I am ready, but I will be away for some hours (trying to drink as little beer as possible :-) @1086165871 well, as litle as possible is zero, which takes (in the limit) zero time @1086166108 interesting @1086166129 when did Orkut start showing multiple paths, each up to four links long, from yourself to other people? @1086166178 http://www.orkut.com/Profile.aspx?uid=325082930226142255 @1086166205 I get three paths, each thre links long, each going through totally different people @1086166332 no! Here;s someone who shows 3 paths, each with 6 links! @1086166364 http://www.orkut.com/Profile.aspx?uid=1779670136199289043 @1086166730 they discovered that a social network is a undirected cyclic graph :-) @1086166759 you think? @1086166822 ok maybe it is directed @1086166837 that guy is 7, 6 for me @1086166839 well, it is reflexive @1086166847 or, at least, Orkut's version is @1086166889 if they allowed, say, you to be a fan of someone without being a friend, then it would be directed @1086166944 try this one: http://www.orkut.com/Profile.aspx?uid=2568340466943934176 @1086166965 She's a singer, here in Wellington, but one of my shortest paths goes through Andreas! @1086167028 (so I expect yours will too) @1086167911 yeah, same here @1086167927 just one, or several paths? @1086168092 I also get several via KriXtina @1086168092 one @1086170394 Morning! @1086170402 hi @1086176837 -calvino.freenode.net- buggs^z (~noidentd@pD9E96B73.dip.t-dialin.net) joined the channel @1086181659 -calvino.freenode.net- badon (KC7YCL@skoubye.dsl.xmission.com) joined the channel @1086187861 -calvino.freenode.net- fincher (~fincher@kappa.cis.ohio-state.edu) joined the channel @1086192295 -dircproxy- You disconnected @1086194006 -dircproxy- You connected @1086194049 re @1086195034 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086195339 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086195375 re. @1086195397 hi gabor @1086195407 rehi @1086195423 [housel!housel@cantor.gwydiondylan.org] ACTION is working on the Jam-based build-system @1086195507 [gabor!root@cantor.gwydiondylan.org] ACTION is working on customer features @1086195531 [gabor!root@cantor.gwydiondylan.org] ACTION would *love* to work on d2c now @1086195669 my cross-compile of gcc 3.2.3 just finished, now I get to work on that again... @1086195683 -calvino.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1086195708 gcc 3.4 seems to have quite a few regressions, at least on the ARM target @1086195724 housel: why 3.2.3? There is 3.3.4 by now @1086195746 I haven't tried 3.3 yet @1086195755 ok @1086197858 Re. @1086197868 hi andreas @1086197871 hi andreas, * @1086197885 Hi Peter, Hannes. @1086198038 BTW: the koala I've started on cantor is still running. About once a day, somebody accesses /plugins/hpjwja/help/about.hts :). @1086198425 HP Web JetAdmin? @1086198459 I guess there's an exploit for this device, and people are scanning... @1086203711 -calvino.freenode.net- rourea (~chatzilla@ACC5C4B8.ipt.aol.com) joined the channel @1086203859 -calvino.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1086203864 re. @1086208117 [housel!housel@cantor.gwydiondylan.org] ACTION fills in "Dylan" as a write-in answer to "Which programming languages do you know/use, or plan to purchase within 12 months?" on the ACM Queue circulation survey @1086208718 housel: Excellent! @1086208721 re @1086208772 hi chris @1086208821 I'm still pondering what to do about the splash screen/About box @1086208902 One of Bob's album covers! @1086208915 perish the thought @1086208951 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION has been reading the Apple Dylan documentation for Creole; I think it's a little clearer than the Melange user guide. @1086208960 indeed @1086208991 it's nice to have a professional tech writing staff on hand... @1086209101 The documentation for Dylan and Apple Dylan may be the biggest contribution from Apple. More important than the implementation they produced. @1086209132 -calvino.freenode.net- pritlove (~pritlove@62.206.114.179) joined the channel @1086209464 I'm glad I spent the extra money (NT$2400 altogether) to buy the printed manuals... @1086209490 What was that in US$, roughly? @1086209546 $85 or so @1086209554 I have the printed docs, too, but I don't recall how much it was. @1086209577 (I had to pay for DHL and customs tax) @1086209731 Ah. @1086209795 I have to say, ever since "New Inside Mac", Apple docs have been my favorite to read. They have a very nice format and I think just the right amount of redundancy and verbosity. @1086209926 which was "New Inside Mac"? The version after the first? @1086210116 In the original series, they just added another volume for each major rev of the ROM/hardware. At some point, they completely revamped it into many volumes, partly to document all the new System 7 features. @1086210186 ah... so that was after my time (I haven't done any Mac programming since '91) @1086210222 Well, you should get back into it. It's much more fun now. :-) @1086210258 (oh, and I did NewtonScript in '93-'94) @1086210396 I think the formatting in the DRM is horrible. The way the headings are done makes it hard to find the definition names. @1086210438 i'll have to get out my apple dylan docs again... @1086210469 which kind of headings? @1086210510 i don't have it in front of me, but i know that my eyes are always drawn to the wrong place when looking for the doc for a specific class or function @1086210547 hmmm @1086210599 i think it's better online than in the book @1086211272 -calvino.freenode.net- badon (KC7YCL@skoubye.dsl.xmission.com) joined the channel @1086211310 In the TOC or on each page? @1086211625 hey chan @1086211685 hi prom @1086211807 [prom!~prom@217.13.206.33] ACTION tried to bootstrap FD from CVS using the last linux alpha as compiler, but it signalled "Out of memory". this didnt happen before with this machine (and it really shouldnt, with 2G real and 2G swap mem). @1086211879 hmmm... I think cgay had the same problem @1086211884 I'll look into it @1086211909 hm. the build process uses the static version of the systems installed libgc? @1086211940 no, I think it uses the gc.a found in fundev/Sources/lib/run-time/pentium-linux @1086212079 wow. and its pretty large compared to the system libgc.a. about 4 times as large. must be a debug version. @1086212124 [hannes!hannes@cantor.gwydiondylan.org] ACTION thinks he had the same problem, but couldn't reproduce it while running make again. it also only happened during bootstrapping with boehm-gc. @1086212154 Hmmm... the 20040526 FD Win installer doesn't work for me... complains about insufficient permissions. @1086212185 it worked for me as Administrator. or maybe even as a user in group "Administrators". dont remember. @1086212238 (Win2k AdvSrv EN MSDN) @1086212327 Must have been permissions on the file itself, for whatever reason. Maybe cygwin-caused. @1086212417 Install is happily proceeding now. @1086212419 [prom!~prom@217.13.206.33] ACTION always starts FD using the VS.Net command line because hes to lazy to figure out which environment variables have to be set for the VS stuff to work. @1086212468 andreas: you tried starting the installer from cygwin? @1086212498 I scrounged through VCVARS32.BAT and figured out which envars to set, then permanently set them from the System control planel @1086212503 panel @1086212509 No, I used the cygwin command line and ssh to transfer the file. @1086212601 andreas: eek. ;) @1086212627 If only the GNU linker was working... @1086212641 andreas: there is a set of VS.net CDs on sonic. @1086212683 soon... @1086212710 andreas: and you can download the vs.net compiler and linker from microsoft... but thats not enough for most apps because the resource compiler is missing. @1086212733 and the linker, and nmake, and ... @1086212830 btw... i almost succeeded building GD with icc. ill finish that when i have time or somebody needs it. icc really generates better code in many situations. @1086213672 cpage: i was talking about in each page, not the TOC (if you were asking me) @1086213837 so, e.g., on the page with "sorted-applicable-methods" on the left and "[Function]" on the right, the function name isn't obvious enough? @1086214000 right. it has to do with font sizes and the placement of that separator line @1086214031 the name of the method is even smaller than the Description: subheader from the def above it @1086214117 and the separator line is placed so that it looks like the sorted-applicable-methods header is part of the previous section @1086214173 anyone seen the update to the icfp page? @1086214182 http://www.icfpcontest.org @1086214191 Now I have. @1086214215 I remember a while ago seeing a picture of what seemed to be a gigantic desert with some figures moving along it. @1086214226 (but it was too vague for me to be certain that that's what it depicted) @1086214263 please, not another A* exercise... @1086214325 at least last year you had to deal with serious momentum issues making the state space intractable @1086215730 is this good news or bad news? - http://www.dtek.chalmers.se/groups/icfpcontest/proclamation.html @1086215738 What's the dylan people's take on it? @1086215758 It's the last link from here - http://www.dtek.chalmers.se/groups/icfpcontest/proclamation.html @1086215773 We'll beat them this year. @1086215808 The awards are in Snowbird, Utah...I'll try to attend if the Dylan people win @1086215814 I live in Utah @1086215885 A pity: you'll miss it when the #scheme team wins, then. @1086215891 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION ducks. @1086216101 [badon!KC7YCL@skoubye.dsl.xmission.com] ACTION is examining scheme as well as dylan - He's already decided ruby rocks. @1086216148 I absolutely loathe the mess they've made in Ruby with incompatibly differentiating blocks, methods, and procedure objects. @1086216191 Yeah, isn't that s'posed to be addressed in ruby rite? @1086216195 ruby 2 @1086216199 or whatever they call it? @1086216214 I don't know. I stopped paying attention to Ruby a while ago. @1086216250 oh? why? @1086216269 Good luck to the Scheme team .. but the Dylan team has a track record @1086216311 badon, it's not very interesting to me. It's yet another overly-Smalltalk-style-OO Perl replacement. @1086216317 .. and we're tanned, relaxed, and ready @1086216336 I'm not sure I'm relaxed & ready...I've been ailed by strange symptoms over the past couple days. @1086216390 I hope they're gone by Friday. @1086216397 -calvino.freenode.net- rourea (~chatzilla@ACC0E322.ipt.aol.com) joined the channel @1086216433 heh. I just googled for that phrase ... amazing how many people have used it @1086216452 Riastradh: hmm...it seems to be a good deal better than perl...with a bit of a lead of python too @1086216461 over python, rather @1086216482 bhoult, the phrase I used about Ruby? @1086216485 python is asymmetric @1086216494 badon, sure, but that doesn't make it very interesting. @1086216519 [bhoult!~Bruce_Hou@metnet.met.co.nz] ACTION thinks Ruby is better than either Perl or Python, if that's the sort of language yo uwant to use for a task @1086216532 I can do any scripting I like much more pleasantly in Scheme anyways. @1086216547 i.e. low performance (except for intrinsics such as REs and hashes), fast turn-around, and very dynamic @1086216580 Riastradh: well, beyond 'scripting' though... @1086216596 I can't. I've used Scheme quite a lot, and even prefix Dylan is a *big* advance on it @1086216607 wish the ocaml guys would cleanup their methods to be like functions @1086216617 Oh, I don't mean pure R5RS Scheme, bhoult. @1086216690 what kind of language would you guys like to see in the base of an OS @1086216702 Dyan, doh! @1086216705 er "Dylan" @1086216724 bhoult, thought more of a scripting like language @1086216736 dylan seems so heavy to me @1086216753 heavy in what way? @1086216756 sorry if i'm ignorant @1086216774 dunno getting a sysadmin to use it @1086216782 typing "define method" instead of "def" ? @1086216788 or "fn" @1086216810 bhoult, do you write scripts in dylan ? @1086216819 the cmpile time alone e.g. @1086216825 not at the moment, no @1086216830 buggs, that's a deficiency of Dylan implementations. @1086216844 compile time is 3 seconds for helloworld on my current home PC @1086216857 I expect to cut that to under two seconds soon @1086216893 and also keep in mind you want a real stable language @1086216900 (and implementation) @1086216914 Dylan the language hasn't changed much in nearly a decade, has it? @1086216939 ya i dylan's case it's more the implementation @1086216941 right @1086216979 the original Dylan design is very good. It's just taken a while to implement it. @1086216985 If I had to choose an existing Lisp implementation to base an OS on, I'd choose T. @1086217001 T is so 1984 @1086217041 housel, nah, it extended out to at _least_ 1986, come on! @1086217080 (it really stayed alive as a general-purpose Lisp implementation project until about 1989, and derivations of it were still used by David Kranz until 1997) @1086217102 isn't haskell based on it @1086217108 Er, no. @1086217400 why not write an OS in dylan? starting with GD, switching to FD when that becomes fully usable... i actually kinda like andreas' dylan-on-l4 idea. @1086217461 -calvino.freenode.net- pritlove (~pritlove@pD9E7A7B2.dip.t-dialin.net) joined the channel @1086217467 i was more looking for something to replace perl on unix @1086217475 "T - 1. True. A Lisp compiler by Johnathan A. Rees in 1982 at Yale University. T has static scope and is a near-superset of Scheme. Unix source is available. T is written in itself and compiles to efficient native code. Used as the basis for the Yale Haskell system. Maintained by David Kranz . @1086217475 " @1086217560 buggs: well... one of the larger scheme implementations might do it. dylan cant really replace perl because there are not many libraries. @1086217588 that's an issue of someone writing more libraries, not of the langauge! @1086217627 bhoult: yeah, of course it is. but library availability is something one should think about when using a language... @1086217627 buggs, most likely, GHC was originally written in T, but the bootstrapping process has long since eliminated any traces of it. @1086217647 Dylan has more libraries than Common Lisp does, and CLers get along just fine @1086217671 na libraries are not so important in my case i think @1086217701 but e.g. 3 hours + compile the compiler would matter ;) @1086217724 CL? more libraries than dylan? i wouldnt say that. @1086217767 I didn't say that... @1086217778 the other way round of course.... dylan doesnt have more libraries than CL. at least if it has, i havent seen them. @1086217804 FD has a lot of libraries. but most of them cant be used on linux right now. with CL, its apt-get install. @1086217951 i also know a lot more people using cl than dylan. @1086218131 housel: since when does dylan have more libraries than CL? @1086218146 I haven't seen that; there's a lot of activity in the CL community these days @1086218164 maybe I'm exaggerating slightly @1086218173 the activity actually seemes to be increasing.... @1086218183 indeed @1086218202 my point is that they're on the same order of magnitude @1086218243 housel: FD has a lot of interesting libraries and really could make dylan a lot more everyday-compatible, but its just not usable right now except on windows. @1086218287 true enough, but not too hard to fix @1086218288 housel: yes. still. but not very close. this might be more true when counting functionality. @1086218306 housel: with lisp you can often choose from several implementations. @1086218427 of course, all i say is not counting commercial dylan and lisp code. there is a LOT of commercial CL out there. @1086218435 naturally @1086218451 I'm just counting cliki-worthy stuff @1086218615 -calvino.freenode.net- badon (KC7YCL@skoubye.dsl.xmission.com) joined the channel @1086218758 "but e.g. 3 hours + compile the compiler would matter ;)" @1086218760 why? @1086218771 How often do most people have to build the compiler? @1086218808 3 hours is for a Mindy bootstrap, which should be very rare. @1086218833 And it's under 2 hours on my current x86 machine, anyway (under 2.5 on the Mac) @1086218858 But if you already have *some* version of d2c then it's 15 min to bootstrap a new version @1086218902 which should only be a once or twice a year thing for most people @1086218921 build speed is an issue for people working on the compiler .. but for everyone else? @1086218942 it's faster to build d2c than it is to build a new version of gcc, for example @1086218961 bhoult: i guess normal developers wont care how long the compiler needs for building itself. @1086218979 bhoult: building gd is also a lot easier than building, for example, a cross-gcc. @1086219036 or even a native one if you want to do it right ;) @1086219094 and debugging the generated c code is also ok... just not in Ãthe compiler with huge call chains. @1086219244 Is there a working interactive interpreter yet? @1086219265 there is in FunDev on Win32 @1086219278 I meant for gd. @1086219291 I don't think there's much point @1086219316 I'd rather see a goo (or sbcl) -style interactive compiler @1086219346 bhoult, if hour OS needs 5 hours instead of 2 hours for a full build @1086219347 FunDev is actually the same way... it compiles then downloads into the image currently being debugged @1086219350 *our @1086219351 By 'interactive interpreter' I wasn't forcing it to be a direct interpreter. @1086219364 If you insist, interactive evaluator. @1086219782 http://www.gwydiondylan.org/~housel/fd-dylan-playground.png @1086222900 i've been using the interactive stuff a lot for developing koala @1086223002 fundev still takes too long for a full compile of koala on my home machine (2.3GHz x86). koala's not very big and it takes between 30 seconds and a minute, i'd estimate @1086223187 Which compilation phase takes the longest? @1086223212 i think it was code gen, but not sure @1086223232 i'm using the gui so i haven't seen actual numbers @1086223332 [cgay!~cgay@ita4fw1.itasoftware.com] ACTION heads home @1086224608 there is the fer evuluator which could be extended.... but thats not currently a full interpreter. @1086224648 evaluator even @1086225592 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086227556 -dircproxy- You disconnected @1086229471 -calvino.freenode.net- cgay_ (~cgay@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1086230576 -dircproxy- You connected @1086237851 excellent... my Jam script for duplicating build-system / linker-support works (using real Jam) @1086237867 now to finish my Jam implementation... @1086239935 with this experience you should be abel to do a jam-based build system for d2c in no time :-) @1086239959 sure, why not... @1086240209 though it's much less urgent, because d2c produces cc-*-files.mak and uses gnu make, rather than trying to implement its own build @1086244493 cpage: The first question in the FAQ was added based on your input, thanks a bunch. What do you think? - http://www.zesiger.com/license/ @1086246392 badon: Cool! @1086246410 I'll only charge a modest copyright licensing fee to use my question. :-) @1086246994 -calvino.freenode.net- oudeis (~oudeis@p11811120.orange.net.il) joined the channel @1086247459 -calvino.freenode.net- oudeis (~oudeis@p11811120.orange.net.il) left the channel @1086247559 cpage: haha @1086247570 You asked it in public, I might add :P @1086247582 cpage: anyways, what do you think? @1086247605 cpage: I like the idea of arbitrators publishing their opinions publically @1086247627 It ensures that they get thoroughly ridiculed if they don't do things right. @1086247696 I think I could run a test case through the arbitration panel to see how well it comes out...I just won't tell the arbitrators it's only a test case :) @1086247746 Maybe come up with some kind of sticky situation, where two companies accidentally step on each other, but neither intended any harm. I'd be curious how the arbitrators would decide a case like that. @1086247790 Or, even more interesting, a case where two companies INTENTIONALLY step on each other, heh. @1086247802 Maybe toss in some usurped GPL code too @1086249232 "what do you think?" Could you be more specific? @1086249263 cgay: I just compared the printed DRM with the HTML version and I agree the HTML version is badly formatted. Is that what you mean? @1086249358 One thing that puzzles me about the HTML version: Why is there a set of links at the bottom of each page that point at entries on the same page? @1086249780 cpage: well, I'm looking for additional criticisms, if you have any more. @1086249840 I think what you have now looks fine. The next thing I'd be curious about is the details of the non-profit and its bylaws. @1086249927 yeah @1086249945 We won't know that until a committee gets together. @1086250031 Especially since the license itself is so subject to change, there have to be very clear and enforceable rules about what it takes to ratify a change, and they have to be carefully constructed to prevent a strongly-motivated entity from having undue influence, yet be attractive enough to those who may need changes to buy into using the license. @1086250041 I think it'll basically be just "...to uphold the intent of the license, to preserve the spirit of open source, without stifling the spirit of enterprise." @1086250126 I like to keep things simple. @1086250130 I think the rules of license change have to be very defensive, to prevent someone from intentionally violating that intent. @1086250137 yeah @1086250148 So, maybe publish an intent statement @1086250173 for now, it's basically just using the BSDL and GPL as guides...but that's part of the license, and it's changeable. @1086250196 The committee needs an intent statement that's not changeable. @1086250254 The intent of the GPL and BSDL aren't likely to change in order to satisfy anyone's whim concerning the Zesiger License. @1086250273 So, they may be good guides, and completely independent. @1086250325 Well, I think perhaps more importantly, you have to come up with rules for how the committee is composed -- who can get on and what does it take to get someone off -- and what are the rules operation of the committee? What prevents someone from subverting it? @1086250351 ...rules *of* operation... @1086250360 yeah....those may be merely intellectual issues...not sure. @1086250369 here's what I was thinking @1086250370 I think they're the most important legal issues. @1086250412 Since the license itself can be changed in any way at any time, there have to be very clear, legalistic rules about how and when it can change. @1086250447 The committee would be composed of LOTS of different people, basically as many people as wanted to be involved....but the arbitration panel would be just a select few, who's particular experience and expertise applies to whatever is being arbitrated...I was thinking the disputing parties could choose their arbitrators, like a jury selection. @1086250499 I dunno though, I'm going to hack away as much complexity as possible from this... @1086250526 I think the simplicity and mutability of the license itself simply pushes the complexity into the organization that manages it. @1086250528 I'm not sure if there's ever going to be a need for the intent to change. @1086250542 cpage: agreed, and good point. @1086250549 ...which may be a good thing, but I don't think you can get rid of complexity entirely. @1086250617 cpage: I may be overly optimistic, but I'm hoping that when someone looks to use something that's licensed under the Zesiger License, they step lightly and are polite and respectful...simply because they're basically at the mercy of those who came before them. @1086250634 So, I'm hoping that problems never need to be arbitrated @1086250643 that the parties involved solve it themselves. @1086250705 When you have a committee arbitrarily arbitrating, people can't look for loopholes and for ways to bend the rules, because arbitrators will sniff it out, and reject things like that. @1086250710 I think licensing exists only to protect those who use the license from the unfair. @1086250722 what? @1086250728 If everyone were reasonable, you wouldn't need licenses. @1086250737 hmm, not so. @1086250745 I think a license is pretty much a statement @1086250757 a statement of "this is how I want you to use this" @1086250768 At least, that's what the zesiger license is. @1086250783 And, probably, what all licenses should be @1086250806 But it's much more than that, because it's mutable at any time, and there are no clear, legally-enforceable limits on how it can change. @1086250842 If everyone were reasonable, there would be no licenses, no lawsuits, and no lawyers. ;-) @1086250847 cpage: yeah....it's ironic that that's kind of one of the major points of the license. @1086250865 That it not be legally enforceable...at least not without permission. @1086250880 The law is totally incompetent @1086250890 I don't want those weenies interpreting that license. @1086250925 Especially when you get into the international realm @1086250932 Well, as someone who once sued someone else, I think the law is fine, but juries can be unfair. @1086250947 yep. @1086250961 Here's my beef with law: @1086250977 It's a scapegoat for people who don't want to take responsibility. @1086250996 An arbitration committee is the same as a jury. Without clear limits on their behavior, the committee is subvertable. @1086251001 "the laws says this, I'm forced to rule this way even though everyone knows it's wrong" @1086251016 cpage: well, it's not subvertible @1086251030 At least not as long as I'm alive. @1086251051 And, once I die, someone else will take my place. @1086251054 And @1086251061 I won't use a license that depends on one person. @1086251083 Well...lots of people use the GPL @1086251087 It depends on Stallman @1086251102 But, then again, it's legally enforceable @1086251111 Exactly. The GPL depends on several people. @1086251125 Stallman doesn't arbitrate license disputes. @1086251132 Here's what I was tihnking about: @1086251137 What if the license expired? @1086251137 And Stallman doesn't have the power to change the license. @1086251198 Well, I think a legally enforceable intent statement might be enough. @1086251203 One sentence. @1086251210 Simple. @1086251230 But, I still want one person to take responsibility if things go awry. @1086251259 If the license is abused by the COMMITTEE, the person who ALLOWED the committee to abuse it should be the one in court. @1086251364 The point of the committee is to get a broad set of opinions and minds, to ensure that no one assumes they know what's best without hearing what other peopel think first. @1086251458 Have to disconnect for a bit. @1086251460 Anyways, for now, there's no committee. We'll see what happens when there is one...I just hope they don't demand legalese. @1086251464 cpage: I'm going to bed @1086251471 nite @1086251472 G'night. @1086252058 -calvino.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1086256528 Morning! @1086256681 Evening! @1086257205 Hi Chris! @1086257475 Hi Andreas! @1086257569 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086257591 re. @1086257800 -calvino.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086258001 hi chris! @1086258294 Hi Gabor! @1086260303 Hi Gabor! @1086261229 commit by alexpotanin to examples: Job: icfp @1086261232 File with full machine list. @1086262679 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086263239 -calvino.freenode.net- buggs^z (~noidentd@pD9E9785B.dip.t-dialin.net) joined the channel @1086263508 -calvino.freenode.net- Yurik-- (~yrashk@brig.emict.com.ua) joined the channel @1086265404 -calvino.freenode.net- pritlove_ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086266821 -calvino.freenode.net- brucehoult (~bruce@202-0-61-41.adsl.paradise.net.nz) joined the channel @1086267506 cpage: no, i meant the HTML is better than the printed DRM. i looked at the printed version again and one thing that makes it worse is that the subheaders are outdented. this on top of the fact that they're a bigger font than the major headings makes it hard to read. @1086267534 They're not bigger in my printed version. Maybe we aren't talking about the same thing. @1086267662 You mean, e.g., "Signature:", "Arguments:"? They're definitely heavier than they need to be, but they're a smaller point size than the binding names. @1086267709 At least as I view it, the HTML version has a whackier mix of font sizes and indenting/alignment, making it harder to spot the binding names. @1086267769 they looks like the same size as the binding names to me, and they're bold where's the binding names are plain @1086267779 where's -> whereas @1086267810 i'm looking at page 262 @1086267831 "pair"? @1086267837 yes @1086267851 ah. class names are bold, but still indented from "Superclasses:" etc @1086267859 it's just plain weird. @1086267863 The word "pair" is a larger point size than the word "Signature:". @1086267864 i've seen much better @1086267884 Class names aren't bold in my printed copy of the DRM. @1086267896 Oh, do you mean "[Function]"? @1086267898 page 203 @1086267972 i can't see any significant difference between the sizes of the fonts @1086268012 Well, assuming we're looking at the same version, you'll just have to trust me on the point size. I spent some time working at Adobe on PostScript. :-) @1086268033 But if you don't notice the difference, that's all that matter to you. @1086268061 the main thing i notice is that the bold stands out more. and the outdenting. @1086268077 Yeah, that's whacky that classes are bold but functions aren't. Macro names are also bold (e.g., page 374.) @1086268109 I'm going to go with the theory that it was an oversight or printing error. @1086268136 i actually think the style of the book is quite nice, but when it comes to finding things in it it's not as good @1086268175 Well, there's an index. :-) @1086268192 Mine has about a dozen tabs attached to pages I refer to frequently. @1086268252 If there were going to be a second edition, I'd vote for black markers on the page edges (whatever they're called), to make it easier to find sections. @1086268300 yes @1086268311 or as we say these days: +1 @1086268324 inc!(x) @1086273014 -calvino.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1086273235 -calvino.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1086276338 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086276681 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086278883 -dircproxy- You disconnected @1086278896 -calvino.freenode.net- Yurik- (~yrashk@brig.emict.com.ua) joined the channel @1086281988 -dircproxy- You connected @1086282022 re @1086282035 hi peter @1086282496 -calvino.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1086287927 -calvino.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1086289888 argh. i think my build is going to die on Bootstrap.1 this time @1086289934 nope, just a GC warning but continued to Bootstrap.2 @1086290226 died in Bootstrap.2 trying to reference dylan_wrapper_check. i had a modified version of mmdw.a lying around so trying again with checked in version. @1086290275 -calvino.freenode.net- Yurik (~yrashk@brig.emict.com.ua) joined the channel @1086290740 Building dylan... /cgay/dylan/gwydion/fundev/build-out/Bootstrap.2/lib/runtime/x86-linux-collector.o: In function `dylan_check': @1086290741 collect2: ld returned 1 exit status @1086290840 hmm. the only local mods i have are in Sources/lib/run-time/pentium-linux/x86-linux-exceptions.c, to ignore SIGPIPE for koala @1086291801 [cgay!~cgay@ita4fw1.itasoftware.com] ACTION is so confused @1086291996 it looks like dylan_wrapper_check should be defined in mmdw.a, and it looks like it is, but it's not being found @1086294443 hmmm @1086297210 -calvino.freenode.net- pritlove_ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086299800 commit by housel to fundev: Job: minor @1086299800 Fix an annoying grammar error. @1086300090 of course "grammatical error" is what I meant :-) @1086300292 -calvino.freenode.net- rourea (~chatzilla@ACC10EB4.ipt.aol.com) joined the channel @1086301666 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086301697 is there anyone here who can explain the "monotonic" class precedence list in Dylan to a mere mortal such as myself? @1086301703 I try to read the paper and it doesn't make much sense to me. @1086302454 jemfinch: looks like the guru's are sleepin' or workin' @1086302495 that appears to be the case. @1086302500 oh well. I'll give the paper another crack tonight. @1086302517 I'm designing another dialect of Lisp, and I'm debating the single/multiple inheritance issue. @1086303113 re @1086303121 howdy, prom. @1086303306 *sigh* the MPS would be just great if larger parts of the documentation would be public. @1086303406 prom: I assume you know about http://www.gwydiondylan.org/~housel/req.dylan.txt @1086303445 housel: oh thanks. i didnt until now. @1086303545 housel: but its still just a part... a lot of the references in the documetation and comments go to nirvana. @1086303797 tinderbox is once again out of control with multiple jobs bogging down the machine and filling the disk with failure messages @1086303808 we're down to under a GB of free disk again @1086303848 that will never do for contest time... best to shut off tinderbox entirely I think @1086303894 do you know how? @1086303987 no, not exactly @1086304023 load average 16 @1086304097 ps axl | grep tinder | awk '{print $2}' | xargs kill @1086304105 or something like that should stop it for now @1086304125 yeah @1086304184 *sigh* this lsh is just plain unusable. its somehow messing up my terminal output. @1086304220 lsh doesn't send SIGWINCH, for one thing @1086304248 yeah. it also doesnt update utmp. @1086304308 and why are there so many running shells there? some users have over 20 idle shells. @1086304398 running? not zombies? @1086304402 *sigh* too bad the new box isnt there yet. @1086304414 what's the deal with a new box? @1086304416 housel: yepp. @1086304429 bhoult: it comes with a fresh debian installation. @1086304447 bhoult: just look at netstat -lnp @1086304450 what is it? where? why? @1086304454 bhoult: then at inetd.conf @1086304489 bhoult: andreas doesnt want to keep cantor. @1086304538 do we have a better alternative? @1086304540 bhoult: so well have to put GD somewhere else... with someone caring about the installation. @1086304564 bhoult: yes, the CCC sponsored some boxes for another project. we can give out account on one of them. @1086304569 accounts even. @1086304630 bhoult: it also has more storage nearby at a second box (with a 1.2TByte raw raid array). i guess itll be much more pleasant. @1086304687 also, there is someone caring about the setup there. which would be mostly me, but also a friend of mine... i think his nick on freenode was silenius. @1086304791 so it'llbe a shared box? @1086304796 there is only one problem: the box we can give out accounts on is a sun machine. but GD did run without problems. @1086304812 do we get root access? @1086304839 bhoult: only between GD and the other project. i guess all people have allready been in this channel several times. @1086304872 bhoult: not all users. but some. @1086304883 right, as at present @1086304920 we have 5 sudoers on cantor at the moment @1086304944 bhoult: but we are trying to limit this as much as possible. but again, there is someone caring about the setup there so there wont be much to do. @1086304984 and there will be a clean inetd.conf... and no lpd ;) @1086305003 :-) @1086305013 we do need to be able to install various bugtracking, mailing list, repository etc tools @1086305028 bhoult: ill work with andreas to move that. @1086305033 'k @1086305100 we also still have quite some time. ill get the machine soon and cantor will still be there for the summer. @1086305108 I don't see any particular need to do d2c builds on that machine, btw @1086305139 well not unless it's screamingly fast .. but it's a Sun... @1086305205 bhoult: it has 2x300 MHz so its not really fast. but it has 1.7G ram. @1086305262 1.7 GHz and 300 MB would be better :-) @1086305294 i like the RAM more. @1086305324 well, I've got 1.5 GB on this here Mac at work (2.5 GB in a week or so). @1086305333 but that's because it's needed @1086305367 yay! peter fixed the "cannot be open" bug :) @1086306060 prom: uhm, wasn't the plan[tm] to install freebsd on the sun? ;) @1086306090 hannes: if freebsd on ultrasparc is actually and practically usable, yes. @1086306225 [chandler!~chandler@chandler.registered] ACTION has 2x2GHz 3.5GB :P @1086306301 prom: was it an enterprise 450 or 4500? @1086306310 450 @1086306341 chandler, yow, what do you do that needs that sort of computing power? @1086306434 prom: it is listed as 'fully supported' on http://www.freebsd.org/releases/5.2.1R/hardware-sparc64.html @1086306620 Riastradh: er, I needed something better than my PowerBook, which swapped *horribly* when I was running my concept-learning software @1086306747 other than that, "build SBCL in 15 minutes" :-) @1086306749 hannes: yeah. but it wasnt when i used the same machine earlier. @1086307145 chandler: does having dual CPUs help when building SBCL? @1086307205 housel: no. it doesnt. @1086307224 housel: sbcl has user-level-threading. @1086307434 -calvino.freenode.net- pritlove_ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086308710 -calvino.freenode.net- doublec (~doublec@coretech.co.nz) joined the channel @1086308716 -calvino.freenode.net- rourea (~chatzilla@ACC46B43.ipt.aol.com) joined the channel @1086310001 hi Chris! @1086310013 hi bruce! @1086310026 expect some email shortly. Housel too :-) @1086310037 ok @1086310044 arrangements are proceeding @1086310060 but we shoul maintain some modicum of operational security @1086310063 regarding icfp? @1086310077 at the very least, agents of #scheme are listening ;-) @1086310093 heh @1086310109 *lol* @1086310216 anyone around who can explain the monotonic class precedence list in Dylan in terms I can understand? @1086310247 hmm @1086310267 that depends on what you can understand :-) @1086310276 and on us too... :-) @1086310318 bhoult, did you get my email on what I think the subject matter might be? @1086310325 housel: no space left on device on MOnday wiki @1086310333 yes, and I agree @1086310340 bhoult: you can try :) @1086310349 bhoult: sf.net's problem, nothing I can do I suspect @1086310439 you've read http://portal.acm.org/citation.cfm?doid=236337.236343 ?? @1086310460 I've tried to :) @1086310514 http://www.webcom.com/haahr/dylan/linearization-oopsla96.html @1086310543 Do you want to know more generally what a class precedence list is, or are you asking specifically about what makes that one different from others? @1086310567 I know what a cpl is. I'm curious what makes one "monotonic" and why that's good. @1086310626 [bhoult!~Bruce_Hou@metnet.met.co.nz] ACTION will have to read the literature again in order to explain it :-) @1086310688 oh, and maybe someone can explain to me what's so important about sealed classes. @1086310722 Sealed classes are part of a general sealing facility, which essentially puts limits on runtime dynamism to enable compile-time optimizations. @1086310744 If you seal a class, you can't add subclasses after the library is compiled. @1086310761 with the CLOS linearization, switching the order of two superclasses in the declaration can result in different methods being called @1086310763 so is it there mostly to make separate compilation easier? @1086310806 that's not the case with Dylan's linearization? @1086310808 It's to make optimizations at compile time possible. @1086310809 with the DYlan (or C3) linearization, the ordering of superclasses in the declaration doesn't matter @1086310834 is that good? @1086310837 Whether or not you have separate compilation, without sealing some things couldn't be optimized at compile time. @1086310856 the superrclass linearization is also important in making multimethod dispatch fast @1086310861 what kinds of things? @1086310866 bhoult: why? @1086311034 I *did* understand it at one point, but am hazy on the details right now @1086311048 sorry @1086311054 hmm. @1086311066 other things to worry about ... such as this weekend's ICFP contest :-) @1086311073 that paper *does* explain it well @1086311083 has the problem been released yet? @1086311088 better than I could, cerainly at the moment @1086311100 the problem is released in 15 hours from now @1086311111 4am here in NZ @1086311121 [prom!~prom@217.13.206.33] ACTION also found it difficult to keep the details of class linearizations in mind. @1086311122 noon here :) @1086311130 At any given call site, if the compiler knows the available methods of the function, the class hierarchy of its parameter types, and if it knows the types of the arguments with enough precision, it can reduce or eliminate dispatching at runtime, and even inline. @1086311140 you're east coast USA then @1086311170 cpage: but I don't see how that relies on linearization. Presumably, at compilation time, the compiler can know all the available methods of a function. @1086311174 bhoult: yup, EDT. @1086311185 I thought you were asking me about sealing. @1086311212 Without sealing, subclasses and methods can be added at runtime, introduce more runtime dispatching. @1086311218 cpage: I am. @1086311231 cpage: oh, you can add methods at runtime with Dylan? @1086311243 I don't recall whether the actual method to call depends on the linearization, but the next-method chain does @1086311255 (I apologize for not knowing Dylan myself, I'm here to ask questions about the justification it uses for certain design decisions while I'm designing my own language) @1086311259 You can create generic functions, add/remove methods, create new subclasses and types at runtime. @1086311273 jemfinch: yep. you can also create classes at runtime... @1086311280 oh, ok. @1086311305 can you redefine methods of unsealed classes at runtime? @1086311327 jemfinch: methods do not belong to classes. dylan uses generic functions. @1086311369 prom: so you can redefine methods regardless of the classes they specialize on's sealed status or not? @1086311418 Standard Dylan doesn't require an eval or compiler to be available at runtime, so there's currently no standard way to redefine the body of a method, if that's what you mean, but presumably if you could do that, but you kept the signature the same, it wouldn't affect some optimizations (although it would conflict with inlining, at least.) @1086311487 You can add methods that are specialized on sealed classes, since adding methods doesn't alter the type hierarchy. @1086311499 jemfinch: no. i thought you where implying that methods belong to classes, which they dont. wether you can add/remove methods to the generic function at runtime depends on the sealing of the GF in question. it doesnt matter wether the types of the method are sealed classes or some other type. @1086311522 (the types of the method => the types the method specializes on) @1086311537 You could also replace a method in a GF at runtime, though in Standard Dylan the methods must all be already compiled when the program is constructed. @1086311544 it wouldn't require eval or a compiler; you would just register a different method with the same specialization. @1086311750 cpage: the methods can be closures, dont' forget @1086311752 jemfinch: What other dynamic languages are you familiar with? @1086311787 and when you add a method to a GF at runtime, it replaces any prevous method with the same specializers @1086311917 bhoult: Right, though that doesn't use compilation. When the closure function is compiled, it refers to placeholders for each closed-over binding. @1086312032 [buggs!~noidentd@pD9E9785B.dip.t-dialin.net] ACTION reads GF as girl friend @1086312039 heh @1086312078 reminds me of andreas' favorite generic function example: "Is sex a method of the male or the female?" @1086312106 In C++, it's a method of a friend of the male and the female. @1086312148 I think that right there points out how single-dispatch is a silly limitation. :-) @1086312151 or a template @1086312244 I think the "Why Monotonicity?" section explains the motivation well. @1086313136 Here's the definition of monotonic: @1086313136 "A monotonic linearization is one in which every property inherited by a class is inherited or defined by one of its direct superclasses; that is, an inherited property cannot skip over all of the direct superclasses. This means that the linearization of a class must be an extension without reordering of the linearizations of all of its superclasses." @1086313397 I think what this means is: If the linearization of a class is a list, the linearization of each of its subclasses must have the head of that list as the last node in their linearizations. @1086313519 Without that limitation, you could create "spaghetti class hierarchies," which would probably be difficult for programmers to use correctly, not to mention less efficient to dispatch on (I guess.) @1086314121 -dircproxy- You disconnected @1086314868 cpage: I'm very familiar with Python, decently familiar with Scheme, CL, and I've got some idea of how Ruby works. @1086316130 -calvino.freenode.net- pritlove__ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086317745 -dircproxy- You connected @1086317790 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086326839 -calvino.freenode.net- rourea (~chatzilla@ACC400E8.ipt.aol.com) joined the channel @1086331304 -calvino.freenode.net- brucehoult (~bruce@202.0.59.96) joined the channel @1086332115 I hope that Dylan makes it, but it needs a more tasteless image, and a @1086332115 new name would be exactly the right thing. It is very important that @1086332115 people think that they are programming in some kind of "C". @1086332115 Dylan should not be viewed as a sophisticated blend of CLOS, @1086332117 Smalltalk, Pascal, and Scheme, but merely as the next version of C++. @1086332117 Finally, the right thing is to have MTV's Beavis (sp?) and Butthead on @1086332118 the package. Butthead will say "Super C++ is cool," while Beavis will @1086332120 say "Yeah... heh, heh, heh, but ordinary C++ *sucks*." @1086332131 . @1086332136 that's all from here - http://www.interesting-people.org/archives/interesting-people/199312/msg00025.html @1086332140 back in 1993 @1086332154 Embarrassing, heh. @1086332495 well, everything he says is pretty much on the money, if you look at the hisory post '93 @1086332517 languages that look a bit like C do well, while those that look different (and Dylan is too different) do poorly @1086332543 re. @1086332549 you *must* use { } for blocks, and () around conditions, and put the type before the variable name @1086332552 Moin! @1086332554 morning @1086332588 never mind, though. We'll *force* them to take notice of us! @1086332631 [gabor!root@cantor.gwydiondylan.org] ACTION drains two cups of coffee to accelerate his H6C2O-metabolism @1086332701 and that was only *Thursday* night! @1086332827 that makes friday night less of a problem :-) @1086332886 brucehoult: do you have your IRC time-teller running? @1086332922 it's always running! @1086332930 but it's still on last year's times :-) @1086332948 did you get the emails today? @1086332959 Alex & I have been busy :-) @1086332977 [gabor!root@cantor.gwydiondylan.org] ACTION is catching up with email @1086333509 oh! @1086333517 I didn't see it @1086334209 brucehoult: personally, I only want the best, and I don't care if dylan is particularly different from C. I couldn't care less about marketing issues. @1086334233 me either @1086334250 But, Dylan seems to get a lot of attention for things that are supposed to "replace c++" @1086334289 sorry, that didn't parse for me @1086334291 My concern is that Dylan can work with C/C++, aside from that, not much matters outside the language itself @1086334306 brucehoult: google "C++ replace OR replacement" @1086334327 People mention dylan a lot when they talk about that. @1086334366 there are few other languages that can directly replace C++ @1086334372 yeah @1086334380 dylan seems to be the only serious contender @1086334380 actually, current Dylan implementations can't *quite* replace C++ @1086334385 oh? @1086334394 anything you can do in C you can do better in Dylan @1086334396 where is dylan deficient? @1086334419 C++'s virtual functions are crippled, but that makes them faster than Dylan's GFs currently are @1086334454 we actually now know how to make Dylan's GFs as fast, but we haven't implemented it yet @1086334456 this page isn't exactly what I thought it would be - http://www.gwydiondylan.org/limitations.phtml @1086334474 how many dylan programmers are there out there? @1086334487 With one commercial compiler, there has to be a fair bit... @1086334590 also, Gwydion doesn't have a way to match some of what you can do in C++ with templates (but FunDev does) @1086334627 oh, templates are one of the nicer things about C++ @1086334641 modulo syntax @1086334642 I wonder why fundev is windows only.... @1086334647 on the flip side, the problem with C++ is that virtual functions and templates each have strengths, but don't play well together. Dylan's GFs combine the power of both @1086334657 GF's? @1086334665 Generic Functions @1086334668 k @1086334679 ah, I like the sound of that @1086334684 just the name @1086334689 Generic Functions @1086334695 .. they're like virtual functions, except they look at the dynamic type of *all* the arguments, not just the first one (the one before the . in C++) @1086334714 yeah, that always pissed me off in C++ @1086334731 .. they're like template functions, except they use the dynamic type of the arguments to choose the function to call, not just the statically declared type @1086334733 C++ is biggest kludge job I've ever seen...It's got linux written all over it. @1086334827 installing gwydion dylan now.... @1086334845 what are you running on? @1086334849 freebsd @1086334851 4.9 @1086334856 cpu? @1086334862 celeron @1086334868 x86 @1086334870 of course @1086334879 of course? @1086334885 MHz? RAM? @1086334889 celerons are all x86 ;) @1086334900 1Ghz 128Mb RAM @1086334900 well, yes, but frebsds aren't @1086334903 yeah @1086334917 that'll do. just @1086334921 I like stuff that runs on everything @1086334933 128 MB is a little skinny on the RAM @1086334937 I know @1086334944 I'd like to have a gig in there @1086334949 but ram is expensive now for some reason @1086334958 d2c peaks at using *about* that much when building itself. Expect everything else to get swapped out @1086334966 I need to figure out how to get this stuf to build windows exe's @1086334991 brucehoult: my freebsd machine is dedicated to this stuff, so that's fine. @1086334993 it shouldn't thrash against itself in 128 MB though @1086335019 our resident FreeBSD expert is housel, btw @1086335030 yeah, he seems to be the resident expert period @1086335042 he's answered more of my questions than anyone else @1086335049 well, he's more resident than some :-) @1086335053 and his email is on the FreeBSD dylan port :) @1086335101 Anyways, I sure hope Dylan is everything I hope it is. @1086335123 I'm going to try to use it with Ruby as well @1086335139 should be funky @1086335163 Any idea how many Dylan programmers there are? @1086335174 there's some crossover there. Ruby is I think the nicest of the scripting languages, though none of them are really *designed* @1086335184 I notice there's only 17 people in here. @1086335189 brucehoult: designed? @1086335197 As opposed to kludged together over time? @1086335206 we get a few hundred downloads when we have a new release, i think @1086335210 right @1086335214 brucehoult: ah, k. @1086335244 I'll have four Dylan programmers in my house tomorrow @1086335267 brucehoult: well, the think I like about ruby is the main guy is dedicated to perfecting it. He's going to break backwards compatibility soon in order to reach that goal, which is noble. @1086335290 brucehoult: heh, so if your house collapses, like half the dylan community will die off. @1086335312 hey, I had the German half staying with me in February! @1086335328 (Gabor and Andreas) @1086335347 brucehoult: so, are you running some kind of psychedelic Dylan orgy over there? @1086335356 programming contest @1086335361 ah @1086335362 cool @1086335367 www.icfpcontest.org @1086335375 already read it @1086335383 dylan performs well, apparently @1086335398 folks in here are claiming victory this year @1086335399 already @1086335410 pretty cocky if you ask me @1086335419 but, that's partly what keeps me here @1086335430 we dont' seriously expect to win @1086335435 nobody wants to work with a humble language :) @1086335442 but we *have* been in the top three two of the last three years @1086335442 brucehoult: oh? @1086335487 we won't necessarily manage that this year, of course, but there's no reason we can't be close, and 1st has to happen sometime @1086335499 yeah @1086335508 what will happen when dylan takes first? @1086335510 as the judge's said last year "if the selection of racetracks had ben diffrerent, we might well have won" @1086335515 A dawning of a new age? @1086335541 uh-oh boehm options....I have no idea what boehm is... @1086335544 what they meant, was if they hadn't had Track #9, which we sucked at. We actually beat the winner on 4 of the 9 tracks @1086335562 what will happen is we'll get another jolly good slashdotting :-) @1086335568 yeah @1086335576 actually, that's how I found dylan initially @1086335582 .. and have $1000 to pay for our web server expenses... @1086335592 an old slashdot article via google @1086335604 I think it's our best marketing tool at the moment @1086335624 Is there any commercial backing for dylan, besides fundev et al? @1086335634 I know apple was there for a while... @1086335641 an obscure language does well in a major programming contest, year after year? Must be something in it... @1086335654 It looks pretty lone ranger now tho @1086335675 none right now. functional-objects is hardly a corporation. It's been a hobby, alas. @1086335685 Is Fun-O yours? @1086335690 nope @1086335699 who's? @1086335712 It belongs to people who worked on that compiler when it was at Harlequin @1086335722 are they in here? @1086335730 I don't know the exact list. @1086335731 some @1086335735 k @1086335736 Chris Page at one time @1086335739 Carl Gay @1086335744 ah, yeah, those guys @1086335755 Jonathon Bachrach (now at MIT) @1086335761 cpage had some nice things to say about my license @1086335767 Gail Zacharias @1086335774 http://www.zesiger.com/license/ @1086335780 Tucker Withington @1086335797 It'd tickle me pink if a serious project took up that philosophy @1086335837 Matsumoto is considering changing the license for Ruby to be compatible with commercial interests, but so far, no good licensing ideas have been put forth. @1086335855 I mentioned the Zesiger License on the Ruby mailing list at just the right moment @1086335864 Hopefully, something will come of it. @1086335884 The first question in the FAQ is cpage's @1086335951 A license like that is what could give the edge to a small project...if it gets picked up by a company that thinks they can make money on it. @1086336749 compiling GD @1086336874 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086336912 -calvino.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1086337449 Cannot link with the Boehm-Weiser conservative garbage collector library. @1086337449 Please download the library from http://www.hpl.hp.com/personal/Hans_Boehm/gc/ @1086337449 or from your operating system distribution. @1086337449 ===> Script "configure" failed unexpectedly. @1086337451 Please report the problem to housel@acm.org [maintainer] and attach the @1086337451 "/usr/ports/lang/dylan/work/gwydion-dylan-2.3.11/config.log" including the @1086337452 output of the failure of your make command. Also, it might be a good idea to @1086337454 provide an overview of all packages installed on your system (e.g. an `ls @1086337456 /var/db/pkg`). @1086337458 *** Error code 1 @1086337460 that sucks @1086337465 -calvino.freenode.net- brucehoult (~bruce@202.0.59.243) joined the channel @1086337468 oh well, bedtime, I'll harrass housel tomorrow @1086344097 Rummaging through the Apple Dylan docs, I came across the Customer Q&A, which contains a list of "Top N common programmer mistakes." One of the items is "Choosing C++ when you wanted an OO language.[stoney]" @1086349654 -calvino.freenode.net- buggs^z (~noidentd@pD9E97142.dip.t-dialin.net) joined the channel @1086349686 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086351144 -calvino.freenode.net- bhoult_ (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086354292 hi @1086357614 -calvino.freenode.net- nodie (~niner@cliente-217217135214.uBRmaa01.supercable.es) joined the channel @1086358026 -calvino.freenode.net- nodie (~niner@cliente-217217135214.uBRmaa01.supercable.es) left the channel @1086359714 -calvino.freenode.net- jemfinch (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086361595 -calvino.freenode.net- oudeis (~irc@bzq-125-124.red.bezeqint.net) joined the channel @1086362776 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086363588 -calvino.freenode.net- brucehoult (~bruce@202-0-60-148.adsl.paradise.net.nz) joined the channel @1086363844 hello @1086364012 hi @1086364039 are you going to participate in icfp contest? @1086364122 that's the plan, yes @1086364153 [brucehoult!~bruce@202-0-60-148.adsl.paradise.net.nz] ACTION was just IM'd by Andrew Hudson (last year's winner), wishing luck @1086364204 oudeis! @1086364208 that's Greek for no one. @1086364214 yes it is @1086364225 :) @1086364249 are classes first-class in dylan? @1086364256 yes @1086364286 I may not have time to answer too many more questions shortly :-) @1086364296 afaiu you don't need to register for icfp, you just submit your entry by email when time comes, is this correct? @1086364307 brucehoult: well, can you quickly summarize what you can do with first-class classes? @1086364312 correct @1086364312 oudeis: yup. @1086364320 at least that's how it's always been before. @1086364338 assign them to variables, pass as arguments, then instantiate using the variable to identify the class @1086364402 hmm. @1086364405 I need to learn Dylan. @1086364499 jemfinch: have a look at http://www.gwydiondylan.org/drm/drm_39.htm#HEADING39-0 @1086364669 -dircproxy- You disconnected @1086365397 -calvino.freenode.net- brucehoult (~bruce@202-0-60-148.adsl.paradise.net.nz) joined the channel @1086366073 [andreas!andreas@cantor.gwydiondylan.org] ACTION is ready for the contest! @1086366084 cool! @1086366097 have you read the task? @1086366112 Just started... looks interesting! @1086366476 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086366477 hey chan @1086366503 hey prom @1086366725 -calvino.freenode.net- hannes_ (~hannes@pD9E7ABBA.dip.t-dialin.net) joined the channel @1086366731 -calvino.freenode.net- hannes_ (~hannes@pD9E7ABBA.dip.t-dialin.net) left the channel @1086367174 interesting icfp task. reminds me of simant, from the people who made simcity. @1086367444 -dircproxy- You connected @1086368122 -calvino.freenode.net- gabor_ (~ggreif@p508C687D.dip.t-dialin.net) joined the channel @1086368132 re. @1086368621 -calvino.freenode.net- sprout (~Snak@drop242.drizzle.com) joined the channel @1086368702 [sprout!~Snak@drop242.drizzle.com] ACTION bows to jeanniecool @1086368810 -calvino.freenode.net- pritlove_ (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086370517 -calvino.freenode.net- pritlove__ (~pritlove@pD9E7ABBA.dip.t-dialin.net) joined the channel @1086370694 commit by andreas to examples: job: icfp @1086370694 First code. @1086370697 commit by andreas to examples: job: icfp @1086370699 code @1086370705 commit by andreas to examples: job: icfp @1086370707 More code. @1086370950 -calvino.freenode.net- gabor_1 (root@cantor.gwydiondylan.org) joined the channel @1086371105 i.e. Forming, Gathering, Attacking (Dividing, Destroying), Exploring @1086371150 -calvino.freenode.net- gabor_1 (root@cantor.gwydiondylan.org) left the channel @1086371153 that was mysterious, gabor_1 @1086371304 he was typing in the wrong window @1086371755 -calvino.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1086371929 -calvino.freenode.net- jemfinch (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086372105 ah @1086372560 looks like he's solving the ant problem @1086372584 [chandler!~chandler@chandler.registered] ACTION looked at it for about a 1/2 hour and then gave up @1086372733 commit by andreas to examples: job: icfp @1086372733 code... @1086373277 chandler: that's about what I did :) @1086373354 commit by andreas to examples: job: icfp @1086373354 code @1086375974 -calvino.freenode.net- michcio (~michcio@uf186.internetdsl.tpnet.pl) joined the channel @1086376098 commit by andreas to examples: job: icfp @1086376098 code... @1086379338 commit by gabor to examples: job: icfp @1086379338 initial checkin @1086379470 commit by gabor to examples: job: icfp @1086379470 fix line endings @1086381139 commit by andreas to examples: job: icfp @1086381139 code... @1086381160 -calvino.freenode.net- brucehoult (~bruce@202-0-60-148.adsl.paradise.net.nz) left the channel @1086381235 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) left the channel @1086381961 commit by onesadcookie to : Directory /var/lib/cvs//examples/ICFP2004/Visualizer added to the repository @1086382025 commit by andreas to examples: job: icfp @1086382025 code @1086382048 commit by onesadcookie to : job: icfp @1086382048 beginnings of visualizer (it's just a copy of glu-test from @1086382049 libopengl-dylan/examples currently) @1086382195 -calvino.freenode.net- pritlove__ (~pritlove@pD9E7BBCE.dip.t-dialin.net) joined the channel @1086382924 commit by gabor to examples: job: icfp @1086382924 initial checkin. just some brainstorming. @1086382982 commit by bruce to examples: Job: icfp @1086382982 implement random numbers @1086383270 commit by onesadcookie to : job: icfp @1086383270 draw a hex @1086385066 commit by andreas to examples: job: icfp @1086385067 less syntax errors @1086385073 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1086385076 re @1086385153 hi chris @1086385167 While reading the Language Rational FAQ, I came across a question asking why Dylan might not signal an error if you modify an immutable object. The answer, of course, is that it might be prohibitively expensive to guarantee that in all implementations. @1086385202 Does d2c or MPS support placing objects in read-only memory on systems that support it? @1086385234 cpage: nope. it also doesnt support stacks protected using mprotected pages around the stack. @1086385257 I think d2c can place some compile-time objects (such as strings) in .text @1086385312 housel: yes. but is that really mapped read-only? @1086385321 yes @1086385330 kay. then thats an exception. @1086385370 Is there a signal handler installed by d2c to turn a write attempt into an in-language exception? @1086385378 as far as I know the MPS segfault handler checks to see if it is one of the segments it knows about, and if it isn't it lets the outer handler deal with it @1086385390 cpage: no @1086385418 the only tricky thing d2c does with memory protection is to protect the last page of its argument stack @1086385462 processors need to get smarter about memory protection requirements for advanced languages @1086385475 rhashem: Do they? @1086385489 it seems to me that there are easy things they could do that they don't @1086385511 the NX bit is a step forward, for example @1086385520 What is the NX bit? @1086385533 no execute? @1086385539 its a new bit in the Itanium and Opteron page tables that signal non-executable pages @1086385551 If there's support for access control for pages, and the runtime can allocate objects in the appropriate pages, isn't that sufficient? @1086385551 for stacks and whatnot @1086385567 page-level isn't granular enough @1086385580 necessarily that is @1086385602 I understand that more granularity makes it easier on the runtime implementor, but is it a big advantage? @1086385612 well, consider the AS400 hardware @1086385616 which eliminates the use of stack-allocated trampoline code as an implementation technique @1086385640 s/stack-allocated/hardware stack-allocated ? @1086385645 -calvino.freenode.net- michcio (~michcio@uf186.internetdsl.tpnet.pl) left the channel @1086385668 they've got a lot of support in there for makng OOP cheaper for userspace @1086385862 I thought AS400 was running in emulation these days @1086385957 I know they have 64-bit PPC based AS400 processors @1086385962 the PowerPC AS line @1086386023 but its got a lot of nifty things, like a "this is a pointer" bit in words, hardware for smp primitives, *really* cheap branch misprediction @1086386071 commit by onesadcookie to : job: icfp @1086386071 draw yellow & pink hexagons @1086386130 commit by gabor to examples: job: icfp @1086386130 some ideas how to expand formations @1086386323 I thought the low two bits were the "this is a pointer" bits. :-) @1086386417 but hardware doesn't enforce that @1086386462 you could even have a "pointer to constant" bit @1086386871 commit by andreas to examples: job: icfp @1086386871 actually compiles. @1086387748 commit by onesadcookie to : job: icfp @1086387748 draw ants as triangles @1086388443 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1086389003 commit by andreas to examples: job: icfp @1086389003 parsing/unparsing ant assembler works now. @1086389550 commit by onesadcookie to : job: icfp @1086389550 let ants-visualizer use code from ants @1086389601 commit by andreas to examples: Directory /var/lib/cvs/examples/ICFP2004/worlds added to the repository @1086389800 commit by andreas to examples: Directory /var/lib/cvs/examples/ICFP2004/ant-brains added to the repository @1086389831 commit by andreas to examples: job: icfp @1086389831 worlds, ants @1086390204 commit by onesadcookie to : job: icfp @1086390204 use from ants @1086390354 commit by andreas to examples: job: icfp @1086390354 foo @1086390369 commit by alexpotanin to examples: job: icfp @1086390369 Ant sample. @1086390600 commit by alexpotanin to examples: job: icfp @1086390604 fjfkdsf @1086390835 -calvino.freenode.net- GreyLensman (~ray___@69-167-212-58.atlsfl.adelphia.net) joined the channel @1086391733 commit by bruce to examples: Job: icfp @1086391733 some pretty graph paper @1086391816 Mmmm...graph paper. @1086391838 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION wishes he were there @1086391917 Is the Dylan team writing a visual ant world simulator? @1086392013 I could tell you, but then... @1086392027 Don't worry, our team doesn't have the resources to do that. @1086392042 So we can't steal your idea. @1086392054 how many people on your team? @1086392060 And since I asked, I must have already thought about it, so even if you told me I'd have already stolen it... @1086392067 3 or 4, I'm not quite sure. @1086392069 :-) @1086392070 Riastradh could tell you, but then... @1086392100 Officially, 3. But one person who hadn't signed up jumped in today and started discussing. @1086392156 commit by alexpotanin to examples: Job: icfp @1086392158 Started implementing world output in dump format. @1086392236 (by 'we don't have the resources,' I meant 'we don't have the kind of GUI library necessary'; we'd need to write our own GUI library & OpenGL bindings, which isn't going to happen) @1086392261 commit by alexpotanin to examples: Job: icfp @1086392261 Tiny world. @1086392544 commit by andreas to examples: job: icfp @1086392544 foo @1086392551 commit by alexpotanin to examples: Job: icfp @1086392551 Rocks. @1086392560 Such descriptive commit messages. @1086392602 quite @1086392850 commit by bruce to examples: Job: icfp @1086392850 printer took 0 linewidth a little *too* literally @1086392851 halved the size of the grid @1086392870 How many people are on your team? @1086393078 currently 4 awake&active; I'm lurking while at work @1086393097 plus 1 more asleep @1086393395 commit by onesadcookie to : job: icfp @1086393395 display world in correct colors @1086393396 cache in display list for fast rendering and horribly poor startup times @1086393683 commit by andreas to examples: job: icfp @1086393683 foo @1086393702 -calvino.freenode.net- cgay_ (~cgay@h00a0c5e1f619.ne.client2.attbi.com) joined the channel @1086394044 commit by onesadcookie to : job: icfp @1086394045 draws ants @1086395529 commit by bruce to src: Bug: 6984 @1086395529 Back out DHC error mods for now @1086396331 commit by andreas to examples: job: icfp @1086396331 foo @1086397126 commit by andreas to examples: job: icfp @1086397126 Actually run the simulation in the visualizer. @1086397758 commit by alexpotanin to examples: Job: icfp @1086397758 Dumping. @1086398184 wow, you guys are fast. @1086398203 +1. Certainly seems like it. @1086398552 commit by alexpotanin to examples: Job: icfp @1086398552 Fixed bug in loading. @1086399587 -dircproxy- You disconnected @1086399896 -calvino.freenode.net- alexpotanin_ (~chatzilla@202.0.59.116) joined the channel @1086400077 commit by alexpotanin to examples: Job: icfp @1086400077 Dumping works. Diff's are same! @1086400087 -calvino.freenode.net- pritlove (~pritlove@pD9E7BBCE.dip.t-dialin.net) joined the channel @1086400442 -calvino.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1086401082 -dircproxy- You connected @1086401878 commit by gabor to examples: Directory /var/lib/cvs/examples/ICFP2004/brain-compiler added to the repository @1086401971 commit by gabor to examples: job: icfp @1086401971 example brain for assembler @1086402220 commit by onesadcookie to libraries: Bug: 6994 @1086402221 missing GLUT_STROKE_ROMAN and GLUT_STROKE_MONO_ROMAN added @1086402223 temporary change to build on Mac OS X rather than other platforms until @1086402225 someone figures out how to do this right :) @1086403284 commit by onesadcookie to : job: icfp @1086403284 better (ie not misleading) visualization of food counts @1086403455 commit by gabor to examples: job: icfp @1086403455 updated @1086403897 -calvino.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1086403949 heh. I see the Dylan Hackers juggernaut is working like well-oiled machine :) @1086403980 heh @1086404210 well good luck. @1086404220 -calvino.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) left the channel @1086404321 -calvino.freenode.net- larsr (~lars@ACC3D3C3.ipt.aol.com) joined the channel @1086404557 commit by gabor to examples: job: icfp @1086404558 initial checkin, @1086404560 pushes thunks @1086404638 commit by gabor to examples: job: icfp @1086404638 minor updates @1086405149 commit by gabor to examples: job: icfp @1086405149 initial checkin @1086405270 commit by onesadcookie to : job: icfp @1086405272 make more GL calls to appease the Mac OS X display list compiler @1086405274 improves launch times by a significant factor! @1086406067 -calvino.freenode.net- alexpotanin (~chatzilla@210-54-78-252.dialup.xtra.co.nz) joined the channel @1086406112 commit by gabor to examples: job: icfp @1086406112 allow state slots to directly reference another instruction @1086406114 introduced this as new type @1086406407 commit by gabor to examples: job: icfp @1086406407 fix embarrassment @1086407071 commit by housel to examples: Job: icfp @1086407071 automatic dependency tracking for Makefiles. @1086407152 commit by housel to examples: Job: icfp @1086407152 Speedy implementation. @1086407228 I should learn Dylan. What's the easiest way to do so? @1086407232 commit by onesadcookie to : job: icfp @1086407232 draw markers as well @1086407310 Read the "Dylan Programming" book, and write something that interests you @1086407530 does Dylan have the equivalent of CLOS eql methods? @1086407596 yes @1086407604 cool. @1086407641 does it have keyword arguments? And can those participate in method dispatch? @1086407657 yes and no @1086407674 respectively @1086407804 ok. @1086407824 I think I can rest assured that having keyword arguments participate in method dispatch is a hard, unsolved problem. @1086407830 since neither Dylan nor CLOS do it. @1086407903 how well does Dylan do at dynamic development? I.e., is there a repl for it? @1086407948 There is an interactive debugger @1086407992 http://www.gwydiondylan.org/~housel/fd-dylan-playground.png @1086408068 commit by gabor to examples: job: icfp @1086408068 added sense syntax @1086408202 hmm. @1086408303 BTW, I recommend posting questions to comp.lang.dylan if you can, to maximize visibility and the number of people who might help answer. @1086408322 We're certainly willing to answer here, too, of course. @1086408337 most of my questions are tiny little questions about the kinds of design decisions Dylan has made. @1086408347 is there any documentation on the implementation of Dylan's garbage collector? @1086408357 yes @1086408368 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION would like to read that. @1086408391 Define "Dylan's garbage collector" :) @1086408400 see the GarbageCollection page on the wiki for references @1086408418 d2c uses Boehm, and FunDev uses MPS. @1086408421 d2c uses Hans Boehm's conservative collector @1086408438 FunDev uses either that or MPS (the Memory Pool System) @1086408474 The DRM specifies nothing about GC, except that Dylan provides automatic memory management, and that GC may be one of the strategies. @1086408490 commit by housel to examples: Job: icfp @1086408490 Make it look something like a real application @1086408500 how is the performance of the Boehm collector verses specialized collectors? @1086408514 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION isn't used to these crazy multiple-implementation languages. @1086408579 we haven't done much serious benchmarking of the gc's against each other yet... the Boehm collector seems to do pretty well @1086408589 Well, it's mostly that the DRM tries to be simple and allow for exploration in areas that at the time weren't stable enough for standardization. In any case, I can't imagine one GC that would be appropriate for all possible implementations. @1086408664 In any case, talk of what "Dylan" is or isn't requires talking about both the DRM and the implementations, since the DRM has not been revised, and there is no ANSI or ISO standard. @1086408694 I think it's clear at least some things could be standardized these days. @1086408703 ...that couldn't in 1995. @1086408753 standardization is overrated. @1086408759 it's what killed Lisp. @1086408762 (imo) @1086408767 I'm glad that they didn't standardize on the Apple Dylan app framework... it's not near as nice as IO/System/DUIM/etc. @1086408808 I was just reading the FW docs. It's pretty nice, actually, but it's very lightweight and doesn't have a lot of features that would be useful today. @1086408848 DUIM gets you a UI library, but isn't an app framework. @1086408920 A number of things in the "dylan" library and the existing streams and I/O libraries were once in the domain of application frameworks, so a chunk of what an app framework is standardized, in a de facto sense. @1086408953 ...framework is is standardized... @1086408961 commit by gabor to examples: job: icfp @1086408961 added lookup and push-thunk, @1086408962 more macro clauses @1086409076 I think the biggest differences between DUIM and the Apple framework are that DUIM focused on macros for conveniently defining UI textually where Apple's framework provided a GUI editing tool, and DUIM is designed to be cross-platform where Apple's framework seems unashamedly centered on Mac programming. @1086409123 quite @1086409367 Hearteningly, Carbon now has a UI framework similar to Apple's Dylan app framework. @1086409402 It's kind of amusing to see how they do similar things though the terminology has changed quite a bit. @1086409418 commit by housel to examples: Job: icfp @1086409418 Catch up with gabor. @1086409441 I'm considering implementing part of Apple's framework on top of Carbon, to provide a lightweight interface for Mac programming. @1086409471 The Dylan layer should be thin, since Carbon does most of the work. @1086409542 d2c doesn't support passing Dylan callback functions to C APIs does it? @1086409542 commit by gabor to examples: job: icfp @1086409542 added general sense @1086409695 commit by onesadcookie to : job: icfp @1086409695 very simple ant brain @1086409743 cpage: it does, actually @1086409766 Oh, good. That's critical to Carbon Event support. @1086409818 I thought I remembered someone saying there was no callback support. Is there something related that's missing? @1086409825 commit by housel to examples: Job: icfp @1086409825 Fix some syntax errors. @1086409832 no @1086409849 that was the first thing I implemented when I joined the project back in '98 @1086409908 BTW, I read through a lot of the Apple Dylan documentation and the discussion of the FFI really helped me understand Melange better. @1086410152 does Dylan have multiple return values? @1086410168 yes @1086410175 I really should read that tutorial. @1086410205 Start with the "12 dylan fragments", that should go pretty quick @1086410251 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION will google when he finishes these two papers he's reading. @1086410312 You might consider reading through my Dylan Grand Tour slides: @1086410350 @1086410386 The slides are mostly example code and I put extensive notes on each one, basically containing the content of my talk. @1086410406 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION will take a look. @1086410584 Lisp is dead? @1086410597 I will alert my CEO @1086410601 It's just resting. @1086410611 Pining for the fjords. @1086410641 Beautiful plumage, Lisp. @1086410721 commit by gabor to examples: job: icfp @1086410721 initial checkin @1086410825 cgay_: it's losing ground that it had prior to standardization. @1086410857 hard to say that standardization had anything to do with that @1086410859 perhaps, but it was standardized a long time ago. are you sure that was the cause? @1086410877 That sounds contrary to expectations, and contrary to the introduction in CLtL written after the standardization. @1086410937 the problem with standardization is that it stifles innovation. @1086410961 people say, "Why write a new Lisp? Common Lisp does all this, and ooooh, it's standardized." @1086410983 Nothing stops them writing non-standard implementations. @1086410989 ...or libraries. @1086410999 That's how standards get revised and extended. @1086411019 Somebody writes something non-standard, then gets it incorporated. @1086411042 cpage: no, nothing stops them except public opinion. @1086411049 Standardization is what's fueling the C++ juggernaut. @1086411080 perhaps, but maybe there's something to the fact that no compiler ever meets the standard, too :) @1086411088 i've always felt CL could use more standardization. e.g., standard sockets lib, etc, but there's a lot of resistance to that whenever it's brought up in the newsgroup @1086411127 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION has come to believe that single-implementation unstandardized languages have a significant advantage over multiple-implementation, standardized languages. @1086411192 Only in the short term. Eventually, industries want independent standards bodies to get involved. @1086411216 I think that's the way to go when birthing a new technology, though. @1086411222 Heck, is there any other way that new development occurs? @1086411232 hehe @1086411244 I'm not quite sure about the "eventually," there. @1086411250 Pascal beat out Algol because Wirth went his own way. @1086411273 I think having a FOSS implementation serves well to allay industry's doubts about single-implementation languages. @1086411279 C++ was independently created by Stroustrup and AT&T was the single implementation source for years. @1086411281 though I'm curious what "industry" you're talking about :) @1086411389 Any industry. That was a very general statement about commercial interests. Even non-commercial interests desire standardization. @1086411440 In fact, most small businesses or non-profit entities desire standards so they don't have to spend resources being compatible with multiple non-standards. @1086411504 Large businesses desire standards to define a baseline below which they don't have to worry about competing with others in. @1086411555 ...and because chasing after multiple non-standards can be even more expensive in actual dollar amounts than for small entities, even though the percentages may not be as large. @1086411595 commit by alexpotanin to libraries: Job: icfp @1086411595 I hate Macs. @1086411732 commit by bruce to examples: Job: icfp @1086411732 much faster find_ant @1086412156 commit by gabor to examples: job: icfp @1086412159 this potentially hadles test-brain @1086412299 -calvino.freenode.net- badonaway (KCXYCL@166.70.55.40) joined the channel @1086412360 does Dylan have :before/:after/:around methods? @1086412368 no @1086412383 ok. @1086412503 any specific reason? @1086412507 commit by onesadcookie to : job: icfp @1086412507 don't pick up food that's at home @1086412608 commit by housel to examples: Job: icfp @1086412608 Add test-brain @1086412739 commit by bruce to examples: Job: icfp @1086412739 much faster ant-is-alive @1086412777 commit by gabor to examples: job: icfp @1086412777 fix typo @1086413133 -calvino.freenode.net- doublec (~doublec@coretech.co.nz) joined the channel @1086413187 hmm. @1086413196 what are some examples where multimethod dispatch is useful? @1086413235 visitor pattern @1086413253 Chris's presentation has some others @1086413322 oh, I need to read that. @1086413410 commit by gabor to examples: job: icfp @1086413410 test-brain is now parsed. @1086413411 expansion still buggy @1086413424 the Wiki is giving a baaaad error. @1086413544 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION is reading cpage's presentation now. @1086413590 ? wiki just now worked for me @1086413607 yeah, it works. @1086413612 but do you see an error on the top line? @1086413627 no, what does it say? @1086413661 lib/Request.php:196: Warning[2]: open(/tmp/sess_7145873b7a9a18907b27facdcb675944, O_RDWR) failed: No space left on device (28) @1086413890 commit by gabor to examples: job: icfp @1086413890 added Drop @1086414069 does dylan have dynamic (special) variables? @1086414107 not quite... it does the same thing Scheme does @1086414121 there's a dynamic-bind macro @1086414135 what's the difference? @1086414238 with dynamic variables you can just use (let ((*var* val) ...) @1086414275 so you just don't have to declare the variable special everywhere it might be used? @1086414337 commit by gabor to examples: job: icfp @1086414337 test-brain1 parses now. @1086414337 expansion still problem @1086414449 in CL you declare it special, but you just use ordinary let @1086414483 in Dylan you use ordinary "define variable", but you have to use the macro to bind it "specially" @1086414589 [jemfinch!~jfincher@dhcp31191101.columbus.rr.com] ACTION is considering just having all variables named *...* automatically be dynamic variables. @1086414670 commit by gabor to examples: job: icfp @1086414670 all is good now @1086415219 commit by gabor to examples: job: icfp @1086415219 export unparse @1086415276 commit by bruce to examples: Job: icfp @1086415276 made world faster @1086415397 commit by gabor to examples: job: icfp @1086415397 more patterns @1086415564 commit by alexpotanin to examples: Job: icfp @1086415564 Now summarises. @1086416427 commit by housel to examples: Job: icfp @1086416429 Re-indent the macro def @1086416429 Fix a typo in the Sense clause @1086416855 commit by gabor to examples: job: icfp @1086416855 first shot at put-instruction @1086417727 commit by gabor to examples: job: icfp @1086417727 export state setters too @1086417783 commit by bruce to examples: Job: icfp @1086417783 more speed tweaks @1086417912 commit by alexpotanin to examples: Job: icfp @1086417912 Now summarises. @1086418016 commit by gabor to examples: job: icfp @1086418016 put-instruction for Drop and Move should work now @1086418051 commit by housel to examples: Job: icfp @1086418051 Command-line arg parsing @1086418196 commit by alexpotanin to examples: Job: icfp @1086418196 Now summarises. @1086418632 commit by gabor to examples: job: icfp @1086418632 corrected fishy falloff at end @1086418965 commit by alexpotanin to examples: Job: icfp @1086418965 Now summarises. @1086420005 commit by gabor to examples: job: icfp @1086420009 putters for other insns too @1086420051 commit by alexpotanin to examples: Job: icfp @1086420051 Now summarises. @1086420213 commit by gabor to examples: job: icfp @1086420213 cleanup @1086420914 commit by gabor to examples: job: icfp @1086420914 syntax for PickUp added @1086421404 commit by gabor to examples: job: icfp @1086421404 added diagnostics @1086422994 commit by alexpotanin to examples: Directory /var/lib/cvs/examples/ICFP2004/brain-compiler2 added to the repository @1086423053 commit by alexpotanin to examples: Job: icfp @1086423053 Now summarises. @1086423391 commit by gabor to examples: job: icfp @1086423391 kludge so it does not use lib @1086423903 commit by gabor to examples: job: icfp @1086423903 found a bug, but not all yet @1086425858 commit by gabor to examples: job: icfp @1086425858 we need dylan/extensions for functional-== @1086425859 (but it is still not called) :-( @1086426682 commit by gabor to examples: job: icfp @1086426682 use lookup @1086428925 commit by gabor to examples: job: icfp @1086428927 seems to work finally @1086429055 commit by alexpotanin to examples: Job: icfp @1086429055 Stuff. @1086429340 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086430210 jemfinch: When it comes to multiple dispatch, I like to invert the question: When is it necessary to restrict dispatch to a single, distinguished argument? @1086430356 It's much simpler and orthogonal to allow dispatch on all arguments. In most cases, it means you simply write methods specialized on whatever types make sense and whether or not dispatching on more than one argument is necessary is left to the compiler to decide. @1086430531 I'm looking over my slides, btw, and thinking I should invert the order of presentation: Discuss some snippets of code, then two methods using dispatch, then classes, then modules and libraries. @1086430728 Partly because it may flow better, because the higher level stuff tends to refer to the lower level stuff, not the other way round, but also because it would emphasize how generic functions are the providers of specialization, not classes, and how that naturally flows out of "regular" functions, rather than having special "member functions" like C++. @1086431410 commit by gabor to examples: job: icfp @1086431410 cleanups @1086431855 commit by gabor to examples: job: icfp @1086431855 removed extra newlines @1086431856 eliminated duplicated lines @1086432075 commit by bruce to examples: Job: icfp @1086432075 Perl assembler and sample file @1086432459 commit by andreas to examples: job: icfp @1086432459 one empty line too many. @1086432747 commit by gabor to examples: job: icfp @1086432747 Sense markers with Sense ... (Marker X), ... @1086432871 commit by alexpotanin to examples: Job: icfp @1086432871 ddd @1086432884 commit by alexpotanin to examples: Job: icfp @1086432884 Stuff. @1086433105 commit by gabor to examples: job: icfp @1086433105 \n @1086433693 commit by gabor to examples: job: icfp @1086433693 Marker 0..5 sensing @1086434500 commit by gabor to examples: job: icfp @1086434501 more patterns @1086434545 -calvino.freenode.net- asmanian (~asmanian@212-62-67-166.teleos-web.de) joined the channel @1086434574 commit by alexpotanin to examples: Job: icfp @1086434574 ddd @1086434695 moin @1086434822 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086434949 cpage: don't generic functions basically compile to a switch statement, though? @1086434984 That's only one possibility. @1086434997 what are the others? @1086435015 In the completely optimized case, calling a generic function can compile to a direct function call to the appropriate method, or even get inlined. @1086435047 yeah, but what about in the cases where it can't be so optimized? @1086435060 commit by gabor to examples: job: icfp @1086435060 warn if explicit or implicit next-state does not exist @1086435060 When dispatching is necessary, there are several different algorithms available, and caching can be used to reduce overhead. @1086435125 There's a paper on how dispatching can be performed using a compressed bitmap. @1086435134 I'd be interested in that paper. @1086435143 I'll look it up in a minute. @1086435171 Another way is to take the types of the arguments and produce a hash value and look up the method in a hash table. @1086435219 yeah, that makes sense. @1086435240 Regardless of the dispatching algorithm used when runtime dispatching is necessary, the compiler can partially optimize away the need to dispatch on all arguments if it can determine that only some are actually used to differentiate methods. @1086435298 of course. @1086435341 btw, I mostly just wanted a nice example of the need for multiple dispatch last night. @1086435375 single dispatch easily fails on the cons case, at least with the normal argument order. @1086435378 The one we often used when I worked at Harlequin was rendering graphical objects to an output device. @1086435454 Given a generic like: define generic render (g :: , d :: ); @1086435466 <^self!~fn@66.209.66.105> what's the cons case? @1086435481 You may have methods specialized on vs. , say, and methods specialized on vs. . @1086435485 <^self!~fn@66.209.66.105> here is eric kidd's paper on dispatch: http://www.cs.dartmouth.edu/reports/authors/Kidd,Eric.html @1086435532 Sorry, is there some paper available about using c-callback functions with melange? @1086435559 You may also have methods that specialize on combinations like (, ) where you need specialized behavior. @1086435635 ^self: simply that in a single-dispatch case, when the first argument is the specialized receiver (of the message), cons doesn't work with normal argument order (cons object list) @1086435651 ^self: Interesting, although I'm not sure that's the paper I was thinking of. @1086435672 <^self!~fn@66.209.66.105> yeah, i wasn't sure if it was the paper you meant. @1086435696 It certainly looks like the same topic. @1086435703 is Kidd involve in Goo? @1086435741 <^self!~fn@66.209.66.105> asmasian, will this help? http://www.gwydiondylan.org/gdref/gduser/melange.html @1086435814 <^self!~fn@66.209.66.105> i think he was, jem. i don't know if anyone is, now. @1086435828 [asmanian!~asmanian@212-62-67-166.teleos-web.de] ACTION sends ^self lots of thanks and asks hiself: "damn, why am I so blind, I couldnt find this myself?" @1086435880 <^self!~fn@66.209.66.105> heh. a lot of stuff is in gdref. @1086435993 <^self!~fn@66.209.66.105> the dynlangcvs.ai.mit.edu machine seems to be down right now. it's got the goo repo. @1086436004 <^self!~fn@66.209.66.105> http://personal.baker.edu/web2/cdavis09/roses.html @1086436062 -calvino.freenode.net- buggs^z (~noidentd@pD9E957E8.dip.t-dialin.net) joined the channel @1086436167 I think my fault was to search on a documentation just describing melange rather then just looking up some other pages in gdref (which I use regulary at the moment) :-) @1086436389 "Melange does not presently support callbacks" @1086436444 The user guide doesn't talk about them. I haven't looked to see whether the current version of Melange supports them, but the Apple Dylan documentation for Creole discusses clauses for callbacks and callouts. @1086436971 Now I found it out, too. But Andreas Bogk said in gd-hackers (mailing list), it would be possible to write callbacks "by hand" @1086436998 unfortunately he doesnt seem to give answers to the list at the moment @1086437066 I suppose you just have to modify the .intr-file somehow, but .. how? @1086437353 I don't know whether Melange supports this, but Creole has "callout" and "callback" interface clauses. @1086437448 commit by alexpotanin to examples: Job: icfp @1086437449 Stuff. @1086437455 A callout clause defines a function that you can pass a C function pointer and some arguments and it'll call the C function. @1086437467 A callback clause defines a macro that you can use to define callback functions. @1086437517 creole? is this just the apple (nearly) equivalent to melange or is creaole also available for x86's? @1086437530 Creole is Apple Dylan's Melange. @1086437551 The user guide describes the differences, but they're basically similar. @1086437636 Looking at the Melange sources, the grammar certainly supports callouts and callbacks. @1086437651 So I won't get a chance to pass a dylan-function as argument to a c-function at this state of development? Thats a pity :-( @1086437699 Hmm? @1086437724 sorry, i didnt read your last sentence before posting mine @1086437797 Unfortunately, it looks like Melange doesn't emit the necessary code for those clauses. @1086437977 However, there is runtime support for them. You just won't get Melange to automatically generate the appropriate glue code. @1086438014 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086438079 I see primitive macros \callback-method and \call-out in ./src/d2c/runtime/dylan/macros.dylan @1086438154 @1086438228 The glue generated by Melange for each imported C function uses \call-out. @1086438515 commit by gabor to examples: job: icfp @1086438515 some required stuff @1086438573 commit by gabor to examples: job: icfp @1086438573 merge back kludges @1086438575 <^self!~fn@66.209.66.105> lots of icfp commits. @1086438591 cpage: thanks, I thinks this macro will solve my problems @1086438741 commit by gabor to examples: job: icfp @1086438741 removed kludge, as building lib in root is easy @1086438796 commit by gabor to examples: job: icfp @1086438796 cleanup @1086439052 commit by gabor to examples: job: icfp @1086439052 -g not needed any more @1086439321 commit by alexpotanin to examples: Job: icfp @1086439321 ddd @1086441229 commit by bruce to examples: Job: icfp @1086441229 Put README into format required by rules, added some comments @1086441536 -calvino.freenode.net- GreyLensman (~ray___@69-167-212-58.atlsfl.adelphia.net) joined the channel @1086441628 commit by alexpotanin to examples: Job: icfp @1086441628 Good ant. @1086442167 <^self!~fn@66.209.66.105> me, last night at the office: http://www.hungry.com/~fn/tmp/Picture%20001.jpg @1086443427 commit by onesadcookie to : job: icfp @1086443429 ruby script to generate asm (to be parsed by bruce's perl script) for a @1086443431 more intelligent ant. Still some bugs left, but shows promise. in @1086443433 particular, trails are not marked religiously enough at turnaround points, @1086443435 and not followed religiously enough in general. Also, collisions cause @1086443437 <...> @1086444512 -calvino.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1086450713 -calvino.freenode.net- buggs^z (~noidentd@pD9E957E8.dip.t-dialin.net) joined the channel @1086454052 -calvino.freenode.net- larsr (~lars@ACC128BD.ipt.aol.com) joined the channel @1086457299 commit by andreas to examples: job: icfp @1086457299 Better zooming, more speed. @1086459602 -calvino.freenode.net- pritlove (~pritlove@pD9E7BBCE.dip.t-dialin.net) joined the channel @1086459609 commit by andreas to examples: job: icfp @1086459609 foo @1086460968 commit by andreas to examples: job: icfp @1086460968 backing out accidental commit. @1086461883 commit by gabor to examples: job: icfp @1086461883 one-armed Flip @1086462715 commit by andreas to examples: job: icfp @1086462717 Removing damage @1086463124 commit by gabor to examples: job: icfp @1086463124 one armed flip @1086463504 commit by gabor to examples: job: icfp @1086463504 one armed Sense variants @1086464239 commit by gabor to examples: job: icfp @1086464239 yes-armed Flip/Sense @1086464682 commit by gabor to examples: job: icfp @1086464682 fix pasto @1086465470 commit by andreas to examples: job: icfp @1086465470 foo @1086470666 -calvino.freenode.net- larsr (~lars@ACC55B38.ipt.aol.com) joined the channel @1086471747 commit by andreas to examples: job: icfp @1086471747 better code... @1086471995 commit by andreas to examples: job: icfp @1086471995 visualizer hacks, andreas.ant, tournament. @1086477962 -calvino.freenode.net- pritlove (~pritlove@pD9E7B863.dip.t-dialin.net) joined the channel @1086480016 -calvino.freenode.net- brucehoult (~bruce@202-0-61-112.adsl.paradise.net.nz) joined the channel @1086480037 -calvino.freenode.net- brucehoult (~bruce@202-0-61-112.adsl.paradise.net.nz) left the channel @1086482074 commit by bruce to examples: Job: icfp @1086482076 some good ideas, some bad @1086482092 -calvino.freenode.net- CIA-7 (micah@hyperreal.info) joined the channel @1086482152 -calvino.freenode.net- CIA-6 (micah@hyperreal.info) joined the channel @1086483464 commit by bruce to examples: Job: icfp @1086483466 Assembler now allows: @1086483468 - comments at the end of any line @1086483470 - label at the start of any line @1086483472 <...> @1086483544 commit by alexpotanin to examples: Job: icfp @1086483544 Backup of an ant. @1086484697 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086487388 -calvino.freenode.net- jemfinch|lambda (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086487739 commit by bruce to examples: Job: icfp @1086487739 fixed 0 vs defined problem @1086488405 commit by onesadcookie to : job: icfp @1086488405 onesadant2 goes on "raiding missions" @1086488406 seems much much better than previous contestants @1086489659 -calvino.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) joined the channel @1086489795 -calvino.freenode.net- alexpotanin (~alex@st-james.mcs.vuw.ac.nz) left the channel @1086491531 commit by onesadcookie to : job: icfp @1086491532 print more meaningful statistics @1086493114 commit by onesadcookie to : job:icfp @1086493115 onesadant2, but at startup each ant chooses whether it's a left-turning or @1086493117 right-turning ant. This is kind of an incremental improvement, but it @1086493119 does help noticeably. @1086493650 I wonder if user-level libraries, like regular-expression, should be moved from src to libraries @1086494862 commit by cgay to fundev: job:minor @1086494863 The Fun-O license doesn't apply to this library. @1086496551 -calvino.freenode.net- jemfinch` (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086497662 commit by bruce to examples: Job: icfp @1086497662 ASM dies on undefined or multiply-defined labels @1086500845 commit by gabor to examples: job: icfp @1086500846 since it seems to do no harm, archive the Subroutine @1086500848 code. Calling Sub more than once will fail, because @1086500850 I use a fixed label. But this is easily fixed. @1086501201 -calvino.freenode.net- yangsx (~yangsx@61.51.141.145) joined the channel @1086502135 commit by gabor to examples: job: icfp @1086502135 real subroutines with own symbol tables @1086502912 commit by alexpotanin to examples: Job: icfp @1086502912 Killer ants. @1086504046 commit by gabor to examples: job: icfp @1086504048 Pickup with success arm @1086504420 commit by alexpotanin to examples: Job: icfp @1086504420 Killer ants. @1086504509 commit by gabor to examples: job: icfp @1086504509 sub-brains now with specifiable returning label @1086507000 commit by gabor to examples: job: icfp @1086507000 some beautifications before starting with globals @1086507634 commit by alexpotanin to examples: Job: icfp @1086507634 Killer ants. @1086510120 commit by onesadcookie to : job: icfp @1086510120 beat alex-killer-ant and other such simplistically-minded ants @1086512168 commit by alexpotanin to examples: Job: icfp @1086512168 Brain. @1086513119 commit by alexpotanin to examples: Job: icfp @1086513119 Killers. @1086513357 commit by alexpotanin to examples: Job: icfp @1086513357 sss. @1086513612 commit by bruce to examples: Job: icfp @1086513612 initial trial version @1086514647 commit by gabor to examples: job: icfp @1086514647 fixed the problem with start-label in subbrains @1086514892 commit by gabor to examples: job: icfp @1086515447 commit by gabor to examples: job: icfp @1086515447 merge in 150 - 149 @1086516794 commit by bruce to examples: Directory /var/lib/cvs/examples/ICFP2004/bruceVisualizer added to the repository @1086516999 commit by alexpotanin to examples: Job: icfp @1086516999 sss. @1086517158 commit by bruce to examples: Job: icfp @1086517158 a visualizer version that I can hack on to see custom stuff @1086517751 commit by gabor to examples: job: icfp @1086517751 start label of brain now always same as the name of the brain @1086517809 commit by onesadcookie to : job: icfp @1086517809 much improved -- now dumps food out of enemy nests, patrols edges to find @1086517810 dumped food @1086520304 commit by gabor to examples: job: icfp @1086520306 unconditional move @1086522451 -calvino.freenode.net- buggs^z (~noidentd@pD9E96D1D.dip.t-dialin.net) joined the channel @1086523112 commit by alexpotanin to examples: Job: icfp @1086523112 sss. @1086523339 commit by onesadcookie to : job: icfp @1086523339 starts of a defensive ant @1086523478 commit by alexpotanin to examples: Job: icfp @1086523478 sss. @1086524529 commit by chris to examples: Job: icfp @1086524529 initial version @1086525428 commit by gabor to examples: job: icfp @1086525428 an attempt at a ant --> brain macro @1086525543 commit by bruce to examples: Job: icfp @1086525543 small speed tweak @1086525572 commit by andreas to examples: job: icfp @1086525572 mutation and crossover @1086525619 commit by andreas to src: bug: 7039 @1086525619 Fix problem in random-float distribution. @1086525924 commit by onesadcookie to : job: icfp @1086525926 completely new idea, seems to work a bit better @1086525954 commit by bruce to examples: Job: icfp @1086525954 Closer to working @1086526036 commit by bruce to examples: Job: icfp @1086526036 better colours and smaller squares @1086526477 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086527114 commit by onesadcookie to : job: icfp @1086527114 minor improvement @1086527119 commit by bruce to examples: Job: icfp @1086527121 initial version @1086527199 commit by gabor to examples: job: icfp @1086527199 simple-minded macro for reading raw ant. @1086527201 not done yet! @1086527241 commit by bruce to examples: Job: icfp @1086527241 Hacky tool for generating a switching structure @1086527722 -calvino.freenode.net- ipmonger (~Snak@pcp08514451pcs.coatsv01.pa.comcast.net) joined the channel @1086527814 commit by alexpotanin to examples: Job: icfp @1086527814 sss. @1086527860 commit by andreas to examples: job: icfp @1086527860 Breeding. @1086528256 commit by gabor to examples: job: icfp @1086528256 almost complete implementation. Flip and sense missing. @1086528440 commit by gabor to examples: job: icfp @1086528440 checkpoint @1086528727 commit by alexpotanin to examples: Job: icfp @1086528727 Brain. @1086529014 commit by gabor to examples: job: icfp @1086529014 fix bug @1086530043 -calvino.freenode.net- asmanian (~asmanian@212-62-67-34.teleos-web.de) joined the channel @1086534079 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086534533 commit by alexpotanin to examples: Job: icfp @1086534533 Fixed Keith's bugs. @1086534755 commit by andreas to examples: job: icfp @1086534755 breeding improvements. @1086535268 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086535703 commit by alexpotanin to examples: Job: icfp @1086535703 Killers. @1086536090 -calvino.freenode.net- asmanian (~asmanian@212-62-67-185.teleos-web.de) joined the channel @1086536241 commit by alexpotanin to examples: Job: icfp @1086536243 Fixed Keith's bugs. @1086537232 commit by chris to examples: Job: icfp @1086537234 form into groups of five at home and kill invaders @1086537339 commit by gabor to examples: job: icfp @1086537339 after adding the thunking, @1086537339 it appears to work out of the box :-) @1086537995 -calvino.freenode.net- jemfinch (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086538230 commit by gabor to examples: job: icfp @1086538230 fix macro name @1086538238 commit by chris to examples: Job: icfp @1086538240 form into groups of five in my home thus killing any ants trying to @1086538242 steal. @1086538244 commit by alexpotanin to examples: Job: icfp @1086538246 Alex's killer ant 4 featuring chris-defender and keith's foraging (tweaked). @1086538664 sorry, may be another dumb questions, what are all these 'icfp'(?) messages all about? @1086538683 s/questions/question/ @1086538691 http://www.icfpcontest.org/ @1086538719 A team of people here are using for their entry a CVS repository that CIA prints messages for here. @1086538899 thanks @1086540493 commit by gabor to examples: job: icfp @1086540493 a cross-referencer and some cleanups @1086541239 commit by gabor to examples: Directory /var/lib/cvs/examples/ICFP2004/doc added to the repository @1086550366 -calvino.freenode.net- larsr (~lars@ACC0F964.ipt.aol.com) joined the channel @1086550515 asdf @1086550601 jkl; @1086550643 Riastradh: what are you doing here? You're a Scheme guy, n'est-ce pas? @1086550703 Oui, mais Dylan est un peu interessant aussi. @1086550727 pourquoi? @1086550794 (Et je epie le equipe de Dylan pour ICFP!) @1086550853 ah, you've exceeded my French ability. @1086550874 I think I exceeded mine as well. Grammar just flopped down and died in that sentence. @1086550930 What I said was badly translated from 'And I'm spying on the Dylan ICFP team!' @1086550938 *lol* @1086550954 re ;) @1086550958 Riastradh: *lol* @1086550960 ...with the help of a quickly-Googled French dictionary. @1086550969 *hrhr* @1086551012 ah, hehe @1086551033 I do note that some of your commit messages had a bit more than you probably intended other teams to see, though. I'm not using any of your ideas -- our team's strategists are doing fine on their own, and all I'm doing is writing the Scheme tools that the others use --, but nevertheless. @1086551041 (where 'you' is the Dylan ICFP team) @1086551760 when the ICFP guru's are done with their ant thingy, help me figure out this - "Cannot link with the Boehm-Weiser conservative garbage collector library." Freebsd 4.9 @1086551875 it seems to already be installed....make; make install; in it's ports dir does nothing @1086552070 badon: run ldconfig and try again. @1086552081 (maybe, that's just a guess) @1086552509 badon: run configure with '--with-gc-prefix=/usr/local/' @1086552533 badon: i've to do on FreeBSD-5 CURRENT @1086552579 now much do you folks thinks Dylan's performance would increase with a specialized GC over the Boehm GC? @1086552605 Didn't you already ask that, jemfinch? @1086552687 maybe. I don't remember an answer. @1086554816 jemfinch: that depends on the application. and the GC. i am not sure wether MPS would really improve actual performance. but its likely, since less words would have to be scanned. @1086554846 MPS? @1086554860 FunDev's alternative GC. @1086554872 jemfinch: memory pool system. the memory managment system that functional developer and some other harlequin products use. @1086554875 www.ravenbrook.com @1086554895 jemfinch: a pretty general memory managment framework that has, among other things, been tailored to dylans needs. @1086554916 prom: oh, is that the one Fun-O uses? @1086554922 yepp. @1086554934 but fundev can also use libgc. @1086554940 (boehm-weiser libgc) @1086554953 prom: I should read about MPS. Is it superior to most other GCs in most other dynamic languages? @1086554987 jemfinch: it is a very general framework. but the license is gpl-like. and not all of the (pretty extensive) internal documentation has been published. @1086555023 jemfinch: and it is, without question, superior to libgc in programming style, general neatness and features. ;) @1086555077 hmm. @1086555082 a GPL-like library won't do for my purposes. @1086555092 although GCs seem to be some of the least-reusable code out there. @1086555194 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086555875 at the moment, as far as we can tell, MPS gives much better interactive performance (lower collection latency) but greater overall CPU (user and system) time @1086555897 it also works much better in a multi-threaded environment @1086556233 don't know what you mean by "GCs seem to be some of the least-reusable code"... Boehm libgc is very frequently reused @1086556240 commit by gabor to examples: job: icfp @1086556242 more excludes @1086556282 GCs usually depend rather heavily on the data representations for whatever they collect garbage of. @1086556647 [prom!~prom@217.13.206.33] ACTION really likes MPS because its a lot cleaner than libgc. it is not so easy to use tho... @1086556892 commit by andreas to examples: job: icfp @1086556892 latest breeder, ant. @1086557499 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086558055 housel: did you write something recently to parse 'define library' forms? i vaguely remember you had to do that for some reason. @1086558096 commit by cgay to libraries: job:minor @1086558096 Fix a comment and comment out unused def. @1086558164 i'm toying with the idea of writing something to parse all the library (and exports) files to build an index of all exported names. i constantly find myself trying to figure out where something is exported from. @1086558361 cgay_: you could do this using d2cs parser i guess. you just have to stop at the right point and go through the module information. @1086558406 -calvino.freenode.net- larsr (~lars@ACC1AC24.ipt.aol.com) joined the channel @1086558508 i think i'd rather try to figure out how the meta library works. @1086559162 hannes: there's no configure script in the dylan ports dir @1086559236 Error: shared library "gc.1" does not exist @1086559350 did a deinstall then reinstall of boehm @1086559350 ===> Script "configure" failed unexpectedly. @1086559361 I'm not sure how to use ldconfig @1086559446 the port should handle that @1086559456 Could you send me your config.log file? @1086559467 looking @1086559471 (from the work directory) @1086559516 cgay_: look in fundev/admin/builds/fdmake.pl @1086559533 that parses .lid files and "define library" forms @1086559548 "define module" would be an easy extension @1086559643 ok. was hoping to do it in dylan though :) @1086559709 why not use the FD Export command to export a testworks spec or an XML interface reference? @1086559752 (d2c can export testworks specs too) @1086559953 i don't think that will allow me to export _all_ names @1086559989 i want a global index @1086559998 housel: my config.log --> http://www.zesiger.com/stuff/config.log @1086560015 "meta library"? @1086560054 /libraries/meta -- a parser generator, more or less @1086560131 badon: you're running 4.x? @1086560143 4.9 @1086560156 what's that "choke me" bit? @1086560174 don't worry about that, just autoconf weirdness @1086560192 the problem is pthreads @1086560244 you may want to reinstall boehm-gc without pthreads... let me update my /usr/ports to figure out how to do that @1086560272 k @1086560281 pthreads support in Boehm-gc for FreeBSD is a recent addition @1086560348 ok, pkg_delete 'boehm-gc*', then: @1086560355 cd /usr/ports/devel/boehm-gc @1086560378 -calvino.freenode.net- rhashem (~rhashem@ip68-100-5-48.dc.dc.cox.net) joined the channel @1086560381 make WITHOUT_THREADING=yes @1086560393 in the dylan ports dir? @1086560396 or for boehm? @1086560401 for Boehm @1086560418 k @1086560446 do make deinstall; make WITHOUT_THREADING=yes reinstall; @1086560448 right? @1086560459 yeah @1086560462 that should work @1086560467 k, one sec @1086560478 I'd like to see integrated support in d2c for reporting information about the code, or a separate library for rummaging through whatever it is the compiler emits. Are the .du files pretty complete or does the compiler omit useful information? @1086560529 housel: are you going to fix that somehow in ports? @1086560574 I'll try, but it's hard for ports to depend on each other's WITH_*/WITHOUT_* options @1086560624 cpage: .du files are complete, but the painful part is that .du file format information is spread thoughout the entire compiler @1086560650 housel: why do things NEED to depend on each other so much? Windows software just works, why is *nix so goddamn fidgety @1086560667 *nix is modular. @1086560677 ...which has costs and benefits. @1086560699 Windows is one particular packaging of stuff and you don't generally get to replace parts. @1086560708 I see @1086560728 so, the least regulated system is the one most in need of regulation... @1086560729 heh @1086560751 That's one reason why Windows is so horking big: They never remove anything that was in there before, so it continues to run older software. @1086560799 yeah, I'm attracted to freebsd because more often than not, stuff works. It seems to be better organized @1086560849 housel: /usr/libexec/ld-elf.so.1: Shared object "libintl.so.5" not found @1086560878 usage of meta is non-obvious to me @1086560899 you've got an out-of-date port... what command elicited that? @1086560902 maybe i'm too stupid for this language @1086560925 The real issue is that *nix culture is about adding (useful) stuff on your own, without waiting for an OS vendor to package it up nicely. So you have to do some additional work. @1086560931 you've updated your gettext port but not something that depended on it @1086560956 are you using "portupgrade"? @1086560967 cgay: "meta"? @1086560986 cgay_: have you read the docs? @1086560991 yes @1086561010 including the original paper on the Lisp version? @1086561014 housel: reload config.log @1086561030 no @1086561044 housel: make; make install; for dylan @1086561065 i keep spiralling downward into new sub projects in order to get something done @1086561071 eventually i will hit bottom @1086561090 [cgay_!~cgay@h00a0c5e1f619.ne.client2.attbi.com] ACTION goes back to stripping paint @1086561139 badon: looks like that configure succeeded, did it? @1086561144 Isn't it possible to automate all this eventually? I mean, either it's going to get automated, or it's going to grow in complexity and become unuseable, and I think much of linux is getting worse, not better. @1086561167 You have know every detail of how every bit of software works in order to get something simple running. @1086561191 housel: yes, it seems to be working now...it got through a great deal more work before pooping. @1086561211 generated all the makefiles @1086561221 then what? @1086561234 Build scenario: REGULAR_BUILD @1086561234 Compiling Mindy and d2c. The installed version of d2c will be @1086561234 used to compile programs written in Dylan. @1086561234 ===> Building for dylan-2.3.11_1 @1086561236 /usr/libexec/ld-elf.so.1: Shared object "libintl.so.5" not found @1086561236 *** Error code 1 @1086561252 I'll bet it's gmake @1086561267 does "gmake --version" work? @1086561271 checking @1086561282 nope! @1086561291 reinstall it @1086561311 you should have used "portupgrade"... it takes care of things like that @1086561331 I don't even know what that is... @1086561364 just a sec... let me find an article on it @1086561405 http://www.onlamp.com/pub/a/bsd/2003/08/28/FreeBSD_Basics.html @1086561413 looking @1086561424 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION has been rummaging around in Apple Dylan and exporting a bunch of the sources to interchange files, btw @1086561486 (shame we can't do anything with them) @1086561500 Unfortunately, some of the source records are corrupted such that it hangs trying to export them. Some were simple to fix by just adding/removing a space character. Apparently, the text is okay but something in the bookkeeping information is messed up. Anyway, there were some that unfortunately couldn't be fixed that way. @1086561540 Gabor at one point started writing a reader in Dylan for WOOD databases @1086561562 (but AFAIK never finished it) @1086561565 gmake[2]: Entering directory `/usr/ports/lang/dylan/work/gwydion-dylan-2.3.11/mindy/interp' @1086561565 bison -y -d /usr/ports/lang/dylan/work/gwydion-dylan-2.3.11/mindy/interp/parser.y @1086561565 /usr/libexec/ld-elf.so.1: Shared object "libintl.so.5" not found @1086561575 Well, I plan on learning from them. In particular, I was trying to figure out how Apple approached using Creole to define interfaces for Mac OS APIs. Turns out what they did was use the default name mapping, and then hand-wrote a bunch of Dylan code on top of that. I found that surprising. @1086561581 same not found error, just different @1086561585 what a mess @1086561595 it failed QUICK after I tried reinstalling gmake @1086561596 you need to upgrade the bison port too @1086561602 gah @1086561650 I sort of expected they'd use Creole to generate what they wanted the Dylan-flavored Mac APIs to look like, with a few bits of hand-coded stuff for execptions. @1086561689 ok, compiling dylan....seems to be working now @1086561734 Leaves me wondering whether Creole/Melange-generated code is intended to be called directly most of the time or not. @1086561957 so, do you suppose it'll ever be as simple as "gimme software package X"? @1086561963 with *nix that is @1086561977 Or do you think it'll continue to grow in complexity? @1086562088 I doubt that development-tool stuff will ever get much easier @1086562114 unless you only have a single provider for your libraries and tools @1086562263 well, non-user friendlieness in development tools is tolerable, but continually growing complexity is not, since no one can manage that. @1086562287 And, for consumer type things, it must be user-friendly or it won't have users. @1086562296 It's unfortunate that bad UI is tolerable to developers. @1086562305 cpage: indeed @1086562333 I mean, text GUI's are better than needing to remember off the top of your head how to do something. @1086562355 the trouble with a command line is it doesn't have any context @1086562372 I can't hit F1 to find more info on what I'm working @1086562374 for example @1086562400 You have to know everything, or to just get started @1086562403 er @1086562413 You have to know everything just to get started @1086562445 I don't mind command lines, but they certainly weren't designed with user friendliness in mind. The man page contraption is a good idea tho @1086562478 still compiling dyaln @1086562482 dylan @1086564399 badon: You're going to be at it for more than 13 minutes :) @1086564918 heh, seems o... @1086564919 si @1086564921 so @1086565157 which dylan are you compiling anyway? @1086565218 the latest from port @1086565219 ports @1086565229 I didn't pay attention to the version @1086565243 ah, d2c @1086565252 I meant d2c or fd @1086565260 yeah, no fundev @1086565270 fundev is in ports? @1086565279 or "yeah, not fundev" @1086565352 fd is pretty admirably fast to compile @1086565369 though, I'm used to g++, which is inordinately slow @1086565559 yeah @1086565571 commercial software is almost always better than GPL crap @1086565601 yeah. Like all those commercial implementations of Perl and stuff! @1086565729 I don't know anything about perl @1086565735 other than it sucks @1086565790 if you don't know anything about it, how can you know it sucks? @1086565874 fd isn't in ports yet, I'll wait until we can do a native port @1086565880 jemfinch: oh, I looked at it years ago, my "this is crap" detector went off. @1086565991 dylan still compiling.. @1086566020 which library is it doing now? @1086566048 looking @1086566058 heap.dylan @1086566063 whatever that is @1086566088 you're getting close to the end of compiling d2c itself @1086567607 holy crap, it's STILL compiling @1086567869 -calvino.freenode.net- ipmonger (~Snak@pcp08514451pcs.coatsv01.pa.comcast.net) joined the channel @1086567960 done @1086567984 @badon: Be careful, FD is (L)GPL now :) @1086568586 commit by gabor to examples: job: icfp @1086568586 ant-subbrain now reliably works @1086568586 and has a returning variant too @1086568692 rhashem: ? @1086568709 I ate GPL @1086568737 hatr @1086568738 hate @1086569012 Why? @1086569075 commit by chris to examples: Job: icfp @1086569075 Added chris2 to makefile. Modified to use marker 5 and new brain syntax. @1086569312 commit by chris to examples: Job: icfp @1086569312 Added chris1 source code which defeats the original alex handily. @1086569360 commit by chris to examples: Job: icfp @1086569360 commit recent versions of ants. @1086569786 rhashem: because it eliminates the possibility of commercialization @1086569805 Despite what the hobbyists believe, businesses still produce the best software @1086569870 this is a much better license - http://www.zesiger.com/license/ @1086570221 badon: Hardly. There is quite a lot of good commercal GPL'ed software @1086570291 And businesses often do not produce the best software @1086570314 eg: gcc was for a long time quite a bit superior to visual c++ @1086570336 to this day, we're having to deal with programmers who think Visual C++'s broken for scoping is the correct behavior @1086570502 I intend to take no sides in this, but it shouuld be noted that Microsoft's software is hardly useful when discussing quality. @1086570665 Microsoft's quality isn't usually that much worse than much of the proprietory software you encounter @1086570697 yes, it's only notable because of its sheer volume @1086570745 a lot of proprietary software is junk. but there are good pieces, too. its basically the same as with opensource. most opensource programs dont rock either... @1086570786 commit by gabor to examples: job: icfp @1086570786 minor @1086570790 Good vs. bad is orthogonal to proprietary vs. open. @1086570813 yepp. @1086570840 cpage: Right. The big difference between closed vs. open is with regards to what type of software gets written @1086570853 definitely. @1086570872 The key thing about open is that I can fix it if I absolutely must. Whether or not that's a good thing depends on my skills and available time. With proprietary I rely upon the vendor to fix bugs. Whether or not that's a good thing depends on the vendor. @1086570896 I'm generally happy relying upon Apple to deliver improved software for me. @1086570905 I'm not generally happy with Microsoft doing the same. @1086570935 I'm generally happy with my ability to contribute to Gwydion Dylan, but not happy about there not being a robustly-funded implementation. @1086570999 [prom!~prom@217.13.206.33] ACTION doesnt like apple for political reasons. my computer is from apple, but the alternative, ibm, aint great politically either. @1086571060 Sturgeon's law. @1086571064 i definitely dont want macosx. an os that does not tell you that you can skip the registration procedure. and then itunes, which cant copy files from an ipod... its just ridiculous. @1086571073 (re what was said five minutess ago) @1086571081 Minutes, even. @1086571089 prom: you can't copy files from an iPod in itunes? @1086571120 rhashem: nope. you can always cd to the cryptically names directory and copy the file... but you cant copy it from within itunes. @1086571125 Those aren't really high on my list of reasons to like or dislike an entire set of system and application software. @1086571153 see, that's why I'm glad there is quality GPL'ed software like gnupod :) @1086571167 What do you need to "copy" for? You rip music to iTunes, then sync to the iPod. @1086571179 If you want general file storage, you can just mount the iPod as a disk. @1086571197 rhashem: hehe. well. itunes has a nicer user interface. but it works, so its ok ;) @1086571239 cpage: When your computer dies and you don't want to re-rip 100 CDs @1086571268 and it doesnt force normal users (who dont know apple-c works for the registration form doesnt tell them) to register their copy of it ;) @1086571331 rhashem: Two words: regular backups ;-) @1086571348 You mean "Command" C @1086571356 cpage: i want to use the ipod for carrying around my music. this includes copying it when somebody wants it. @1086571367 cpage: I back up to my iPod :) @1086571393 prom, yeah, try getting the RIAA to agree to allowing that. @1086571400 prom: I've been registering with Apple for over a decade. I have yet to see a downside. @1086571419 BTW, it's Command-Q to quit the registration program. @1086571446 Registration is the least of my worries when it comes to software choices. @1086571461 Riastradh: well.... i dont feel like having to ask the RIAA for permission when i do something. @1086571480 Besides, I like to register products of all kinds so that manufacturers know I'm buying their stuff and what else I'd like them to make. @1086571494 rhashem: I don't use microsoft products as a good example of quality non-gpl softwre @1086571500 cpage: yeah.... then its command-q... i am not a regular macos user as you certainly have guessed ;) @1086571504 prom, yes, but how do you think Apple feels? They're rather forced by it. @1086571522 badon: Then what would you use? @1086571522 It's spelled "Mac OS", with a space ;-P @1086571534 rhashem: the best of each class @1086571554 commit by chris to examples: Job: icfp @1086571554 form groups of 5 around food to kill foragers. @1086571557 Like GCC is the best C++ compiler in its class? @1086571565 yep @1086571569 Riastradh: they should not let them force them. its just stupid not to allow copying. i mean you can copy the files all the time. but normal users dont know this. "if itunes doesnt allow it, it must be impossible." @1086571575 Apple did an amazing thing in getting the recording industry to allow quite a bit of freedom for users, even with DRM'd music. You can burn lots of copies, you can use the music on several machines. @1086571593 prom, would you like to argue for Apple against the RIAA when they get sued because of taking your suggestion? @1086571596 Believe you me, the RIAA would rather have everyone pay for every play. @1086571596 I don't see any reason why there should be a line drawn between open source and commercial products @1086571626 badon: I don't either. From my point of view, the license is just another feature of the software @1086571629 Riastradh: this is nothing apple has to work out with the RIAA. this is something the people in the us have to work out with their government. @1086571634 rhashem: agreed @1086571645 I see no point in hating the GPL though @1086571647 If talented people could get rich making open source software, I think we'd have better open source software @1086571654 prom, certainly. But Apple can't do anything until people do something with the government. @1086571671 badon: In lots of cases, talanted people can't get rich making closed source software @1086571685 prom: I don't know why that bothers you so much. If it's DRM'd copying gets you nothing. If it's not DRM-protected, they can copy them just fine, it just takes a little digging -- ie., the UI's not great, but it's not like Apple's preventing fair use of non-DRM music. @1086571686 Riastradh: the RIAA should not be allows to push software manufacturers into removing things from an interface simply because it COULD be used for something illegal. @1086571689 You think Trolltech would have survived today had Qt been closed source? @1086571689 rhashem: yeah, you're right. I actually hate people who use the GPL...can't blame them tho, for a long time, it was the best available. @1086571697 money is used for illegal things! close all the banks! @1086571698 If you don't like DRM, talk to the RIAA, not Apple. @1086571701 ;) @1086571715 badon: for lots of things, GPL is still the best available @1086571722 prom, that may be true, but until the RIAA is 'solved,' Apple is still forced by them. @1086571724 rhashem: it applies to more than just softare too @1086571728 They've got money & lawyers. @1086571732 Eg: Opening commercial sources while perserving commercial viability @1086571737 (where 'they' is the RIAA) @1086571765 rhashem: GPL defeats it's purpose...GPL is best for companies that don't want competition, but want to release their source. @1086571782 Anyway, you can freely copy non-DRM'd music. @1086571798 And, the GPL has caused an "all or nothing" mentality to take root in the development community @1086571804 badon: Don't forget the large numbers of companies that use GPL'ed software *in* their business rather than *as* their business @1086571815 Riastradh: yeah. and i have the feeling (and hear similar things from americans) that this isnt the only thing in the us that needs to be worked out. for example, the way the US treat other countries has priority over the RIAA thing. @1086571815 Of course, you are still subject to fair use. You can't make and distribute copies without limits, regardless of the technology. @1086571819 many businesses won't use open source, and vice versa. So, we have two worlds of software.... @1086571830 Those are stupid businesses @1086571831 ...unless, of course, you have the rights to the music. @1086571838 rhashem: not really. @1086571840 We use quite a lot of OSS at work @1086571852 because it let's us write *our* software faster and cheaper @1086571874 same here... we're ditching the commercial ARM compiler for gcc @1086571911 We decided to use embedded Linux rather than pony up for VxWorks @1086571924 OPen source is clearly the way to go @1086571928 the only question is: @1086571942 quality and quantity @1086571963 Do we get the best possible solution if half the world is barred from open source? @1086571976 Why would the world be barred from open source? @1086571983 [prom!~prom@217.13.206.33] ACTION thinks that "the bazaar" is to chaotic and "the cathedral" is to closed. @1086572000 rhashem: I think you can figure it out @1086572002 commit by chris to examples: Job: icfp @1086572002 chris4 forms groups of 5 around food and kills of foragers. @1086572023 There's very little advantage for a company to use open source, so they roll their own. @1086572041 badon: it depends on the situation @1086572056 remember, 90% of software development is not making shrink-wrapped products @1086572069 and so, when they roll their own, they keep their source closed...hence, the GPL reinforces a culture of closed source @1086572124 Eg: We might change some code in the Linux USB driver to run our radio tuner. Do we care that we have to open the source for it? @1086572143 When our product has nothing to do with radio tuner drivers? @1086572156 rhashem: if it provides you company with a competitive advantage, YES, you would want to keep everything closed source @1086572209 It provides almost no competitive advantage to open the source for those changes, but is a competitive advantage not to have to roll our own USB drivers from scratch @1086572212 (btw... coming back to a moment to the mp3 problem. freedom of thought exchange has ABSOLUTE priority above music copyrights. you cant fiddle with the fundamentals of a system when only a part of the economy has problems with people not acting according to their copyright. exchange of information between private people must be completely uncontrolled.) @1086572252 rhashem: well, I'm speaking generally, you're speaking specifically...let's get on the same page here. @1086572289 What I'm saying is that for lot's of software, it doesn't make sense to keep changes to the OSS software that you use closed, because those changes have nothing to do with your business @1086572325 Like what Apple does with Darwin @1086572341 They're not in the business of selling OSs, they are in the business of selling hardware @1086572342 rhashem: I disagree...a company's natural instinct is not to give things away...by "default" they're going to keep things proprietary. THat's why viral licenses are necessary to suck them into the open source fray @1086572371 Just yesterday I incorporated some open source into a commercial product. @1086572376 ...instead of rolling my own. @1086572377 Those companies are going to have to adapt @1086572400 That was made possible by the open license of the code. Is "open" source really open if the license isn't? @1086572420 because if you can cut down your time to market by 10% at the cost of opening some minor changes to software, then you'd be stupid not to @1086572428 rhashem: well, they do. They build their own toolsets, and their own monopolies out of those toolsets. MS comes to mind. Like I said, GPL motivates proprietary thinking. @1086572431 Anyway, the ICFP contest looks interesting, and the Dylan code is making very cool use of macros. @1086572439 @1086572502 badon: I don't see how, eg: BSD, is any better in that situation? @1086572517 rhashem: that's my next point @1086572538 rhashem: bsd is not better, since it places very few demands on users of open source code @1086572562 rhashem: this, however, *is* better - http://www.zesiger.com/license/ @1086572590 BSD is pure to a fault, in it's line of ideology @1086572592 same for GPL @1086572617 The best solution is a compromise. @1086572636 One that gives freedoms to both the OSS crowd, and the business crowd. @1086572645 well, the CSS crowd @1086572654 it doens't necessarily need to be busines @1086572694 That license is unusable @1086572703 You're basically turning over your source code to one company @1086572713 rhashem: no @1086572726 rhashem: the company is forming a committee to handle it @1086572733 Retroactive changes? All disputes moderated by one committee? @1086572734 for now, there's no committee though @1086572751 rhashem: yep, that's the only way it can work. @1086572759 Why? @1086572787 because of the spectrum of international laws @1086572816 as a copyright license, its subject to the vagracies of international law anyway @1086572822 also, the legal systems in most countries are highly motivated by money @1086572855 rhashem: indeed, but it's a workable solution. @1086572862 -calvino.freenode.net- buggs^z (~noidentd@pD9E96037.dip.t-dialin.net) joined the channel @1086572874 I'd rather throw my lot in with the US legal system than some unknown company @1086572883 [badon!KCXYCL@166.70.55.40] ACTION sighs @1086572885 I'm not quite that jaded yet @1086572918 rhashem: read the first FAQ question @1086572928 It addresses that @1086572979 What's to stop the committe from extending the time to 100 years, and screwing any OSS proponents that put their software under that license? @1086572985 Or vice versa @1086573009 What's to stop a judge from ruling that the GPL is void? @1086573020 the US Constitution? @1086573023 no @1086573043 yes @1086573070 And as I said, this license itself could be declared void by a judge @1086573078 sure could @1086573080 as can anything @1086573100 But, the license does a better job of avoiding that than any other license @1086573109 It cannot @1086573116 Simply by taking out of the legal realm @1086573131 It's a copyright license --- it can't be taken out of the legal realm @1086573133 http://www.law.stanford.edu/faculty/radin/indiana.html @1086573162 *gulp* @1086573165 that's long @1086573174 rhashem: yes it can, it demands arbitration. Arbitration is a legally recognized dispute resolution method. @1086573179 rhashem: find GPL @1086573209 er no @1086573210 viral @1086573231 ral Contracts @1086573234 viral contracts @1086573244 it talks about the possibility that they could all be ruled invalid @1086573252 so far, they've never come before a judge @1086573265 but if they do, they can be ruled invalid based on several legal precedents @1086573326 Anyways, the Zesiger License is a good solution, I hope you don't dismiss it out of hand. @1086573334 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION dismisses it out of hand. @1086573338 The Zesiger license is no different in that case! @1086573346 rhashem: yep @1086573350 It does the same thing as the GPL, only with a time delay @1086573353 rhashem: except for one crucial difference @1086573365 rhashem: it eliminates "standing"\ @1086573403 it also introduces the concept of a third party arbitrating contract disputes @1086573420 Basically, no one has standing to argue that they've been harmed by the Zesiger License, so the courts cannot, and will not hear a case on it. On top of that, the license demands arbitration, which further limits the possibility of it ever being ruled invalid. @1086573445 Also, the logic on the original paper is flawed @1086573448 rhashem: arbitration isn't a new concept, it's old as law itself. @1086573457 The GPL cannot be a super-copryight --- it operates within copyright @1086573468 specifically: @1086573493 The license uses copyright to make copyright narrower (keeping in the public domain what otherwise would have been property of the improvers). @1086573517 That's not correct. Rather, it allows improvement wheras originally, the improvements would not be allowed at all @1086573529 it *wouldn't* be the property of the improvers @1086573563 also, arbitration is well-understood, but not in the context of copyright law @1086573570 The GPL usurps the rights of improvers, in a sense, and that's where a legal standing is created. @1086573593 but the improvers *have* no rights! @1086573599 that's the default case of copyright @1086573625 You're not allowed to take published works and "improve them." @1086573628 no, that's not true @1086573648 the RIAA would like to hear about why you think that's not the case @1086573670 well, you may be right on that. @1086573678 you had no right to improve "Gone with the Wind" until its copyright expired @1086573684 Yep @1086573685 OK @1086573692 or "Hit me baby one more time" @1086573692 door, brb @1086573853 back @1086574772 -calvino.freenode.net- buggs|afk (~noidentd@pD9E95ABC.dip.t-dialin.net) joined the channel @1086575189 commit by onesadcookie to : job: icfp @1086575189 5-circle defensive ant... much better than the original defensant @1086577238 gd hackers is the list I ought to subscribe to eh? @1086577319 any generic dylan lists? @1086577334 or is gd hackers pretty much it? @1086577497 commit by onesadcookie to : job: icfp @1086577497 minor improvements to search:, kill: @1086578520 well, calling it a night @1086579919 -calvino.freenode.net- larsr (~lars@ACC385A9.ipt.aol.com) joined the channel @1086580054 badon: the "generic" list is comp.lang.dylan on usenet, or (equivalently) the info-dylan mailing list @1086580082 ah, the info dylan mailing list isn't listed @1086580090 where do I subscribe? @1086580107 see the DylanHackers page on the wiki @1086580139 k, thanks @1086580662 commit by alexpotanin to examples: Job: icfp @1086580662 Ants. @1086581728 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086582247 hey cgay @1086582249 er @1086582251 cpage @1086582297 you should change your nick to chrisp...it has kind of a ring to it. @1086582524 Or a crunch. @1086582566 heh @1086582573 yep @1086585282 commit by bruce to examples: Job: icfp @1086585282 spiral update ... marks board well, makes trails home, doesn't yet follow them back @1086585282 and many ants get stuck ... all fixable soon I think... @1086588820 commit by alexpotanin to examples: Job: icfp @1086588820 Killer consumed onesadant4. @1086589844 -calvino.freenode.net- larsr (~lars@ACC385A9.ipt.aol.com) joined the channel @1086590561 -calvino.freenode.net- larsr (~lars@ACC385A9.ipt.aol.com) joined the channel @1086590561 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086590561 -calvino.freenode.net- buggs|afk (~noidentd@pD9E95ABC.dip.t-dialin.net) joined the channel @1086590561 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086590561 -calvino.freenode.net- badon (KCXYCL@166.70.55.40) joined the channel @1086590561 -calvino.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1086590561 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086590561 -calvino.freenode.net- bhoult_ (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086590561 -calvino.freenode.net- lisppaste (~lisppaste@common-lisp.net) joined the channel @1086590561 -calvino.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1086590561 -calvino.freenode.net- chandler (~chandler@chandler.registered) joined the channel @1086590561 -calvino.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1086590821 -calvino.freenode.net- lisppaste (~lisppaste@common-lisp.net) joined the channel @1086590821 -calvino.freenode.net- chandler (~chandler@chandler.registered) joined the channel @1086590889 -calvino.freenode.net- gabor_ (root@cantor.gwydiondylan.org) joined the channel @1086592166 Anybody know what wiki powers the Dylan Wiki? - http://monday.sourceforge.net/wiki/index.php/HomePage - It's valid XHTML 1.0 transitional, and it's the first one I've seen that's actually valid code. I'd like to get a copy of it. @1086592205 I'm going to bed, so if you know, throw me a /msg so I don't lose it in the scrolling. @1086593039 re @1086595258 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086601151 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086603050 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086604538 commit by alexpotanin to examples: Job: icfp @1086604538 Combo. @1086606464 commit by andreas to examples: job: icfp @1086606464 Tweaks. @1086607322 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086607590 commit by alexpotanin to examples: Job: icfp @1086607590 Combo ant by alex. @1086607862 commit by gabor to examples: job: icfp @1086607862 ant-subbrain with ways out @1086609053 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086609640 -calvino.freenode.net- CIA-1 (micah@hyperreal.info) joined the channel @1086610207 -calvino.freenode.net- buggs (~noidentd@pD9E95ABC.dip.t-dialin.net) joined the channel @1086611443 commit by gabor to examples: job: icfp @1086611443 seems to work now @1086612328 -calvino.freenode.net- CIA-2 (micah@hyperreal.info) joined the channel @1086612432 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086613009 <^self!~fn@66.209.66.105> so, how's the ant? @1086613221 mine suck :) @1086613290 commit by gabor to examples: job: icfp @1086613290 problematic @1086613339 commit by andreas to examples: job: icfp @1086613339 foo @1086613849 commit by gabor to examples: job: icfp @1086613849 Sense and Move work now @1086613932 commit by andreas to examples: job: icfp @1086613932 foo @1086614775 commit by bruce to examples: Job: icfp @1086614775 new combo ants @1086614916 commit by gabor to examples: job: icfp @1086614916 Flip can exit now too @1086615398 commit by andreas to examples: job: icfp @1086615398 foo @1086615403 commit by gabor to examples: job: icfp @1086615403 Drop and Turn too @1086615660 commit by andreas to examples: job: icfp @1086615660 foo @1086616472 commit by gabor to examples: job: icfp @1086616472 Mark and Unmark @1086616782 commit by andreas to examples: job: icfp @1086616783 foo @1086618016 commit by gabor to examples: job: icfp @1086618016 Sense Mark 2 @1086618121 commit by andreas to examples: job: icfp @1086618121 foo @1086618269 commit by gabor to examples: job: icfp @1086618269 Sense (Marker) now complete @1086619072 commit by andreas to examples: job: icfp @1086619072 foo @1086619863 commit by gabor to examples: job: icfp @1086619863 Pick now complete too @1086620156 -calvino.freenode.net- jemfinch (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086620511 commit by gabor to examples: job: icfp @1086620511 minor update @1086620732 commit by bruce to examples: Directory /var/lib/cvs/examples/ICFP2004/goodOnes added to the repository @1086620783 commit by bruce to examples: Job: icfp @1086620783 place to save good ants @1086621802 commit by andreas to examples: job: icfp @1086621802 foo @1086621897 commit by gabor to examples: job: icfp @1086621898 archive nonfinished shot at globals @1086622608 commit by andreas to examples: job: icfp @1086622608 foo @1086623372 commit by bruce to examples: Job: icfp @1086623372 submit script @1086623855 commit by bruce to examples: Job: icfp @1086623855 readme update @1086624749 -dircproxy- You disconnected @1086624932 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1086624934 Hi! @1086625928 hoi @1086626009 Hi! @1086626138 -dircproxy- You connected @1086627007 how did you approach the icfp task ? @1086627040 they've written a pretty good README file in examples/ICFP2004 @1086627069 Unfortunately, we lose big time. Found two better entries so far... @1086627098 any idea what they do better? @1086627120 Yes. Our ants get stuck too often, our attack and defense doesn't work right. @1086627180 Bruce's gatherer was only finished 3 hours before end, and that wasn't enough time to smoothly integrate it... @1086627418 how were you able to coordinate an attack ? @1086627454 You don't. These things have no brain to speak of. :) @1086627479 i read sth about killer ants ? @1086627551 well seeing how you did i feel a little better (my ant sucks) but at least yours aren't thousands of lines :) @1086627617 hi @1086627686 Hi hnnes. @1086627695 maybe that was to early you have big ant brains :) @1086627740 hi andreas @1086628146 -calvino.freenode.net- sprout (~Snak@w002.z065106067.sjc-ca.dsl.cnc.net) joined the channel @1086630899 -calvino.freenode.net- jemfinch` (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086634698 -dircproxy- You disconnected @1086639284 -dircproxy- You connected @1086639867 so-called "scripting" languages, or more precisely, interpreted languages...How do they fit in the world of Dylan? I was looking to use Ruby because C++ was so god-awfully complex...But now that I'm looking at Dylan, it doesn't seem to be as large of an issue (though I haven't dug too deeply yet). What do y'all think about the role interpreted languages like ruby and python play when Dylan is involved? @1086639904 Dylan isn't really involved in that area, as far as I know. @1086639961 hmm, let me rephrase @1086640007 scripting languages are good at some things that C/C++ are not. Does Dylan fill both roles? @1086640048 so far, Dylan has not been tried as a scripting language @1086640077 it's an application development language @1086640093 yeah, interpreted languages can be as well. @1086640108 Zope, bittorrent, etc. @1086640139 true... but Dylan doesn't try to go there @1086640146 But, it seems that the advantages they have over more complex compiled languages isn't as great when you're talking about Dylan @1086640173 maybe I just don't have a solid grasp of where "there" is. @1086640203 I'm currently writing an interpreter in Dylan for Jam, a domain-specific scripting language (specialized for building software, a la 'make') @1086640237 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION blows a gasket at discussion of 'interpreted' versus 'compiled' languages. @1086640291 good point @1086640297 Riastradh: What I want to know is when is the appropriate time to use each of them. @1086640303 Riastradh: why? @1086640320 The reason this issue came to mind is because Dylan reminds me a bit of Ruby. @1086640326 Is that like the Common Lisp people blowing a socket about "tail recursion optimizing" and "non tail recursion optimizing" languages? @1086640329 jemfinch, _languages_ are not qualified by being interpreted or compiled. @1086640346 Riastradh: Common Lisp is qualified by being compiled. @1086640356 (i.e., the standard defines a "compile" function) @1086640417 Hmm...so is anyone following what I'm asking about? @1086640435 sort of like this: @1086640451 Rapid prototyping vs. just doing it in Dylan @1086640471 the simple interpreted languages...are they still useful? @1086640496 yes, they are @1086640552 Dylan doesn't have qute the right set of libraries yet to do the same things people often do as one-offs in python or perl, and of course the compile step is a put-off @1086640575 yeah, it took like a minute and a half just to compile hello world @1086640596 make-dylan-app was pretty slick tho @1086640600 there was some work done on 'dylan-script' in FunDev, but i'm not sure how far it got @1086640645 doesn't seem like it got very far to me @1086640646 of course, if you always have your FunDev IDE running, theoretically you can do one-offs in the interactor @1086640657 ok @1086640675 Well, I was considering putting off ruby for a while, that's why I'm asking. @1086640677 1.5 mins to compile hello-world? you must have a fairly old machine @1086640704 housel: ah, it was probably more like 45 seconds, but it was much longer than the equivalent in C++ @1086640704 it takes < 20sec on my 600MHz Crusoe laptop @1086640722 I did it on a 1Ghz Celeron @1086640735 dedicated to the task @1086640748 i think it would be nice to go a bit further towards scripting abilities in Dylan by fixing the libraries a bit (better string utils come to mind) but i don't care about eliminating the compile step @1086640814 -calvino.freenode.net- OneSadCookie (~keith@metnet.met.co.nz) joined the channel @1086640824 speaking of which, i would like to put a few utils in common-dylan: an updated 'split' function, 'join', and 'replace' @1086640840 housel: do you see any problem with that? @1086640915 does dylan offer separate compilation of non-sealed generic functions? @1086640959 OK, well, next step...What's involved in making a windows exe? Is it straightforward with gwydion? How should I approach that? @1086640968 I do most everything on a freebsd machine. @1086640971 cgay: sounds fine, given some discussion on info-dylan first @1086640974 jemfinch: FunDev does @1086640976 GCC can cross-compile right? @1086641012 badon: yes, but it's tricky to build gcc cross-compilers @1086641013 ok, i'll send a message sometime this week @1086641016 GCC can cross-compile, but it's not very windows-friendly @1086641028 So what's the best way to approach that? @1086641044 I've got to have things work on windows, no question about that. @1086641046 do it on windows using a compiler other than GCC? @1086641066 well, Gwydion uses GCC right? @1086641104 cgay: IIRC there's some confusion about the exact API of split()... the common-dylan source says one thing, and the testworks tests say another @1086641110 yes, but it shouldn't care... adding support for MSVC for example should just work, if the C code generated is portable enough @1086641156 ok, well i've changed it anyway @1086641157 OneSadCookie: Hmm, I'd like to keep just one build system though. Since all the GNU tools are cross platform, and MSVC is not, I choose GNU @1086641159 Gwydion was developed using MSVC (2.0)... but nobody's bothered building MSVC binaries for it for a long time @1086641195 pardon the noob questions, but I like to know my way around before I dive into details too much. @1086641205 calling GCC cross-platform is a little misleading... there's GCC for windows (MinGW) but I don't know how much like the GCC trunk it is... @1086641206 badon: you can use the devel/mingw32-binutils and devel/mingw32-gcc FreeBSD ports @1086641219 there y'go :) @1086641238 housel: OK, I've heard of mingw...that's designed to produce windows executables? @1086641245 yes @1086641254 from a *nix platform? @1086641264 or Win32 @1086641270 either eh.. @1086641272 that's cool @1086641282 I'll be sticking with *nix as much as possible probably tho @1086641286 (in which case it serves as a free native devel platform) @1086641301 OK, let me get those two ports, and I'll be right back. @1086641313 Ah crap, I still need to figure out portupgrade too @1086641317 better do that first @1086641333 -calvino.freenode.net- larsr (~lars@ACC66209.ipt.aol.com) joined the channel @1086641345 once you install portupgrade, you can just do "portinstall devel/mingw32-gcc" @1086641374 housel: I'm still looking for a blurb on exactly what portupgrade is, heh. @1086641389 I gave you a link yesterday @1086641428 http://www.onlamp.com/pub/a/bsd/2003/08/28/FreeBSD_Basics.html @1086641429 yep, reading through it now @1086641542 -calvino.freenode.net- OneSadCookie (~keith@metnet.met.co.nz) left the channel @1086641543 hmm @1086641557 it says to do "make install clean"...I've been doing make; make install; @1086641588 that's fine @1086641607 well, I've got tons of junk left over from the gwydion install @1086641622 I'm guessing the "clean" part of that is supposed to take care of it @1086641636 yes @1086641648 it deletes the "work" directory, basically @1086641652 Is there a slick way to do a clean on everything I've installed so far? @1086641666 And, what should I be doing in the future? @1086641670 cd /usr/ports; make clean @1086641680 make; make install; make clean; @1086641681 if you use portupgrade/portinstall it will do that for you @1086641687 OK @1086641693 there' @1086641696 thanks housel @1086641700 there's also a portsclean @1086641730 (in the same package, sysutils/portupgrade) @1086641733 All this seems like it could be automated....I wonder why it's not. @1086641749 portupgrade counts as part of the automation @1086641769 k @1086641929 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION just dropped by for a second to read the log, but would like to clarify that separate compilation is orthogonal to sealing; sealing doesn't prevent or enable separate compilation @1086641974 cpage: ok, so answer me this :) @1086641974 Sealing enables optimizations when building a library. @1086641993 How does an unsealed generic function that's already compiled "integrate" a dispatch for a new class? @1086642055 Open generics can have methods added to them at runtime, where that means both explicit code that alters the contents of the generic, and the act of loading another library into the runtime that has additional methods for the generic. @1086642121 well, yes, but *how*? :) @1086642174 that's up to the implementer @1086642188 it could just add the methods to the GF's list of methods @1086642203 possibly invalidating a method cache @1086642220 it could re-generate code for a new discriminator function @1086642286 A really ambitious implementation could keep enough information around to enable it to recompile and optimize all the code that references the generic. @1086642338 I believe the FunDev runtime more or less just calls add-method() on every method in the library when it is loaded. @1086642363 So it does whatever it does for explicit code. @1086642386 What it does, however, is an implementation detail, as housel said. @1086642840 -calvino.freenode.net- larsr (~lars@ACC66209.ipt.aol.com) left the channel @1086645735 man, that clean is still going @1086645808 it does tend to take awhile, so I usually don't bother @1086645827 especially if I'm using portupgrade, which cleans up after itself anyway @1086645830 well, you probably clean when you install eh? @1086645832 yep @1086645864 is it safe to su and start installing new stuff while it's cleaning? @1086645930 I'd advise against it @1086646011 k @1086647947 How much of this introduction is currently relevant? - http://www.gwydiondylan.org/gdref/gduser/gduser-intro.html - There's a lot of mentions of shortcomings and problems and the like, but it says "as of summer 1998"...that was a while ago. @1086648081 I'd say things have improved considerably since then @1086648121 Hmm...yeah, that was my impression as well @1086648137 that's awfully bad to have your docs say things like that, when they're no longer true @1086648148 Who runs gwydion.org? @1086648248 All of the committers (including myself) can update the XML file @1086648251 Shane Sheppard? @1086648270 gwydion.org? I have no idea @1086648308 that has nothing to do with us @1086648317 oh really? @1086648327 now I'm thoroughly confused @1086648337 we're gwydionDYLAN.org @1086648339 oh, oops @1086648343 right, heh. @1086648358 lemme whois the right domain now... @1086648383 ah, andreas @1086648395 andreas owns the domain and pays for the server colo @1086648431 I've been fixing things on the wiki...but I can't do that on the main set of docs... @1086648453 submit bugs to bugzilla @1086648475 greek to me. @1086648476 :/ @1086648490 oh well, I'll just keep reading and quit complaining @1086648506 just be prepared for more noob questions... @1086648527 it's labeled "Bug Tracker" on the left-hand side of the page @1086648563 ok, looking @1086648751 Well, just after all of my conversations with you, I know I could make an improvement to this page - http://www.gwydiondylan.org/gdref/gduser/gduser-freebsd-installation.html @1086648781 What are the odds of getting those docs wiki'd? I'm sure you guys would rather do something more important than spellchecking. @1086648810 I seem to be developing an interest in getting involved here... @1086648821 but don't quote me on that just yet, he. @1086648822 heh. @1086648823 someone would have to write a DocBook => wiki markup converter @1086648846 in XSLT, for instance @1086648878 Hmm...Would it be easier to just do some copy paste work? @1086648892 At least, that's how I'd approach it, since I'm not a programmer. @1086648901 (if you haven't already noticed: @1086648903 ) @1086648959 sure, if you're not afraid of manual labor @1086649005 Actually, I just might do that. @1086649028 I could plug it all into the wiki any time I started feeling ambitious I suppose @1086650129 -calvino.freenode.net- doublec (~doublec@coretech.co.nz) joined the channel @1086650164 hi chris @1086650185 hello @1086650983 [badon!KCXYCL@166.70.55.40] ACTION waves @1086651778 -calvino.freenode.net- pritlove (~pritlove@pD9E7B059.dip.t-dialin.net) joined the channel @1086651909 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086652050 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1086652050 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086652050 -calvino.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1086652065 wow, several hours later...still doing clean @1086652065 got a gig free so far tho @1086652082 -calvino.freenode.net- pritlove_ (~pritlove@pD9E7B059.dip.t-dialin.net) joined the channel @1086652099 -calvino.freenode.net- cpage_ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086657154 -dircproxy- You disconnected @1086657228 afternoon! @1086657234 hi @1086657299 so our ant sucks at defence :-( @1086657322 you were saying that Dylan reminds you of Ruby? @1086657327 -calvino.freenode.net- larsr (~lars@ACC01BD5.ipt.aol.com) joined the channel @1086657327 Our ant kind of sucks at most things. @1086657376 We took _WAY_ too long to get a working simulator, because I misorganized our team. This really hurt the ant brain development. @1086657405 (it was _Sunday_ before we could run any ant brains) @1086657433 bhoult_: oh, yes @1086657446 bhoult_: it's simple and clean syntax @1086657455 I'm just getting into it tho @1086657465 ...Ruby...simple & clean syntax...? @1086657465 but that's my first impression @1086657468 Well I'd say the resemblence goes entirely the other way around :-) @1086657490 bhoult_: perhaps it's moot, since they have nothing to do with each other @1086657495 anyways @1086657513 I do think that Ruby is the best of that language group (Perl/Python/Ruby) in terms of the combination of language features and syntax @1086657514 from here - http://www.gwydiondylan.org/books/dpg/db_25.html - define variable *her-number* = 3; @1086657536 why isn't that done with := ? @1086657681 Because ":=" is assignment. @1086657704 cpage: isn't that essentially what's being done when initializing a variable? @1086657721 Oh, actually that line in particular is a typo. @1086657742 Oh, wait: The line after the definition is a typo. @1086657759 Oh, no it isn't. I am obviously tired. @1086657779 cpage: yeah, I was just bitching out housel about all the problems in these docs...particularly the gqydion docs. It's not wiki'd, and if it were, I'd fix it. @1086657786 cpage: heh @1086657804 Anyway, this is a FAQ, and you're right that it seems a little odd, but the fact is that ":=" implies possibly more than binding, whereas "define variable *v* = 1;" or "let v = 1;" only perform binding. @1086657847 badon, binding is not the same as assigning. @1086657899 well, = is also a similarity test...and binding is more similar to assigning than a predicate test @1086657907 The real question is why is "=" used for both comparison and binding. The answer is probably that ASCII doesn't offer a lot of good alternatives. @1086657939 You could use == for identity comparison and =~ for structural comparison. @1086657958 For binding, "=" is in a special context where there's no ambiguity, so there's no hard reason for not using it (in terms of parsing the code.) @1086657978 = isn't an operator there; it's part of the syntax for variable definitions. @1086657979 it just doesn't seem consistent @1086658002 Yeah, I'm not happy about ~= being used for "not equal" because the tilde makes it look to me like it ought to be "approximately equal to". @1086658019 indeed @1086658020 hmm @1086658025 != @1086658027 Not equal should be /=. @1086658031 Or =/. @1086658035 that's what I would have expected @1086658043 I understand, badon, I thought the same thing when I first encountered Dylan, but it's not a big deal because it's unambiguous. @1086658056 Or <> @1086658064 cpage: so you're saying don't get hung up on it.. @1086658072 The fact is ASCII is a lame character set to use for a programming language. @1086658093 I don't really like <> at all. It looks like, um, a tilted square, nothing at all regarding comparison. @1086658122 <> is a comparison operator? @1086658136 badon: Essentially. But what I'm trying to stress is that it's not a real problem in practice. There are always little things like that in any language, where there is no clearly better alternative. @1086658137 It's often the negation of equality comparison. @1086658158 <> is used in some languages, such as BASIC to mean "not equal." @1086658262 I'll keep reading @1086658610 some people find Dylan's syntax too wordy, and certainly things such as "define function f(x,y)" are longer than Ruby's "def f(x,y)" @1086658643 I prefer verbosity to cryptosity @1086658645 but in many ways Dylan and Ruby share a common philosophy ... from their shared inspiration in Smalltalk @1086658672 I find it strikes a good balance between too verbose and too terse. @1086658702 Dylan was also (very heavily) influenced by Common Lisp and so has powerful macros and multimethods, which very few other languages have (and Smalltalk and Ruby don't) @1086658708 There's a good amount of redundancy that enhances readability. Terseness is useful for entering text and for short snippets of code, but can make it harder to read full-size programs. @1086658726 Yeah, if I'm spending a month writing a few hundred lines of code, I don't give a shit if it takes a few more milliseconds to type out a line. @1086658733 exactly @1086658745 it's a factor for the one-liners that I use Perl for though @1086658771 see e.g. the tiny "assembler" I wrote as part of the contest @1086658775 It really annoys me when I have to read docs to figure out what 'cp' does in *nix @1086658782 they saved, what, TWO letters? @1086658784 BFD @1086658791 The main issue is that we're using static, plain text files for code. If code presentation and storage were more separated, you'd be able to view the code as tersely or verbosely as you like at any given moment. @1086658814 cpage: are you talking about apple dylan? @1086658825 I'm talking about "They way things ought to be" :-) @1086658834 cpage: I seem to have read somehting about that concept somewhere @1086658840 oh @1086658841 cpage: true, but there's also the question of syntax extension by the user, and it being parsable by toold @1086658841 it was knuth @1086658843 tools @1086658847 intelligent programming @1086658849 or somesuch @1086658858 literate @1086658861 Although, Apple Dylan has a bit of that, in that when you collapse a source record, it displays an icon to indicate the contents and hides "define method" for example. @1086658862 literate programming @1086658867 Literate programming is different. @1086658889 What cpage is talking about is having an IDE whose editor is not for _text_, but whose editor operates on an AST. @1086658907 standard Dylan has "define {constant, variable, class, method, function, generic}" but the user can add arbitrary new things with consistent syntax @1086658908 Well, operates on "programs," whether it's implemented using an AST or something else. @1086658911 Riastradh: well, the way to make literate programming work is to be able to use a "browser" that can strip either code or comments as needed, amongst other things @1086658938 Exactly. Code presentation and editing needs to be more dynamic and higher-level. @1086658970 cpage, what could it be besides an AST? @1086658970 cpage: it's a very CSS way of doing things @1086658973 badon: are you familiar with what Dylan means by "macros"? @1086658990 hint: it's not at *all* what C means @1086658995 bhoult: I read through a quick mention of it, it's a means to extend the language @1086659012 right @1086659017 well, I don't know what it means in C, so I'm fine :) @1086659031 in fact all the standard statement types are implemented as macros in the standard library @1086659041 [badon!KCXYCL@166.70.55.40] ACTION has had a few make-out sessions, but he's still a virgin programmer. @1086659049 if/for/while etc @1086659070 the standard dylan lib? @1086659075 I didn't know there was such a thing yet @1086659161 it's called "dylan". @1086659165 or "common-dylan" @1086659192 you could instead start your program by importing the library "c-emulation" ... if you'd written it @1086659225 .. and then blocks would be enclosed with { } @1086659229 -dircproxy- You connected @1086659262 there *is* a lowest level that can't be redefined though @1086659305 but if you want to use a custom version of the "if" statement then that's trivia; @1086659319 hmm @1086659326 I'll have a look @1086659328 import common-dylan, exclude: {if} @1086659350 define macro if ... end; @1086659396 e.g. @1086659416 define macro if; @1086659463 I need to keep reading, so I can better follow what you're talking about. @1086659477 well don't worry too much @1086659481 it's powr-user stuff @1086659504 k @1086659523 but for example ... gabor used macros to allow us to write ant assmeblerr as a sublanguage within Dylan @1086659595 haha @1086659596 cool! @1086659633 http://www.gwydiondylan.org/cgi-bin/viewcvs.cgi/examples/ICFP2004/brain-compiler/test-brain.dylan?rev=1.36&content-type=text/vnd.viewcvs-markup @1086659651 looking @1086659680 ah @1086659685 now that's ruby-esque @1086659714 I've seen ruby syntax that says eat.poo.eatagain @1086659714 hehe @1086659769 -calvino.freenode.net- larsr (~lars@ACC01BD5.ipt.aol.com) left the channel @1086660299 hmm @1086660315 so, any particular reason why := isn't used for initialization? @1086660334 It's not assignment. It's binding. @1086660345 I mean, if it's a unique context, it shouldn't matter... @1086660358 just like using = doesn't matter because it's a unique context... @1086660385 the conceptual leap between "binding" and "assignment" is miniscule. @1086660401 Yes, but = is used mathematically for both comparison and assertion of equality -- i.e. declaration of binding --, whereas := is _only_ assignment. @1086660530 assertion of equality = binding? @1086660549 yeah, I suppose so @1086660577 but, I think that's not the best way to do that. @1086660602 First thing I'll do is come back in here and ask bhoult how to set up a macro to redefine that. @1086660612 once I know what I'm doing @1086660620 What's the best way to 'do that?' @1086660657 well, binding and assignment are very very close to the same thing. just use := @1086660667 Wrong. Binding and assignment are _very_ different. @1086660671 ok @1086660679 maybe I've missed something then @1086660684 Binding is purely declarative. There is no _mutation_ involved. @1086660689 Assignment _changes_ something. @1086660691 mutation? @1086660697 ah,k @1086660699 Modification. Change. @1086660728 yeah, and I don't see what the big deal is. You start with something that's nothing, then make it something. That's "mutative". @1086660745 reading from left to right, that is. @1086660769 No. You don't read the definitions from a Dylan file start to finish and evaluate them as you go along; a Dylan file is not a sequence of actions. @1086660784 I'm speaking conceptually. @1086660869 I just don't think there's any significant difference between assigning initially and assigning later-ly. @1086660876 Pardon my hacking of the verbiage @1086660899 It's _not_ assigning initially. @1086660909 There _is_no_change_. A Dylan file is _not_ a sequence of actions. @1086660938 Binding a _declarative_, not an _imperative_; assignment is the other way around. @1086660988 OK, what's the difference between declarative and imperative? @1086661018 An imperative is an action. A declarative merely declares a state of being. @1086661034 yeah @1086661045 and, to me, declaring a state of being is an action. @1086661053 No. They're fundamentally different. @1086661062 maybe under the hood they are @1086661071 No, they are _conceptually_ fundamentally different. @1086661082 how? @1086661103 A declaration just isn't an action. It is merely a state of being. @1086661116 yes... @1086661126 This is just fundamental in computer science. I can't describe it more elaborately than that. @1086661148 Well, then, I disagree, and we'll leave it at that. @1086661162 := should assign and initialize. @1086661168 that's my opinion. @1086661169 -calvino.freenode.net- buggs^z (~noidentd@pD9E955E1.dip.t-dialin.net) joined the channel @1086661172 Then you're going to have a hard time communicating about computer science. @1086661191 Riastradh: well, CS is more under the hood types of things. @1086661198 No, that's engineering. @1086661204 I'm talking about a more abstract level @1086661207 I am too. @1086661240 Imperatives and declaratives are just different principles of computer science. @1086661269 Granted, the compiler probably does something different for each of those situations, but must the language force me to be aware of it? No, I don't think so. @1086661304 It's true in natural language as well. 'He is a dweeb' is _completely_ different from 'he shall be a dweeb,' or, equivalently, 'I command him to be a dweeb.' @1086661319 yep @1086661331 Likewise, binding a variable is _completely_ different from assigning a variable. @1086661358 but not when it's translated into natural language. @1086661374 define variable *x* = 5; @1086661376 is like @1086661378 x. x is 3. x is now 10. @1086661382 The variable *x* is 5. @1086661386 *x* := 5; @1086661387 is like @1086661398 *x* shall henceforth be 5, or I command *x* to be 5. @1086661421 how about this: @1086661445 make x. Now, make x be 3. Now, change x to be 10. @1086661465 No, that's not the right model. That would be the model under the hood, as you describe it. @1086661477 I suspect you're getting seriously tripped up by languages like Ruby that conflate assignment & binding. @1086661480 yeah, and it makes sense. @1086661495 Riastradh: actually, I haven't even looked at ruby syntax yet. @1086661502 What languages do you know? @1086661510 C++ and that's it. @1086661573 It's not that you tell Dylan to make *x*, and then make it be 5. You just say *x* is 5, and that's that. Then, when you want to _perform_an_action_, you say '*x* shall henceforth be .' @1086661599 basically, I'm saying that the difference between "make x. Now, make x be 3. Now, change x to be 10." and "x is 3. Now change x to be 10." is pretty small, and not worthy of a syntax change. @1086661622 No, it's _not_ small at all. The latter is abstract, and more general; the former is specific to a certain model of variables. @1086661633 under the hood @1086661662 The former _exposes_ what's under the hood, and _forces_ a certain exposure. @1086661679 OK, let's assume for a moment that I wave my magic wand and suddenly := is used for "binding" and assignments...would that break somehting? @1086661758 No, but 'breaking' has nothing to do with conceptual correctness. @1086661780 There are a lot of things you could do without 'breaking' anything. @1086661784 well, anytime I wanted to give a value to something, I'd use := @1086661789 that's pretty simple @1086661791 easy to remember @1086661796 and makes sense @1086661821 Fine. But that 'something' doesn't just magically start existing when you first assign it; it comes into existence by _binding_. @1086661838 Riastradh: agreed @1086661845 Riastradh: but that's a detail I don't care about. @1086661852 I just want it to be some value @1086661852 the mnemonic is, use := if you want to change the value of something that already has one @1086661885 But why should I care if it already has a value? I want to change it, and I don't want the compiler to argue with me. @1086661907 So, I don't see the point in giving it a different syntax. @1086661942 badon, if you don't care that you're changing something, why are you using assignment in the first place? @1086661971 I don't care that's it's not what it was before, I want it to have the new value I want to assign to it. @1086661995 But if you don't want to change existing state, why assign? @1086662009 what do you mean? @1086662026 I'm saying existing state is irrelevant, if I want to assign. @1086662062 Consider: let x = 1; *x* := x; let x = 2; x := 3; @1086662081 OK, what about that? @1086662090 Consider it. @1086662098 [badon!KCXYCL@166.70.55.40] ACTION ponders @1086662123 badon, the top level 'define variable' just describes the state of being _as_it_is_. There's just no change. When running a program, things can change, and that's where assignment comes in. There's no assignment before running the program. @1086662129 How many x's are there? @1086662136 3 @1086662141 2 @1086662146 *x* doesn't count as x. @1086662155 x = 1; @1086662159 x = 2; @1086662163 x := 3; @1086662174 Replace *x* with a closure over the first x. @1086662193 closure? @1086662198 I don't know what that means @1086662201 Bingo @1086662212 -calvino.freenode.net- larsr (~lars@ACC01BD5.ipt.aol.com) joined the channel @1086662241 are you going to explain it? @1086662254 badon, I think you need to read SICP or HtDP or something. @1086662263 I'm not actually here right now, so I hope someone else will. @1086662276 cpage: k, I'll look for it @1086662285 Riastradh: already reading. @1086662294 badon, which one, and how far in are you? @1086662295 Riastradh: that's where these questions come from. @1086662306 here's an example: @1086662335 suppose you have a global variable called x. does x := foo make a new, local, x or change the global one? @1086662340 Riastradh: well, I skipped to the bit about the asterisk nomenclature. @1086662353 badon, what book are you reading? @1086662379 Riastradh: http://www.gwydiondylan.org/books/dpg/db_25.html @1086662398 SICP = http://mitpress.mit.edu/sicp/ @1086662407 OK, that's not SICP or HtDP. @1086662410 bhoult: hmm? @1086662417 That's a book intended for someone already with plenty of programming experience. @1086662431 HtDP = http://www.htdp.org/ @1086662446 Neither SICP nor HtDP use Dylan, but it's not the language they use that's relevant. @1086662460 (they use Scheme, but they're _about_ computer science, not Scheme) @1086662480 bhoult: want to explain that foo bit to me? @1086662506 explain it how? @1086662538 bhoult: well, why did you ask that? What are you trying to point out? @1086662541 FOO was just a random thing. It's irrelevant to the meaning of Bruce's question. @1086662549 Riastradh: Oh, I know @1086662556 I'm talking about that whole comment @1086662558 sorry @1086662567 badon, he was trying to clarify the difference between assignment and binding. It's a pretty simple question. @1086662581 how do you know if some code is an assignment to an existing variable, or a definition of a new one? @1086662593 Riastradh: but, he mentioned copies...C/C++ makes copies on occasion... @1086662620 Bruce didn't even say the word 'copy.' @1086662629 bhoult: I would expect to see "define variable" @1086662641 inside a function? @1086662674 lets' stick to Dylan syntax for now @1086662687 Riastradh: in C/C++, passing by value makes a copy of the argument, and it is a new, local object, just as bruce described. So I called it a copy. @1086662697 x := 3 changes an existing variable called x @1086662730 badon, the specifics of FOO don't matter. What matters is the variable model. @1086662743 Is there a new variable created -- bound --, or is an existing one assigned? @1086662747 x = 3 compares x to three, producing #t or #f, and returns that as the result of the block or function it is on (unless it's not the last thing) @1086662763 bhoult: OK, I got that. @1086662770 let x = 3 makes a new variable called x. the old x still exists @1086662794 a new variable called x? @1086662808 how does one differentiate between x and x? @1086662815 In the same scope, one doesn't. @1086662820 OK @1086662821 so: begin let x = 1; begin let x = 3; end; format-out("%d", x) end @1086662825 prints 1 @1086662856 hmm @1086662858 tricky @1086662871 No, it's very simple. @1086662877 OK, I need to do more reading before I can argue with you fellas @1086662878 LET binds. It does not assign. @1086662886 There is a great deal of difference. @1086662966 could the Dylan designers have made "let" syntax: "let x := 3". Yes. That would be possible, and unambiguous. @1086662974 but it would suck :-) @1086662978 But it would look like LET assigned instead of bound. @1086662979 oh! @1086662989 here's a point you possibly dont' understand @1086663001 a lot of programmers try to write programs without using := at all @1086663011 (such as me) @1086663051 Well, that makes no sense to me. @1086663065 I'll keep reading @1086663070 need to get over the learning curve. @1086663078 badon, yes, please read all of HtDP or SICP, or, preferrably, both. @1086663080 (in that order) @1086663098 got an url for HtDP? @1086663103 http://www.htdp.org/ @1086663107 (housel already pointed to that) @1086663151 yeah, I missed it in the scrolling @1086663155 I got SICP tho @1086663156 Not using := at all, which is one of the main points of functional programming, makes plenty of sense: I just bind; I don't assign. (well, while I _avoid_ assignment as much as possible, it's not _entirely_ so) @1086663226 Let me wrap my mind around all this, then maybe I'll agree with you...But I reserve the right to insist that everything be brain-dead simple, regardless of the underlying concepts :) @1086663260 Everything should be as simple as possible, but no simpler. What you suggest, conflating assignment & binding, is _too_ simple, and introduces complexities such as the one bhoult described above with LET. @1086663276 which I didn't understand @1086663287 I ought to copy it so I can refer to it later @1086663287 Right, for which reason you need to read HtDP & SICP. @1086663292 k @1086663305 I'll just bag this whole convo @1086663305 (you'll gain a _great_ deal of understanding beyond variable models, too, if you read them) @1086663709 ok, clean is done @1086663717 ? @1086663744 I couldn't install stuff because I was cleaning the mess left over from all my previous installes @1086663749 installs @1086663774 I just tried to install portupgrade, but it's bitching about ruby... @1086663783 so I'll figure that out, then go after some more tools. @1086663899 oh wait, that's not what it's bitching about @1086663901 "used OpenSSL version contains known vulnerabilities" @1086663913 so it won;t let me get portupgrade @1086664002 I think I got it under control tho. @1086664019 housel's walked me through this a couple times already @1086664197 As a general rule, the difficulty in understanding a program is proportional to the number of times := appears in it @1086664238 or, at least, some function of it @1086664812 that makes sense @1086664852 And programs that perform no assignment whatsoever provide _massive_ ease to analysis. @1086665202 -calvino.freenode.net- jemfinch|lambda (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086666400 housel: http://rafb.net/paste/results/VNxeDh21.html @1086666512 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION points at lisppaste. @1086666547 ? @1086666554 lisppaste: url @1086666555 To use the lisppaste bot, visit http://www.common-lisp.net/paste/new/dylan and enter your paste. @1086666561 That's the preferred method of pasting. @1086666584 it's better than all the other pastes out there? @1086666590 badon: yes, try it. @1086666602 ah, cool @1086666606 it *is* better @1086666607 In that the author is right here in the channel and very willing to hack it to your desires, certainly. @1086666621 Riastradh: you wrote lisppaste? @1086666623 (well, OK, not to arbitrary desires, but he does hack it quite a lot) @1086666625 No, chandler did. @1086666628 ah, ok. @1086666630 rafb author hacks to my desires as well... @1086666631 ususally @1086666635 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION doesn't speak of himself in the third person. @1086666651 this sentence is false. @1086666652 :) @1086666672 badon pasted "testpaste" at http://www.common-lisp.net/paste/display/1216 @1086666689 nice @1086666706 and you can annotate your pastes. @1086666710 rather than starting new ones. @1086666724 You may have a hard time convincing chandler to write a Dylan syntax highlighter, though. @1086666741 badon annotated #1216 with "more poo" at http://www.common-lisp.net/paste/display/1216#1 @1086666902 And all pastes are persistent, too. @1086667327 [housel!housel@cantor.gwydiondylan.org] ACTION tries installing the MinGW port for himself @1086667469 [badon!KCXYCL@166.70.55.40] ACTION waits for the results @1086668284 housel ~ % mingw32-gcc --version @1086668284 mingw32-gcc (GCC) 3.3.1 (mingw special 20030804-1) @1086668298 installed with no glitches @1086668444 hmm @1086668450 Why did mine die? @1086668486 my cvsup quit working too @1086668496 dunno if you saw that in the paste @1086668540 cvsup died because your X libraries disappeared @1086668556 you could install net/cvsup-without-gui @1086668619 not sure what you did to break X11 @1086668853 I did clean today @1086668859 and I installed portupgrade @1086668882 how do I fix X? @1086668890 I actually use it... @1086668924 I didn't do anything other than clean the ports and install portupgrade @1086668949 cleaning the ports took a good 6 hours or something ridiculous like that @1086668975 are you in X now? @1086669000 yep @1086669017 I'm doing all this trhough an ssh session on this machine tho @1086669030 so I'm not using X, even though it's running. @1086669089 does /usr/X11R6/lib/libXaw.so* exist? @1086669100 looking @1086669132 /usr/X11R6/lib/libXaw.so @1086669132 /usr/X11R6/lib/libXaw.so.6 @1086669132 /usr/X11R6/lib/libXaw.so.7 @1086669132 /usr/compat/linux/usr/X11R6/lib/libXaw.so.6 @1086669134 /usr/compat/linux/usr/X11R6/lib/libXaw.so.6.1 @1086669134 /usr/compat/linux/usr/X11R6/lib/libXaw.so.7 @1086669135 /usr/compat/linux/usr/X11R6/lib/libXaw.so.7.0 @1086669137 I got those @1086669170 ok, that's fine @1086669255 what does "ldd `which cvsup`" say? @1086669284 su-2.05b# ldd `which cvsup` @1086669284 /usr/local/bin/cvsup: @1086669284 libz.so.2 => /usr/lib/libz.so.2 (0x2821f000) @1086669284 libutil.so.3 => /usr/lib/libutil.so.3 (0x2822c000) @1086669286 libmd.so.2 => /usr/lib/libmd.so.2 (0x28235000) @1086669286 libXaw.so.7 => not found (0x0) @1086669287 libXmu.so.6 => not found (0x0) @1086669290 libXext.so.6 => not found (0x0) @1086669291 libXt.so.6 => not found (0x0) @1086669293 libSM.so.6 => not found (0x0) @1086669295 libICE.so.6 => not found (0x0) @1086669297 libX11.so.6 => not found (0x0) @1086669299 libm.so.2 => /usr/lib/libm.so.2 (0x2823e000) @1086669301 libc.so.4 => /usr/lib/libc.so.4 (0x28259000) @1086669303 su-2.05b# @1086669352 hmmm... looks like an ldconfig problem @1086669373 deinstall reinstall? @1086669420 no, not needed @1086669467 is there a "ldconfig_paths=" line in /etc/rc.conf? @1086669481 looking @1086669537 mine says: @1086669540 ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib" @1086669540 nope @1086669555 nothing like that @1086669589 add one like that one @1086669602 oik @1086669603 ok @1086669659 done @1086669665 now what? @1086669667 now run: @1086669691 ldconfig -m /usr/lib/compat /usr/X11R6/lib /usr/local/lib @1086669705 done @1086669757 ldd should give reasonable results now @1086669779 try installing stuff now? @1086669809 try running cvsup @1086669840 yep, it's workin @1086669842 g @1086669850 why was there a problem? @1086669856 Something not packaged right? @1086669891 OS install-time problem I suspect @1086669900 yep @1086669902 lame @1086669919 Somebody needs to throw some money at *nix devs. @1086669937 Luckily, BSD stuff is licensed in such a way to make that possible. @1086669947 badon: you're dumb. @1086669947 I hope it happens too @1086669964 jemfinch: suck it. @1086669976 badon: go do some real work instead of just baiting people with your vitriol. @1086669984 baiting? @1086670017 and if you insist on trying to start arguments, you should at least try to start *intelligent* ones, based on reason, rather than FUD like, "Oh NOES! YOU CAN'T PAY PEOPLE TO WORK ON GPL STUFF!!!!1!" @1086670057 You know, I don't care if you like GPL. I don't. So stuff it. @1086670082 badon: I don't care if you don't like it, but you shouldn't lie about it. It's both rude and unethical. @1086670091 housel: everything's working now, thanks a bunch. @1086670093 baiting or not, discussions about licenses are, for the most part, off-topic on #dylan @1086670097 I'm getting mingw @1086670098 people get paid to write GPLed code *every day*. @1086670130 housel: sorry, he was spouting off about it yesterday because he's one of those zealots who suspends reality in an attempt to support his opinions. @1086670139 jemfinch: that's great for them. They don't get any of my money. @1086670181 badon: why does #dylan need to know either your budget or your opinion on licenses? Especially, why should your lies be announced for the world to see? @1086670219 the funny thing is, all my personal code is licensed under a no-advertising BSDL. I just can't stand intellectually dishonest people. @1086670219 Because that's how I choose my software. @1086670227 badon: but no one cares how you choose your software! @1086670245 jemfinch: well, then why are you bother me? @1086670247 and rather than try to use such opinions to start arguments, you should keep them to yourself in the name of "society." @1086670248 bothering. @1086670267 badon: I bother you because you (a) try to start arguments, and (b) lie in order to support your opinion. @1086670270 jemfinch: go fuck your GPL and make little GPL babies. @1086670325 ::pffeeeeeppppp:: @1086670351 bhoult: what noise is that? :) @1086670358 gentlemen, please! @1086670377 I'll be bringing out the red cards if this continues @1086670405 ah crap @1086670406 another error @1086670428 we're here to dicsuss Dylan, not have fights @1086670485 offtopic discussion is OK, but I think that went a little too far @1086670508 [jemfinch!~jfincher@dhcp065-024-075-056.columbus.rr.com] ACTION was done once the insult flew. @1086670519 badon pasted "mingw errors (again)" at http://www.common-lisp.net/paste/display/1217 @1086670552 ok @1086670559 housel: that error is in the same spot, I think. @1086670638 do you actually have a /usr/include/stdio.h file? @1086670649 checking @1086670663 yes, I do. @1086670695 why do you suppose it'd tell me I don;t? @1086670767 good question @1086671315 I'll have to pick up with this in the morning, I'm going to bed for now. @1086673314 -calvino.freenode.net- eno (~eno@adsl-67-126-114-141.dsl.snfc21.pacbell.net) joined the channel @1086673538 -calvino.freenode.net- eno (~eno@adsl-67-126-114-141.dsl.snfc21.pacbell.net) left the channel @1086675661 -calvino.freenode.net- larsr (~lars@ACC53686.ipt.aol.com) joined the channel @1086682241 -calvino.freenode.net- pritlove (~tim@pD9E7B059.dip.t-dialin.net) joined the channel @1086684337 -calvino.freenode.net- pritlove (~tim@pD9E7B059.dip.t-dialin.net) left the channel @1086684527 Morning! @1086687518 -calvino.freenode.net- lisppaste (~lisppaste@common-lisp.net) joined the channel @1086687518 -calvino.freenode.net- chandler (~chandler@chandler.registered) joined the channel @1086687792 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086687792 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086687792 -calvino.freenode.net- ^self (~fn@66.209.66.105) joined the channel @1086687792 -calvino.freenode.net- andreas (andreas@cantor.gwydiondylan.org) joined the channel @1086687792 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086687931 -calvino.freenode.net- buggs (~noidentd@pD9E955E1.dip.t-dialin.net) joined the channel @1086687931 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086687931 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086687931 -calvino.freenode.net- badonaway (KCXYCL@166.70.55.40) joined the channel @1086687931 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086687931 -calvino.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1086688214 -calvino.freenode.net- buggs (~noidentd@pD9E955E1.dip.t-dialin.net) joined the channel @1086688214 -calvino.freenode.net- cgay (~cgay@ita4fw1.itasoftware.com) joined the channel @1086688224 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086688273 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086688273 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086688335 -calvino.freenode.net- badonaway (KCXYCL@166.70.55.40) joined the channel @1086690359 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086690367 re. @1086690476 Re Gabor. @1086690485 hi andreas. @1086690498 I saw the bad news :-( @1086690520 did they have nore time? @1086690524 more @1086690560 Yep. In theory, we had all the ingredients for winning. In practice, we've suffered from the incompatible code base of our strategies. Even though you did a lot to make it bearable... @1086690589 If I had had some more time for bugfixing and fine-tuning of the ants... @1086690648 Or just some time for the GA... I've been playing with breeding, and half a day of CPU power already has variants that beat more teams. @1086690761 But we're not too bad. Watching the simulation is a lot of fun... @1086690813 ANyways, I have to go to lunch. Will be back in an hour. @1086690866 hi @1086694328 <^self!~fn@66.209.66.105> hi hi. @1086694328 ~.~. @1086695113 <^self!~fn@66.209.66.105> you can't tilde-dot me! @1086695141 But I can try! :) @1086695169 I have given up understanding when exactly ssh interprets ~. as a command... @1086695262 <^self!~fn@66.209.66.105> my rule: hit enter before trying ~. @1086695337 Probably. As you can see, the input line was empty. @1086695420 what's the bad news? @1086695513 and I don't get it, what's ~.? @1086695763 The bad news is that we won't win the ICFP contest. And ~ is the escape character for ssh connections, backwards compatible from rsh. @1086696149 <^self!~fn@66.209.66.105> i find ~z useful. @1086696159 <^self!~fn@66.209.66.105> so, where are the icfp results? @1086696722 Informal estimates based on throwing the posted ants into our tournament system. @1086696801 <^self!~fn@66.209.66.105> ok. @1086697434 <^self!~fn@66.209.66.105> what's in MCSMachinesFull.txt? @1086698043 -calvino.freenode.net- pritlove (~pritlove@pD9E7B059.dip.t-dialin.net) joined the channel @1086698083 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION is severely disappointed in both badon and jemfinch and wondering whether it's appropriate to continue having conversations with them @1086698266 <^self!~fn@66.209.66.105> what, the whole licensing thing? @1086703260 -calvino.freenode.net- fn (~fn@mail.naseebnetworks.com) joined the channel @1086703286 hi fn! @1086703358 hi @1086703741 it was a fun assignment last weekend :-) @1086704749 -calvino.freenode.net- gabor (root@cantor.gwydiondylan.org) joined the channel @1086704781 re. @1086705450 hi gabor @1086705459 hi housel! @1086705801 i found some old code. @1086705819 well, old code of mine @1086705822 http://web.nilpotent.org/tmp/conn.b @1086705829 similar to that dumb dylan irc bot i wrote @1086706197 what language is that? @1086706431 limbo @1086706469 ah, now there's a language I haven't thought about for awhile... @1086706518 fn@linux:~$ /home/fn/firefox/run-mozilla.sh: line 451: 1014 Floating point exception"$prog" ${1+"$@"} @1086706519 nooooooooooooooo @1086706790 @!#$? @1086706812 i once asked why people do ${1+"$@"} instead of just "$@" @1086706819 and somewhere in my mail, at home, is the answer. @1086706855 Re. @1086706864 hi andreas @1086708390 We need to do a big CVS/library reorganization one day... @1086708483 what sticks out to you as particularly needing re-org? @1086708510 (just asking, not challenging) @1086708526 Just noticed the copies of regular-expressions and string-extensions in the FD tree. @1086708533 Not to speak of DUIM. :) @1086708536 Or streams... @1086708821 Basically, I'd like to see as much libraries as possible have a shared codebase between both compiler. @1086708977 well then we are facing some merging :-) @1086708985 Yup. @1086709042 Maybe we should resevere a weekend for a big reorganization. Not before autumn though, all my summer weekends are already taken. @1086709412 as I've said before, let's not move anything until we have a VC system that can handle it... CVS repos surgery grates against my sensibilities @1086709486 -dircproxy- You disconnected @1086709575 -dircproxy- You connected @1086709629 plus while it allows you to re-create historic file contents, it doesn't let you re-create historic tree layouts @1086709631 -dircproxy- You disconnected @1086709898 Ok. Do you think subversion is stable enough to actually use it in practice? @1086709935 darcs! @1086709948 darcs? @1086709966 http://www.abridgegame.org/darcs/ IIRC @1086710007 Scores points for being written in Haskell. @1086710031 Indeed. If Riastradh were awake, he'd pimp it too @1086710173 Peter, did you look at darcs? @1086710191 darcs is not centralized @1086710203 Does it need to be? @1086710244 we need a central repo that can be backed up and is _the_ reference @1086710278 I don't see a conflict there. @1086710292 Plus, I like being able to track my local changes. @1086710305 you can do that anyway @1086710360 darcs is surely worth a try, but we should gather experience with it first (locally on one's own machine) @1086710385 Yes. I'll start right now. We need to have a replacement for cantor by mid of august... @1086710399 That would be a good time to switch repositories. @1086710431 I just wonder whether "you have all the repository on the disk" is a good idea, given the size of our project. @1086710487 andreas@cantor:/var/lib/cvs$ du -s . @1086710488 422980 . @1086710500 Not everybody wants to download half a gig. @1086710523 I do like the idea of GPG-signed mails as the only way to change the central repository. @1086710545 heh. write your own vcs in dylan! @1086710568 Sure. Give me a budget. :) @1086710579 [chandler!~chandler@chandler.registered] ACTION hands andreas a nickel @1086710597 that's US$0.05 @1086710883 hmm. @1086710890 I never knew there was an escape character for ssh. @1086710916 and cpage, I'm disappointed that you're wondering whether it's appropriate to continue having conversations with me. @1086710940 I didn't insult badon, I corrected him, because he was spreading FUD and lying. @1086710946 I don't really consider that a crime. @1086710991 read the argument again if you want, just don't confuse our two behaviors, because they were definitely very different. @1086711121 jemfinch: fyi (reading scrollback), the CL standard also defines what a program is required to do when COMPILE or COMPILE-FILE is called, and it doesn't necessarily include any compilation @1086711219 chandler: oh? @1086711228 [jemfinch!~jfincher@dhcp065-024-075-056.columbus.rr.com] ACTION was just grasping at straws there, really. @1086711236 yeah. IIRC 3.3.something - Minimal Compilation @1086711262 chandler: sometimes I take a devil's advocate view with Riastradh because his answers make me smarter :) @1086711300 (although I actually do think I'm right about the type system thing, with soundness being a property of the type system independent of enforcement/implementation) @1086711337 3.2.2.2 actually - http://www.lispworks.com/reference/HyperSpec/Body/03_bbb.htm @1086711549 andreas: how do you know you won't win the ICFP competition? @1086711739 People posted their ants on the mailing list, and I've run our tournament on them. @1086711748 :( @1086711764 where's the mailing list? @1086711854 www.icfpcontest.org, the link labeled "mailing lists". :) @1086711937 thanks :) @1086712044 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086712152 they really should implement flood protection on that. @1086712237 who looks like they'll be the winner, and what methodology did that team use? @1086712375 -dircproxy- You connected @1086712529 YOu needed to have a working food gatherer, working defense against enemies plundering your base. Bonus points for an attack strategy. @1086712547 Mainly, we've lost because we ran out of time debugging and tuning our ant. @1086712548 re @1086712556 (just bicycled to work) @1086712563 hi peter @1086712578 cycling to work is great. @1086712585 andreas: oh, the base can be plundered? @1086712586 that stinks. @1086712628 andreas: do you think investing in writing an execution debugger for ants would have helped? @1086712659 Yes. @1086712670 or maybe just letting you click on the ants in the visulaizer would show you which state the given (stuck) ant is in @1086712675 Our main failure was having two different description languages for different strategy parts. @1086712705 Thus, it took too long to assemble the parts. 4 more hours of debugging would have done it. @1086712764 And one more person to work on distributed tournamens. I have the GA I wrote during the contest running since yesterday. Currently: @1086712771 "ant-brains/andreas.ant" age: 4 total rounds: 178 score: -39 @1086712777 (our submission) @1086712783 "ant-brains/persist.ant" age: 4 total rounds: 178 score: 10 @1086712789 (one of the ants beating us) @1086712798 "ant-brains/andreas.ant.7FEF.5E6E.C8B7.69F5.C116" age: 0 total rounds: 64 score: 51 @1086712805 (the best clone so far) @1086713197 Ok, off to my SO, there's still an hour of sunshine to enjoy... later! @1086713237 adio. @1086713239 er, adios. @1086713300 commit by andreas to examples: job: icfp @1086713300 Result of 24 hours of breeding on one of our submissions. @1086713644 -calvino.freenode.net- sprout (~Snak@w002.z065106067.sjc-ca.dsl.cnc.net) joined the channel @1086713774 for the record, I think our development model is better suited for CVS/svn rather than darcs/arch/bitkeeper @1086713839 housel: can you explain that? @1086713883 jes, just a sec (talking on phone) @1086713890 that's cool, I'm in no hurry :) @1086714001 arch and bitkeeper (and svk) use a distributed model, where people do local developemnt, and then pass along patches upstream and downstream @1086714056 it works best for things like the Linux kernel, where you have people who serve as gatekeepers of patches @1086714099 and somebody such as Linus who decides whether or not individual patches get accepted into the trunk @1086714147 ok. @1086714155 the CVS development model uses a centralized repository @1086714162 Subversion follows that same model @1086714282 ok. @1086714295 you can still do development on branches and have gatekeepers on merging branches onto trunk, but it's still a single repository @1086714376 so you're saying that the distributed ones work best when there's a "de facto" main repository? @1086714400 (i.e., how Linus's repository is the main repository and probably always will be) @1086714597 they probably work better that way, but the essence of distributed VC is that there doesn't have to be one @1086714626 distributed systems: "VC is managing patches" @1086714636 centralized systems: "VC is managing sources" @1086714641 different focus @1086714686 hmm. @1086714692 so why is the centralized system better for you guys? @1086714725 for one, we're small, so there's no real need for distribution @1086714749 (you're talking about the ICFP team, right?) @1086714788 no, gwydiondylan.org and Gwydion Dylan/Functional Developer development @1086714894 of course the same applies to the ICFP team... it might have gone a lot slower if distribution were involved @1086714904 jemfinch, I consider it wholly inappropriate to use personal attacks or insults: "badon: you're dumb." This is the Internet. If you really can't converse civilly with someone when the topic gets heated, ignore them. @1086714920 cpage: ah, ok. @1086714929 well, I'll work harder on that. @1086714943 "A gentle answer turns away wrath" @1086714965 that's Proverbs something :) @1086714983 housel: I think the #scheme team used darcs; perhaps you can ask them about their experiences @1086715047 I still don't quite understand the "monotonicity" of Dylan's superclass linearization. @1086715105 [housel!housel@cantor.gwydiondylan.org] ACTION confesses to having not spent much time thinking about it @1086715105 Besides, anybody who can figure out IRC is clearly not dumb. ;-) @1086715118 cpage: I don't know about that. @1086715129 [jemfinch!~jfincher@dhcp065-024-075-056.columbus.rr.com] ACTION has seen a great number of people on IRC who *are*, in fact, dumb. @1086715155 cpage: write an IRC bot and try to support for any significant length of time, and you'll find the dumb people :) @1086715169 (not all of them, of course, but you'll certainly see some that'll make you wonder :)) @1086715187 Note: I'm not picking sides. Neither side of that exchange was necessary. @1086715218 I was in a bad mood last night anyway. @1086715225 or else I probably would've ignored the whole thing. @1086715245 hi all @1086715250 [badon!KCXYCL@166.70.55.40] ACTION scrolls up @1086715259 howdy, badon. @1086715267 hey, that's my line. @1086715295 [badon!KCXYCL@166.70.55.40] ACTION licenses it to jemfinch under the GPL @1086715297 >:) @1086715331 Monotonicity is the property that the CPL of each class is a strict extension to the CPL of each of its superclasses. @1086715349 I have a hard time imagining a sane system that isn't monotonic. @1086715383 ...which is probably why it's hard to understand why monotonicity even exists as a concept. @1086715394 cpage: CLOS isn't monotonic, is it? @1086715401 Dunno. @1086715446 well, Dylan used to use the CLOS linearization, but changed to C3, from what I understand. @1086715469 the paper also seemed to claim that Henry Baker's suggested linearization (in CLOStrophobia) was also not monotonic. @1086716449 Re. @1086716516 Neither CLOS nor Dylan is strictly monotonic. Dylan more so than CLOS, but you really want C3. @1086716544 andreas: I thought Dylan used C3. @1086716623 not yet @1086716667 andreas: what does "strictly monotonic" mean? @1086717004 The order of superclasses in your CPL might change under some circumstances, like inheriting from another mixin class. @1086717025 is that good? @1086717091 No, it's bad. And "monotonic" is the opposite. Very roughly speaking, monotonic is like you would expect the stuff to behave. @1086717118 hmm. @1086717133 It really matters when the order of applicabe methods changes on you, when you just were inheriting from a seemingly unrelated class. @1086717139 Rare in practice, I must add. @1086717166 hmm. So if I'm designing a language that allows multiple inheritance, I should use the C3 linearization. @1086717200 It also matters in optimization. If the method order can be determined at compile time, GF call lookup breaks down to a table access (two loads per argument). @1086717211 Yes, C3 is state of the art. @1086717222 Do you know the book "Lisp In Small Pieces"? @1086717373 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1086717411 hey channel @1086717431 hi @1086717438 andreas: I have it about 3 feet from here. @1086717443 (checked out from the Library) @1086717486 (checks log) speaking of dispatching, what ever happened to Eric Kidd's work on predicate dispatching in Dylan @1086717720 Not sure what he does these days. I know that Jonathan Bachrach did some work on predicate dispatch in FD. @1086717746 what's predicate dispatch? @1086717753 seemed nifty. especially since a decision tree (according to my benchmarks anyway) seems quite a bit faster than a dispatch table @1086717757 andreas: so are there any disadvantages of C3? @1086717763 (and why'd you mention LiSP?) @1086717779 jemfinch: predicate dispatching is a generalization of multimethod dispatch @1086717800 jemfinch: No disadvantages known. And I've mentioned LiSP because it is a must-read for language designers. @1086717801 you can dispatch on arbitrary "questions" not just argument types @1086717813 is it like a generalization of "eql dispatching"? @1086717817 andreas: how do you think LiSP compares to EoPL? @1086717826 eql dispatching? @1086717838 rhashem: it's a CLOS term for dispatching on the value of something rather than the class. @1086717845 Dispatch on singleton types in Dylan lingua. @1086717851 What's EoPL expanded? @1086717861 jemfinch: kinda @1086717865 except much more general @1086717867 Essentials of Programming Languages. @1086717872 it's by Dan Friedman and maybe some othes. @1086717874 er, others. @1086717878 a predicate can be pretty arbitrary code @1086717948 it subsumes multimethod dispatch, pattern matching, etc, into one general framework @1086717984 Don't know that book. But the LiSP guy knows his stuff. IIRC, he was involved in OCaml, at least his university was. @1086717997 What you really want is predicate types, of course. @1086718036 [andreas!andreas@cantor.gwydiondylan.org] ACTION had a lot of fun playing with LOOM, a knowledge representation framework that allows reasoning on essentially predicate types. @1086718036 what's a predicate type? @1086718072 "A car is a transportation vehicle with four wheels, less than three tons, for 2 to 8 passengers." @1086718114 [jemfinch!~jfincher@dhcp065-024-075-056.columbus.rr.com] ACTION finds LiSP much more dense (hard to read) than EoPL. @1086718141 thought so @1086718153 sounds inefficient to implement :-/ @1086718191 its LISP or lisp not LiSP @1086718199 rhashem: we're talking about a book. @1086718208 "Lisp in Small Pieces" by Queinnec. @1086718212 oh @1086718213 comical @1086718216 rhashem: the book is Lisp in Small Pieces; it's traditonally acronymmed that way @1086718217 which is specifically why we're calling it "LiSP" :) @1086718263 nobody calls the language LISP anymore. It's just Lisp or lisp @1086718358 Actually, the LOOM guys do quite a good job of constructing an ordinary class hierarchy out of their predicates, wherever they can. @1086718380 [chandler!~chandler@chandler.registered] ACTION has never played with LOOM @1086718384 So from the baove descripton, they figure out that a car is a subclass of transportation vehicle. @1086718433 andreas: I see @1086718442 [prom!~prom@217.13.206.33] ACTION guesses "LISP" comes from 6bit-times ;) @1086718460 predicate dispatching seems more natural to dylan though @1086718481 given eg: singleton dispatch and whatnot @1086718483 No. The Dylan dispatch is specified in terms of type relations. @1086718526 -dircproxy- You disconnected @1086718594 I can see that in a way, when you dispatch on an integer being equal to one, you're actually dispatching on a singleton type which is an integer equal to one @1086718636 but on the other hand, it also makes sense to look at Dylan's dispatching as using class tests type variables @1086718709 eg: the argument foo :: becomes a predicate "is-subclass(type(foo), ) @1086718831 YOu have orderings of applicable methods... @1086718844 which are based on the transitivity of subtype. @1086718954 hmm, good point @1086718955 OK, I think I'm going to give up fighting the *nix's. Is fun-o still active? It looks pretty dead. @1086718987 badon: fighting what *nix's? @1086718997 prom: any and all of them. @1086719006 install debian --- d2c has good debian packages :) @1086719008 that I've come in contact with anyways @1086719032 the Dylan port always worked for me when I was using FreeBSD. @1086719078 jemfinch: yeah, it's not a problem with dylan, that's the only thing that actually worked. @1086719086 badon: fun-o is not very active, but FunDev is. install Peter Housel's latest Windows installer @1086719091 [cgay!~cgay@ita4fw1.itasoftware.com] ACTION looks for URL... @1086719115 Ok, I want to use the last sun rays of the day. See you! @1086719116 andreas: How do predicate classes fit in with the method ordering? @1086719124 well, later then! @1086719156 http://www.gwydiondylan.org/~housel/fundev-snapshot.html @1086719249 If I use FunDev, my sources will be largely portable, even if I'm only developing for windows? I'd like to support all the *nix's someday, should they ever get fixed. Actually, I haven't looked into mac's yet, maybe I'll get somewhere with their OS. @1086719309 badon: dylan in general is pretty portable. but GD and fundev have some differences in the libraries. and fundev offers a lot more functionality. @1086719334 ah, so I'm better off going with fundev from the get-go then eh? @1086719335 the things that aren't portable (but hopefully will get unix support sometime soon) are ODBC, DUIM, CORBA, win32, ... @1086719357 (obviously win32 won't get unix support :) @1086719368 wine? :-) @1086719380 ok :-P @1086719414 I've heard wine has come a long way @1086719437 last I looked into it, it was weeks or months worth of work @1086719454 wine even runs a lot of directx games. @1086719458 nice @1086719513 -dircproxy- You connected @1086719560 I'll keep fiddling with freebsd off and on, but I don't really have the time to actually make it work. @1086719599 I'm sure housel doesn't have the time to keep holding my hand to make it work either, heh. @1086719746 ok. gotta go now. seeyas. @1086719780 cul @1086720133 actually I suspect CORBA should Just Work on linux etc. once somebody bothers to bootstrap it @1086720169 i.e., by copying some generated ORB and Scepter sources from the Win32 distribution @1086720264 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) left the channel @1086720272 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086720289 what orb does fundev use? @1086720428 its own @1086720449 what's an orb? @1086720456 Object Request Broker @1086720468 they wrote their own orb? wow @1086720487 and their own IDL compiler, etc. @1086720542 I should check out the dylan mapping sometime @1086720547 it's gotta be saner than the C++ one... @1086720766 That's open to debate, I'm sure @1086720828 The C++ mapping is awful. I'm using it right now, and it makes my soul hurt @1086720830 for example, module X { ...stuff...} maps to stuff with "X/" prefixes on all of the names @1086720913 what about memory management? @1086720931 [housel!housel@cantor.gwydiondylan.org] ACTION pleads ignorance @1086720953 I've slept since the last time I looked at it @1086720963 :) @1086723698 so, what is fun dev's relationship to fun-o and gwydion? @1086723781 Functional Developer was written by Harlequin (at which time it was called Harlequin Dylan) @1086723814 When Harlequin was purchased by Global Graphics, they spun off Functional Objects to sell FunDev @1086723846 last year Functional Objects decided to open-source Functional Developer @1086723879 This year Carl Gay did the work of actually open-sourcing it @1086723904 and now its source is kept in the gwydiondylan.org CVS repository @1086723927 does that answer your question? @1086724057 oh, and at this point we're seriously considering renaming it Open Dylan. @1086724099 housel: Plain, but rolls of the tongue quite well @1086724649 -calvino.freenode.net- larsr (~lars@ACC73588.ipt.aol.com) joined the channel @1086724749 nice @1086724814 OK, so is there any sense in buy the commercial Fun-O version? @1086724818 buying @1086724931 I really hate fixing things that don't work out of the box, I'd be happy to pay for something that just works, so I can merrily be on my way. @1086724940 Even if it is windows only. @1086724998 As long as the source is portable, I can get around to making this stuff work on other platforms when either those platforms mature, or I figure out how to fix all their problems. @1086725005 right now they won't sell it to you @1086725010 And still be productive on windos @1086725013 windows @1086725015 ok @1086725022 that's a bummer @1086725042 you can pay one of us to support it ;-) @1086725060 the thought crossed my mind @1086725078 Depends on how deeply I get into it. @1086725082 You can download the commercial version. I wonder: Do they have any plans to simply give out licenses? @1086725097 not sure @1086725112 the commercial version is somewhat obsolete, IMHO @1086725123 ie., they wouldn't have to put any effort into selling or shipping it. @1086725143 Did they open source all the libraries, btw? @1086725165 yes @1086725171 So, fundev and gwydion are both being worked on independently of each other? @1086725190 Theoretically, yes. I think in practice, no. @1086725199 it's the same people doing the work @1086725223 Oh, read that as "FunDev" and "open source FunDev". @1086725262 well, what I mean is, is it possible that eventually the two could be evolved into a crossplatform version of the same thing? @1086725275 I'm fiddling with cygwin now @1086725279 Would "Open Dylan" apply only to FunDev or to Gwydion Dylan and the other libraries, as well? @1086725281 couldn't get mingw to install @1086725292 It seems a little unfair to only use "Open Dylan" for the FunDev stuff. @1086725333 BTW, another name popped into my head: Dylan Developer @1086725338 ...for FunDev. @1086725392 MS "bob" comes to mind @1086725400 Dylan "Bob" @1086725410 I think the naming issue needs to take into consideration what the ultimate plan -- if any -- there is for the future relationship between FunDev and d2c. @1086725413 sorry, that was a terrible joke @1086725422 cpage: agreed @1086725435 "Zimmerman" @1086725448 Bob Dylan actually sued Apple at one point over the name @1086725454 really? @1086725461 That's ridiculous @1086725465 Over using the name "Dylan" on a box that contains a CD. @1086725479 I hope he lost @1086725488 It's not clear Bob was really aware of it. It may have just been his lawyers being paranoid. @1086725492 They settled. @1086725504 as in, Apple paid him off? @1086725537 I don't know if money was involved. As it was explained to me when I was at Harlequin, Apple agreed not to put the word "Dylan" on a box containing a CD. @1086725563 cpage: good point @1086725569 http://groups.google.com/groups?selm=6.11994.1634.0NAEA963%40spacebbs.com&oe=UTF-8&output=gplain @1086725592 We were discussing what to name Harlequin Dylan and what to put on the box. If you've seen it, you'll notice we weren't heavily influenced by the Bob Dylan issue. @1086725603 yeah @1086725608 I'd tell bob to fuck off @1086725619 Apparently. @1086725628 Go get his own programming language. @1086725710 I'd go continue working in a country that won't shut me down over stupid things like that. In fact, that's what I *am* doing. @1086725745 I can't afford an army of lawyers to tell me what I should name my company's products. I seriously see it as a competitive edge over US-based companies. @1086725763 "Straighten out in @1086725763 your book that I did not take my name from Dylan Thomas." @1086725842 portupgrade's been running forever @1086725846 it takes longer than clean @1086725847 heh @1086725865 put the head of Bob Dobbs on the box @1086725866 Hmmm: "Bob Dylan tried, but got nowhere, over Apples application environment Dylan." @1086725870 @1086725897 chandler: +1 :-) @1086725976 looking @1086726035 This is a great blog entry by Mike Lockwood about the end of the Dylan project: @1086726124 hah, that apple suit stuff is ridiculous. Surely we can tolerate some "namespace" overlap. @1086728253 hmm fundev won't run @1086728297 oh wait, there it goes @1086728304 it just took 2 hours for it to load up @1086728492 you mean the download? @1086728535 no @1086728553 I hit "start fundev" after the install process @1086728561 then, took a shower, and pissed around on other things @1086728572 and then when I just complained, it popped up. @1086728586 I'm running a lot of stuff @1086728594 Kinda pushing this system @1086728609 I need a distributed OS @1086728617 maybe I'll make one @1086728681 Build Error: Cannot find the GNU Installation @1086728705 Go into Options, switch to the Link page, and choose the Microsoft linker @1086728713 OK @1086728714 you need to have MSVC 6 installed @1086728729 Hmm, I've got .net on here @1086728760 VC7 (.net) works, sort of @1086728803 Is it possible to use GCC? @1086728810 you can build programs fine, but the debugger isn't quite up to its full capacity in that situation @1086728834 it will be possible to use MinGW's gcc by the end of June @1086728852 OK @1086728895 I've not gotten very far with mingw, but I've FINALLY gotten all the problems with cygwin worked out...at least to the extent that it's installed and working now. Who knows what'll come up next. @1086728928 I'm doing a portupgrade, and it's taking forever. Hopefully that'll somehow sort out the stdio.h issue @1086728983 Build Error: The application "link" could not be found @1086728996 I've got .net 2003 installed @1086729011 you haven't got it in your default PATH, though @1086729039 OK, can I trouble you for info on how to do that? @1086729055 when you installed it, it asked you if you wanted it in your path or not @1086729072 You can go into the System control panel, click on Environment Variables, @1086729078 alright @1086729105 then add the proper directories to your user PATH @1086729376 Hmm, are you referring to the windows system control panel? Because I don't see anything there about enviroment variables @1086729401 Right click on My Computer @1086729414 Choose Properties @1086729425 go to the Advanced tab @1086729445 there's a button at the bottom labeled "Environment Variables" @1086729453 Oh, ok. I just missed it. @1086729525 and just add the path to link? @1086729716 yes @1086729738 should be "C:\Program Files\Microsoft Visual Studio .NET\VC7\bin" or something similar @1086729870 yep, this is it - E:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin @1086729939 I made PATH a user variable, should I have made it a system variable? @1086729967 appears so @1086729971 because it didn't work. @1086729986 you need to restart FunDev before your settings changes will take @1086730000 Oh, ok. @1086730019 fundev is very mac'ish @1086730098 ? @1086730122 you mean the window layout? @1086730129 It's seperate windows and taskbar items for the same program @1086730137 cluttered @1086730148 Build Error: In Running Application "link /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO /OPT:REF /force:multiple -subsystem:console,4.0 -debug:full -debugtype:cv /ENTRY:hello_worldExe /out:hello-world.exe kernel32.lib @unify-hello-world.link /version:0.0" @1086730164 before that log error @1086730175 it said it was missing a dll and to reinstall? @1086730194 LINK.EXE is missing a DLL? @1086730208 no, I think it was fundev talking @1086730225 I think you need to add another VC directory to your path @1086730240 let me start up my laptop, I'm running .net on that @1086730273 badon: Isn't that what MS does now too? @1086730293 rhashem: what? @1086730304 MDI @1086730319 rhashem: yes, but that's NOT what mac does @1086730326 rhashem: yes, most new MS apps have eschewed MDI (especially IE and Office apps) @1086730346 yes, Mac does SDI @1086730356 VS.NET is still MDI, though @1086730362 I really love mozilla and opera tabs @1086730366 yeah @1086730374 and textpad's doc menu @1086730393 opera is the only one that reopens all the docs after a crash tho @1086730492 Galeon does that too @1086730500 and so does epiphany @1086730513 nice @1086730529 I won't use a brower that doesn't, these days @1086730651 MDI is making a comeback @1086730662 it's quite nice in it's IDEAJ inspired KDevelop implementation @1086730868 badon: see if you have a E:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE directory @1086730879 if so add that to your PATH too @1086731011 with a comma, or just a space? @1086731044 ";" separates entries in PATH on Win32 @1086731290 hmm, getting the same error. You sure I'm supposed to have a ; in there? @1086731318 badon: paste your path entry here @1086731335 E:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin; E:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE @1086731364 which DLL is it complaining about? @1086731412 mspdb71.dll @1086731455 wait, shouldn't there be stuff before it? @1086731471 you've got a space after your ";" @1086731476 don't do that @1086731506 "There's a chip in your paint, no wonder your car won't start!" @1086731528 computers do what you tell them to do @1086731579 it's a design issue @1086731584 it's not my fault. @1086731608 space is a perfectly good character in directory names, so it doesn't filter them out @1086731654 it's not in a directory name @1086731660 it's before a drive letter @1086731671 it could have been filtered out. @1086731703 And no where in the context does it explain that to me. So, "computers do what you tell them to do" implies it's my fault, and it's not. @1086731738 eh, more errors @1086731763 namely? @1086731769 pasting, one sex @1086731771 sec @1086731806 badon pasted "fundev poo" at http://www.common-lisp.net/paste/display/1223 @1086731907 ok, you need to add another environment variable @1086731963 named LIB @1086731983 k @1086731991 which you should probably set to E:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib @1086732053 hmm, I already have this - E:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib\ @1086732066 I need to add that other line as well? @1086732094 yes @1086732101 again, separated with ";" @1086732147 k @1086732200 it seems to have worked @1086732223 ausgezeichnet @1086732265 ? @1086732315 that's German for "outstanding" @1086732337 Well, I should be good to go for crossplatform dev with dylan now eh? @1086732348 yes @1086732361 Just copy/paste my sources from one platform to another, and off I go @1086732377 Next, it's figuring out libs.... @1086732395 But, at least the base systems are working now. @1086732399 Thanks a bunch housel @1086732407 sure @1086732419 Let's see, what day did I first join this chan? @1086732459 I think it's been about a week. @1086732495 Once I get this all figured out, I might write up a little blurb about it. @1086732864 I've gotten cygwin to work, and I may go back to fighting with mingw once this portupgrade is done. With c++ I prefer to use all gnu tools since the build systems are a bit complicated and it's just easier to just pick one system and eschew the others. Does dylan work similarly? I'm under the impression that Dylan builds are simpler, so it's not as big of a deal if I use several different compilers.... @1086733298 badon: dylan builds from .lid files @1086733355 yep @1086733355 which are supported by both d2c and fundev @1086733355 well, that's not strictly true @1086733373 So, most of the complexity of the build is encapsulated @1086733373 an lid builds one library @1086733374 where library is defined as a module (either a program or an actual library) @1086733374 something bigger (eg: fundev, which has lots of libraries) requires a higher level build system @1086733378 to coordinate the individual libraries @1086733460 ok @1086733610 So, to sum up then, I don't need to worry too much about build systems? @1086733679 well, yes, but the same is true of VC++ @1086734129 yes, but VC++ is being managed by FunDev @1086734135 So it @1086734146 So it's largely out of my hair, hopefully @1086734916 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086744053 -calvino.freenode.net- jemfinch (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086744419 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1086744423 -calvino.freenode.net- Riastradh (~riastradh@pool-141-154-52-5.bos.east.verizon.net) joined the channel @1086746191 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086746191 -calvino.freenode.net- prom (~prom@217.13.206.33) joined the channel @1086746431 -dircproxy- You disconnected @1086747576 -calvino.freenode.net- buggs^z (~noidentd@pD9E95D71.dip.t-dialin.net) joined the channel @1086748655 is there any documentation on the data layout Dylan uses for objects in memory? @1086748683 Gwydion or FunDev? @1086748696 either :) @1086749147 -dircproxy- You connected @1086749192 it's not written down for Gwydion, but I can tell you @1086749219 every object starts off with a pointer to its class @1086749275 the rest of the slots are layed out linearly thereafter @1086749325 What about non-pointer slots? @1086749335 What about collection elements? @1086749363 non-pointer slots are stored as themselves @1086749380 How does the GC distinguish them from pointers, then? @1086749382 (unboxed floats, doubles, whatever) @1086749397 it doesn't... Boehm GC is conservative @1086749412 ...oh...right...bleh, conservative GC... @1086749422 it's possible to tell it about object layouts, but we don't @1086749432 I've forgotten: Can the expansion of a statement or function macro include top-level defining forms? @1086749463 statement yes (in practice), function no @1086749491 "in practice"? Is it allowed by the DRM? @1086749506 I don't remember @1086749537 How about FunDev, then? @1086749580 FunDev is similar, but objects start off with pointers to GC wrappers @1086749592 the GC wrapper contains the pointer to the object @1086749608 it also tells the GC about the layout of the object @1086749713 both FD and d2c allow classes with variable-length parts @1086749965 Are collection elements stored directly in the collection object, or is there an intermediate pointer to the storage? @1086749977 It probably depends on the collection. @1086750030 I guess I just mean vectors, then. @1086750073 I know some OO languages support "repeating slots" to form the basis of collection implementations. @1086750083 As housel pointed out, classes can have variable-length parts; a vector is just one big variable-length slot sequence. @1086750184 Does d2c optimize the storage of, e.g., limited(, of: ) to eliminate redundant type information? @1086750217 yes, in that particular case @1086750279 Is there a central location in the sources for finding out which limited collections are optimized this way? @1086750327 I think it's runtime/dylan/limited-collection.dylan @1086750421 Ah. Also a good place to look for the implementations of other built-in types. @1086750671 Hey, anybody against me removing enum prefix emission from Melanage's implementation of the default name mapper? @1086750895 I have no objections @1086751062 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086751194 BTW, why does the with-stack-structure family of macros exist? Are they necessary or just desirable for passing output arguments to foreign functions? @1086751813 with-stack-structure allocates a block of non-GC memory for use by foreign functions, then de-allocates it at the end @1086751887 and that's a dylan macro? @1086751898 possibly on the stack, but not necessarily @1086751900 yes @1086751960 hmm. So the layout of objects in Gwydion didn't really get optimized for a special GC? @1086751976 if classes are first-class objects, what is their class? @1086751996 @1086752019 what's the class of ? @1086752027 @1086752039 so it is its own class. @1086752040 hmm. @1086752051 what kind of special handling needs to be added for that? @1086752146 The class of is , no? @1086752180 so what's the class of ? @1086752199 Oh, wait-- @1086752297 is a subclass of , but @1086752299 is a general instance of , but its class is @1086752305 yes @1086752352 The class of is also ? @1086752404 what's the reason for that circularity? @1086752413 What would you rather have, jemfinch? @1086752441 Riastradh: what's the need for the class at all? Why not just have be an instance of and not even have ? @1086752457 I'm not sure there's a real circularity here. @1086752470 There are types that are not classes. @1086752491 like what? @1086752498 Limited types, union types, and singletons are types that are not classes. @1086752505 hmm. @1086752513 Where is this documented? @1086752521 In the DRM. :-) @1086752531 also subclass types, which are a common-dylanism not in the DRM @1086752549 where the DRM at? @1086752559 @1086752572 thanks. @1086752590 Unfortunately, the type hierarchy figure is missing. @1086752631 :( @1086752668 "The language does not define any way for programmers to define new subclasses of ." <-- why? @1086752706 It's a core of the language. @1086752730 but why couldn't someone subclass ? @1086752740 Efficiency, predictability, for example. If you extend you really need to design it into the language and the compiler. @1086752742 what would it mean? @1086752770 if you add a new subclass of , you have to define the corresponding subtype relationship @1086752778 that needs to be in the compiler @1086752871 Note that there are only a handful of subclasses of . Adding new ones is rare. @1086752886 Very rare. @1086752901 why is it necessary at all? @1086752909 what does gain over just having ? @1086752911 "it"? @1086752920 There are types that are not classes. @1086752931 [Stack blows out.] @1086752937 but that doesn't really explain why there are types that "can't" be classes. @1086752956 Some types can be implemented using classes, but types are not classes. @1086752981 Class is a subtype of . @1086753007 Why couldn't just be an instance of itself, and all other things instances of instances of ? @1086753011 that's what I'm asking :) @1086753027 No object is a direct instance of a type that is not a class. @1086753040 was that meant to asnwer my question? @1086753043 Many objects can be indirect instances of types that are not classes. @1086753051 [We're overlapping.] @1086753072 that one question is really all I want to know, or even can understand right now: @1086753088 Wait, I'm trying to keep up with you. @1086753091 Why not just make and instance of itself, and all other objects instances of instances of :) @1086753115 is an instance of . Its class is . @1086753147 Objects (values) have a class and are direct instances of a single class. @1086753156 so I don't see the need for at all. @1086753167 However, objects can be indirect instances of any number of types. @1086753179 but what is gained through that? @1086753189 Wait... @1086753207 I mean, I see the separate type/class system of CLOS/CL and it makes me wonder whwat the *gain* from it is. @1086753217 Patience...I'm typing... @1086753256 ok :) @1086753275 You cannot subclass sealed classes like , , and , for efficiency reasons. @1086753289 But you *can* create subtypes of them. @1086753316 Because subtypes don't alter the class hierarchy, but they still allow you to specialize. @1086753388 so you can specialize generic functions to subtypes? @1086753390 is a subclass of ; it is the subset of types that can alter the class hierarchy. @1086753411 Yes, exactly. @1086753440 And you can declare variables that are restricted to a subtype. @1086753450 so without sealed classes/functions, is there any real need for ? @1086753470 I can still imagine a need for types that are not classes. @1086753489 why? @1086753505 There can always be more subtypes than classes. Classes are a restricted subset of types. @1086753525 Classes have more constraints. @1086753552 Like the (desired) monotonicity of the CPL mentioned recently. @1086753572 hmm. I don't know if I like this. @1086753585 the problem is that a subclass is a supertype. @1086753589 Classes are a special case in a universe of more interesting types. :-) @1086753597 (i.e., a superclass is a subtype) @1086753609 but that doesn't fit with Dylan's definition of subtype. @1086753616 A class is a type. A subclass is a subtype. @1086753627 according to Dylan's definition of subtype. @1086753639 A type is not a class. A subtype is not a subclass. (Necessarily.) @1086753652 but according to the definition of type that I've normally seen, superclasses are subtypes of their subclasses. @1086753701 "subtypes" of their subclasses? Don't you mean "supertypes"? @1086753709 no, I don't. @1086753717 (Or I have I inverted the "sub" prefix?) @1086753722 subclassing is contravarient with subtyping. @1086753738 making a subclass does not make a subtype; it makes a supertype (if that's actually a word) @1086753754 Oooh, bringing out the big words, eh? Then I don't see why I'm explaining this to you. ;-) @1086753777 You should be explaining it to me. :-) @1086753790 the idea is that given a set of operators over a type C, every instance of D, a subclass of C, should be substitutable as arguments to those operators. @1086753798 (Because I can never keep "contravariant" and "covariant" straight.) @1086753830 whereas the opposite is not true: not every instance of C can be used as an argument in the set of operators valid over D. @1086753835 Anyway, the most you can glean from that is that I've misused the term "subtype." @1086753838 thus, C is a subtype of D, even though D is a subclass of C. @1086753852 is more general than . So exists. @1086753885 cpage: no, not that you've misused it -- this is going more from the Dylan reference manual, which says that subtype?(t1, t2) is true if every instance of t2 must be an instance of t1. @1086753894 but that's not a proper subtype relation, I don't think. @1086753916 In what way? @1086753935 well, for the same reason as my C/D example. @1086753971 wait, first let me correct my argument order. @1086753991 subtype?(singleton(#f), ) => #t // #f can be used anywhere can @1086754001 The DRM says, "Type t1 is a subtype of type t2 (i.e., subtype?(t1, t2) is true) if it is impossible to encounter an object that is an instance of t1 but not an instance of t2." @1086754058 but I don't think that's the proper relation. @1086754094 subtype?(t1, t2) should return true if every instance of t1 can be validly substituted for all the operations defined on instances of t2. @1086754108 er... @1086754120 Yes...? @1086754121 I flip-flopped my statement again. @1086754125 heh @1086754171 ok, I'm going to try to simplify this so I don't mess it up :) @1086754189 in an abstract sense, I've always heard of types as a set of objects/values and the operations that are valid over them. @1086754192 What's wrong with my example call to subtype?()? @1086754209 (nothing, it's in line with how Dylan defines subtype?()) @1086754216 No, ignoring the DRM. @1086754218 I'm saying that Dylan's definition of subtype?() is wrong. @1086754233 #f can be used anywhere can, right? @1086754243 The reverse is not true. @1086754252 Which is the subtype? @1086754270 cpage: your specific example may not be a counterexample, but that doesn't mean that there doesn't exist a counter example. @1086754279 do you disagree with my definition of a type? @1086754287 I don't understand your definition. @1086754329 "A type is a set of values and the operations valid over them." @1086754358 Right. @1086754366 ok. @1086754367 A subtype is a subset of a type. @1086754376 yes. @1086754388 but a subclass isn't a subset of a class :) @1086754394 limited(, from: 1, to: 10) is a subtype of . @1086754399 yes, definitely. @1086754417 singleton(#f) is a subtype of @1086754425 yeah, I agree with that. @1086754448 subtype?() agrees. @1086754456 what I'm trying to point out is that the subclass/class relationship is not a subtype/type relationship. @1086754462 Okay. @1086754485 But I don't think that's true. @1086754490 hold on for a second :) @1086754507 to simplify, do you mind if I talk in message-sending terms rather than generic-function terms? @1086754521 is a subclass of . The set of instances of is a subset of the set of instances of . @1086754546 can I use message-sending terminology to simplify? @1086754550 Is not a subtype of ? @1086754557 You can, but can you answer my question first? @1086754557 cpage: just let me explain. @1086754566 no, because you haven't even heard my proof yet. @1086754586 I just want a yes or no answer to those questions, then you can explain why. @1086754590 I need to know where you're headed. @1086754592 I don't know. @1086754599 Okay. @1086754616 I'm having a hard enough time keeping my own argument in my head; I'll queue that question up and answer after I'm done. @1086754644 we can consider the type defined by a class to be the set of all possible instances of that class (the values) and the set of messages that class will receive (the operations), right? @1086754676 Yes. @1086754726 ok. So, if we subclass in accordance with the Liskov Substitutability Principle, then any subclass instance can be substituted for any of the operations valid on any of its superclasses, right? @1086754775 i.e., any instance of the subclass can receive any message that an instance of any of its superclasses could receive. @1086754809 I don't think the LSP applies to types, only to classes. @1086754816 I know, but I'm talking about classes. @1086754837 And I think the LSP restricts us to an uninteresting model of classes. @1086754840 as far as classes go, an instance of a subclass should be able to receive any message that an instance of any of its superclasses can receive. @1086754888 basically, the gist of my argument is that subclasses can receive more messages than instances of their superclasses, and thus they are not properly subtypes of the types defined by their superclasses. @1086754944 I'm confused. You defined "subclass", not "subtype." @1086754953 oh, ok. @1086754981 e.g., a union type can be a subtype of classes for which it is not a subclass. @1086754999 if a type is a set of possible values and a set of operations valid over those values, then a subtype would be the combination of a subset of possible values and a subset of possible operations. @1086755055 i.e., the integers from 1 to 10 would be a subset of the positive integers. @1086755057 Actually, I don't remember rightly just now whether a union type is a "subtype" or something else. (I'm a little short on sleep today.) @1086755072 s/subset/subtype/ in that last message. @1086755115 No, a subtype is a subset of values, but a superset of operations. @1086755119 and, for instance, the integers would be a subtype of the reals, since the possible integer values are a subset of the possible real values, and the possible integer operations are a subset of the possible real operations. @1086755127 Or, at least, not a subset of operations. @1086755141 hmm. @1086755147 why do you say that? @1086755199 I can define a GF specialized on a subtype that is not applicable to instances of the supertype. @1086755211 cpage: you're thinking about this in Dylan terms. @1086755217 I'm not talking about Dylan terms. @1086755223 I'm talking about mathematical terms. @1086755227 Though, again, I'm not clear on whether singleton, union type, and limited type are "subtypes" or something else. @1086755244 I thought they were subtypes. @1086755339 Integers 1 to 10 are a subset of all integers, and are therefore a subtype of integer, right? @1086755349 yes, I would say so. @1086755358 subtype?() agrees with that. @1086755366 In what way is subtype?() not correct? @1086755406 well, the integers are a subtype of the reals, right? @1086755424 Is the set of operations allowable on 1 to 10 smaller than the set of allowable operations on all integers in math? @1086755450 not that I'm aware of. @1086755462 In what way does Dylan disagree? @1086755504 cpage: Let's say I define a class C. @1086755518 and then I create a generic function x, and specialize it to C. @1086755538 then I define D, a subclass of C. @1086755549 and I define another generic function, y, and specialize it to D. @1086755574 now the set of all D instances is certainly a subset of the set of all C instances. @1086755597 but the operations allowed on D instances is greater than the operations allowed on C instances. @1086755605 Right. @1086755608 but subtype?(D, C) still returns True. I don't think that's right. @1086755615 Why not? @1086755667 because the operations allowed over D is not a subset of the operations allowed over C. @1086755672 Why must the set of operations be smaller for subtypes? Remember, it doesn't matter whether the set is smaller or the same, as long as the intersection of allowable operations is the same (?) @1086755702 huh? :) @1086755717 when did interseciont get into this? @1086755790 man, I need to go to sleep. @1086755803 I think the rule is that the set of operations on D must be a strict superset of the set of operations on C. @1086755818 why is that the rule? @1086755825 ...not a subset of operations. @1086755993 cpage: let's continue this discussion when we both have had more sleep. @1086755998 you may not need it, but I sure do :) @1086756006 Describe a set of numbers which is a subset of some other set of numbers, and which have fewer applicable operations than the superset. @1086756035 Anyway, is more general than . Does that answer your question? :-) @1086756039 ints and reals. @1086756050 ints are a subset, and have fewer applicable operations. @1086756063 Again, I think the confusion may be between "subtype" and "subclass". @1086756079 what I've been arguing is that subclassing is not subtyping. @1086756099 but anyway, I need sleep. I have 3 exams tomorrow. @1086756107 thanks for chatting with me :) @1086756110 Okay. In fact, I think I just realized we were discussing the wrong thing: @1086756193 ...actually I'm uncertain about where I was going. I was just going to say something along the lines of subtype?() simply doing something other than what you think it does. :-) @1086756226 g'night, cpage. @1086756373 Oh, I think part of the confusion is between "integer" and . @1086756448 Night! @1086756598 is a subclass and a subtype of , but "the real numbers" aren't direct instances of ; instead, some subset of real numbers are instances of , which is a sibling to , neither a subclass nor a subtype. @1086756687 is the superclass and supertype of classes whose instances are subsets of the set of real numbers. @1086756753 1.0 is not an , and 1 is not a , though the number one is an integer and a real. @1086756926 As Terry Gilliam once said, "It's only a model." @1086757080 (Or perhaps that's all irrelevant and subtype?() is misnamed. Who knows when I'm this tired? ;-) @1086758587 -calvino.freenode.net- larsr (~lars@ACC3A88E.ipt.aol.com) joined the channel @1086760551 housel: Any ideas why stdio.h cannot be found? - http://rafb.net/paste/results/QEXy8Y50.html @1086762920 not without a few more lines of context @1086763380 well @1086763464 I just check cygming.h, and it specifies #include and I do in fact have stdio.h on my system, and mingw is the only port that's ocmplained...so I replace with "/usr/include/stdio.h" - but I still get the same error @1086763488 Someone in one of the freebsd chans says maybe mingw's build system is screwed? @1086773274 -calvino.freenode.net- brucehoult (~bruce@202.0.59.235) joined the channel @1086773288 evening @1086773307 so Andrew Hudson sent mea copy of his ant @1086773322 I just ran it against combo2 @1086773359 it's got a very similar strategy in that he marks the board with concentric rings, just as I do, although his rings are always perfect. @1086773365 Anyway, the scores: @1086773379 Hudson Black Red @1086773381 Combo2 Red Black @1086773381 ======= ======= ======= @1086773381 Sample0 79-0 0-64 @1086773381 Sample1 101-0 0-102 @1086773381 Sample2 99-77 0-169 @1086773382 Sample3 155-1 0-110 @1086773384 Sample4 209-0 0-129 @1086773386 Sample5 141-0 0-113 @1086773388 Sample6 109-0 0-92 @1086773390 Sample7 129-0 0-116 @1086773392 Sample8 82-0 0-143 @1086773394 Sample9 88-1 0-250 @1086773408 Hi Bruce! @1086773472 hi Andreas! @1086773601 Your ants tend to get stuck after awhile. :) Most of them when they don't find a third color... @1086773696 yeah I know @1086773707 it was a mistake to try to follow the colours outwards @1086773729 should have just let them wander as OSA from the outset until they found an unmarked area or a trail @1086773756 hey ... even OSA beats Hudson @1086773791 Well, one can't always win, it seems... competition was tight this year. @1086773807 yeah it was tough @1086773827 I didn't *quite* get enoug htime to perfect gathering @1086773848 and we needed it integrated with a better defense (or better integrated, I dunno) @1086773865 I just didn't leave you enough time for that at the end @1086773885 *however* ... the contest worlds might be tougher than the sample ones @1086773886 Yep, would have needed another two or three hours to debug. @1086773914 if the food is hard to find ... in a nearly closed cave or something ... then we might do well @1086773980 The defense has a number of problems. Sometimes, during startup, one of the ants ends up spinning right in the middle of the home: forget about the defense. Sometimes, an ant gets stuck inside or at the entry: defense broken too. If it is too populated in the home, the ants fail to find the entrance in time, and drop the food outside. @1086774016 My biggest mistake was making all the ants touching the foe home attackers. If I had left 50% as gatherers, we would have been much better. @1086774052 But as it is, it nicely blocks the foe home after awhile, preventing the enemy from further food drops. @1086774121 Unfortunately, no ants are left to collect food at this time. @1086774394 wow @1086774407 376 ant submissions in regular competition, 90 in lightning @1086774415 that's got to be a record @1086774460 That's a lot! I noticed a dramatic increase in submission from Germany. The contest was mentioned on Heise newsticker (which is sort fo the German slashdot, just a little bit more serious), and I challenged the people. :) @1086774468 Speaking of "wow": @1086774479 andreas@unuk:~/gd/examples/ICFP2004$ find . -name '*.dylan'|xargs cat|wc -l @1086774479 8346 @1086774494 so they have to run over 200,000 matches per contest world @1086774519 They have a 256 machines cluster. And they compile ants to C code, for extra performance. @1086774543 there's some code duplication in that @1086774568 for example, I simply copied the whole Visualizer directory to make my own incompatable changes to one function @1086774571 Yep @1086774622 Ok, 1500 lines in the main directory, 500 in the visualizer. @1086774666 800 in the brain compiler, not counting ant code. @1086774667 3000+ lines of that is ants written by pasting antcode into Dylan @1086774813 BTW: if you have an hour or so, could you look into darcs? There's an increasing desire to get rid of CVS. @1086774819 heh @1086774821 "I know that several of the @1086774821 earlier programming contest tasks have been used successfully in courses -- @1086774821 they tend to be about the right size for a several-week project (:-), and @1086774824 they are well debugged by the time the contest ends." @1086774841 :). @1086774878 not subversion? @1086774897 Hmm. It sounds to me like this contest was a little too non-deterministic. ie., it relied more upon designing ants than implementing a program, it seems. @1086774923 Chris: That's perfectly ok. If it were deterministic, it would be boring. @1086774935 bruce: Do you trust software written in C? :) @1086774942 Well, I thought it was supposed to reflect differences in programming languages, ideally. @1086775018 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION must go to sleep before all the numbers and letters start to run around the screen like ants @1086775125 Night Chris! @1086775567 heh @1086775601 Chris: certain languages allowed people to writ quite sophisticated compilers into ant code @1086775614 Dylan would be one of them, but we didn't really take advantage of that @1086775850 I'm off for lunch... see you! @1086776117 -calvino.freenode.net- pritlove (~pritlove@port-212-202-175-14.dynamic.qsc.de) joined the channel @1086779105 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086782579 -calvino.freenode.net- pritlove (~pritlove@194.95.203.190) joined the channel @1086785120 re. @1086785130 New PowerMac G5s! @1086785857 FSVO "new" @1086785861 only new one is the dual 2.5 @1086786112 hi @1086786218 no, I think all have liquid cooling now @1086786230 yeah, minor tweaks on the rest @1086786241 oh well, this means that my dual 2.0 is still relatively current :-) @1086790758 darcs? wasnt that the scm written by a physics guy who claims not to understand DAGs? @1086792986 prom: Haskell. @1086794347 andreas: i know. but even the best programming language doesnt help with SCMs if you have not understood DAGs. i did not look at it in great detail, so i dont want to judge about it.... @1086795246 -calvino.freenode.net- jemfinch (~jfincher@wlan-be-140-254-233-124.osuweb.net) joined the channel @1086796820 -calvino.freenode.net- fincher (~fincher@lambda.cis.ohio-state.edu) joined the channel @1086797347 -calvino.freenode.net- CIA-3 (micah@hyperreal.info) joined the channel @1086797870 -dircproxy- You disconnected @1086799556 -calvino.freenode.net- larsr (~lars@ACC1DC3D.ipt.aol.com) joined the channel @1086800350 -dircproxy- You connected @1086800515 hmm the benchmark apple shows at: http://www.apple.com/powermac/ @1086800542 the 2.5 GHz is not even 10 % faster than the 2.0 GHz @1086800548 -calvino.freenode.net- sprout (~Snak@w002.z065106067.sjc-ca.dsl.cnc.net) joined the channel @1086800793 hard to believe a Dual 3.2 GHz Xeon being only 15 % faster than a Uni Pentium 4 3.4 GHz @1086800808 unless maybe it only uses one CPU @1086801255 buggs: yeah, I bet photoshop only uses one processor. @1086801405 photoshop has been multi-threaded for a long time @1086801432 hmm @1086801443 then, who knows why the dual is only 15% faster @1086803689 -calvino.freenode.net- jemfinch (~jfincher@wlan-be-140-254-233-124.osuweb.net) joined the channel @1086803717 -calvino.freenode.net- jemfinch (~jfincher@wlan-be-140-254-233-124.osuweb.net) joined the channel @1086803804 -calvino.freenode.net- jemfinch (~jfincher@wlan-be-140-254-233-124.osuweb.net) left the channel @1086803808 -calvino.freenode.net- jemfinch (~jfincher@wlan-be-140-254-233-124.osuweb.net) joined the channel @1086803940 -calvino.freenode.net- NcogNeto (~ncogneto@156.29.18.207) joined the channel @1086804101 Hello all. Question: is there an equiv. function in FunO for ---> tokencount = Len(cmd$)? Not having luck finding anything.. @1086804141 you want the length of a string variable? @1086804142 Sure. Use the size() method on your collection. @1086804145 cmd.size @1086804164 that was easy. thanks much guys @1086804173 You're welcome! @1086804217 Peter: I've looked into darcs a little. It seems it is missing a critical feature: branches. @1086804258 hmmm... why even bother doing a VC system without that? @1086804303 Well, it seems enough people use CVS without making use of branches. @1086804316 BTW I assume you've seen http://better-scm.berlios.de/ @1086804363 specifically http://better-scm.berlios.de/comparison/comparison.html @1086804385 I haven't seen it. Thanks for the link! @1086805315 hmm. @1086807019 "brucehoult: certain languages allowed people to writ quite sophisticated compilers into ant code" I don't follow. @1086807028 re @1086807226 hi chris @1086807444 I'm trying to decide how to integrate support for user C code into the Jam-based build system @1086807502 Perhaps a "Jamfile:" LID/HDP keyword that would allow the user to specify how "C-Libraries:" and "C-Objects:" get built. @1086807659 ... or maybe it should be called "Jam-File:" @1086807664 What does "integrate" mean? @1086807683 Does Jam normally support that, or is it a feature of your implementation? @1086807751 the new build-system works by calling several Jam rules like DylanLibrary, DylanLibraryFiles, DylanLibraryCObjects, etc. @1086807852 The feature I'm thinking of adding would allow make the build system also "include" a user-specified Jamfile which would tell it how to build user's C (or whatever) object files and libraries @1086807889 Currently you can use C-Source-Files: and let the build system build your *.c files using its default method, @1086807920 or make sure your .obj/.lib files are produced by some external build system @1086808346 Oh, so it's not straight Jam, it's a Jam-based Dylan build system? @1086808363 yes @1086808379 well, I'm implementing straight Jam as a library @1086808409 lib/build-system will become just a few calls to the jam library API @1086808416 So, it uses a .lid file instead of a jam file? @1086808447 FunDev produces files for its build system called dylanmakefile.mkf @1086808479 Those contain the information about the built library, mostly copied from the .lid/.hdp file @1086808529 for initial testing, I wrote a perl file to convert dylanmakefile.mkf files to .jam files that use my specific rule names @1086808574 I successfully built the console compiler using "real" Jam and the converted dylanmakefile.jam files @1086808590 Is this just for FunDev then? @1086808605 no reason why it couldn't be used by d2c @1086808618 it uses gmake for this @1086808728 Okay, so I understand your issue now. You want to add a feature to the file you're using that isn't a jam file. @1086808814 yes @1086808818 to LID, in fact @1086808874 Would the value of Jam-File: be the name of some external jam file? @1086808881 yes @1086808930 And it's treated like an include? ie., the other file would see definitions in the surrounding system? @1086808950 exactly @1086809013 The C source and object files could be listed in that jam file, rather than using any LID keywords to list them, as an alternative? @1086809050 (ie., this could be used as a way to offload stuff to jam files instead of adding more keywords to LID going forward.) @1086809094 I might suggest Jam-Include: or Jam-File-Include: @1086809120 To make it clear that it uses "include" semantics. @1086809148 ok @1086809441 I think what you're doing is really cool. I've heard good things about Jam and having a robust build system integrated into Dylan builds will be vary naz. @1086809511 "naz"? @1086809530 That's "very nice" with a lazy slur to it. @1086809574 "We already got one. It's vary naz." [turns to other guards] "I told them we already got one." [snickering] @1086809603 Re. @1086809607 It could also be considered a bad, fake French accent. @1086809624 hi andreas @1086809625 ah @1086809637 Hi Chris! @1086809656 [andreas!andreas@cantor.gwydiondylan.org] ACTION has been reading up on numerous SCM systems. They all have their shortcomings... @1086809674 +1 @1086809692 I know someone else who's been investigating them for a year or so. @1086809737 "vary naz" is also a Strongbad-ism. @1086809965 -calvino.freenode.net- jemfinch (~jfincher@140.254.57.104) joined the channel @1086811749 re RCS, p4 is very, very nice and it's free for open source projects. @1086811776 Didn't come across it yet... @1086811801 perforce @1086811818 Ah, that rings a bell. @1086811845 (From the same person who invented Jam, in fact) @1086811878 It's "free as in beer", right? @1086811906 yes, for noncommercial use @1086811937 Free as in "no charge." @1086811938 @1086811978 "Perforce Software reserves the right to approve the Open Source license" @1086812050 FreeBSD is using it extensively for development projects (but not the central source repository, which is still CVS) @1086812105 I used it at Palm for five years. Very nice. @1086812105 perforce is very nice. It's what Be used to use. @1086812310 I'm not very fond of using a closed-source SCM. It's a nice gesture that it is available at no cost, but I'd rather support people working on open source replacements. @1086812311 is anybody here going to LSM? @1086812311 [chandler!~chandler@chandler.registered] ACTION is not, but heard talk from some other people about writing a CVS replacement during LSM @1086812311 What's LSM? @1086812311 http://www.cliki.net/Libre_Software_meeting_2004 @1086812414 Hmmm. If I had known about this before, I might have considered going there. Notice is too short... @1086812483 yeah. maybe next year @1086812501 Text about why svn is a bad design: http://web.mit.edu/ghudson/thoughts/diagnosing @1086812593 Tom Lord is obviously biased... see http://web.mit.edu/ghudson/thoughts/undiagnosing too @1086812678 his major point was "svn was a lot of trouble to go through and not do a distributed VC system" @1086812782 well svn is an improvement over cvs, i think most ppl would say so @1086812813 I personally think it's a good choice, especially with the introduction of the fsfs backend @1086812874 I think I really want to make sure we don't have to go through switchting SCMs again in the foreseeable future. @1086812912 andreas, do you really think you need the distributed features ? @1086812946 when svn 1.1 comes out (in about a month or so), I'll set it up on cantor or the new system, convert our repository, and let people play with it @1086812948 Yes. I've been sitting somewhere without reasonable net connection more than once, and wished I had a way to work with the repository anyways. @1086812970 svn allows you to do a lot of things offline @1086812982 like "svn diff", "svn add", etc. @1086812987 you could just take a dump with you @1086812995 svn revert too @1086812996 Also, I like the idea of having developers sign their patches, so code can't be maliciously introduced. @1086813006 Commits? @1086813025 no, that obviously has to talk to the repository @1086813049 svk, which uses svn as a backend, allows you to do all those things @1086813061 it can interoperate with svn too @1086813076 i meant like take a copy of the repo and commit to that @1086813079 p4 allows commits to the local server that are synced when network connection returns. @1086813106 svk effectively lets you take a copy of the repo with you @1086813166 I wonder what happened to Harlequin's custom system. It was similar to p4. @1086813185 What I really found intriguing about darcs is the support for a "rename variable" change. It lets you rename a variable in one branch, and allows you to merge in a change from another branch, where the variable still has the old name. @1086813197 Chris: Hope? @1086813238 Yes, that's it, Hope. @1086813289 andreas: I just heard about that in another chat, coincidentally. I went to the darcs site, but it lacks a quick overview of it's features, so far as I could see. @1086813309 The manual is short and to the point. @1086813549 Larry McVoy on why a distributed SCM is hard to do: http://www.ussg.iu.edu/hypermail/linux/kernel/0303.1/0130.html @1086813584 "why"? I think it's pretty obvious it's hard. :-) @1086813623 housel, nice how svk is automating that, have you tried it ? @1086813632 Some would say it's trivial. @1086813633 BTW, I was thinking of P4P, the Perforce proxy. It's for remote locations, but it's not a distributed repository server. @1086813641 Although in the sense of "somebody did it before". @1086813650 :) @1086813663 I haven't actually tried svk yet @1086813721 i wonder how much trouble can arise with those systems when to ppl really work on the the same things and then try to merge back, say after a week @1086813728 *two @1086813788 Well, Perforce uses a model where you tell the server you're working on the file so others can't also work on it at the same time without making a choice to do so. @1086813815 In a distributed system I'd do the same thing, but you have to have a system for handling collisions due to latency. @1086813842 One big issue is that we're using monolithic source files. @1086813868 If RCSs understood individual definitions or even finer levels of granularity, collisions would be a lot less frequent. @1086813913 Actually, it's not really the RCSs fault. It's the fact that editors, compilers, and other tools are designed for monolithic sources. @1086813942 You could create an individual file in today's RCSs for every definition. @1086813974 Hm. After reading all of this, I think that subversion is far from what a perfect SCM would be like, but sufficently better than CVS to warrant a change. Especially if converting the repository isn't much trouble. @1086814029 One thing that grabbed my attention about Dylan back in '94 was that the language itself is very definition-oriented. All the defs in a library are compiled without regard to ordering in a source file. @1086814042 cpage: I've thought about that, and I'm not sure how much help that would be @1086814064 there were attempts to convert freebsd's cvs repository and since lately the guy doing it seemed rather pleased @1086814098 I run into file-level collisions that don't involve actual semantic collisions all the time. @1086814101 e.g. the converter tries to group commits in sets and does a reasonable job @1086814115 The conversions I've done have gone well.. and they go all the way back to 1994 @1086814142 But of course what we really need are for editors and RCSs to deal in changes instead of files that are diffed. @1086814146 Do we have version information for the Fundev tree? @1086814178 The editor should record that you moved some code or renamed a binding and the RCS should just store that record. @1086814180 the legal issues would be prohibitive, I suspect @1086814217 that's why carl just did a checkout and an import @1086814286 Hm, we could ask him... @1086814309 I think we had that discussion in March, IIRC @1086814384 BTW, I think the need for distributed RCSs may be a thing of the past. Quality network connections are nearly ubiquitous. @1086814430 Robust support for sketchy network connections should suffice and be less ambitious than a distributed repository. @1086814457 Or am I wrong about that? @1086814466 the point of new distributed systems like arch and bitkeeper is that they are centered around passing patches around... linux kernel development style @1086814558 I don't follow. @1086814575 I never even considered distributed RCSs to exist because of sketchy network connections. @1086814601 Er, I mean: it never crossed my mind that that might be a reason they exist. @1086814633 What is the significance of "passing patches around" and how is it different from "committing changes to an RCS"? @1086814668 Riastradh: No, I'm saying sketchy network connections are a challenge for distributed repositories. @1086814697 passing patches around means that you develop your branch in your own private repository, then you publish it as a changeset @1086814718 other people with their own repositories decide whether to merge your changeset into their own @1086814721 However, I *am* saying the motivation for distributed repositories in the cases I've seen in the past, was lack of high-bandwidth connections and CPU cycles. @1086814731 Er, I don't quite understand; in any case, nothing about network stability ever crossed my mind regarding distributed repositories. @1086814807 housel: I can see how that's different from the needs of a single team. @1086814901 cpage, but what if the single team grows & splits? @1086814931 Riastradh: I'm not saying anything wrt that. @1086815090 But now I am: @1086815092 Separate projects desire asynchronicity and the ability to conditionally accept changes, where a single project desires synchronicity. @1086815127 You could build a system in which synchronicity is asynchronicity with zero latency, though. @1086815265 So you could provide both, and users can decide which to use. @1086815335 we usually work against a repo copy and only when we have a stable patch set we check in to the main repo @1086815689 [Reading the darcs manual] Does it only support this asynchronous patch model? @1086815982 darcs sounds nice, but I still want support for synchronous interaction and the safety of no modifications to files others are actively working in (without explicitly overriding.) @1086816102 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) joined the channel @1086816110 to weigh in on the VCS debate @1086816116 you also have to consider solidity and maturity @1086816132 C code or not, the SVN folks took a lot of time to make sure that they did SVN properly @1086816164 cpage, if you don't want the modifications to apply, then just say 'don't apply this patch' when applying a set of patches. @1086816192 No, that's not what I'm talking about. @1086816192 one could think about reimplementing it in dylan @1086816236 OK, it's too hot for me to think & argue clearly & coherently here. Just ignore me today... @1086816263 I'm talking about daily interactive development on a team of people touching files continuously. @1086816278 Not people distributing optional patches to other teams. @1086816355 This is especially important for files for which merging is heinously difficult or impossible and for which change my multiple developers is frequent. (e.g., CodeWarior project files.) @1086816408 And in any case, I've been bitten many times in cases where there would be no problem if people could simply wait a few minutes before beginning to work on a file that someone else is about to commit. @1086816422 p4 ensures safety by default. @1086816428 It's like Dylan. :-) @1086816450 s/my multiple/by multiple @1086816804 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086817523 ~. @1086817573 ~. to you too @1086817820 ~.! @1086817831 ~.! ~.! ~.! @1086817886 re @1086817937 [housel!housel@cantor.gwydiondylan.org] ACTION notes that "~." originally became a "terminate the connection" escape sequence in the v7 unix cu(1) program @1086817992 Cool! Whose modems did we hang up? @1086818041 you can only hang up your own that way @1086818079 Ah, the days where you could send people ICMP Echo Requests with +++ATH0 as the payload... @1086818144 heh @1086818199 that only works on SLIP, right? @1086818204 Actually one of the first instances where I saw a patent doing harm. Hayes had a patent at waiting for a second after the +++ before accepting connections. @1086818215 No, that's Hayes AT command set. @1086818237 yes, but the ICMP would be encapsulated enough on PPP that that wouln't be possible @1086818239 andreas: but if the transport protocol escapes these it wont work... @1086818252 SLIP does very little escaping @1086818274 Hm, does PPP touch the payload of ICMP packets? I have my doubts... @1086818296 andreas: it could without problems escape these and unescape them at the other end of the ppp line. @1086818307 prom: yeah, but it doesn't. @1086818312 kay. @1086818313 -calvino.freenode.net- rhashem (~rhashem@dsl017-066-091.wdc1.dsl.speakeasy.net) left the channel @1086818650 that also works in ssh ("\n~.") @1086818661 ping -p 2b2b2b415448300a, btw. @1086818676 buggs: that's why we're using that. :) @1086819996 META+CTRL+BACKSPACE in emacs ? @1086820334 yeah, same deal @1086820407 (I'm immune to both, since I'm connected to IRC using an emacs client, in an X11 window, using Cygwin X) @1086820756 when i'm really sad i'm asking what it doesn in #emacs, always cheers me up :) @1086820859 -calvino.freenode.net- jemfinch (~jfincher@dhcp31191101.columbus.rr.com) joined the channel @1086822442 -calvino.freenode.net- pritlove (~pritlove@pD9E7B830.dip.t-dialin.net) joined the channel @1086831280 -dircproxy- You disconnected @1086832251 -calvino.freenode.net- cpage_ (~Chris@charger.intuit.com) joined the channel @1086833645 -calvino.freenode.net- rhashem (~rhashem@ip68-98-139-17.dc.dc.cox.net) joined the channel @1086833968 -calvino.freenode.net- buggs^z (~noidentd@pD9E97D54.dip.t-dialin.net) joined the channel @1086835227 -dircproxy- You connected @1086835656 I wonder if there's a place to get plumbing help online. @1086835692 re chan @1086835701 Hi. @1086835706 howdy, Bruce. @1086835730 [bhoult!~Bruce_Hou@metnet.met.co.nz] ACTION just paid for tickets from Wellington to LAX on the 20th. I'll be in Mojave for the week. @1086835747 It's winter where Bruce is right now, isn't it? @1086835753 yep @1086835759 I envy you. @1086835764 crisp and clear June @1086835771 jemfinch: Nope. The Internet only has information on Viagra and Britney Spears. @1086835788 sunny but cool (6C at the moment) days, down to2 or 3 at night @1086835803 bhoult: you're in Australia? @1086835805 ...oh, not even below freezing? @1086835819 I envy you a little less, then. But I still envy you. @1086835820 not here next to the Pacific Ocean, no @1086835840 Wellington, NZ @1086835857 my girlfriend went to Oz last quarter for school. @1086835881 ah. the place known herabouts as "the West Island" @1086835907 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION is melting. @1086835925 hehe @1086835930 Riastradh: your take on Dylan versus Scheme? @1086835938 Would you mind borrowing some of my thermal energy? I have far too much of it. @1086835940 Riastradh: I noticed you're in #scheme @1086835950 what's the temp there Riastradh? @1086835952 she was mostly in Melbourne and that area -- Wagga Wagga, a few others. @1086835958 Riastradh: they could have used you to power cassini @1086835966 badon, I prefer Scheme. I can't elaborate further unless you elaborate your question further, though, I'm afraid. @1086835975 Riastradh: pros/cons @1086835980 Bruce, I don't know exactly. Too Hot. Something above 75F. @1086835986 [bhoult!~Bruce_Hou@metnet.met.co.nz] ACTION is sure it'll be nice and toasty in the desert in Mojave @1086835999 this is good at this, that is good at that. I like scheme but I hang out in #dylan because.... @1086836041 I'm reading one of those books you suggested and it's all lisp. @1086836048 My range for indoor temperatures is 60F - 70F. I can't stand outdoor temperatures being above 60F. @1086836053 I think I'm going to buy a paper copy. @1086836059 Which book? @1086836065 HtDP @1086836101 Good, good. @1086836130 I agree that 60 - 70 F is the most comfortable @1086836142 I really hate reading books on my monitor. @1086836174 in the winter I keep my thermostat set in the middle of that range @1086836196 I lived in one place for a year that had no heat. @1086836202 well, a little heat... @1086836216 but it was typically in the 40's and 50's during the winter. @1086836227 'No heat' is a little strong. That would imply absolute zero. @1086836230 [Riastradh!~riastradh@pool-141-154-52-5.bos.east.verizon.net] ACTION ducks. @1086836273 It was in a basement, so I think the radon decay kept it a little bit warm. @1086836330 bhoult: We may pass each other. I may go through LA then. @1086836343 Riastradh: so, scheme? @1086836346 really? @1086836357 I'm arriving at LAX 1145 on the 20th @1086836375 Not sure yet, but we may be going to visit family south of LA. @1086836380 badon, what about it? @1086836386 and flying out at 2330 on the 25th @1086836390 Riastradh: your take on Dylan versus Scheme? @1086836403 badon, as I said, unless you ask a more elaborate question, I can't answer that well. @1086836405 this is good at this, that is good at that. I like scheme but I hang out in #dylan because.... @1086836429 just generalities @1086836481 It's too hot for me to think of general yet still coherent things to say here. @1086836503 k @1086836538 It's really hard to find info that compares obscure languages with other obscure languages. @1086836548 bhoult: Okay, I've marked those dates and times. I'll let you know if I'll be in the area around then and maybe I can buy you a beer or something. @1086836563 cool :-) @1086836605 Do you have plans to be in LA at all, or just driving through to the airport? @1086836613 I wont be in LA for long. I'm expecting to be picked up from LAX and driven pretty much direct to Mojave, and then I'll either catch a ride back to LAX later or else take the shuttle bus from Lancaster @1086836646 the bus trip is two hours. I believe it's normally more like 90 min by car @1086836656 Ah...Lancaster! You want hot and dry? Lancaster! @1086836670 I'll be at or near Mojave airport all the time in between @1086836682 Flying? @1086836692 watching people flying :-) @1086836701 hopefully 328,000+ ft high @1086836714 and hanging out with friends at XCOR @1086836718 I dunno. I'd prefer to watch planes fly than plain people fly. @1086836725 "XCOR"? @1086836731 Although people flying might have an element of amusement, I suppose. @1086836731 www.xcor.com @1086836769 we'll be the chief cheering contingent for the guys across the airfield at www.scaled.com @1086836787 the two companies are kinda sorta competitors, but in a friendly way @1086836801 e.g. some contractors (e.g. test pilots) work for both @1086836882 In case the flashing red letters didn't attract your attention: http://www.scaled.com/projects/tierone/New_Index/news/062104.htm @1086837129 nice @1086837195 [housel!housel@cantor.gwydiondylan.org] ACTION lives 50 minutes from LAX @1086837321 Then I may have to pay for three beers. @1086837337 nah, I don't drink beer :-) @1086837365 Those are logical beers, not physical :-) @1086837385 [housel!housel@cantor.gwydiondylan.org] ACTION doesn't drink those, either @1086837662 so, Peter, feel like going to Mojave? :-) @1086837891 seeing the launch has it's appeal, but... work calls @1086837991 -calvino.freenode.net- cpage__ (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086838091 oh, well, if you change your mind I can find you somwehere to sleep @1086838105 I *do* have a ride from LAX to Mojave, but not back yet. @1086838165 Good chance I'll get a lift back with Alex Pournelle, who visits his dad in/near Studio City a lot. @1086839338 badon: in theory, Dylan is almost a superset of Scheme (except for continuations) but philosophically, they seem to differ a bit @1086839405 Philosophically, Dylan is closer to CL, in its object model (Scheme doesn't have a formal object model) @1086839432 more amenable to procedural as opposed to functional code, too @1086839475 not that people don't write procedural code in Scheme @1086839510 I get the impression it's culturally more acceptable in Dylan @1086839631 true enough @1086839941 *current* Dylan implementations don't have full continuations, but they have restricted ones (limited dynamic extent, call once only). @1086839978 Note that early documentation describes Dylan exactly as something implemented in Scheme. @1086839980 There is nothing in the DRM to stop a Dylan impleementation from offering full continuations -- and it's obvious what existing construct would provide them @1086840029 .. and that situation is listed in the DRM as being oficially *undefined* what happens ... so if what happens is Scheme-like full continuations that woudl be completely conforming to the DRM. @1086840041 Scheme isn't really a language so much as a foundation for languages. :-) @1086840069 Dylan is one possible OO language that can be build with Scheme. @1086840088 (According to the early descriptions.) @1086840157 I think a fundamental difference is that Dylan (perhaps later in its development cycle) focuses on providing avenues for optimized, compiled-code and building targets separate from the development runtime. @1086840215 From that viewpoint, more dynamic features are welcome as long as they don't prevent optimized compiled code. @1086840325 And--similar to Scheme--Dylan tries to remain smaller and simpler where possible, to both make it easier to learn and use, and also to make it practical to implement on a wide variety of hardware (e.g., handheld computers with a few hundred K of RAM.) @1086840368 (Of course, a few hundred K is no longer a limitation.) @1086840395 (...er...is a limitation non longer found in handhelds.) @1086840402 s/non/no @1086840414 [cpage!~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net] ACTION will step away from the keyboard for a while @1086840535 bhoult: What's the cost of continuations these days, anyway? Are we still talking about allocating all activation records on the stack like SML/NJ does it? @1086840758 do you know of Baker's "Cheney of the MTA" technique? @1086840765 and you mean "on the heap" @1086840770 nope @1086840775 yes, that's what I meant @1086840813 "on the heap" is a very nebulous term @1086840845 there's no great cost to heap allocation instead of stack if you have a good garbage collector -- especially a generational one @1086840884 SISC is a Scheme compiler that generates Java bytecodes. It puts all the activation records on the heap, but it's very fast @1086840898 see Chris Double's weblog for some talk about it @1086840952 It manages to be fast primarily (apart from taking advantage of JIT JVMs) by trying to reuse activation frames instead of junking them and allocating more @1086840955 works well @1086840975 interesting @1086840981 "Cheney on the MTA" is a scheme for doing something similar where you are compiling to C @1086840987 any specific reference in cdouble's weblog? @1086841003 it kinda tricks the C compiler into putting the activation records into the heap instead of the stack @1086841059 what it actually does is create C code in continuation-passing style, where no function ever returns @1086841143 and *everything* is allocated on the stack, weither as a local variable (for fixed size things) or using alloca @1086841171 and the "stack" is recycled using the GC? @1086841198 then when the stack overflows this is detected, the stack is garbage-collected to find live values which are copied off into the real heap, and then there is a longjmp to unwind the stack @1086841226 This is used by the "Chicken" Scheme compiler @1086841238 it also works very well @1086841292 I've implemented telephone call and TXT switching logic in scheme inside an existing C++ system using Chicken @1086841329 nifty @1086841394 we could do either with d2c, with some work @1086841400 not a *huge* amount @1086841441 bhoult: how would you implement exceptions and unwind-protect with full continuations? @1086841459 I don't know @1086841476 that's a semantics question, not an implementation one @1086841513 once you decide on what the meaning of the interaction should be (which is really hard), implementing that decision probably isn't hard @1086841524 I wonder how much that technique increases the GC pressure @1086841533 but it's been thought about a lot in Scheme in the last little while @1086841556 which technique? @1086841570 CheneyOnTheMTA will *reduce* GC pressure a lot @1086841588 there are a ton of things in Gwydion that are allocated on the heap that most of the time could go on the stack @1086841601 #rest argument lists are the main one @1086841615 why are they allocated on the heap? @1086841628 if my profiler can be believed, 15% of GCs in d2c are triggered by allocating #rest lists @1086841666 BECAUSE ... they are a list (ok, vector in d2c) that is first class and can in theory be stored into a global variable or escape in other ways @1086841677 Ah @1086841684 I don't think I've ever seen a case where they are used that way, but they *could* be @1086841748 I guess it depends on how you reuse records. Because in a naieve implementation, a loop calling a function would seem to create an amount of garbage proportional to the # of iterations? @1086841772 bhoult: i really dont understand how full continuations and exceptions/uwp can work together. there is no problem with escaping continuations tho. @1086841775 the two ways to fix that in d2c are 1) some simple-minded escape analysis, propogated via .du files, or 2) switch to a generational GC that makes short-lived garbage cheap @1086841798 rhashem: right @1086841849 I think SISC explciitly makes loops reuse the old activation frame, plus it keeeps a small cache of recent activation frames that would catch your function call in the loop @1086841871 that makes sense @1086841904 prom: I don't understand either. Scheme people seem to think that unwind/rewind thunks are the answer. @1086841923 as I understand it :-) @1086841930 though, I don't like the idea of a sticking code at each function call that could cause a branch misprediction @1086841966 bhoult: iirc i once read about someone wanting to make this work by having both kinds of continuation. @1086841992 right @1086841993 prom: I thought the whole point of continuations was that they could emulate any sort of control flow? @1086841999 it's an area of actrive research I think @1086842002 e.g. http://www.ccs.neu.edu/home/dorai/uwcallcc/uwcallcc.html @1086842008 [prom!~prom@217.13.206.33] ACTION likes the concept of continuations a lot. @1086842122 "[dynamic-wind] does not tackle the pragmatic need that unwind-protect addresses, namely, the need to ensure that a kind of ``clean-up'' happens only for those jumps that significantly exit the block, and not for those that are minor excursions. The crux is identifying which of these two categories a jump falls into, and perhaps allowing the user a way to explicitly fix the category." @1086842228 -calvino.freenode.net- jemfinch (~jfincher@dhcp065-024-075-056.columbus.rr.com) joined the channel @1086842395 That article refers to stuff by Kent Pitman, and Pitman also has a reply to it: http://www.nhplace.com/kent/PFAQ/unwind-protect-vs-continuations.html @1086842459 rhashem: yes, control flow is arbitrary. this is also the problem. UWPs and exceptions depend on control flow being limited to a stack. @1086842509 This is very much a current topic in Scheme, as Sitaram's paper was in 2003 and Pitman's reply to it was in Nov 2003 (only 7 months ago) @1086842538 prom: have you looked at this stuff? @1086842580 it's only the multi-use continuations that are a problem. Escaping but single-use ones could be put into Dylan without any room for argument. @1086842633 But, unfortunately, multi-use ones are useful for web programming, where the user can warp back in time arbitrarily using browser page history to submit forms several times @1086842633 bhoult: yesyes. as i said. escaping continuations should be doable without too much trouble. @1086842686 single-use ones let you do co-routine stuff, which is all you need for very lightweight threads (whcih is what I was using in the phone call switching stuff) @1086842812 but web frameworks like Chris is doing require multi-use continuations @1086842814 bhoult: i havent seen this exact web page yet. but others on the same topic. @1086842826 well, unless you just want to present the user with lots of "sorry" mesages @1086843057 I like the idea of web programming with continuations, but how does the webserver know when to get rid of continuations waiting for input? @1086843099 i.e., if the user "warps back in time," presumably there's at least one, perhaps a chain of continuations that he won't be following again (the continuation chain that he warped from). @1086843594 well, bedtime @1086843597 night all @1086844278 yeah. You need to put some upperr limit on how far back they can go for practical purposes. @1086844298 Chris is serializing continuations and putting them into a database :-) @1086844306 they're only a few KB each @1086844326 they keep them for at least weeks @1086847302 What if you had a rule that signals only see handlers established at the "top" of the continuation, and each has its own default handler, and signals cannot propagate outside? @1086847302 s/at the "top" of/within @1086847539 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086847539 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086847716 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086847717 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086847782 -calvino.freenode.net- cpage (~Chris@adsl-67-118-119-204.dsl.snfc21.pacbell.net) joined the channel @1086847782 -calvino.freenode.net- bhoult (~Bruce_Hou@metnet.met.co.nz) joined the channel @1086847804 Does that make sense? Would it still be useful? @1086847845 cpage: what do you mean by being within the continuation? @1086847880 A continuation has a point at which it is "entered," right? @1086847995 continuations are called. @1086847998 at least in Scheme. @1086848001 The problem with reifying exceptions and continuations is when exceptions unwind across that boundary? @1086848099 don't conflate exceptions and continuations. @1086848099 I'm not conflating anything. I'm discussing the topic at hand. @1086848115 The topic is: How do you support exceptions and continuations. @1086848257 I'm trying to understand the problem better. What is the challenge in supporting both? @1086848278 cpage: no. the problem is that 1. the program can, at any time, change control flow in a way that will never come to the end of some "catch" construct. so the question is when the exception handler should be removed. @1086848314 cpage: 2. same for UWP. the program can change control flow arbitrarily. when should the runtime invoke the cleanup clause? @1086848329 "UWP"? unwind-protect? @1086848337 yes. @1086848395 KPM suggests two ways to allow the exit to indicate what kind of exit it is. @1086848543 hm. i see this being named "call-without-current-continuation". @1086848549 ;) @1086848578 It seems a little inelegant to me to do it that way, though. What is it about the nature of continuations that makes it necessary to have that explicitly announced. @1086848712 Or, put the other way, what is it about exceptions that makes it necessary for continuations to provide more information? @1086848713 cpage: the problem is more with the exceptions and UWP. they depend on the control flow being structured like a tree. imagine a call creating a new branch on the tree and moving to the new node, a return going back down in the tree. continuation control flow is an arbitrary graph. @1086848799 Just thinking out loud: What if there were two kinds of exception handlers, those that are on a stack and those that stick around? @1086848866 cpage: dylan kinda has this through the default handler GF. @1086848887 cpage: but you still have the problem of removing all those exception handlers. @1086848910 Why ever remove them? @1086848977 Is t