From jonathan.roewen at gmail.com Mon Jul 24 00:07:46 2006 From: jonathan.roewen at gmail.com (Jonathan Roewen) Date: Mon Jul 24 00:07:48 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? Message-ID: <59974981329-BeMail@beos> > I'm quite curious to hear if anyone has gotten this to run within a > reasonable amount of time using something other than C (perhaps even > a > functional language ;). > > Rob Depends what you mean by reasonable. I managed to squeeze my ocaml implementation to get it down to 16minutes for SANDmark. Having a 64- bit system would've made life a whole lot simpler, however. Jonathan From aguilar.james at gmail.com Mon Jul 24 00:21:35 2006 From: aguilar.james at gmail.com (James Aguilar) Date: Mon Jul 24 00:21:37 2006 Subject: [icfp-discuss] Adventure memory usage In-Reply-To: <7b2bf4900607232026s562bf7e6t29ac97174b1c9ce9@mail.gmail.com> References: <57041012163-BeMail@beos> <7b2bf4900607232026s562bf7e6t29ac97174b1c9ce9@mail.gmail.com> Message-ID: On 7/23/06, Zhenzhong Xu wrote: > > i implemented some sort of "garbage collector" in my UM, but still > sometimes the UM will use up to 400 Meg of memory. > > Z. My UM collects memory agressively when an array is deallocated but it still takes up several hundred megs. :) -- [?] James Aguilar [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 [#] 314 494 0450 [!] In the wind and the rain, my darling, say goodbye -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060723/15bee2d0/attachment-0001.html From jonathan.roewen at gmail.com Mon Jul 24 00:29:44 2006 From: jonathan.roewen at gmail.com (Jonathan Roewen) Date: Mon Jul 24 00:29:48 2006 Subject: [icfp-discuss] Adventure memory usage In-Reply-To: Message-ID: <61294348011-BeMail@beos> > On 7/23/06, Zhenzhong Xu wrote: > > > > i implemented some sort of "garbage collector" in my UM, but still > > sometimes the UM will use up to 400 Meg of memory. > > > > Z. > > > My UM collects memory agressively when an array is deallocated but it > still > takes up several hundred megs. :) Hmm. I have 512MB on my athlon, and my UM gets killed with out of memory .. that's before it even reaches a prompt! The last thing printed is [Initializing command processor]. Jonathan From druffer at worldnet.att.net Mon Jul 24 01:14:30 2006 From: druffer at worldnet.att.net (Dennis Ruffer) Date: Mon Jul 24 01:14:48 2006 Subject: [icfp-discuss] Day 3! In-Reply-To: <20060724021700.GE10442@vulcan> References: <20060723203710.GA26581@cs.cmu.edu> <20060724011109.GC10442@vulcan> <20060724021700.GE10442@vulcan> Message-ID: <14F0169F-1DD0-4E15-A56C-DB5570D99564@worldnet.att.net> My mistake. Bad handling of the binary image. ;( I'm in and that's as much as I had hope to get. Thanks for the distraction. ;) DaR On Jul 23, 2006, at 10:17 PM, Kurt Rinnert wrote: > I never observed more than ~450MB with my implemenation. (I did not > bother to tweak the C++/STL memory managament). In case you are > interested in another test case I can send you the source (after the > contest is over). > > Considering Dan's reply you probably both have a bug. Then again, who > has not? At least you know... > > > On Sun, Jul 23, 2006 at 09:21:51PM -0400, Dennis Ruffer wrote: >> Both of us are running OSX, which I believe has a 2 Gb limit per >> thread, but I also tried it on a system with 8 Gb installed. >> >> Getting a new key is something I hadn't thought of, but my other run >> will tell me for sure how much it needs. >> >> Thanks for the suggestion though. >> >> DaR >> >> On Jul 23, 2006, at 9:11 PM, Kurt Rinnert wrote: >> >>> As a test, why not try to register again with a different team name >>> etc. >>> and check whether the new key also causes problems? >>> >>> However, I doubt that a specific key causes memory exhaustion, >>> considering the very good overall design of the whole thing. >>> Still not impossible, though. >>> >>> Maybe your point gathering friend simply has more RAM... >>> >>> - Kurt >>> > -- > Kurt Rinnert, University of Liverpool - Department of Physics > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss From colanderman at gmail.com Mon Jul 24 02:00:20 2006 From: colanderman at gmail.com (Chris King) Date: Mon Jul 24 02:00:24 2006 Subject: [icfp-discuss] Adventure memory usage In-Reply-To: <61294348011-BeMail@beos> References: <61294348011-BeMail@beos> Message-ID: <875c7e070607232300v269bac95lc9358b556c242857@mail.gmail.com> On 7/24/06, Jonathan Roewen wrote: > Hmm. I have 512MB on my athlon, and my UM gets killed with out of > memory .. that's before it even reaches a prompt! The last thing > printed is [Initializing command processor]. You mentioned before you were using O'Caml... I had serious memory problems with my O'Caml interpreter too. I had to rewrite it in C to get anything done. - Chris King From jonathan.roewen at gmail.com Mon Jul 24 02:10:25 2006 From: jonathan.roewen at gmail.com (Jonathan Roewen) Date: Mon Jul 24 02:13:20 2006 Subject: [icfp-discuss] Adventure memory usage In-Reply-To: <875c7e070607232300v269bac95lc9358b556c242857@mail.gmail.com> Message-ID: <67337178600-BeMail@beos> > On 7/24/06, Jonathan Roewen wrote: > > Hmm. I have 512MB on my athlon, and my UM gets killed with out of > > memory .. that's before it even reaches a prompt! The last thing > > printed is [Initializing command processor]. > > You mentioned before you were using O'Caml... I had serious memory > problems with my O'Caml interpreter too. I had to rewrite it in C to > get anything done. Well, it runs most of UMIX fairly quickly. At the moment, I'm working on some Obj.magic related stuff for allocation -- should be interesting. Jonathan From papierfalter at googlemail.com Mon Jul 24 02:42:42 2006 From: papierfalter at googlemail.com (Wolfram Fischer) Date: Mon Jul 24 03:03:15 2006 Subject: [icfp-discuss] guest problems In-Reply-To: References: Message-ID: <44C46BE2.5080307@googlemail.com> Good Morning... thank you, Tom - so I can be pretty sure my codex is decrypted correctly - it's still segfaulting but I wan't at least a running um at the end of the contest :-) good luck, wolf Tom Murphy schrieb: > 15901920 is the size of the codex volume id 7 output. With this you will > experience a few minor bugs and your scores from the gardener user account > will not be counted--you should download the new codex (volume id 8), > whose output has size 15923864. > > Tom > > >>>> How many bytes must the initial dump have? (is 15924059 Bytes the >>>> correct length?) >>>> >>> I have 15923865 byte. >>> >> 15.901.920 byte. >> >> >> br, >> >> Michael Etscheid >> _______________________________________________ >> icfpcontest-discuss mailing list >> icfpcontest-discuss@lists.andrew.cmu.edu >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> >> >> > > > [ NEW! : http://tom7.org/ ] > [ OLD! : http://fonts.tom7.com/ ] > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > From papierfalter at yahoo.de Mon Jul 24 02:50:42 2006 From: papierfalter at yahoo.de (Wolfram Fischer) Date: Mon Jul 24 03:03:17 2006 Subject: [icfp-discuss] guest problems In-Reply-To: <200607240020.52266.micha-1@fantasymail.de> References: <44C3ED0E.6020402@googlemail.com> <69304d110607231449x30fbce26jc781c71e051d6165@mail.gmail.com> <44C3F3DB.6080204@googlemail.com> <200607240020.52266.micha-1@fantasymail.de> Message-ID: <44C46DC2.1080109@yahoo.de> Thank you! OCaml ... is on my to learn list - I really like type inference ;-) Michael Wohlwend schrieb: > Am Montag, 24. Juli 2006 00:10 schrieb Wolfram Fischer: > >> Thanks to everyone for the hints! >> I'm using ANSI C '89 this year (last year Java, the year before Delphi/C >> -- next year I'll try to finally use a language with some kind of >> lambda-calculus ;-) >> > > OCaml :-) > > >> How many bytes must the initial dump have? (is 15924059 Bytes the >> correct length?) >> > I have 15923865 byte. > > > cheers, > Michael > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > ___________________________________________________________ Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de From papierfalter at googlemail.com Mon Jul 24 03:02:27 2006 From: papierfalter at googlemail.com (Wolfram Fischer) Date: Mon Jul 24 03:03:23 2006 Subject: [icfp-discuss] UM CodeCompiler & Referenz Implementation Message-ID: <44C47083.1040909@googlemail.com> One question to the operators: Will the sourcecode for um-tools, UMIX and so on be made available to the public? I would be very interested in seeing how this 'magic' is done exactly (and not only having a vague idea!) Again a big 'Thank you' for the contest - it's great and for me on pair with the ants-contest 2 years ago ^^. Best regards, Wolf From andy_zyx at yahoo.com Mon Jul 24 03:04:17 2006 From: andy_zyx at yahoo.com (Andy) Date: Mon Jul 24 03:04:19 2006 Subject: [icfp-discuss] DIV error In-Reply-To: <1815f00607231816v7081c683ha5c516ebf37f2fb5@mail.gmail.com> Message-ID: <20060724070417.13596.qmail@web50701.mail.yahoo.com> That DIV error has gone now surprisngly after I corrected the Not-AND operator part of the code and it did not have anything to do with the division code. Then I got the text "INDEX / AMEND" and it stopped.....No idea what this is. I have checked the code in Index and Amend several times....Didn't find anything fishy. Thanks, Andy --- Robert Van Dam wrote: > Did you ever get that DIV error fixed? We've reimplemented in C since > our previous attempt in a higher level language couldn't handle all > the memory thrashing and the sandmark gives a DIV error that I can't > trace down. The codex tells me wrong key which I encountered before > and discovered a math error on my part but after having checked all > the math routines, everything looks clean. > > On 7/23/06, Andy wrote: > > Its surely fun and a great contest organised by you guys....thats the reason I > participated...but > > too bad I was not able to get it running atleast by y'day...but I guess would continue to see > what > > unravels....:) > > > > > > > > > > --- Andy wrote: > > > > > Thanks Tom. > > > Is it worth to continue now that many have already submitted and in lead or the contest is > of > > > the > > > nature where there is still a chance for the latecomers ? Just wondering :( > > > > > > Andy > > > > > > > > > > > > > > > --- Tom Murphy wrote: > > > > > > > > > > > Also, make sure that you are doing unsigned division. > > > > At this point it should be possible to single-step through the > > > > instructions and check that they are doing the correct thing... > > > > > > > > Tom > > > > > > > > > Possibly truncating/rounding issue? > > > > > > > > > > --David > > > > > > > > > > On 7/23/06, Andy wrote: > > > > > > Hi All, > > > > > > > > > > > > I completed coding the UM and tried running it and am getting the message "DIV error". > I > > > > checked > > > > > > to make sure that there is div by zero or negaivtive value conditions ...anybody had > this > > > > problem > > > > > > ? > > > > > > > > > > > > Thanks, > > > > > > Andy > > > > > > > > > > > > > > [ NEW! : http://tom7.org/ ] > > > > [ OLD! : http://fonts.tom7.com/ ] > > > > > > > > _______________________________________________ > > > > icfpcontest-discuss mailing list > > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > __________________________________________________ > > > Do You Yahoo!? > > > Tired of spam? Yahoo! Mail has the best spam protection around > > > http://mail.yahoo.com > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam protection around > > http://mail.yahoo.com > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From rvandam00 at gmail.com Mon Jul 24 03:09:13 2006 From: rvandam00 at gmail.com (Robert Van Dam) Date: Mon Jul 24 03:09:16 2006 Subject: [icfp-discuss] DIV error In-Reply-To: <20060724070417.13596.qmail@web50701.mail.yahoo.com> References: <1815f00607231816v7081c683ha5c516ebf37f2fb5@mail.gmail.com> <20060724070417.13596.qmail@web50701.mail.yahoo.com> Message-ID: <1815f00607240009j746a9015ua5baee99f4760948@mail.gmail.com> Ya know, I got the rid of DIV error by fixing NAND as well. We also had the INDEX/AMEND error for a while but I'm not sure what the probably was exactly. I think there were two things, an off by 1 error and an endianness error. Might check both of those. On 7/24/06, Andy wrote: > > That DIV error has gone now surprisngly after I corrected the Not-AND operator part of the code > and it did not have anything to do with the division code. > Then I got the text "INDEX / AMEND" and it stopped.....No idea what this is. I have checked the > code in Index and Amend several times....Didn't find anything fishy. > > Thanks, > Andy > > > --- Robert Van Dam wrote: > > > Did you ever get that DIV error fixed? We've reimplemented in C since > > our previous attempt in a higher level language couldn't handle all > > the memory thrashing and the sandmark gives a DIV error that I can't > > trace down. The codex tells me wrong key which I encountered before > > and discovered a math error on my part but after having checked all > > the math routines, everything looks clean. > > > > On 7/23/06, Andy wrote: > > > Its surely fun and a great contest organised by you guys....thats the reason I > > participated...but > > > too bad I was not able to get it running atleast by y'day...but I guess would continue to see > > what > > > unravels....:) > > > > > > > > > > > > > > > --- Andy wrote: > > > > > > > Thanks Tom. > > > > Is it worth to continue now that many have already submitted and in lead or the contest is > > of > > > > the > > > > nature where there is still a chance for the latecomers ? Just wondering :( > > > > > > > > Andy > > > > > > > > > > > > > > > > > > > > --- Tom Murphy wrote: > > > > > > > > > > > > > > Also, make sure that you are doing unsigned division. > > > > > At this point it should be possible to single-step through the > > > > > instructions and check that they are doing the correct thing... > > > > > > > > > > Tom > > > > > > > > > > > Possibly truncating/rounding issue? > > > > > > > > > > > > --David > > > > > > > > > > > > On 7/23/06, Andy wrote: > > > > > > > Hi All, > > > > > > > > > > > > > > I completed coding the UM and tried running it and am getting the message "DIV error". > > I > > > > > checked > > > > > > > to make sure that there is div by zero or negaivtive value conditions ...anybody had > > this > > > > > problem > > > > > > > ? > > > > > > > > > > > > > > Thanks, > > > > > > > Andy > > > > > > > > > > > > > > > > > [ NEW! : http://tom7.org/ ] > > > > > [ OLD! : http://fonts.tom7.com/ ] > > > > > > > > > > _______________________________________________ > > > > > icfpcontest-discuss mailing list > > > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > > > > > __________________________________________________ > > > > Do You Yahoo!? > > > > Tired of spam? Yahoo! Mail has the best spam protection around > > > > http://mail.yahoo.com > > > > _______________________________________________ > > > > icfpcontest-discuss mailing list > > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > __________________________________________________ > > > Do You Yahoo!? > > > Tired of spam? Yahoo! Mail has the best spam protection around > > > http://mail.yahoo.com > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From piersh at grouper.com Mon Jul 24 03:22:24 2006 From: piersh at grouper.com (Piers Haken) Date: Mon Jul 24 03:22:28 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? Message-ID: It's not functional, but with C# 2.0 I get: 1m59s on a 2GHz Athlon (XP SP2) 1m48s on a 1.8GHz Pentium M (Vista 5472) It's not helping me solve the puzzles any quicker, though... Piers. I'm quite curious to hear if anyone has gotten this to run within a reasonable amount of time using something other than C (perhaps even a functional language ;). Rob -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/cf161ef3/attachment.html From chris at chr-breitkopf.de Mon Jul 24 04:06:40 2006 From: chris at chr-breitkopf.de (Christoph Breitkopf) Date: Mon Jul 24 04:06:47 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <20060723212613.92447.qmail@web37212.mail.mud.yahoo.com> References: <20060723212613.92447.qmail@web37212.mail.mud.yahoo.com> Message-ID: Gee Pokey writes: > That Celeron number looks pretty good in comparison. > Why do you think your Opteron 244 slower than the Celeron ? 64-bit pointers maybe? - Chris From papierfalter at googlemail.com Mon Jul 24 04:54:11 2006 From: papierfalter at googlemail.com (Wolfram Fischer) Date: Mon Jul 24 04:53:48 2006 Subject: [icfp-discuss] repreduceable bug in my um / guest login fails Message-ID: <44C48AB3.4050208@googlemail.com> I'm still trying to log in as guest. After providing guest as input, my um fails while trying to access an array at 0x80 (which is obviously wrong - this value should be a valid (intel) address or 0. My trace says, this happens at the first occurence of load prog with array copy (the source array has the 0x80 address). This error is reproduceable (with the same address). I double-checked the um code, the sandmark produces the correct results, my added array bounds checks (before and after the array) didn't complain about anything and I have no clue as for what to look. The md5sum of my decoded file is: 97c5370f4aa9d05bd43ea27099f1c680 *decoded.umz I hope there is a nice operator which could check this ^^. All suggestions are welcome - I'm totally stuck! Thanks, Wolf From windenntw at gmail.com Mon Jul 24 04:59:08 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Mon Jul 24 04:59:10 2006 Subject: [icfp-discuss] repreduceable bug in my um / guest login fails In-Reply-To: <44C48AB3.4050208@googlemail.com> References: <44C48AB3.4050208@googlemail.com> Message-ID: <69304d110607240159x76a0cbdft712c3d400552b45d@mail.gmail.com> this is what i got after removing the headers "...delete all before..." from the output of the codex: $ md5 umix.umz MD5 (umix.umz) = f7c83a04997316fd25c14382876419fb $ ls -l umix.umz -rw-r--r-- 1 xxxxxxxxx xxxxxxxxxx 15923865 23 Jul 13:39 umix.umz $ On 7/24/06, Wolfram Fischer wrote: > I'm still trying to log in as guest. > > After providing guest as input, my um fails while trying to access an > array at 0x80 (which is obviously wrong - this value should be a valid > (intel) address or 0. > > My trace says, this happens at the first occurence of load prog with > array copy (the source array has the 0x80 address). > > This error is reproduceable (with the same address). > I double-checked the um code, the sandmark produces the correct > results, my added array bounds checks (before and after the array) > didn't complain about anything and I have no clue as for what to look. > > The md5sum of my decoded file is: > 97c5370f4aa9d05bd43ea27099f1c680 *decoded.umz > I hope there is a nice operator which could check this ^^. > > All suggestions are welcome - I'm totally stuck! > > Thanks, > Wolf > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. From papierfalter at yahoo.de Mon Jul 24 05:40:22 2006 From: papierfalter at yahoo.de (Wolfram Fischer) Date: Mon Jul 24 05:42:36 2006 Subject: [icfp-discuss] repreduceable bug in my um / guest login fails In-Reply-To: <69304d110607240159x76a0cbdft712c3d400552b45d@mail.gmail.com> References: <44C48AB3.4050208@googlemail.com> <69304d110607240159x76a0cbdft712c3d400552b45d@mail.gmail.com> Message-ID: <44C49586.4070907@yahoo.de> Thank you very much! There is something very strange about the filesize: 15923865 %4=1 !!! The funny thing is: I've countless dumps of the codex so far, and by trying to reproduce your numbers, a working umix.umz fell out (with a size of: 15923864 !!!) I'll have to follow my SVN log to find out what went wrong and when it was fixed?! ... So, no I finally begin hunting for points! Best regards and good luck, Wolf Antonio Vargas schrieb: > this is what i got after removing the headers "...delete all > before..." from the output of the codex: > > $ md5 umix.umz > MD5 (umix.umz) = f7c83a04997316fd25c14382876419fb > $ ls -l umix.umz > -rw-r--r-- 1 xxxxxxxxx xxxxxxxxxx 15923865 23 Jul 13:39 umix.umz > $ > > > > On 7/24/06, Wolfram Fischer wrote: >> I'm still trying to log in as guest. >> >> After providing guest as input, my um fails while trying to access an >> array at 0x80 (which is obviously wrong - this value should be a valid >> (intel) address or 0. >> >> My trace says, this happens at the first occurence of load prog with >> array copy (the source array has the 0x80 address). >> >> This error is reproduceable (with the same address). >> I double-checked the um code, the sandmark produces the correct >> results, my added array bounds checks (before and after the array) >> didn't complain about anything and I have no clue as for what to look. >> >> The md5sum of my decoded file is: >> 97c5370f4aa9d05bd43ea27099f1c680 *decoded.umz >> I hope there is a nice operator which could check this ^^. >> >> All suggestions are welcome - I'm totally stuck! >> >> Thanks, >> Wolf >> >> >> _______________________________________________ >> icfpcontest-discuss mailing list >> icfpcontest-discuss@lists.andrew.cmu.edu >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > > ___________________________________________________________ Der fr?he Vogel f?ngt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de From papierfalter at googlemail.com Mon Jul 24 05:41:08 2006 From: papierfalter at googlemail.com (Wolfram Fischer) Date: Mon Jul 24 05:42:40 2006 Subject: [icfp-discuss] um working Message-ID: <44C495B4.7070906@googlemail.com> finally my um is working... thanks to everyone for help and suggestions - now I'm starting collecting points :-) From ij7b3u502 at sneakemail.com Mon Jul 24 05:44:53 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 05:44:56 2006 Subject: [icfp-discuss] can't bring yourself to part with it Message-ID: <11505-09662@sneakemail.com> Please help, tell me what does this sentence mean: "You can't drop the bolt because you can't bring yourself to part with it." From abhimanyu.seth at gmail.com Mon Jul 24 05:46:41 2006 From: abhimanyu.seth at gmail.com (Abhimanyu Seth) Date: Mon Jul 24 05:46:44 2006 Subject: [icfp-discuss] Black Message-ID: <591d95910607240246h228485e6ne0e9ecfee55e9c5c@mail.gmail.com> Does anyone have any hints for solving "black" ?? -- Regards, Abhimanyu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/68cadd02/attachment.html From tony.gies at gmail.com Mon Jul 24 05:57:58 2006 From: tony.gies at gmail.com (Tony Gies) Date: Mon Jul 24 05:58:02 2006 Subject: [icfp-discuss] can't bring yourself to part with it In-Reply-To: <11505-09662@sneakemail.com> References: <11505-09662@sneakemail.com> Message-ID: <31d4b4690607240257k5f125fd9k96d3f9966a5a98f1@mail.gmail.com> You can't convince yourself to get rid of it. Usually said of things one has a personal sentimental attachment to. Not sure how that applies to the bolt, but that's all it means. tgies On 24 Jul 2006 09:44:53 -0000, vbzoli wrote: > > Please help, tell me what does this sentence mean: > > > "You can't drop the bolt because you can't bring yourself to part > with it." From franke.daniel at gmail.com Mon Jul 24 06:09:09 2006 From: franke.daniel at gmail.com (Daniel Franke) Date: Mon Jul 24 06:09:13 2006 Subject: [icfp-discuss] Re: can't bring yourself to part with it In-Reply-To: <31d4b4690607240257k5f125fd9k96d3f9966a5a98f1@mail.gmail.com> References: <11505-09662@sneakemail.com> <31d4b4690607240257k5f125fd9k96d3f9966a5a98f1@mail.gmail.com> Message-ID: <640ad44b0607240309l33b16620wf1f64ae75cf939dc@mail.gmail.com> If in doubt and you really want to get rid of it, try incinerate. 2006/7/24, Tony Gies : > You can't convince yourself to get rid of it. Usually said of things > one has a personal sentimental attachment to. Not sure how that > applies to the bolt, but that's all it means. > > tgies > > On 24 Jul 2006 09:44:53 -0000, vbzoli wrote: > > > > Please help, tell me what does this sentence mean: > > > > > > "You can't drop the bolt because you can't bring yourself to part > > with it." > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From ij7b3u502 at sneakemail.com Mon Jul 24 06:11:16 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 06:11:19 2006 Subject: [icfp-discuss] can't bring yourself to part with it Message-ID: <21726-91609@sneakemail.com> Thank you, Tony. In the meantime I looked it up in big fat dictionaries too. I just wasn't aware of this meaning of 'bring'... From pauls101 at mindspring.com Mon Jul 24 07:45:19 2006 From: pauls101 at mindspring.com (Paul Sexton) Date: Mon Jul 24 07:45:26 2006 Subject: [icfp-discuss] UM CodeCompiler & Referenz Implementation References: <44C47083.1040909@googlemail.com> Message-ID: <003d01c6af16$a4717c80$6401a8c0@ACER> Considering the organizers, there's a good chance the UM + compiler was somebody's thesis. It may be in the CMU library even now. Even given a good compiler (C? Lisp? Inform would have been a good choice), producing that contest binary must have been quite a process. Someone had to write the "shell", port a decompression library, at least minimal qbasic, all the games, etc. Probably a group project, with most of the department contributing something. Teams had a major advantage, of course, but this was one of the more accessible contests for singles yet. If only the UM had been little less picky and I could have started Saturday morning instead of Sunday evening! ----- Original Message ----- From: "Wolfram Fischer" To: "Discussion of the 2006 ICFP Programming Contest" Sent: Monday, July 24, 2006 3:02 AM Subject: [icfp-discuss] UM CodeCompiler & Referenz Implementation > One question to the operators: > > Will the sourcecode for um-tools, UMIX and so on be made available to the > public? > > I would be very interested in seeing how this 'magic' is done exactly (and > not only having a vague idea!) > > Again a big 'Thank you' for the contest - it's great and for me on pair > with the ants-contest 2 years ago ^^. > > Best regards, > Wolf > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss From clive at xtra.co.nz Mon Jul 24 08:01:10 2006 From: clive at xtra.co.nz (Clive Gifford) Date: Mon Jul 24 08:02:01 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> Message-ID: <013601c6af18$ec0f4f20$0301a8c0@Owhango1> Too tired to attempt to find any more points now, so decided to check out this SuperPI thing (that I hadn't heard previously) and compare my Sandmark time against that. Got a copy of SuperPI (Mod) from http://www.xtremesystems.com/pi/ which is where Wikipedia pointed. (Version v1.5 XS, 2006/03/14). Is there a more standardised version? And where? Anyway, ran it and sandmark twice, with SANDMARK ratios of 1.69 and 1.67. :-) (Sandmark ran in 7:20 and 7:09, SuperPI (2**20) 4:20 and 4:17 respectively.) My system is a very old 500Mhz Pentium III running Win 2000 Pro. The UMZ interpreter is lean and mean C compiled with Borland CBuilder 5 with standard "Release" options. Clive ----- Original Message ----- From: "David Dalrymple" To: "Discussion of the 2006 ICFP Programming Contest" Sent: Sunday, July 23, 2006 5:10 PM Subject: [icfp-discuss] Who's got the fastest sandmark? Just got mine to work - runs in 1m38s. Of course, that's on a 3Ghz Xeon server -- so maybe it would be fairer to do a ratio against SuperPI. On SuperPI calculating 2^20 digits on the server, I have 40s user time. So that's a calibrated SANDmark of 2.45. Can anyone beat that? --David _______________________________________________ icfpcontest-discuss mailing list icfpcontest-discuss@lists.andrew.cmu.edu https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss From davidad at mit.edu Mon Jul 24 08:22:04 2006 From: davidad at mit.edu (David Dalrymple) Date: Mon Jul 24 08:22:08 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <013601c6af18$ec0f4f20$0301a8c0@Owhango1> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <013601c6af18$ec0f4f20$0301a8c0@Owhango1> Message-ID: <504b2780607240522q229d805fo1db720d169f1d3bb@mail.gmail.com> Dang! Looks like I've been beat. Many versions of SuperPI circulate; I used "Version 2.0 of the super_pi for Linux OS", which may be faster or slower than the Windows versions. The only real way to compare is to run both on the same machine. However, since I did very little speed-tuning, I suspect yours is indeed the faster. --David On 7/24/06, Clive Gifford wrote: > Too tired to attempt to find any more points now, so decided to check out > this SuperPI thing (that I hadn't heard previously) and compare my Sandmark > time against that. > > Got a copy of SuperPI (Mod) from http://www.xtremesystems.com/pi/ which is > where Wikipedia pointed. (Version v1.5 XS, 2006/03/14). Is there a more > standardised version? And where? > > Anyway, ran it and sandmark twice, with SANDMARK ratios of 1.69 and 1.67. > :-) > > (Sandmark ran in 7:20 and 7:09, SuperPI (2**20) 4:20 and 4:17 respectively.) > > My system is a very old 500Mhz Pentium III running Win 2000 Pro. The UMZ > interpreter is lean and mean C compiled with Borland CBuilder 5 with > standard "Release" options. > > Clive > ----- Original Message ----- > From: "David Dalrymple" > To: "Discussion of the 2006 ICFP Programming Contest" > > Sent: Sunday, July 23, 2006 5:10 PM > Subject: [icfp-discuss] Who's got the fastest sandmark? > > > Just got mine to work - runs in 1m38s. > > Of course, that's on a 3Ghz Xeon server -- so maybe it would be fairer > to do a ratio against SuperPI. > > On SuperPI calculating 2^20 digits on the server, I have 40s user time. > > So that's a calibrated SANDmark of 2.45. Can anyone beat that? > > --David > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From johninprc at gmail.com Mon Jul 24 08:45:43 2006 From: johninprc at gmail.com (Yang Jiao) Date: Mon Jul 24 08:45:47 2006 Subject: [icfp-discuss] Why does our UM run so slow? Message-ID: <11de8de20607240545i5d9308bdheb5ce43b6f5923a7@mail.gmail.com> We implemented UM using ansi C++, compiling with Microsoft Visual C++ Toolkit 2003. But it runs a full round sandmark for 2.5 hour...:( So what s the problem? Any help is highly expected, thanks a lot! ===================== Yours Sincerely Yang Jiao Department of Computer Science Nanjing University 22 Hankou Road, Nanjing China.PR, 210008 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/5b22edd1/attachment-0001.html From tom7 at cs.cmu.edu Mon Jul 24 08:54:36 2006 From: tom7 at cs.cmu.edu (Tom Murphy) Date: Mon Jul 24 08:54:40 2006 Subject: [icfp-discuss] Why does our UM run so slow? In-Reply-To: <11de8de20607240545i5d9308bdheb5ce43b6f5923a7@mail.gmail.com> Message-ID: Did you.. Implement the special case of Load Program(0, addr)? Turn on compiler optimizations? - Tom > We implemented UM using ansi C++, compiling with Microsoft Visual C++ > Toolkit 2003. But it runs a full round sandmark for 2.5 hour...:( > > So what s the problem? > > Any help is highly expected, thanks a lot! > > ===================== > Yours Sincerely > Yang Jiao > Department of Computer Science > Nanjing University > 22 Hankou Road, Nanjing > China.PR, 210008 > [ NEW! : http://tom7.org/ ] [ OLD! : http://fonts.tom7.com/ ] From icfp_06 at schlagsei.de Mon Jul 24 08:55:14 2006 From: icfp_06 at schlagsei.de (=?ISO-8859-1?Q?Daniel_Schr=F6ter?=) Date: Mon Jul 24 08:55:23 2006 Subject: [icfp-discuss] Why does our UM run so slow? In-Reply-To: <11de8de20607240545i5d9308bdheb5ce43b6f5923a7@mail.gmail.com> References: <11de8de20607240545i5d9308bdheb5ce43b6f5923a7@mail.gmail.com> Message-ID: <44C4C332.9050302@schlagsei.de> Have a look at the allocation of small arrays. Hint: try to keep them to get rid of too many allocations! > We implemented UM using ansi C++, compiling with Microsoft Visual C++ > Toolkit 2003. But it runs a full round sandmark for 2.5 hour...:( > > So what s the problem? > > Any help is highly expected, thanks a lot! > > ===================== > Yours Sincerely > Yang Jiao > Department of Computer Science > Nanjing University > 22 Hankou Road, Nanjing > China.PR, 210008 > ------------------------------------------------------------------------ > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From ij7b3u502 at sneakemail.com Mon Jul 24 09:41:33 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 09:41:35 2006 Subject: [icfp-discuss] My state Message-ID: <21901-18796@sneakemail.com> Well, I'm pale cornflower blue because my (black knot program is (broken), missing a viridian smart programmer) missing more deep-sky-orange time! From shawnyar217 at yahoo.com Mon Jul 24 10:04:21 2006 From: shawnyar217 at yahoo.com (Shawn Yarbrough) Date: Mon Jul 24 10:04:23 2006 Subject: [icfp-discuss] My state In-Reply-To: <21901-18796@sneakemail.com> Message-ID: <20060724140421.15054.qmail@web53413.mail.yahoo.com> LOL. I think I'm "pale cornflower blue" also. I solved all the downloader stacks by hand before I broke down and admitted to myself that I'd need to write a program to solve the remaining stacks. Shawn vbzoli wrote: Well, I'm pale cornflower blue because my (black knot program is (broken), missing a viridian smart programmer) missing more deep-sky-orange time! _______________________________________________ icfpcontest-discuss mailing list icfpcontest-discuss@lists.andrew.cmu.edu https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss --------------------------------- Yahoo! Messenger with Voice. Make PC-to-Phone Calls to the US (and 30+ countries) for 2?/min or less. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/e7129f5c/attachment.html From daniel at erlfinsys.net Mon Jul 24 10:56:28 2006 From: daniel at erlfinsys.net (Danie Schutte) Date: Mon Jul 24 10:59:16 2006 Subject: [icfp-discuss] Fwd: Sandmark problem :) Message-ID: <200607241656.28120.daniel@erlfinsys.net> Just before I lose my mind :) on the sandmark - I get the INDEX / AMEND error - this is the amend instruction just before failure - can someone confirm of what I am doing is correct? operator 2 - array amendment - Myarray [0,0,0,11, 0,0,0,12, 0,0,0,13, 0,0,0,14, 0,0,0,15, 0,0,0,16, 0,0,0,17, 0,0,0,18, 0,0,0,19, 0,0,0,20, 0,0,0,0>> Array : 2 Offset : 10 Value : 21 Replace: 0 New Array <<0,0,0,11, 0,0,0,12, 0,0,0,13, 0,0,0,14, 0,0,0,15, 0,0,0,16, 0,0,0,17, 0,0,0,18, 0,0,0,19, 0,0,0,20, 0,0,0,21>> checking Amendment of allocated array.. INDEX / AMEND operator 7 halt error: machine_halted ------------------------------------------------------- -- Managing Director Erlang Financial Systems (Pty) Ltd Mobile: +27 84 468 3138 Phone : +11 235 6500 ext 6801 Fax : +11 235 6690 From spoons at cs.cmu.edu Mon Jul 24 11:11:13 2006 From: spoons at cs.cmu.edu (Daniel Spoonhower) Date: Mon Jul 24 11:11:16 2006 Subject: [icfp-discuss] team info & contest feedback Message-ID: <44C4E311.4030806@cs.cmu.edu> Hi everyone, With just less than an hour to go, we are still eagerly watching the leader-board! Keep up the hard work! We have a few things we would like you to do after the contest ends: (1) Your team Web pages have been updated with some additional fields. In the "Team Members" field, please enter the names of everyone who contributed ideas or code to your solutions. Additionally, you may upload a bundle of your source code and UMIX script files. Doing so is required for placing or winning the Judges' Prize. This bundle should contain the following: - the source code you used to solve the puzzles - UMIX scripts (i.e., files that can be piped to the decompressed umix binary) that generate all publications that you have submitted - commentary on particularly cool or interesting aspects of your solution (this is particularly important if you wish to be considered for the Judges' Prize). - a brief README file in the root of the archive describing its contents We ask that you fill out this form before noon EDT on Wednesday. Publication submission will be disabled at noon EDT today, when the contest ends. (2) We are going to post a questionnaire to the discussion mailing list; we would appreciate any feedback that you provide. The Contest Organizers From msmammel at starpower.net Mon Jul 24 11:15:48 2006 From: msmammel at starpower.net (msmammel@starpower.net) Date: Mon Jul 24 11:15:57 2006 Subject: [icfp-discuss] login? Message-ID: <20060724111548.BNB39645@ms05.lnh.mail.rcn.net> I suppose I'm a little late to ask this dumb question... but what do I use to login to the UMIX? It asks for login and password, I do not receive them in an email. I tried as guest with password 'guest' and also blank password but it did not work. Thanks, Mark From crary at cs.cmu.edu Mon Jul 24 11:18:13 2006 From: crary at cs.cmu.edu (Karl Crary) Date: Mon Jul 24 11:18:13 2006 Subject: [icfp-discuss] login? In-Reply-To: <20060724111548.BNB39645@ms05.lnh.mail.rcn.net> References: <20060724111548.BNB39645@ms05.lnh.mail.rcn.net> Message-ID: <44C4E4B5.1030108@cs.cmu.edu> You should be able to log in with guest and a blank password. If that doesn't work, you probably have a bug in your implementation of input. Karl Crary msmammel@starpower.net wrote: > I suppose I'm a little late to ask this dumb question... but > what do I use to login to the UMIX? It asks for login and > password, I do not receive them in an email. I tried as guest > with password 'guest' and also blank password but it did not work. > Thanks, > Mark > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > From msmammel at starpower.net Mon Jul 24 11:21:04 2006 From: msmammel at starpower.net (msmammel@starpower.net) Date: Mon Jul 24 11:21:30 2006 Subject: [icfp-discuss] login? Message-ID: <20060724112104.BNB43967@ms05.lnh.mail.rcn.net> OK, thanks. -M From nelsoneci at gmail.com Mon Jul 24 11:34:00 2006 From: nelsoneci at gmail.com (Nelson Castillo) Date: Mon Jul 24 11:34:05 2006 Subject: [icfp-discuss] team info & contest feedback In-Reply-To: <44C4E311.4030806@cs.cmu.edu> References: <44C4E311.4030806@cs.cmu.edu> Message-ID: <2accc2ff0607240834h10fe96c0qe0c250b36ba99496@mail.gmail.com> > (1) Your team Web pages have been updated with some additional fields. > In the "Team Members" field, please enter the names of everyone who > contributed ideas or code to your solutions. The URL field is very small for our webpage. I will use tinyurl as a shortcut. -- http://arhuaco.org/ From christophe.poucet at gmail.com Mon Jul 24 11:34:44 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 11:34:47 2006 Subject: [icfp-discuss] team info & contest feedback In-Reply-To: <44C4E311.4030806@cs.cmu.edu> References: <44C4E311.4030806@cs.cmu.edu> Message-ID: <44C4E894.1020906@gmail.com> Hello, Regarding the webpage field. I fear that this field is too short as I can not enter the full length of the url. Cheers Daniel Spoonhower wrote: > Hi everyone, > > With just less than an hour to go, we are still eagerly watching the > leader-board! Keep up the hard work! > > We have a few things we would like you to do after the contest ends: > > (1) Your team Web pages have been updated with some additional fields. > In the "Team Members" field, please enter the names of everyone who > contributed ideas or code to your solutions. > > Additionally, you may upload a bundle of your source code and UMIX > script files. Doing so is required for placing or winning the > Judges' Prize. This bundle should contain the following: > > - the source code you used to solve the puzzles > > - UMIX scripts (i.e., files that can be piped to the decompressed > umix binary) that generate all publications that you have > submitted > > - commentary on particularly cool or interesting aspects of your > solution (this is particularly important if you wish to be > considered for the Judges' Prize). > > - a brief README file in the root of the archive describing its > contents > > We ask that you fill out this form before noon EDT on Wednesday. > Publication submission will be disabled at noon EDT today, when the > contest ends. > > (2) We are going to post a questionnaire to the discussion mailing list; > we would appreciate any feedback that you provide. > > > The Contest Organizers > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Christophe Poucet Ph.D. Student DESICS - DDT Phone:+32 16 28 87 20 E-mail: Christophe (dot) Poucet (at) imec (dot) be IMEC vzw ? Register of Legal Entities Leuven VAT BE 0425.260.668 ? Kapeldreef 75, B-3001 Leuven, Belgium ? http://www.imec.be -------------------------------------------------------------------------------- From drl at cs.cmu.edu Mon Jul 24 11:36:41 2006 From: drl at cs.cmu.edu (Dan Licata) Date: Mon Jul 24 11:36:46 2006 Subject: [icfp-discuss] team info & contest feedback In-Reply-To: <2accc2ff0607240834h10fe96c0qe0c250b36ba99496@mail.gmail.com> References: <44C4E311.4030806@cs.cmu.edu> <2accc2ff0607240834h10fe96c0qe0c250b36ba99496@mail.gmail.com> Message-ID: <20060724153641.GB10855@cs.cmu.edu> We just increased the limit---reload and try again. -Dan On Jul24, Nelson Castillo wrote: > >(1) Your team Web pages have been updated with some additional fields. > > In the "Team Members" field, please enter the names of everyone who > > contributed ideas or code to your solutions. > > The URL field is very small for our webpage. > I will use tinyurl as a shortcut. > From danie at erlfinsys.net Mon Jul 24 10:54:47 2006 From: danie at erlfinsys.net (Danie Schutte) Date: Mon Jul 24 11:39:56 2006 Subject: [icfp-discuss] Sandmark problem :) Message-ID: <200607241654.47787.danie@erlfinsys.net> Just before I lose my mind :) on the sandmark - I get the INDEX / AMEND error - this is the amend instruction just before failure - can someone confirm of what I am doing is correct? operator 2 - array amendment - Myarray [0,0,0,11, 0,0,0,12, 0,0,0,13, 0,0,0,14, 0,0,0,15, 0,0,0,16, 0,0,0,17, 0,0,0,18, 0,0,0,19, 0,0,0,20, 0,0,0,0>> Array : 2 Offset : 10 Value : 21 Replace: 0 New Array <<0,0,0,11, 0,0,0,12, 0,0,0,13, 0,0,0,14, 0,0,0,15, 0,0,0,16, 0,0,0,17, 0,0,0,18, 0,0,0,19, 0,0,0,20, 0,0,0,21>> checking Amendment of allocated array.. INDEX / AMEND operator 7 halt error: machine_halted From vinsubra at cisco.com Mon Jul 24 11:16:25 2006 From: vinsubra at cisco.com (Vinay.S) Date: Mon Jul 24 11:39:57 2006 Subject: [icfp-discuss] Re: [icfp-announce] team info & contest feedback In-Reply-To: <44C4E311.4030806@cs.cmu.edu> References: <44C4E311.4030806@cs.cmu.edu> Message-ID: hi Daniel Thanks for all the updates. Unfourtunately, i was not able to participate in the contest. Any way the problem is really fundoo. Thanks and regards Vinay On Mon, 24 Jul 2006, Daniel Spoonhower wrote: > Date: Mon, 24 Jul 2006 11:11:13 -0400 > From: Daniel Spoonhower > To: icfpcontest-announce@lists.andrew.cmu.edu > Cc: icfpcontest-discuss@lists.andrew.cmu.edu > Subject: [icfp-announce] team info & contest feedback > > Hi everyone, > > With just less than an hour to go, we are still eagerly watching the > leader-board! Keep up the hard work! > > We have a few things we would like you to do after the contest ends: > > (1) Your team Web pages have been updated with some additional fields. > In the "Team Members" field, please enter the names of everyone who > contributed ideas or code to your solutions. > > Additionally, you may upload a bundle of your source code and UMIX > script files. Doing so is required for placing or winning the > Judges' Prize. This bundle should contain the following: > > - the source code you used to solve the puzzles > > - UMIX scripts (i.e., files that can be piped to the decompressed > umix binary) that generate all publications that you have > submitted > > - commentary on particularly cool or interesting aspects of your > solution (this is particularly important if you wish to be > considered for the Judges' Prize). > > - a brief README file in the root of the archive describing its > contents > > We ask that you fill out this form before noon EDT on Wednesday. > Publication submission will be disabled at noon EDT today, when the > contest ends. > > (2) We are going to post a questionnaire to the discussion mailing list; > we would appreciate any feedback that you provide. > > > The Contest Organizers > _______________________________________________ > icfpcontest-announce mailing list > icfpcontest-announce@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-announce > From shana.ufie at gmail.com Mon Jul 24 11:42:46 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Mon Jul 24 11:42:49 2006 Subject: [icfp-discuss] Infinite loop, need a bit of help Message-ID: <3ec1038d0607240842x1486c5f1q7dd7b232f29e42f@mail.gmail.com> Hi everyone. Just heard about this late last night, and am having fun with it (though I don't see myself making the deadline with any points anytime soon :p).... but I'm completely stuck in the implementation of the UM, as my code is running in a loop like: 0, 3, 13, 13, 13, 13, 12, 12, 13, 12, 13, 13, 0, 12, 13, 13, 0, 12 in operation 12 I'm ofsetting the finger from the beginning of the array, just like discussed earlier on this list. Full "path" is here: 08 00 00 d0 30 00 00 c0 d2 00 00 14 d4 00 00 5b d6 00 00 35 d0 00 00 0d c1 9a 9b 70 cf 93 5e b2 d0 00 00 73 ce 58 a9 70 d0 00 06 0c d2 00 00 77 0a 49 a4 46 ca bc a6 31 d8 00 00 8d da 00 00 7b 0a 1c 67 2e c0 a6 97 74 ==> *cuick* (back to 08 00 00 d0 we go) please, can anyone give a hint of where is this is going astray? what am I missing here? pretty please? shana gone crazy, back soon, leave message From ij7b3u502 at sneakemail.com Mon Jul 24 11:53:55 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 11:54:08 2006 Subject: [icfp-discuss] [icfp-announce] team info & contest feedback Message-ID: <9877-80952@sneakemail.com> And if somebody just pasted/done by hand instead of feeded by script? > UMIX scripts (i.e., files that can be piped to the decompressed > umix binary) that generate all publications that you have > submitted From tom7 at cs.cmu.edu Mon Jul 24 12:02:14 2006 From: tom7 at cs.cmu.edu (Tom Murphy) Date: Mon Jul 24 12:02:16 2006 Subject: [icfp-discuss] The contest is over! Message-ID: The 9th Annual ICFP Programming Contest has come to an end! Thank you all so much for participating. We wish to recognize the remarkable amount of work that teams put into participating in this contest. In all, 364 teams submitted at least one publication, and at least 150 made substantial progress on one or more puzzles. More than 60 brave teams registered in the last 24 hours alone! Updates to the global scoreboard were turned off at 4:00am EDT, so the standings now shown on the scoreboard do not reflect the final scores. We will announce the results of the contest at ICFP in September. At that time we will also release details of how we created the contest. We also plan to re-launch an updated Codex on a permanent site, so that programmers can continue to test their skills and experiment with it indefinitely. Please remember to upload your code and set your team information for the final standings. You can do this from your private team page any time until noon EDT this Wednesday. In the meantime, we can make available some of the fruits of our own research into the Cult of the Bound Variable. For example, after studying the Universal Machine intently over the course of the weekend, we are pleased to announce our own reference implementation. You may find it a convenient aid to your studies. It is found at the bottom of this message in uuencode format, and is available from our website: http://icfpcontest.org/um.um This implementation supports all UM programs, including uncompressed .um files and self-decompressing .umz files. To use this implementation to run a UM binary called c.um, simply concatenate the two files together: cat um.um c.um > cmu.um The resulting binary can be run in any compliant universal machine implementation, including itself. Invariably yours, The 2006 ICFP Contest Organizers begin 644 um.um MV@``$@````````````````````````````````````#0``$`U```!]?___\P M``$?8```RV```-M0``!,8```46```$D@``&+$```<-X```$P```XU@``_Q`` M`/-0``#+V```'#```2,0``$TP```-````"H````Y````6@```'L```")```` MEP```*4```"S````M````,````#%````R@```,\````*W@``"%```0]0``#G M8``!(F```21@``#:8```VV```/````W8```RF`` M`-L0``#SW@`!`#```/L0``#SV```0%```0Q@``$48``!)"```:/````U8``! M"F```200``$TW@```3```3P0``#/````W8```RF```-L0 M``#SV```"%```0Q@``$48``!)!```33>``$`,``!/"```:/````UV```"%`` M`0Q@``$48``!)!```33>```!,``!/&``````(4``!#U```.=@``$B8``!)&```-I@``#;$``!-&```U@`` MV````,3````S8```"F`````0```PW@`!`#````?````UU``!`!```68P``#J M@```&]```.S>``#F````.L```#!@``'V,```NA```#(@``#0T```XL```##0 M``#XU```\````!7````P$```)6```?8P``%]W@`!`#```>\@``#XT```[,`` B`##4```'8```"F`````0```P,```!]H``!+````=$``````` ` end From mark.probst at gmail.com Mon Jul 24 12:07:04 2006 From: mark.probst at gmail.com (Mark Probst) Date: Mon Jul 24 12:07:09 2006 Subject: [icfp-discuss] A Story, Solutions, Thoughts, Downloads Message-ID: Hi Everybody! Here's my write-up of the contest, complete with some solutions and a downloadable working UM interpreter, complete with UMIX and all passwords: http://schani.wordpress.com/ To the organizers: Thanks for the contest! Mark -- Mark Probst http://www.complang.tuwien.ac.at/schani/ http://www.flickr.com/photos/schani/ http://schani.wordpress.com/ From abhimanyu.seth at gmail.com Mon Jul 24 12:11:27 2006 From: abhimanyu.seth at gmail.com (Abhimanyu Seth) Date: Mon Jul 24 12:11:30 2006 Subject: [icfp-discuss] Wires In-Reply-To: References: Message-ID: <591d95910607240911k65122c9dl13acf52bd4c191bd@mail.gmail.com> sorry I didn't see this thread before... I got 32 points in my first try, and was wondering if it was too less. Apparently not, i see. On 7/24/06, James Aguilar wrote: > > All, > > Has anyone managed to get more than 30 points on the first wires problem? > My best result so far is 1673 bytes. Has anyone got a shorter > implementation than that? > > -- James > > -- > [?] James Aguilar > [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 > [#] 314 494 0450 > [!] In the wind and the rain, my darling, say goodbye > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > -- Regards, Abhimanyu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/132d9d1d/attachment-0001.html From ganesh at earth.li Mon Jul 24 12:23:30 2006 From: ganesh at earth.li (Ganesh Sittampalam) Date: Mon Jul 24 12:23:34 2006 Subject: [icfp-discuss] thanks to the organisers! Message-ID: Hi, I'd like to thank all the organisers for an amazing contest. The basic idea of using a virtual machine was brilliant and the individual puzzles clearly had a lot of work put into them - they were all the right level of difficulty for the time and people available. Using multiple puzzles also did a lot to smooth out the element of luck. It'll be rather hard for future organisers to top this year! Cheers, Ganesh From cseagle at redshift.com Mon Jul 24 12:33:52 2006 From: cseagle at redshift.com (Chris Eagle) Date: Mon Jul 24 12:34:06 2006 Subject: [icfp-discuss] Wires In-Reply-To: <591d95910607240911k65122c9dl13acf52bd4c191bd@mail.gmail.com> References: <591d95910607240911k65122c9dl13acf52bd4c191bd@mail.gmail.com> Message-ID: <44C4F670.8010504@redshift.com> First try 37 points here, 1209 bytes. Abhimanyu Seth wrote: > sorry I didn't see this thread before... I got 32 points in my first > try, and was wondering if it was too less. Apparently not, i see. > > On 7/24/06, *James Aguilar * > wrote: > > All, > > Has anyone managed to get more than 30 points on the first wires > problem? My best result so far is 1673 bytes. Has anyone got a > shorter implementation than that? > From abhimanyu.seth at gmail.com Mon Jul 24 12:34:53 2006 From: abhimanyu.seth at gmail.com (Abhimanyu Seth) Date: Mon Jul 24 12:34:55 2006 Subject: [icfp-discuss] Wires In-Reply-To: <591d95910607240911k65122c9dl13acf52bd4c191bd@mail.gmail.com> References: <591d95910607240911k65122c9dl13acf52bd4c191bd@mail.gmail.com> Message-ID: <591d95910607240934s1b47867ftf88801513070ad34@mail.gmail.com> and now that the contest is over, I managed to compress my boxes to get 35 for the first problem. Guess that's the max. On 7/24/06, Abhimanyu Seth wrote: > > sorry I didn't see this thread before... I got 32 points in my first try, > and was wondering if it was too less. Apparently not, i see. > > On 7/24/06, James Aguilar wrote: > > > All, > > Has anyone managed to get more than 30 points on the first wires problem? > My best result so far is 1673 bytes. Has anyone got a shorter > implementation than that? > > -- James > > -- > [?] James Aguilar > [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 > [#] 314 494 0450 > [!] In the wind and the rain, my darling, say goodbye > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > -- > Regards, > Abhimanyu > -- Regards, Abhimanyu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/3dc79b47/attachment.html From wei.hoo at gmail.com Mon Jul 24 12:36:14 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Mon Jul 24 12:36:18 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: References: Message-ID: <71fd12e60607240936l74ccede9r9b8261ddb6bbda96@mail.gmail.com> > In the meantime, we can make available some of the fruits of our own > research into the Cult of the Bound Variable. For example, after > studying the Universal Machine intently over the course of the > weekend, we are pleased to announce our own reference implementation. > You may find it a convenient aid to your studies. It is found at the > bottom of this message in uuencode format, and is available from our > website: > > http://icfpcontest.org/um.um > > This implementation supports all UM programs, including uncompressed > .um files and self-decompressing .umz files. To use this > implementation to run a UM binary called c.um, simply concatenate the > two files together: > > cat um.um c.um > cmu.um > > The resulting binary can be run in any compliant universal machine > implementation, including itself. > I'm sorry I don't get it. I thought we would get source code written in high level languages so that we could bootstrap this process. However, this is just a um implemented in um? So we still need our own virtual machine, right? From kurt.rinnert at cern.ch Mon Jul 24 12:39:09 2006 From: kurt.rinnert at cern.ch (Kurt Rinnert) Date: Mon Jul 24 12:39:26 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <71fd12e60607240936l74ccede9r9b8261ddb6bbda96@mail.gmail.com> References: <71fd12e60607240936l74ccede9r9b8261ddb6bbda96@mail.gmail.com> Message-ID: <20060724163909.GD5426@vulcan> You should have one by now :) > So we still need our own virtual machine, right? -- Kurt Rinnert, University of Liverpool - Department of Physics From icfp_06 at schlagsei.de Mon Jul 24 12:47:40 2006 From: icfp_06 at schlagsei.de (=?ISO-8859-1?Q?Daniel_Schr=F6ter?=) Date: Mon Jul 24 12:47:46 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: Message-ID: <44C4F9AC.5080502@schlagsei.de> Hi! I'd like to thank them too! Great idea, great contest! I didn't like the one last year so much, and it is the reason, that i was alone this year. I found it quite hard to do all the work on my own, but it was fun :) I'm proud that my machine work and is quite fast too...I wrote it in C# on a 1.2GHz, 800MB RAM machine :) And i think I'm not the last in the ScoreBoard :) greetz from Germany Daniel Team KillerAnts ICFP since 2004 > Hi, > > I'd like to thank all the organisers for an amazing contest. The basic > idea of using a virtual machine was brilliant and the individual > puzzles clearly had a lot of work put into them - they were all the > right level of difficulty for the time and people available. Using > multiple puzzles also did a lot to smooth out the element of luck. > > It'll be rather hard for future organisers to top this year! > > Cheers, > > Ganesh > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From wei.hoo at gmail.com Mon Jul 24 12:51:51 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Mon Jul 24 12:51:55 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <20060724163909.GD5426@vulcan> References: <71fd12e60607240936l74ccede9r9b8261ddb6bbda96@mail.gmail.com> <20060724163909.GD5426@vulcan> Message-ID: <71fd12e60607240951m52236b61y5a0454c990f6a6ca@mail.gmail.com> Anyways, I'm expecting a powerful virtual machine that runs fast and has all debugging functions. :) On 7/24/06, Kurt Rinnert wrote: > You should have one by now :) > > > So we still need our own virtual machine, right? > > -- > Kurt Rinnert, University of Liverpool - Department of Physics > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From shana.ufie at gmail.com Mon Jul 24 13:01:04 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Mon Jul 24 13:01:07 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <44C4F9AC.5080502@schlagsei.de> References: <44C4F9AC.5080502@schlagsei.de> Message-ID: <3ec1038d0607241001m3dd10a74p5f83c525b3c6c132@mail.gmail.com> No, that would be me :p On 7/24/06, Daniel Schr?ter wrote: > Hi! > > I'd like to thank them too! > Great idea, great contest! > > I didn't like the one last year so much, and it is the reason, that i > was alone this year. > I found it quite hard to do all the work on my own, but it was fun :) > > I'm proud that my machine work and is quite fast too...I wrote it in C# > on a 1.2GHz, 800MB RAM machine :) > And i think I'm not the last in the ScoreBoard :) > > greetz from Germany > Daniel > Team KillerAnts > ICFP since 2004 > > Hi, > > > > I'd like to thank all the organisers for an amazing contest. The basic > > idea of using a virtual machine was brilliant and the individual > > puzzles clearly had a lot of work put into them - they were all the > > right level of difficulty for the time and people available. Using > > multiple puzzles also did a lot to smooth out the element of luck. > > > > It'll be rather hard for future organisers to top this year! > > > > Cheers, > > > > Ganesh > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From traude at gmx.de Mon Jul 24 13:08:38 2006 From: traude at gmx.de (traude@gmx.de) Date: Mon Jul 24 13:06:55 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <44C4F9AC.5080502@schlagsei.de> References: Message-ID: <44C51AB6.21758.8B56BFF@localhost> I'd like to thank them as well! As mentioned earlier I did not have the time to participate myself, but I could follow a bit on this discussion list and it looks like great fun. The sentence "We also plan to re-launch an updated Codex on a permanent site, so that programmers can continue to test their skills and experiment with it indefinitely." made me very happy :-). Do I have to say more? More greetings from Germany, Traude Am 24 Jul 2006 um 18:47 hat Daniel Schr?ter geschrieben: > Hi! > > I'd like to thank them too! > Great idea, great contest! > > I didn't like the one last year so much, and it is the reason, that i > was alone this year. > I found it quite hard to do all the work on my own, but it was fun :) > > I'm proud that my machine work and is quite fast too...I wrote it in C# > on a 1.2GHz, 800MB RAM machine :) > And i think I'm not the last in the ScoreBoard :) > > greetz from Germany > Daniel > Team KillerAnts > ICFP since 2004 > > Hi, > > > > I'd like to thank all the organisers for an amazing contest. The basic > > idea of using a virtual machine was brilliant and the individual > > puzzles clearly had a lot of work put into them - they were all the > > right level of difficulty for the time and people available. Using > > multiple puzzles also did a lot to smooth out the element of luck. > > > > It'll be rather hard for future organisers to top this year! > > > > Cheers, > > > > Ganesh > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > From positron at gnu.org Mon Jul 24 13:04:24 2006 From: positron at gnu.org (Luca Saiu) Date: Mon Jul 24 13:08:59 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: Message-ID: <44C4FD98.3060603@gnu.org> We also wish to join the other people in thanking the organizers for their terrific work. -- Hackers Beneath the tower Luca Saiu, maintainer of GNU epsilon http://www.gnu.org/software/epsilon http://www.di.unipi.it/~saiu Marco Righi http://www.di.unipi.it/~righi From kevin.watkins at gmail.com Mon Jul 24 13:09:58 2006 From: kevin.watkins at gmail.com (Kevin Watkins) Date: Mon Jul 24 13:10:01 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <71fd12e60607240951m52236b61y5a0454c990f6a6ca@mail.gmail.com> References: <71fd12e60607240936l74ccede9r9b8261ddb6bbda96@mail.gmail.com> <20060724163909.GD5426@vulcan> <71fd12e60607240951m52236b61y5a0454c990f6a6ca@mail.gmail.com> Message-ID: <6b2ccb110607241009x458cec8ai4d765e0ea75a1a0@mail.gmail.com> On 7/24/06, Wei Hu wrote: > Anyways, I'm expecting a powerful virtual machine that runs fast and > has all debugging functions. :) I have made a crummy virtual machine with a few debugging functions available at http://watkins.dnsalias.org/~kw/sim.c -- I suppose the right way would be to hack gdb to support UM simulation. Kevin From shana.ufie at gmail.com Mon Jul 24 13:13:13 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Mon Jul 24 13:13:16 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <44C4FD98.3060603@gnu.org> References: <44C4FD98.3060603@gnu.org> Message-ID: <3ec1038d0607241013s14987d3fx7805520618cea5ed@mail.gmail.com> Well I managed to post in the thread and not give thanks, tssc tssc... Terrific work you guys did on this contest, great job! Thanks for the fun :) --- shana gone crazy, back soon, leave message On 7/24/06, Luca Saiu wrote: > We also wish to join the other people in thanking the organizers for > their terrific work. > > -- > Hackers Beneath the tower > > Luca Saiu, maintainer of GNU epsilon > http://www.gnu.org/software/epsilon > http://www.di.unipi.it/~saiu > > Marco Righi > http://www.di.unipi.it/~righi > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From niklas.broberg at gmail.com Mon Jul 24 13:15:12 2006 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Mon Jul 24 13:15:16 2006 Subject: [icfp-discuss] Wires In-Reply-To: <591d95910607240934s1b47867ftf88801513070ad34@mail.gmail.com> References: <591d95910607240911k65122c9dl13acf52bd4c191bd@mail.gmail.com> <591d95910607240934s1b47867ftf88801513070ad34@mail.gmail.com> Message-ID: Nope, we got 38, and I don't believe that's the highest anyone got either. Some serious compression to achieve that though. :-) /Niklas On 7/24/06, Abhimanyu Seth wrote: > and now that the contest is over, I managed to compress my boxes to get 35 > for the first problem. Guess that's the max. > > > On 7/24/06, Abhimanyu Seth < abhimanyu.seth@gmail.com> wrote: > > > > sorry I didn't see this thread before... I got 32 points in my first try, > and was wondering if it was too less. Apparently not, i see. > > > > > > > > On 7/24/06, James Aguilar wrote: > > > > > > > > > > > All, > > > > Has anyone managed to get more than 30 points on the first wires problem? > My best result so far is 1673 bytes. Has anyone got a shorter > implementation than that? > > > > -- James > > > > > > -- > > [?] James Aguilar > > [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 > > [#] 314 494 0450 > > [!] In the wind and the rain, my darling, say goodbye > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > > -- > > Regards, > > > > Abhimanyu > > > > -- > Regards, > Abhimanyu > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From aguilar.james at gmail.com Mon Jul 24 13:20:37 2006 From: aguilar.james at gmail.com (James Aguilar) Date: Mon Jul 24 13:20:40 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: Message-ID: Organizers, This was potentially the sweetest programming thing I've ever participated in. Thank you for your hard work on this job! Yours, James Aguilar -- [?] James Aguilar [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 [#] 314 494 0450 [!] In the wind and the rain, my darling, say goodbye -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/b4594bbf/attachment.html From vilya.harvey at gmail.com Mon Jul 24 13:21:04 2006 From: vilya.harvey at gmail.com (Vilya Harvey) Date: Mon Jul 24 13:21:07 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <3ec1038d0607241013s14987d3fx7805520618cea5ed@mail.gmail.com> References: <44C4FD98.3060603@gnu.org> <3ec1038d0607241013s14987d3fx7805520618cea5ed@mail.gmail.com> Message-ID: <6aef848f0607241021ka613cafvd3434e98f42d5f73@mail.gmail.com> I'd like to add my thanks too - I've had a great time with this competition. The dual challenges of implementing/optimising the UM and solving all the puzzles really got the neurons firing. Great work! Vil. On 7/24/06, Andreia Gaita wrote: > > Well I managed to post in the thread and not give thanks, tssc tssc... > Terrific work you guys did on this contest, great job! Thanks for the > fun :) > > --- > shana > gone crazy, back soon, leave message > > On 7/24/06, Luca Saiu wrote: > > We also wish to join the other people in thanking the organizers for > > their terrific work. > > > > -- > > Hackers Beneath the tower > > > > Luca Saiu, maintainer of GNU epsilon > > http://www.gnu.org/software/epsilon > > http://www.di.unipi.it/~saiu > > > > Marco Righi > > http://www.di.unipi.it/~righi > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/f9a1a171/attachment.html From rob.hunter at gmail.com Mon Jul 24 13:27:57 2006 From: rob.hunter at gmail.com (Rob Hunter) Date: Mon Jul 24 13:28:06 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? Message-ID: I'm curious about which high-level languages that teams used to successfully implement the UM. We eventually resorted to C after a very extended attempt with Kawa (a Scheme to Java byte code compiler). Thanks for any info on the matter. And thanks organizers, for a wonderful contest! --rob From blo.b at infonie.fr Mon Jul 24 13:30:24 2006 From: blo.b at infonie.fr (Laurent Vaucher) Date: Mon Jul 24 13:30:30 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <6aef848f0607241021ka613cafvd3434e98f42d5f73@mail.gmail.com> References: <44C4FD98.3060603@gnu.org> <3ec1038d0607241013s14987d3fx7805520618cea5ed@mail.gmail.com> <6aef848f0607241021ka613cafvd3434e98f42d5f73@mail.gmail.com> Message-ID: Thanks team POP! I still can't believe this all fits in a 2.2Mb codex. And the fun of running a pseudo-ML interpreter into an adventure interpreter in a UMIX shell, on a Universal Machine interpreter simply makes my head spin =<8cP Laurent Vaucher. From mwolak at gmail.com Mon Jul 24 13:33:46 2006 From: mwolak at gmail.com (Matt Wolak) Date: Mon Jul 24 13:33:49 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: <44C4FD98.3060603@gnu.org> <3ec1038d0607241013s14987d3fx7805520618cea5ed@mail.gmail.com> <6aef848f0607241021ka613cafvd3434e98f42d5f73@mail.gmail.com> Message-ID: <3da814220607241033w7e6c69f4x81cd12c582c1be16@mail.gmail.com> Amazing job by the Organizers! Are you going to tell us how you did it? It must've been a *ton* of work! --matt On 7/24/06, Laurent Vaucher wrote: > Thanks team POP! > > I still can't believe this all fits in a 2.2Mb codex. > > And the fun of running a pseudo-ML interpreter into an adventure > interpreter in a UMIX shell, on a Universal Machine interpreter > simply makes my head spin =<8cP > > > Laurent Vaucher. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From icfp6 at mordent.com Mon Jul 24 13:36:32 2006 From: icfp6 at mordent.com (The Machete) Date: Mon Jul 24 13:36:42 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: Message-ID: <44C50520.9000405@mordent.com> This was an excellent contest. I too would like to thank the organizers. I had a blast implementing the VM first in Perl then in C, and actually getting umix running, especially the adventure game. Unfortunately I never got to finish any of the other puzzles, but I still had a great time! Thanks again! -The Machete icfp6@mordent.com From jonathan.roewen at gmail.com Mon Jul 24 13:45:17 2006 From: jonathan.roewen at gmail.com (Jonathan Roewen) Date: Mon Jul 24 13:45:21 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: Message-ID: <109049041426-BeMail@beos> > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code > compiler). My very small team used OCaml tools, compiling to native code. I'm not sure what any other OCamlers might have done, but having a very small bit of C code for the arrays made a dramatic improvement. It decompresses codex.umz in ~5mins, and SANDmark takes somewhere around 12-15mins I think it was. If only I could get the profiler working... Source is available at Jonathan From niklas.broberg at gmail.com Mon Jul 24 13:45:51 2006 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Mon Jul 24 13:45:54 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: We did have a working (ahem) implementation in Haskell. Where by working we mean one that does the correct things. Certainly not one that was fast. We did implement a C interpreter, while waiting for the Haskell one to decrypt and decompress the UM... ;-) But in Haskell's defense, it was great for prototyping. It didn't take too long, and the C implementation was easy to write afterwards. :-) /Niklas On 7/24/06, Rob Hunter wrote: > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > Thanks for any info on the matter. And thanks organizers, for a > wonderful contest! > > --rob > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From samuel at acid-code.ch Mon Jul 24 13:51:07 2006 From: samuel at acid-code.ch (Samuel Burri) Date: Mon Jul 24 13:49:54 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <44C50520.9000405@mordent.com> References: <44C50520.9000405@mordent.com> Message-ID: <58437.62.203.120.28.1153763467.squirrel@serioussam.selfip.org> Hi All After I had finished implementing the um and it was fast enough, my collegue joined me for the remaining time of the contest. Altough we were now two persons that could work simultaneously, we didn't manage to solve one single problem. Nevertheless we collected all the points we could get and finished with a score over 500. As two relatively novices (especially to functional programming) we admire the people who implemented the UM and set up this contest. Many thanks to all of you. We sure had a great time (and now we definitively have an increased interest in functional programming). Greetings from Switzerland Sam and Jonas From mark.fitzgerald2 at sympatico.ca Mon Jul 24 13:55:07 2006 From: mark.fitzgerald2 at sympatico.ca (Mark Fitzgerald) Date: Mon Jul 24 13:55:01 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: <44C5097B.8050302@sympatico.ca> Niklas Broberg wrote: > We did have a working (ahem) implementation in Haskell. Where by > working we mean one that does the correct things. Certainly not one > that was fast. We did implement a C interpreter, while waiting for the > Haskell one to decrypt and decompress the UM... ;-) > > But in Haskell's defense, it was great for prototyping. It didn't take > too long, and the C implementation was easy to write afterwards. :-) My team partner and I had a similar experience - it took little time to get a correct UM implementation together in Common Lisp (CLisp on Cygwin). However, its execution speed was seeming slow. While waiting for the Lisp implementation to decode the codex, we wrote up a C implementation, fixing its errors by comparing its execution path to that of the Lisp implementation. We got about a 320x performance increase (16 hours to run SANDmark versus 3 minutes). :) But we suspect that having the Lisp implementation was what allowed us to debug the C implementation so easily. Mark > > /Niklas > > On 7/24/06, Rob Hunter wrote: >> I'm curious about which high-level languages that teams used to >> successfully implement the UM. We eventually resorted to C after a >> very extended attempt with Kawa (a Scheme to Java byte code compiler). >> >> Thanks for any info on the matter. And thanks organizers, for a >> wonderful contest! >> >> --rob >> _______________________________________________ >> icfpcontest-discuss mailing list >> icfpcontest-discuss@lists.andrew.cmu.edu >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From mark.fitzgerald2 at sympatico.ca Mon Jul 24 13:57:07 2006 From: mark.fitzgerald2 at sympatico.ca (Mark Fitzgerald) Date: Mon Jul 24 13:57:04 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C5097B.8050302@sympatico.ca> References: <44C5097B.8050302@sympatico.ca> Message-ID: <44C509F3.6000207@sympatico.ca> Mark Fitzgerald wrote: > Niklas Broberg wrote: >> We did have a working (ahem) implementation in Haskell. Where by >> working we mean one that does the correct things. Certainly not one >> that was fast. We did implement a C interpreter, while waiting for the >> Haskell one to decrypt and decompress the UM... ;-) >> >> But in Haskell's defense, it was great for prototyping. It didn't take >> too long, and the C implementation was easy to write afterwards. :-) > My team partner and I had a similar experience - it took little time > to get a correct UM implementation together in Common Lisp (CLisp on > Cygwin). However, its execution speed was seeming slow. While > waiting for the Lisp implementation to decode the codex, we wrote up a > C implementation, fixing its errors by comparing its execution path to > that of the Lisp implementation. We got about a 320x performance > increase (16 hours to run SANDmark versus 3 minutes). :) But we > suspect that having the Lisp implementation was what allowed us to > debug the C implementation so easily. > > Mark p.s. my partner and I were team 'BabelLisp'. :) Mark From flyfree at gmail.com Mon Jul 24 13:57:52 2006 From: flyfree at gmail.com (Zhenzhong Xu) Date: Mon Jul 24 13:57:55 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C5097B.8050302@sympatico.ca> References: <44C5097B.8050302@sympatico.ca> Message-ID: <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> My one-man-team wrote the UM in .net c#, and it ran for reasonable speed, all commands processed in UMIX are returned within a second. Zhenzhong On 7/24/06, Mark Fitzgerald wrote: > Niklas Broberg wrote: > > We did have a working (ahem) implementation in Haskell. Where by > > working we mean one that does the correct things. Certainly not one > > that was fast. We did implement a C interpreter, while waiting for the > > Haskell one to decrypt and decompress the UM... ;-) > > > > But in Haskell's defense, it was great for prototyping. It didn't take > > too long, and the C implementation was easy to write afterwards. :-) > My team partner and I had a similar experience - it took little time to > get a correct UM implementation together in Common Lisp (CLisp on > Cygwin). However, its execution speed was seeming slow. While waiting > for the Lisp implementation to decode the codex, we wrote up a C > implementation, fixing its errors by comparing its execution path to > that of the Lisp implementation. We got about a 320x performance > increase (16 hours to run SANDmark versus 3 minutes). :) But we > suspect that having the Lisp implementation was what allowed us to debug > the C implementation so easily. > > Mark > > > > > /Niklas > > > > On 7/24/06, Rob Hunter wrote: > >> I'm curious about which high-level languages that teams used to > >> successfully implement the UM. We eventually resorted to C after a > >> very extended attempt with Kawa (a Scheme to Java byte code compiler). > >> > >> Thanks for any info on the matter. And thanks organizers, for a > >> wonderful contest! > >> > >> --rob > >> _______________________________________________ > >> icfpcontest-discuss mailing list > >> icfpcontest-discuss@lists.andrew.cmu.edu > >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From azul at freaks-unidos.net Mon Jul 24 14:14:49 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Mon Jul 24 14:00:01 2006 Subject: [icfp-discuss] Thanks and small writeup In-Reply-To: References: Message-ID: <20060724181449.GT15374@bachue.com> I would also like to thank the organizers. The puzzles where *very* good. Our team, FUN, had a lot of fun this year. We're a group of five persons over different locations coordinating over IRC/Subversion. Thanks! I'm another one who thinks it will be *very* difficult for the next year's event to be better than this one. Alejo, team FUN http://azul.freaks-unidos.net/ From icfp_06 at schlagsei.de Mon Jul 24 14:07:55 2006 From: icfp_06 at schlagsei.de (=?ISO-8859-1?Q?Daniel_Schr=F6ter?=) Date: Mon Jul 24 14:07:56 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> Message-ID: <44C50C7B.6050600@schlagsei.de> As I did :) My UM was even faster...somtimes like the local bash :) Have ideas to speed it up even more, but no time :( greetz Daniel > My one-man-team wrote the UM in .net c#, and it ran for reasonable > speed, all commands processed in UMIX are returned within a second. > > Zhenzhong > > On 7/24/06, Mark Fitzgerald wrote: >> Niklas Broberg wrote: >> > We did have a working (ahem) implementation in Haskell. Where by >> > working we mean one that does the correct things. Certainly not one >> > that was fast. We did implement a C interpreter, while waiting for the >> > Haskell one to decrypt and decompress the UM... ;-) >> > >> > But in Haskell's defense, it was great for prototyping. It didn't take >> > too long, and the C implementation was easy to write afterwards. :-) >> My team partner and I had a similar experience - it took little time to >> get a correct UM implementation together in Common Lisp (CLisp on >> Cygwin). However, its execution speed was seeming slow. While waiting >> for the Lisp implementation to decode the codex, we wrote up a C >> implementation, fixing its errors by comparing its execution path to >> that of the Lisp implementation. We got about a 320x performance >> increase (16 hours to run SANDmark versus 3 minutes). :) But we >> suspect that having the Lisp implementation was what allowed us to debug >> the C implementation so easily. >> >> Mark >> >> > >> > /Niklas >> > >> > On 7/24/06, Rob Hunter wrote: >> >> I'm curious about which high-level languages that teams used to >> >> successfully implement the UM. We eventually resorted to C after a >> >> very extended attempt with Kawa (a Scheme to Java byte code >> compiler). >> >> >> >> Thanks for any info on the matter. And thanks organizers, for a >> >> wonderful contest! >> >> >> >> --rob >> >> _______________________________________________ >> >> icfpcontest-discuss mailing list >> >> icfpcontest-discuss@lists.andrew.cmu.edu >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> >> >> > _______________________________________________ >> > icfpcontest-discuss mailing list >> > icfpcontest-discuss@lists.andrew.cmu.edu >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > >> >> _______________________________________________ >> icfpcontest-discuss mailing list >> icfpcontest-discuss@lists.andrew.cmu.edu >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From asynth at gmail.com Mon Jul 24 14:08:55 2006 From: asynth at gmail.com (James McCartney) Date: Mon Jul 24 14:09:17 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <58437.62.203.120.28.1153763467.squirrel@serioussam.selfip.org> References: <44C50520.9000405@mordent.com> <58437.62.203.120.28.1153763467.squirrel@serioussam.selfip.org> Message-ID: Initially I was going to be a spectator, but I couldn't figure out what was going on so I registered. I only had a few hours to devote to this over the weekend, as I've got two conferences to prepare for. Here are my mistakes. Since it was implied that array allocations of any size should not fail, I initially used an stl std::map if the allocation was over a certain size. I was expecting there to be some use of sparse very large arrays. This was never exercised, so it just slowed down my program. Later I ripped it out. After a while I rewrote my UM to be much simpler. My op 8 had a bug when B == C. This caused a bad array index after LOADING: I compiled the hack.bas program without ever catting it, and I assumed that the console output of the compiler was the syntax. e.g. SET i = I But my own basic programs would never compile because there is no SET. I tried hacking user howie first by hand since that was in the email. I got lucky and picked the right password in the first few tries. I got a few points in adventure and then decided I needed to get on with other things. team: okigiveup score: a mere 230 really impressive work put into this contest, thanks. -- --- james mccartney -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/75ba9791/attachment.html From dinko.tenev at gmail.com Mon Jul 24 14:11:15 2006 From: dinko.tenev at gmail.com (Dinko Tenev) Date: Mon Jul 24 14:11:18 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: I started it in Haskell, but gave it up halfway, as soon as I realized I would need to save states, install custom handlers, etc. and turned over to Java. After several hours of tuning, it was running reasonably fast, judging by some of the comments on the list. Still, it would have been several times faster in C++, and I wasn't going to need to deal with the imbecility of Java's console IO. I guess Haskell would also have been better, as far as speed goes, but it would also have been a p.i.t.a. to code it using mutable arrays and such. All in all, C++ would have been the perfect choice (too bad it didn't dawn upon me earlier :) On 7/24/06, Rob Hunter wrote: > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > Thanks for any info on the matter. And thanks organizers, for a > wonderful contest! > From lispnik at gmail.com Mon Jul 24 14:08:58 2006 From: lispnik at gmail.com (Ivan Boldyrev) Date: Mon Jul 24 14:12:55 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C5097B.8050302@sympatico.ca> (Mark Fitzgerald's message of "Mon, 24 Jul 2006 13:55:07 -0400") References: <44C5097B.8050302@sympatico.ca> Message-ID: On 9546 day of my life Mark Fitzgerald wrote: > While waiting for the Lisp implementation to decode the codex, we > wrote up a C implementation, fixing its errors by comparing its > execution path to that of the Lisp implementation. We got about a > 320x performance increase (16 hours to run SANDmark versus 3 > minutes). :) But we suspect that having the Lisp implementation was > what allowed us to debug the C implementation so easily. That's exactly what I did. But I used Steel Bank Common Lisp and then quickly reimplemented VM in C. Perhaps, it would be possible to get fast implementation of VM with SBCL using low-level tricks, but SBCL's docs are somewhat sparce in this area... P.S. There was only one member in my team, and I got 707 points. This is my ICFP contest debut. P.P.S. Thanks to organazers! It was so impressive!!! -- Ivan Boldyrev From popiel at wolfskeep.com Mon Jul 24 14:13:13 2006 From: popiel at wolfskeep.com (T. Alexander Popiel) Date: Mon Jul 24 14:13:18 2006 Subject: [icfp-discuss] Wires In-Reply-To: <17604.9202.633156.290376@localhost.localdomain> References: <17604.9202.633156.290376@localhost.localdomain> Message-ID: <20060724181313.7C76F2DDC0@cashew.wolfskeep.com> In message: <17604.9202.633156.290376@localhost.localdomain> Markus Triska writes: >James Aguilar writes: >> >> Has anyone managed to get more than 30 points on the first wires problem? >> My best result so far is 1673 bytes. Has anyone got a shorter >> implementation than that? > >We also have 30 points, 3696b. I doubt that file size matters -- more >likely #boxes... I got 40 points on mult, and 45 points on the reversal... - Alex From the.michael.e at gmail.com Mon Jul 24 14:14:18 2006 From: the.michael.e at gmail.com (Michael E.) Date: Mon Jul 24 14:14:22 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C50C7B.6050600@schlagsei.de> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> Message-ID: <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> Wow. How did you do that? And what further ideas do you have? best regards, Michael Etscheid 2006/7/24, Daniel Schr?ter : > As I did :) > > My UM was even faster...somtimes like the local bash :) > Have ideas to speed it up even more, but no time :( > > greetz > Daniel > > My one-man-team wrote the UM in .net c#, and it ran for reasonable > > speed, all commands processed in UMIX are returned within a second. > > > > Zhenzhong > > > > On 7/24/06, Mark Fitzgerald wrote: > >> Niklas Broberg wrote: > >> > We did have a working (ahem) implementation in Haskell. Where by > >> > working we mean one that does the correct things. Certainly not one > >> > that was fast. We did implement a C interpreter, while waiting for the > >> > Haskell one to decrypt and decompress the UM... ;-) > >> > > >> > But in Haskell's defense, it was great for prototyping. It didn't take > >> > too long, and the C implementation was easy to write afterwards. :-) > >> My team partner and I had a similar experience - it took little time to > >> get a correct UM implementation together in Common Lisp (CLisp on > >> Cygwin). However, its execution speed was seeming slow. While waiting > >> for the Lisp implementation to decode the codex, we wrote up a C > >> implementation, fixing its errors by comparing its execution path to > >> that of the Lisp implementation. We got about a 320x performance > >> increase (16 hours to run SANDmark versus 3 minutes). :) But we > >> suspect that having the Lisp implementation was what allowed us to debug > >> the C implementation so easily. > >> > >> Mark > >> > >> > > >> > /Niklas > >> > > >> > On 7/24/06, Rob Hunter wrote: > >> >> I'm curious about which high-level languages that teams used to > >> >> successfully implement the UM. We eventually resorted to C after a > >> >> very extended attempt with Kawa (a Scheme to Java byte code > >> compiler). > >> >> > >> >> Thanks for any info on the matter. And thanks organizers, for a > >> >> wonderful contest! > >> >> > >> >> --rob > >> >> _______________________________________________ > >> >> icfpcontest-discuss mailing list > >> >> icfpcontest-discuss@lists.andrew.cmu.edu > >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> > >> > _______________________________________________ > >> > icfpcontest-discuss mailing list > >> > icfpcontest-discuss@lists.andrew.cmu.edu > >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > >> > >> _______________________________________________ > >> icfpcontest-discuss mailing list > >> icfpcontest-discuss@lists.andrew.cmu.edu > >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From sdb at webalo.com Mon Jul 24 14:16:46 2006 From: sdb at webalo.com (Seth Bruder) Date: Mon Jul 24 14:16:48 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? Message-ID: <44C50E8E.6070604@webalo.com> I spent most of the time I had doing the Adventure game. I used the uploader to turn 'speak' into a "teleport to" command and removed the restrictions on 'take', then got the blueprints from the Museum, but I could not seem to get around the "REDACTED" message -- even messing with string_fromchar, etc -- appears that there is a 'taint' on the item description. I found this very frustrating after a looong day -- not a lot of points for getting to the blueprints. Does anybody know what to do with the Blueprints? Thanks, Seth From ij7b3u502 at sneakemail.com Mon Jul 24 14:25:39 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 14:25:43 2006 Subject: [icfp-discuss] Web page and thanks Message-ID: <13705-12918@sneakemail.com> I made a little page with my codes, solutions. Do not expect working code for the raytracer, or the like... http://......./icfp/ Also my pretty fast simulator can be found there, written in plain old C. It's on a slow DSL line, so I'll remove if it would generate too much traffic. And thanks for the organizers, it was great, and was surely spent many more time on inventing these fine tasks and developing the code! :o) I'd like to peek into the sources... VOROSBARANYI Zoltan From christophe.poucet at gmail.com Mon Jul 24 14:31:05 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 14:31:08 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <504b2780607240522q229d805fo1db720d169f1d3bb@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <013601c6af18$ec0f4f20$0301a8c0@Owhango1> <504b2780607240522q229d805fo1db720d169f1d3bb@mail.gmail.com> Message-ID: <2b0051e00607241131q5bd16ac3qccef922717bd4c32@mail.gmail.com> On my 1.6M laptop I get the following for sandmark: On my p1.6 M laptop I get the following: real 1m52.991s user 1m49.599s sys 0m0.312 It's written in C++ with the use of STL, and through the use of vector and list I remove the need to cast from pointers to values which makes this system nicely portable to 64bit :) (Tested, one of our team members had a 64bit platform) Cheers -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/877f5748/attachment.html From ij7b3u502 at sneakemail.com Mon Jul 24 14:40:46 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 14:40:49 2006 Subject: [icfp-discuss] Web page and thanks Message-ID: <16013-82147@sneakemail.com> Oops... the link: ......./icfp/ From rvandam00 at gmail.com Mon Jul 24 14:41:28 2006 From: rvandam00 at gmail.com (Robert Van Dam) Date: Mon Jul 24 14:41:33 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: References: Message-ID: <1815f00607241141m51f69060kd26d875ab02c5bd0@mail.gmail.com> I was hoping to make a request from the organizers. Would it be possible to maintain a team webpage that continued to accept submissions on an unofficial basis? We were finally able to get a working UM but did not have enough time left to get beyond the BASIC and some of the adventure puzzles (I was way too sleepy to handle most of the others) but I want to take a crack at all of them this week while my interest level is still high and I have as much time as I need. I know that there is a program in the UMIX for decoding the submissions so that you can see how many points it's worth but I'd like to keep a running tally so that I can see how much there's left to do. Obviously, I could do this myself but it would be great if you guys could make it work from the webpage without counting towards the official score. Rob P.S. As others have stated, this was a really great contest. On 7/24/06, Tom Murphy wrote: > > The 9th Annual ICFP Programming Contest has come to an end! > Thank you all so much for participating. > > We wish to recognize the remarkable amount of work that teams put into > participating in this contest. In all, 364 teams submitted at least > one publication, and at least 150 made substantial progress on one or > more puzzles. More than 60 brave teams registered in the last 24 hours > alone! > > Updates to the global scoreboard were turned off at 4:00am EDT, so the > standings now shown on the scoreboard do not reflect the final scores. > We will announce the results of the contest at ICFP in September. At > that time we will also release details of how we created the contest. > We also plan to re-launch an updated Codex on a permanent site, so > that programmers can continue to test their skills and experiment with > it indefinitely. > > Please remember to upload your code and set your team information for > the final standings. You can do this from your private team page any > time until noon EDT this Wednesday. > > In the meantime, we can make available some of the fruits of our own > research into the Cult of the Bound Variable. For example, after > studying the Universal Machine intently over the course of the > weekend, we are pleased to announce our own reference implementation. > You may find it a convenient aid to your studies. It is found at the > bottom of this message in uuencode format, and is available from our > website: > > http://icfpcontest.org/um.um > > This implementation supports all UM programs, including uncompressed > .um files and self-decompressing .umz files. To use this > implementation to run a UM binary called c.um, simply concatenate the > two files together: > > cat um.um c.um > cmu.um > > The resulting binary can be run in any compliant universal machine > implementation, including itself. > > > Invariably yours, > The 2006 ICFP Contest Organizers > > begin 644 um.um > MV@``$@````````````````````````````````````#0``$`U```!]?___\P > M``$?8```RV```-M0``!,8```46```$D@``&+$```<-X```$P```XU@``_Q`` > M`/-0``#+V```'#```2,0``$TP```-````"H````Y````6@```'L```")```` > MEP```*4```"S````M````,````#%````R@```,\````*W@``"%```0]0``#G > M8``!(F```21@``#:8```VV``` M```UU@``"%```,M@``#38```VQ```//8``!.W@``0@```>/````W8```RF`` > M`-L0``#SW@`!`#```/L0``#SV```0%```0Q@``$48``!)"```:/````U8``! > M"F```200``$TW@```3```3P0``# MU@``0%```,M@``#38```VQ```//8``!OW@``8P```>/````W8```RF```-L0 > M``#SV```"%```0Q@``$48``!)!```33>``$`,``!/"```:/````UV```"%`` > M`0Q@``$48``!)!```33>```!,``!/&``` M"%```0]0``#G8``!(F```21@``#:8```VQ```31@``'*8``!_Q```? M(``!G,```#7>```(4``!#U```.=@``$B8``!)&```-I@``#;$``!-&``` M``'_$``!]T```2<@``& M`-L0``$T8``!RF```?\0``'W4``!)R```9S````UW@``"%```0]0``#G8``! > M(F```21@``#:8```VQ```31@``'*8``!_Q```?=@``$G(``!G,```#5P```` > M8```RF```-L0``#S,``!^X```"<@``$SU@``"%```,M@``#38```VR```9S` > M```U8```RF```-L0``#SD````\```#5@``$*8``!)!```32@```$P```-;`` > M``1@``#*8```VR```9S````UV```"%```0Q@``$48``!)!```330``#>U@`` > MV````,3````S8```"F`````0```PW@`!`#````?````UU``!`!```68P``#J > M@```&]```.S>``#F````.L```#!@``'V,```NA```#(@``#0T```XL```##0 > M``#XU```\````!7````P$```)6```?8P``%]W@`!`#```>\@``#XT```[,`` > B`##4```'8```"F`````0```P,```!]H``!+````=$``````` > ` > end > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From wei.hoo at gmail.com Mon Jul 24 14:46:07 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Mon Jul 24 14:46:10 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <1815f00607241141m51f69060kd26d875ab02c5bd0@mail.gmail.com> References: <1815f00607241141m51f69060kd26d875ab02c5bd0@mail.gmail.com> Message-ID: <71fd12e60607241146q6928abceq5aecb0b929a4287b@mail.gmail.com> > I know that there is a program in the UMIX for decoding the > submissions so that you can see how many points it's worth but I'd > like to keep a running tally so that I can see how much there's left > to do. Can't you tell its points simply by looking at a publication? From ij7b3u502 at sneakemail.com Mon Jul 24 14:53:11 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Mon Jul 24 14:53:13 2006 Subject: [icfp-discuss] Web page and thanks Message-ID: <25645-82104@sneakemail.com> Well, it seems that sneakemail filters out the domain name... The link: (reverse "/pfci/il.ozbv//:ptth") :o) From kevin.watkins at gmail.com Mon Jul 24 14:56:31 2006 From: kevin.watkins at gmail.com (Kevin Watkins) Date: Mon Jul 24 14:56:34 2006 Subject: [icfp-discuss] Hellomark Message-ID: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> As an alternative to SANDmark, I present Hellomark: 1. Download um.um from the contest web site. 2. Download hello.um from http://watkins.dnsalias.org/~kw/hello.um (or decode the attached). 3. cat um.um um.um um.um um.um um.um um.um hello.um > um6hello.um (That's six "um.um"s.) 4. Run um6hello.um in your favorite UM implementation. My crummy simulator's Hellomark is 1m46s. Kevin begin 644 hello.um MT```2*````#0``!EH````-```&R@````T```;*````#0``!OH````-```"R@ M````T```(*````#0``!WH````-```&^@````T``` References: <109049041426-BeMail@beos> Message-ID: <44C518B9.6060909@guxx.net> Jonathan Roewen schrieb: > My very small team used OCaml tools, compiling to native code. I'm not > sure what any other OCamlers might have done, but having a very small > bit of C code for the arrays made a dramatic improvement. I've never done anything in OCaml before and just reading a small tutorial which tells me that OCaml integers on 32bit platforms have only 31 bits. How did you get around this when writing the UM which likes to have 32 bit sandstone platters? Guido From marcin.mucha at gmail.com Mon Jul 24 15:00:52 2006 From: marcin.mucha at gmail.com (Marcin Mucha) Date: Mon Jul 24 15:00:54 2006 Subject: [icfp-discuss] Thanks to the organizers Message-ID: <8a623fa10607241200l11874e96x7dad85a202c2f85b@mail.gmail.com> Hi, I would like to thanks the organizers for making such an excellent contest. The idea of the VM was nice, the problems were excellent and really well prepared, but what struck me the most was millions of tiny little details, little jokes, surprising turns etc. Guys, you did an amazing job !! Marcin (THETeam) From davidad at mit.edu Mon Jul 24 15:04:20 2006 From: davidad at mit.edu (David Dalrymple) Date: Mon Jul 24 15:04:23 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> Message-ID: <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> 1m3.7s here. --David On 7/24/06, Kevin Watkins wrote: > As an alternative to SANDmark, I present Hellomark: > > 1. Download um.um from the contest web site. > > 2. Download hello.um from http://watkins.dnsalias.org/~kw/hello.um (or > decode the attached). > > 3. cat um.um um.um um.um um.um um.um um.um hello.um > um6hello.um > > (That's six "um.um"s.) > > 4. Run um6hello.um in your favorite UM implementation. > > My crummy simulator's Hellomark is 1m46s. > > Kevin > > begin 644 hello.um > MT```2*````#0``!EH````-```&R@````T```;*````#0``!OH````-```"R@ > M````T```(*````#0``!WH````-```&^@````T``` :`&2@````T```(:````#0```*H````'`````` > ` > end > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From db at tepkom.ru Mon Jul 24 15:11:57 2006 From: db at tepkom.ru (Dmitri Boulytchev) Date: Mon Jul 24 15:12:11 2006 Subject: [icfp-discuss] Adventure game question. Message-ID: <44C51B7D.2070403@tepkom.ru> Folks, since the contest is over may I ask a question about the adventure game? I did't manage even to leave the first room. I've destroeyd the spring and the pill, collected all items from the junk pile and failed to combine them into a working keypad. Help! :)) DB. From jonathan.roewen at gmail.com Mon Jul 24 15:14:27 2006 From: jonathan.roewen at gmail.com (Jonathan Roewen) Date: Mon Jul 24 15:14:31 2006 Subject: [icfp-discuss] OCaml and 31 bits? Message-ID: <3039377922-BeMail@beos> > Jonathan Roewen schrieb: > > My very small team used OCaml tools, compiling to native code. I'm > > not > > sure what any other OCamlers might have done, but having a very > > small > > bit of C code for the arrays made a dramatic improvement. > > I've never done anything in OCaml before and just reading a small > tutorial which tells me that OCaml integers on 32bit platforms have > only > 31 bits. > > How did you get around this when writing the UM which likes to have > 32 > bit sandstone platters? OCaml also provides boxed integers: int32, int64, and nativeint. Unsigned division was initially tricky (converting to int64s and back), but with the little C file, I added a udiv function to work around it. It's all in the source (very short and easy to read IMO). Jonathan From micha-1 at fantasymail.de Mon Jul 24 15:17:16 2006 From: micha-1 at fantasymail.de (Michael Wohlwend) Date: Mon Jul 24 15:15:35 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <44C518B9.6060909@guxx.net> References: <109049041426-BeMail@beos> <44C518B9.6060909@guxx.net> Message-ID: <200607242117.16214.micha-1@fantasymail.de> Am Montag, 24. Juli 2006 21:00 schrieb G.Schoepp: > I've never done anything in OCaml before and just reading a small > tutorial which tells me that OCaml integers on 32bit platforms have only > 31 bits. > > How did you get around this when writing the UM which likes to have 32 > bit sandstone platters? there are Int32 and Int64 modules for handling 32 and 64 bit numbers. On a 64-bit processor the ints are 63 bits wide. cheers Michael From td at pixar.com Mon Jul 24 15:15:40 2006 From: td at pixar.com (Tom Duff) Date: Mon Jul 24 15:15:42 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> Message-ID: On Mon, 24 Jul 2006, Kevin Watkins wrote: > As an alternative to SANDmark, I present Hellomark: ... > My crummy simulator's Hellomark is 1m46s. That *is* silly. Mine (C program, 123 ncsl: allocation=>malloc, abandonment=>free) does 0m53.072s on the fastest machine I have -- dual 3.4gHz Xeon, 3750 Mbytes. -- Tom Duff, for The Eigenvectors. All the flappy bits get sucked flat. From crary at cs.cmu.edu Mon Jul 24 15:16:03 2006 From: crary at cs.cmu.edu (Karl Crary) Date: Mon Jul 24 15:16:05 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C51B7D.2070403@tepkom.ru> References: <44C51B7D.2070403@tepkom.ru> Message-ID: <44C51C73.8080303@cs.cmu.edu> To repair a broken item, you need to find out what parts are missing and combine it with those parts. Very often, those parts need to be repaired (or partially repaired) themselves. Karl Crary Dmitri Boulytchev wrote: > Folks, > > since the contest is over may I ask a question about the adventure game? > I did't manage even to leave the first room. I've destroeyd the > spring and the pill, > collected all items from the junk pile and failed to combine them into a > working keypad. > Help! :)) > > DB. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > From rvandam00 at gmail.com Mon Jul 24 15:16:50 2006 From: rvandam00 at gmail.com (Robert Van Dam) Date: Mon Jul 24 15:16:52 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <71fd12e60607241146q6928abceq5aecb0b929a4287b@mail.gmail.com> References: <1815f00607241141m51f69060kd26d875ab02c5bd0@mail.gmail.com> <71fd12e60607241146q6928abceq5aecb0b929a4287b@mail.gmail.com> Message-ID: <1815f00607241216j47e8815di17590f064562ba52@mail.gmail.com> It would appear that the points are one of several things encoded into the publication. Actually, I take that back, it may be that the points are encoded into the icfp.exe file in the UMIX. On 7/24/06, Wei Hu wrote: > > I know that there is a program in the UMIX for decoding the > > submissions so that you can see how many points it's worth but I'd > > like to keep a running tally so that I can see how much there's left > > to do. > > Can't you tell its points simply by looking at a publication? > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From amin.ahmad at gmail.com Mon Jul 24 15:17:09 2006 From: amin.ahmad at gmail.com (Amin Ahmad) Date: Mon Jul 24 15:17:12 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C51B7D.2070403@tepkom.ru> References: <44C51B7D.2070403@tepkom.ru> Message-ID: <4fc9f4dd0607241217r5d464c30t8dad1b8245a5b638@mail.gmail.com> I am guessing you made the following mistake: You must not combine the antenna with the radio because the IXCP-1950 part (or whatever it is) must be combined with a radio that is missing an antenna. -amin On 7/24/06, Dmitri Boulytchev wrote: > > Folks, > > since the contest is over may I ask a question about the adventure > game? > I did't manage even to leave the first room. I've destroeyd the > spring and the pill, > collected all items from the junk pile and failed to combine them into a > working keypad. > Help! :)) > > DB. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/dc082bcc/attachment-0001.html From crary at cs.cmu.edu Mon Jul 24 15:17:35 2006 From: crary at cs.cmu.edu (Karl Crary) Date: Mon Jul 24 15:17:37 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: <44C50E8E.6070604@webalo.com> References: <44C50E8E.6070604@webalo.com> Message-ID: <44C51CCF.30809@cs.cmu.edu> The note that you read when first arriving on the streets of Chicago contains a hint for how to defeat the Censory Engine. Karl Crary Seth Bruder wrote: > > I spent most of the time I had doing the Adventure game. > I used the uploader to turn 'speak' into a "teleport to" command and > removed the restrictions on 'take', then got the blueprints from the > Museum, but I could not seem to get around the "REDACTED" message -- > even messing with string_fromchar, etc -- appears that there is a > 'taint' on the item description. > I found this very frustrating after a looong day -- not a lot of > points for getting to the blueprints. > > Does anybody know what to do with the Blueprints? > > Thanks, > Seth > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From shana.ufie at gmail.com Mon Jul 24 15:19:09 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Mon Jul 24 15:19:13 2006 Subject: [icfp-discuss] Sandmark opcode output Message-ID: <3ec1038d0607241219p3388dc24t5508fc890dd6a8eb@mail.gmail.com> Can anyone be so kind as to send me a log of the sandmark opcodes as the vm is processing, if you have it? I have a problem in my implementation and I can't figure out what's wrong, and would like to compare the logs to see where the opcodes diverge. Thanks shana gone crazy, back soon, leave message From peter.gijsels at gmail.com Mon Jul 24 15:20:27 2006 From: peter.gijsels at gmail.com (Peter Gijsels) Date: Mon Jul 24 15:20:31 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> Message-ID: <21f2dc700607241220r3d1e8d8bm7b501494ab9e1d28@mail.gmail.com> Initial version of the UM in CMUCL Common Lisp. It took about half an hour to decode the initial codex. After debugging, instead of optimizing, I did a straightforward reimplementation in C/C++. Peter Gijsels On 7/24/06, Michael E. wrote: > Wow. How did you do that? And what further ideas do you have? > > > best regards, > > Michael Etscheid > > 2006/7/24, Daniel Schr?ter : > > As I did :) > > > > My UM was even faster...somtimes like the local bash :) > > Have ideas to speed it up even more, but no time :( > > > > greetz > > Daniel > > > My one-man-team wrote the UM in .net c#, and it ran for reasonable > > > speed, all commands processed in UMIX are returned within a second. > > > > > > Zhenzhong > > > > > > On 7/24/06, Mark Fitzgerald wrote: > > >> Niklas Broberg wrote: > > >> > We did have a working (ahem) implementation in Haskell. Where by > > >> > working we mean one that does the correct things. Certainly not one > > >> > that was fast. We did implement a C interpreter, while waiting for the > > >> > Haskell one to decrypt and decompress the UM... ;-) > > >> > > > >> > But in Haskell's defense, it was great for prototyping. It didn't take > > >> > too long, and the C implementation was easy to write afterwards. :-) > > >> My team partner and I had a similar experience - it took little time to > > >> get a correct UM implementation together in Common Lisp (CLisp on > > >> Cygwin). However, its execution speed was seeming slow. While waiting > > >> for the Lisp implementation to decode the codex, we wrote up a C > > >> implementation, fixing its errors by comparing its execution path to > > >> that of the Lisp implementation. We got about a 320x performance > > >> increase (16 hours to run SANDmark versus 3 minutes). :) But we > > >> suspect that having the Lisp implementation was what allowed us to debug > > >> the C implementation so easily. > > >> > > >> Mark > > >> > > >> > > > >> > /Niklas > > >> > > > >> > On 7/24/06, Rob Hunter wrote: > > >> >> I'm curious about which high-level languages that teams used to > > >> >> successfully implement the UM. We eventually resorted to C after a > > >> >> very extended attempt with Kawa (a Scheme to Java byte code > > >> compiler). > > >> >> > > >> >> Thanks for any info on the matter. And thanks organizers, for a > > >> >> wonderful contest! > > >> >> > > >> >> --rob > > >> >> _______________________________________________ > > >> >> icfpcontest-discuss mailing list > > >> >> icfpcontest-discuss@lists.andrew.cmu.edu > > >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> >> > > >> > _______________________________________________ > > >> > icfpcontest-discuss mailing list > > >> > icfpcontest-discuss@lists.andrew.cmu.edu > > >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> > > > >> > > >> _______________________________________________ > > >> icfpcontest-discuss mailing list > > >> icfpcontest-discuss@lists.andrew.cmu.edu > > >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From wei.hoo at gmail.com Mon Jul 24 15:20:41 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Mon Jul 24 15:20:43 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C51B7D.2070403@tepkom.ru> References: <44C51B7D.2070403@tepkom.ru> Message-ID: <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> You need to inc pill, antenna, spring. The dependence graph is as folllows: -- motherboard -- A-1920-IXB --- red transistor | | | keypad ---- button -- screw -- processor - cache | -- bolt | -- radio - blue transistor The dependence becomes manually intractable afterwards.. On 7/24/06, Dmitri Boulytchev wrote: > Folks, > > since the contest is over may I ask a question about the adventure game? > I did't manage even to leave the first room. I've destroeyd the > spring and the pill, > collected all items from the junk pile and failed to combine them into a > working keypad. > Help! :)) > > DB. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From shawnyar217 at yahoo.com Mon Jul 24 15:20:57 2006 From: shawnyar217 at yahoo.com (Shawn Yarbrough) Date: Mon Jul 24 15:20:59 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C51B7D.2070403@tepkom.ru> Message-ID: <20060724192057.54403.qmail@web53414.mail.yahoo.com> If you combine the antenna with the radio, game over. The A-1920-IXB part needs to be combined with a radio that is missing an antenna. Incinerate the antenna. Shawn Dmitri Boulytchev wrote: Folks, since the contest is over may I ask a question about the adventure game? I did't manage even to leave the first room. I've destroeyd the spring and the pill, collected all items from the junk pile and failed to combine them into a working keypad. Help! :)) DB. _______________________________________________ icfpcontest-discuss mailing list icfpcontest-discuss@lists.andrew.cmu.edu https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss --------------------------------- Do you Yahoo!? Get on board. You're invited to try the new Yahoo! Mail Beta. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/73213ff0/attachment.html From windenntw at gmail.com Mon Jul 24 15:21:11 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Mon Jul 24 15:21:13 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> Message-ID: <69304d110607241221t3255fd35ufddd5e572a07b4f7@mail.gmail.com> Hello, world! ABORT reached real 1m30.449s user 1m25.740s sys 0m0.450s winden ^^ On 7/24/06, David Dalrymple wrote: > 1m3.7s here. > > --David > > On 7/24/06, Kevin Watkins wrote: > > As an alternative to SANDmark, I present Hellomark: > > > > 1. Download um.um from the contest web site. > > > > 2. Download hello.um from http://watkins.dnsalias.org/~kw/hello.um (or > > decode the attached). > > > > 3. cat um.um um.um um.um um.um um.um um.um hello.um > um6hello.um > > > > (That's six "um.um"s.) > > > > 4. Run um6hello.um in your favorite UM implementation. > > > > My crummy simulator's Hellomark is 1m46s. > > > > Kevin > > > > begin 644 hello.um > > MT```2*````#0``!EH````-```&R@````T```;*````#0``!OH````-```"R@ > > M````T```(*````#0``!WH````-```&^@````T``` > :`&2@````T```(:````#0```*H````'`````` > > ` > > end > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. From popiel at wolfskeep.com Mon Jul 24 15:21:23 2006 From: popiel at wolfskeep.com (T. Alexander Popiel) Date: Mon Jul 24 15:21:31 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C51B7D.2070403@tepkom.ru> References: <44C51B7D.2070403@tepkom.ru> Message-ID: <20060724192123.E2D722DDC0@cashew.wolfskeep.com> In message: <44C51B7D.2070403@tepkom.ru> Dmitri Boulytchev writes: > Folks, > > since the contest is over may I ask a question about the adventure game? > I did't manage even to leave the first room. I've destroeyd the >spring and the pill, >collected all items from the junk pile and failed to combine them into a >working keypad. >Help! :)) You probably put the antenna on the radio. Don't do that. - Alex From wei.hoo at gmail.com Mon Jul 24 15:21:53 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Mon Jul 24 15:21:56 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> Message-ID: <71fd12e60607241221k11b8ee5cs4006dd011d5908cb@mail.gmail.com> Oops, what I see in gmail is not what I get, try again: -- motherboard -- A-1920-IXB --- red transistor | | | keypad ---- button -- screw -- processor - cache | -- bolt | -- radio - blue transistor On 7/24/06, Wei Hu wrote: > You need to inc pill, antenna, spring. > The dependence graph is as folllows: > -- motherboard -- A-1920-IXB --- red transistor > | | | > keypad ---- button -- screw -- processor - cache > | > -- bolt > | > -- > radio - blue transistor > The dependence becomes manually intractable afterwards.. > > On 7/24/06, Dmitri Boulytchev wrote: > > Folks, > > > > since the contest is over may I ask a question about the adventure game? > > I did't manage even to leave the first room. I've destroeyd the > > spring and the pill, > > collected all items from the junk pile and failed to combine them into a > > working keypad. > > Help! :)) > > > > DB. > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From davidad at mit.edu Mon Jul 24 15:24:25 2006 From: davidad at mit.edu (David Dalrymple) Date: Mon Jul 24 15:24:31 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <1815f00607241216j47e8815di17590f064562ba52@mail.gmail.com> References: <1815f00607241141m51f69060kd26d875ab02c5bd0@mail.gmail.com> <71fd12e60607241146q6928abceq5aecb0b929a4287b@mail.gmail.com> <1815f00607241216j47e8815di17590f064562ba52@mail.gmail.com> Message-ID: <504b2780607241224t3e618d01v72f8368af200ee0f@mail.gmail.com> The point value is in cleartext after the area and task. --David On 7/24/06, Robert Van Dam wrote: > It would appear that the points are one of several things encoded into > the publication. Actually, I take that back, it may be that the > points are encoded into the icfp.exe file in the UMIX. > > On 7/24/06, Wei Hu wrote: > > > I know that there is a program in the UMIX for decoding the > > > submissions so that you can see how many points it's worth but I'd > > > like to keep a running tally so that I can see how much there's left > > > to do. > > > > Can't you tell its points simply by looking at a publication? > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From niklas.broberg at gmail.com Mon Jul 24 15:26:36 2006 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Mon Jul 24 15:26:41 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <1815f00607241216j47e8815di17590f064562ba52@mail.gmail.com> References: <1815f00607241141m51f69060kd26d875ab02c5bd0@mail.gmail.com> <71fd12e60607241146q6928abceq5aecb0b929a4287b@mail.gmail.com> <1815f00607241216j47e8815di17590f064562ba52@mail.gmail.com> Message-ID: Check this publication: BASIC.MLC=100@1383|d1847812413ce91e08532f454d7b117 PRBLM.PUZ=XXX@................................... where XXX is your score for that particular puzzle. So you can count it by hand. :-) /Niklas On 7/24/06, Robert Van Dam wrote: > It would appear that the points are one of several things encoded into > the publication. Actually, I take that back, it may be that the > points are encoded into the icfp.exe file in the UMIX. > > On 7/24/06, Wei Hu wrote: > > > I know that there is a program in the UMIX for decoding the > > > submissions so that you can see how many points it's worth but I'd > > > like to keep a running tally so that I can see how much there's left > > > to do. > > > > Can't you tell its points simply by looking at a publication? > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From marc.vanwoerkom at FernUni-Hagen.de Mon Jul 24 15:35:14 2006 From: marc.vanwoerkom at FernUni-Hagen.de (Marc van Woerkom) Date: Mon Jul 24 15:30:29 2006 Subject: [icfp-discuss] Thanks to the organizers In-Reply-To: <8a623fa10607241200l11874e96x7dad85a202c2f85b@mail.gmail.com> References: <8a623fa10607241200l11874e96x7dad85a202c2f85b@mail.gmail.com> Message-ID: <44C520F2.7050604@fernuni-hagen.de> Marcin Mucha wrote: > Hi, > I would like to thanks the organizers for making such an excellent > contest. The idea of the VM was nice, the problems were excellent and > really well prepared, but what struck me the most was millions of tiny > little details, little jokes, surprising turns etc. Guys, you did an > amazing job !! > It was fantastic. Done with love for details. It appealed to the nerd within me, I had no chance than to devote my free time to it. Oh i will get spanked for that. Regards, Marc From icfp_06 at schlagsei.de Mon Jul 24 15:35:42 2006 From: icfp_06 at schlagsei.de (=?ISO-8859-1?Q?Daniel_Schr=F6ter?=) Date: Mon Jul 24 15:35:44 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> Message-ID: <44C5210E.3050308@schlagsei.de> Mainly I did not really release allocated memory, but mark it as released. Idea was to avoid reallocation of 1-2 item arrays. I divided created a List for the arrays and defined a pageSize and a pageReleaseSize. Another List did the 'released-marking'. So any array to be released is only released (arrays[index]=null), when it's size is greater than pageReleaseSize. When allocating just get the last item of the 'released-List', set the corresponding array-entries to 0, if it exists and only create a new one, if it is null. Examples (as I remember): pageSize: 16 byte pageReleaseSize: 4096 byte I had about 65k arrays and about half of them marked as released, nearly none null. MemUsage: maximum seen 700MB (while adventure). Ideas for speedup: I work on byte[] at the moment. This is 'historical', because I experimented with MemoryStreams. Better: List, but no time :) greetz Daniel P.S.: It ran on my 1.2GHz, <1GB RAM and never bothered my 2 C# Express Instances, FireFox, UEStudio, Thunderbird, AVG-Free and the WebRadio had fine Pprogram all the time :) > Wow. How did you do that? And what further ideas do you have? > > > best regards, > > Michael Etscheid > > 2006/7/24, Daniel Schr?ter : >> As I did :) >> >> My UM was even faster...somtimes like the local bash :) >> Have ideas to speed it up even more, but no time :( >> >> greetz >> Daniel >> > My one-man-team wrote the UM in .net c#, and it ran for reasonable >> > speed, all commands processed in UMIX are returned within a second. >> > >> > Zhenzhong >> > >> > On 7/24/06, Mark Fitzgerald wrote: >> >> Niklas Broberg wrote: >> >> > We did have a working (ahem) implementation in Haskell. Where by >> >> > working we mean one that does the correct things. Certainly not one >> >> > that was fast. We did implement a C interpreter, while waiting >> for the >> >> > Haskell one to decrypt and decompress the UM... ;-) >> >> > >> >> > But in Haskell's defense, it was great for prototyping. It >> didn't take >> >> > too long, and the C implementation was easy to write afterwards. >> :-) >> >> My team partner and I had a similar experience - it took little >> time to >> >> get a correct UM implementation together in Common Lisp (CLisp on >> >> Cygwin). However, its execution speed was seeming slow. While >> waiting >> >> for the Lisp implementation to decode the codex, we wrote up a C >> >> implementation, fixing its errors by comparing its execution path to >> >> that of the Lisp implementation. We got about a 320x performance >> >> increase (16 hours to run SANDmark versus 3 minutes). :) But we >> >> suspect that having the Lisp implementation was what allowed us to >> debug >> >> the C implementation so easily. >> >> >> >> Mark >> >> >> >> > >> >> > /Niklas >> >> > >> >> > On 7/24/06, Rob Hunter wrote: >> >> >> I'm curious about which high-level languages that teams used to >> >> >> successfully implement the UM. We eventually resorted to C >> after a >> >> >> very extended attempt with Kawa (a Scheme to Java byte code >> >> compiler). >> >> >> >> >> >> Thanks for any info on the matter. And thanks organizers, for a >> >> >> wonderful contest! >> >> >> >> >> >> --rob >> >> >> _______________________________________________ >> >> >> icfpcontest-discuss mailing list >> >> >> icfpcontest-discuss@lists.andrew.cmu.edu >> >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> >> >> >> >> > _______________________________________________ >> >> > icfpcontest-discuss mailing list >> >> > icfpcontest-discuss@lists.andrew.cmu.edu >> >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> >> > >> >> >> >> _______________________________________________ >> >> icfpcontest-discuss mailing list >> >> icfpcontest-discuss@lists.andrew.cmu.edu >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> >> >> > _______________________________________________ >> > icfpcontest-discuss mailing list >> > icfpcontest-discuss@lists.andrew.cmu.edu >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > >> > >> > >> >> _______________________________________________ >> icfpcontest-discuss mailing list >> icfpcontest-discuss@lists.andrew.cmu.edu >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From lipeng at cis.upenn.edu Mon Jul 24 15:38:14 2006 From: lipeng at cis.upenn.edu (Li, Peng) Date: Mon Jul 24 15:38:16 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> Message-ID: <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source code is attached. Feel free to compile and compare. Have fun! real 0m55.453s user 0m55.427s sys 0m0.004s Usage: $ g++ -O6 machine.cpp -o machine $ time machine < sandmark.umz #include #include #include #include #include typedef unsigned int u32; u32 *codex = 0; u32 pc = 0; u32 *seg = NULL; u32 regs[8] = {0,0,0,0,0,0,0,0}; u32 my_alloc(u32 size){ u32* p = (u32*) calloc(size+1, 4); *p = size; return ((u32) (p+1)); } void my_free(u32 u) { u32* p = (u32*) (u-4); free(p); } u32 my_getsize(u32 u) { u32* p = (u32*) (u-4); return p[0]; } void run() { seg = codex; pc = 0; while(1) { u32 w = seg[pc++]; u32 opcode = w >> 28; u32 a = (w >> 6) & 7; u32 b = (w >> 3) & 7; u32 c = w & 7; u32 sa = (w >> 25) & 7; u32 dat = (w << 7) >> 7; //printf("pc=%d opcode=%d a=%d b=%d c=%d sa=%d dat=%d\n", pc, opcode, a,b,c,sa,dat); switch (opcode) { case 0: if (regs[c]) regs[a] = regs[b]; break; case 1: if (regs[b]==0) regs[a] = seg[regs[c]]; else regs[a] = ((u32 *)(regs[b]))[regs[c]]; break; case 2: if (regs[a]==0) seg[regs[b]] = regs[c]; else ((u32 *)(regs[a]))[regs[b]] = regs[c]; break; case 3: regs[a] = regs[b] + regs[c]; break; case 4: regs[a] = regs[b] * regs[c]; break; case 5: regs[a] = regs[b] / regs[c]; break; case 6: regs[a] = (~(regs[b] & regs[c])); break; case 7: exit(0); return; case 8: regs[b] = my_alloc(regs[c]); break; case 9: assert(regs[c]>0); my_free(regs[c]); break; case 10: printf("%c", regs[c]); break; case 11: regs[c] = getchar(); if (regs[c] == EOF) regs[c] = 0xffffffff; break; case 12: if (regs[b]!=0) { if (seg != codex) my_free((u32) seg); int size = my_getsize(regs[b]); seg = (u32*) my_alloc(size); memcpy(seg, (void*) regs[b], size*4); } pc = regs[c]; break; case 13: regs[sa] = dat; break; } } } int main(int argc, char**argv) { FILE* f = fopen( argv[1], "rb");; assert(f); fseek(f,0,SEEK_END); int cdxlen = ftell(f); rewind(f); codex = (u32 *) malloc(cdxlen+4); fread(codex,1,cdxlen,f); fclose(f); for (int i=0; i< cdxlen/4; i++) codex[i] = ntohl(codex[i]); run(); return 0; } On 7/23/06, David Dalrymple wrote: > Just got mine to work - runs in 1m38s. > > Of course, that's on a 3Ghz Xeon server -- so maybe it would be fairer > to do a ratio against SuperPI. > > On SuperPI calculating 2^20 digits on the server, I have 40s user time. > > So that's a calibrated SANDmark of 2.45. Can anyone beat that? > > --David > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > From christophe.poucet at gmail.com Mon Jul 24 15:39:41 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 15:39:44 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C5210E.3050308@schlagsei.de> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> Message-ID: <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> That sounds like the approach I used as well. I would use a vector of "arrays" (though in effect they were vectors as well). Whenever I needed to allocated I'd check a list to see if any index had been ammended previously. If so I'd reuse it, otherwise I'd push a new vector onto the vector of arrays: case INSTR_ALLOCATION: { if (free_list.empty()) { vector empty; empty.resize(C,0); array_environment.push_back(empty); B = array_environment.size() - 1; } else { value loc = free_list.front(); free_list.pop_front(); array_environment[loc].resize(C, 0); B = loc; } } break; case INSTR_ABANDONMENT: { // No other way to empty it and remove storage // Not required array_environment[C].clear(); free_list.push_front(C); } break; Cheers, Christophe (vincenz) On 7/24/06, Daniel Schr?ter wrote: > > Mainly I did not really release allocated memory, but mark it as released. > Idea was to avoid reallocation of 1-2 item arrays. > > I divided created a List for the arrays and defined a pageSize > and a pageReleaseSize. > Another List did the 'released-marking'. > So any array to be released is only released (arrays[index]=null), when > it's size is greater than pageReleaseSize. > When allocating just get the last item of the 'released-List', set the > corresponding array-entries to 0, if it exists > and only create a new one, if it is null. > > Examples (as I remember): > pageSize: 16 byte > pageReleaseSize: 4096 byte > > I had about 65k arrays and about half of them marked as released, nearly > none null. > MemUsage: maximum seen 700MB (while adventure). > > Ideas for speedup: I work on byte[] at the moment. This is 'historical', > because I experimented > with MemoryStreams. Better: List, but no time :) > > greetz > Daniel > P.S.: It ran on my 1.2GHz, <1GB RAM and never bothered my 2 C# Express > Instances, FireFox, > UEStudio, Thunderbird, AVG-Free and the WebRadio had fine Pprogram all > the time :) > > Wow. How did you do that? And what further ideas do you have? > > > > > > best regards, > > > > Michael Etscheid > > > > 2006/7/24, Daniel Schr?ter : > >> As I did :) > >> > >> My UM was even faster...somtimes like the local bash :) > >> Have ideas to speed it up even more, but no time :( > >> > >> greetz > >> Daniel > >> > My one-man-team wrote the UM in .net c#, and it ran for reasonable > >> > speed, all commands processed in UMIX are returned within a second. > >> > > >> > Zhenzhong > >> > > >> > On 7/24/06, Mark Fitzgerald wrote: > >> >> Niklas Broberg wrote: > >> >> > We did have a working (ahem) implementation in Haskell. Where by > >> >> > working we mean one that does the correct things. Certainly not > one > >> >> > that was fast. We did implement a C interpreter, while waiting > >> for the > >> >> > Haskell one to decrypt and decompress the UM... ;-) > >> >> > > >> >> > But in Haskell's defense, it was great for prototyping. It > >> didn't take > >> >> > too long, and the C implementation was easy to write afterwards. > >> :-) > >> >> My team partner and I had a similar experience - it took little > >> time to > >> >> get a correct UM implementation together in Common Lisp (CLisp on > >> >> Cygwin). However, its execution speed was seeming slow. While > >> waiting > >> >> for the Lisp implementation to decode the codex, we wrote up a C > >> >> implementation, fixing its errors by comparing its execution path to > >> >> that of the Lisp implementation. We got about a 320x performance > >> >> increase (16 hours to run SANDmark versus 3 minutes). :) But we > >> >> suspect that having the Lisp implementation was what allowed us to > >> debug > >> >> the C implementation so easily. > >> >> > >> >> Mark > >> >> > >> >> > > >> >> > /Niklas > >> >> > > >> >> > On 7/24/06, Rob Hunter wrote: > >> >> >> I'm curious about which high-level languages that teams used to > >> >> >> successfully implement the UM. We eventually resorted to C > >> after a > >> >> >> very extended attempt with Kawa (a Scheme to Java byte code > >> >> compiler). > >> >> >> > >> >> >> Thanks for any info on the matter. And thanks organizers, for a > >> >> >> wonderful contest! > >> >> >> > >> >> >> --rob > >> >> >> _______________________________________________ > >> >> >> icfpcontest-discuss mailing list > >> >> >> icfpcontest-discuss@lists.andrew.cmu.edu > >> >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> >> > >> >> > _______________________________________________ > >> >> > icfpcontest-discuss mailing list > >> >> > icfpcontest-discuss@lists.andrew.cmu.edu > >> >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> > > >> >> > >> >> _______________________________________________ > >> >> icfpcontest-discuss mailing list > >> >> icfpcontest-discuss@lists.andrew.cmu.edu > >> >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> > >> > _______________________________________________ > >> > icfpcontest-discuss mailing list > >> > icfpcontest-discuss@lists.andrew.cmu.edu > >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > >> > > >> > > >> > >> _______________________________________________ > >> icfpcontest-discuss mailing list > >> icfpcontest-discuss@lists.andrew.cmu.edu > >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/eb3550f4/attachment-0001.html From nattfodd at gmail.com Mon Jul 24 15:51:20 2006 From: nattfodd at gmail.com (Alexandre Buisse) Date: Mon Jul 24 15:51:23 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <200607242117.16214.micha-1@fantasymail.de> References: <109049041426-BeMail@beos> <44C518B9.6060909@guxx.net> <200607242117.16214.micha-1@fantasymail.de> Message-ID: <41b037ed0607241251p80bba45x4addd83a6c41c4d1@mail.gmail.com> On 7/24/06, Michael Wohlwend wrote: > > Am Montag, 24. Juli 2006 21:00 schrieb G.Schoepp: > > I've never done anything in OCaml before and just reading a small > > tutorial which tells me that OCaml integers on 32bit platforms have only > > 31 bits. > > > > How did you get around this when writing the UM which likes to have 32 > > bit sandstone platters? > > there are Int32 and Int64 modules for handling 32 and 64 bit numbers. On a > 64-bit processor the ints are 63 bits wide. Yes but they act on signed ints. We began using them and had some bugs in the um. Using small C bindings with unsigned long int (on 32-bits machines) corrected that. /Alexandre -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/d6cabc8f/attachment.html From icfp_06 at schlagsei.de Mon Jul 24 15:54:48 2006 From: icfp_06 at schlagsei.de (=?ISO-8859-1?Q?Daniel_Schr=F6ter?=) Date: Mon Jul 24 15:54:51 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> Message-ID: <44C52588.7070804@schlagsei.de> I see, but i think you do some clearing and rearranging on the lists -> too slow. That's the reason why I use the additional list to index released items. I NEVER remove anything from the 'processor-arrays' greetz Daniel Team KillerAnts ICFP since 2004 > That sounds like the approach I used as well. > > I would use a vector of "arrays" (though in effect they were vectors > as well). Whenever I needed to allocated I'd check a list to > see if any index had been ammended previously. If so I'd reuse it, > otherwise I'd push a new vector onto the vector of arrays: > > case INSTR_ALLOCATION: > { > if (free_list.empty()) > { > vector empty; > empty.resize(C,0); > array_environment.push_back(empty); > B = array_environment.size() - 1; > } else { > value loc = free_list.front(); > free_list.pop_front(); > array_environment[loc].resize(C, 0); > B = loc; > } > } > break; > case INSTR_ABANDONMENT: > { > // No other way to empty it and remove storage > // Not required > array_environment[C].clear(); > free_list.push_front(C); > } > break; > > Cheers, > Christophe (vincenz) > > On 7/24/06, *Daniel Schr?ter* < icfp_06@schlagsei.de > > wrote: > > Mainly I did not really release allocated memory, but mark it as > released. > Idea was to avoid reallocation of 1-2 item arrays. > > I divided created a List for the arrays and defined a pageSize > and a pageReleaseSize. > Another List did the 'released-marking'. > So any array to be released is only released (arrays[index]=null), > when > it's size is greater than pageReleaseSize. > When allocating just get the last item of the 'released-List', set the > corresponding array-entries to 0, if it exists > and only create a new one, if it is null. > > Examples (as I remember): > pageSize: 16 byte > pageReleaseSize: 4096 byte > > I had about 65k arrays and about half of them marked as released, > nearly > none null. > MemUsage: maximum seen 700MB (while adventure). > > Ideas for speedup: I work on byte[] at the moment. This is > 'historical', > because I experimented > with MemoryStreams. Better: List, but no time :) > > greetz > Daniel > P.S.: It ran on my 1.2GHz, <1GB RAM and never bothered my 2 C# > Express > Instances, FireFox, > UEStudio, Thunderbird, AVG-Free and the WebRadio had fine Pprogram all > the time :) > > Wow. How did you do that? And what further ideas do you have? > > > > > > best regards, > > > > Michael Etscheid > > > > 2006/7/24, Daniel Schr?ter >: > >> As I did :) > >> > >> My UM was even faster...somtimes like the local bash :) > >> Have ideas to speed it up even more, but no time :( > >> > >> greetz > >> Daniel > >> > My one-man-team wrote the UM in .net c#, and it ran for > reasonable > >> > speed, all commands processed in UMIX are returned within a > second. > >> > > >> > Zhenzhong > >> > > >> > On 7/24/06, Mark Fitzgerald < mark.fitzgerald2@sympatico.ca > > wrote: > >> >> Niklas Broberg wrote: > >> >> > We did have a working (ahem) implementation in Haskell. > Where by > >> >> > working we mean one that does the correct things. > Certainly not one > >> >> > that was fast. We did implement a C interpreter, while waiting > >> for the > >> >> > Haskell one to decrypt and decompress the UM... ;-) > >> >> > > >> >> > But in Haskell's defense, it was great for prototyping. It > >> didn't take > >> >> > too long, and the C implementation was easy to write > afterwards. > >> :-) > >> >> My team partner and I had a similar experience - it took little > >> time to > >> >> get a correct UM implementation together in Common Lisp > (CLisp on > >> >> Cygwin). However, its execution speed was seeming slow. While > >> waiting > >> >> for the Lisp implementation to decode the codex, we wrote up > a C > >> >> implementation, fixing its errors by comparing its execution > path to > >> >> that of the Lisp implementation. We got about a 320x > performance > >> >> increase (16 hours to run SANDmark versus 3 > minutes). :) But we > >> >> suspect that having the Lisp implementation was what allowed > us to > >> debug > >> >> the C implementation so easily. > >> >> > >> >> Mark > >> >> > >> >> > > >> >> > /Niklas > >> >> > > >> >> > On 7/24/06, Rob Hunter > wrote: > >> >> >> I'm curious about which high-level languages that teams > used to > >> >> >> successfully implement the UM. We eventually resorted to C > >> after a > >> >> >> very extended attempt with Kawa (a Scheme to Java byte code > >> >> compiler). > >> >> >> > >> >> >> Thanks for any info on the matter. And thanks > organizers, for a > >> >> >> wonderful contest! > >> >> >> > >> >> >> --rob > >> >> >> _______________________________________________ > >> >> >> icfpcontest-discuss mailing list > >> >> >> icfpcontest-discuss@lists.andrew.cmu.edu > > >> >> >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> >> > >> >> > _______________________________________________ > >> >> > icfpcontest-discuss mailing list > >> >> > icfpcontest-discuss@lists.andrew.cmu.edu > > >> >> > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> > > >> >> > >> >> _______________________________________________ > >> >> icfpcontest-discuss mailing list > >> >> icfpcontest-discuss@lists.andrew.cmu.edu > > >> >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> >> > >> > _______________________________________________ > >> > icfpcontest-discuss mailing list > >> > icfpcontest-discuss@lists.andrew.cmu.edu > > >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > >> > > >> > > >> > >> _______________________________________________ > >> icfpcontest-discuss mailing list > >> icfpcontest-discuss@lists.andrew.cmu.edu > > >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > >> > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > ------------------------------------------------------------------------ > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > ------------------------------------------------------------------------ > > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.1.394 / Virus Database: 268.10.4/396 - Release Date: 24.07.2006 > From nattfodd at gmail.com Mon Jul 24 15:58:12 2006 From: nattfodd at gmail.com (Alexandre Buisse) Date: Mon Jul 24 15:58:15 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> Message-ID: <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> > The dependence becomes manually intractable afterwards.. Not at all :) It is entirely doable manually, as you have to use objects only from a single pile. When solving them, I got the impression that the stacks were designed to annoy programs (by e.g. having multiple objects of a same kind) but quite easily doable by hand. Only RS232 and EPROM burner were a bit tricky. I think it was faster to do everything manually (must have taken me between 3 and 4 hours) than to write and debug a solver, unless you already knew which algorithm to use (I didn't). /Alexandre -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/91abfa40/attachment.html From crary at cs.cmu.edu Mon Jul 24 16:06:03 2006 From: crary at cs.cmu.edu (Karl Crary) Date: Mon Jul 24 16:06:06 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> Message-ID: <44C5282B.8080507@cs.cmu.edu> I can tell you that we most certainly did not expect people to solve the adventure puzzles by hand, and I'm impressed that you were able to do so. Did you get into the "sequel"? I would be astounded if you could solve the puzzles there by hand. Karl Crary Alexandre Buisse wrote: > > The dependence becomes manually intractable afterwards.. > > > > Not at all :) > It is entirely doable manually, as you have to use objects only from a > single pile. > When solving them, I got the impression that the stacks were designed > to annoy programs (by e.g. having multiple objects of a same kind) but > quite easily doable by hand. Only RS232 and EPROM burner were a bit > tricky. > > I think it was faster to do everything manually (must have taken me > between 3 and 4 hours) than to write and debug a solver, unless you > already knew which algorithm to use (I didn't). > > /Alexandre > > ------------------------------------------------------------------------ > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From christophe.poucet at gmail.com Mon Jul 24 16:06:53 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 16:06:57 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C52588.7070804@schlagsei.de> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> Message-ID: <2b0051e00607241306y6e06638atf05e5c89f39eed4c@mail.gmail.com> Hmm, Not really no. the environment is a vector of the "arrays". This is never reordred. Then I keep as separate a list of the free positions in this array that were amended. Cheers Christophe Team Lazy Bottoms On 7/24/06, Daniel Schr?ter wrote: > > I see, but i think you do some clearing and rearranging on the lists -> > too slow. > That's the reason why I use the additional list to index released items. > I NEVER remove anything from the 'processor-arrays' > > greetz > Daniel > Team KillerAnts > ICFP since 2004 > > That sounds like the approach I used as well. > > > > I would use a vector of "arrays" (though in effect they were vectors > > as well). Whenever I needed to allocated I'd check a list to > > see if any index had been ammended previously. If so I'd reuse it, > > otherwise I'd push a new vector onto the vector of arrays: > > > > case INSTR_ALLOCATION: > > { > > if (free_list.empty()) > > { > > vector empty; > > empty.resize(C,0); > > array_environment.push_back(empty); > > B = array_environment.size() - 1; > > } else { > > value loc = free_list.front(); > > free_list.pop_front(); > > array_environment[loc].resize(C, 0); > > B = loc; > > } > > } > > break; > > case INSTR_ABANDONMENT: > > { > > // No other way to empty it and remove storage > > // Not required > > array_environment[C].clear(); > > free_list.push_front(C); > > } > > break; > > > > Cheers, > > Christophe (vincenz) > > > > On 7/24/06, *Daniel Schr?ter* < icfp_06@schlagsei.de > > > wrote: > > > > Mainly I did not really release allocated memory, but mark it as > > released. > > Idea was to avoid reallocation of 1-2 item arrays. > > > > I divided created a List for the arrays and defined a > pageSize > > and a pageReleaseSize. > > Another List did the 'released-marking'. > > So any array to be released is only released (arrays[index]=null), > > when > > it's size is greater than pageReleaseSize. > > When allocating just get the last item of the 'released-List', set > the > > corresponding array-entries to 0, if it exists > > and only create a new one, if it is null. > > > > Examples (as I remember): > > pageSize: 16 byte > > pageReleaseSize: 4096 byte > > > > I had about 65k arrays and about half of them marked as released, > > nearly > > none null. > > MemUsage: maximum seen 700MB (while adventure). > > > > Ideas for speedup: I work on byte[] at the moment. This is > > 'historical', > > because I experimented > > with MemoryStreams. Better: List, but no time :) > > > > greetz > > Daniel > > P.S.: It ran on my 1.2GHz, <1GB RAM and never bothered my 2 C# > > Express > > Instances, FireFox, > > UEStudio, Thunderbird, AVG-Free and the WebRadio had fine Pprogram > all > > the time :) > > > Wow. How did you do that? And what further ideas do you have? > > > > > > > > > best regards, > > > > > > Michael Etscheid > > > > > > 2006/7/24, Daniel Schr?ter > >: > > >> As I did :) > > >> > > >> My UM was even faster...somtimes like the local bash :) > > >> Have ideas to speed it up even more, but no time :( > > >> > > >> greetz > > >> Daniel > > >> > My one-man-team wrote the UM in .net c#, and it ran for > > reasonable > > >> > speed, all commands processed in UMIX are returned within a > > second. > > >> > > > >> > Zhenzhong > > >> > > > >> > On 7/24/06, Mark Fitzgerald < mark.fitzgerald2@sympatico.ca > > > wrote: > > >> >> Niklas Broberg wrote: > > >> >> > We did have a working (ahem) implementation in Haskell. > > Where by > > >> >> > working we mean one that does the correct things. > > Certainly not one > > >> >> > that was fast. We did implement a C interpreter, while > waiting > > >> for the > > >> >> > Haskell one to decrypt and decompress the UM... ;-) > > >> >> > > > >> >> > But in Haskell's defense, it was great for prototyping. It > > >> didn't take > > >> >> > too long, and the C implementation was easy to write > > afterwards. > > >> :-) > > >> >> My team partner and I had a similar experience - it took > little > > >> time to > > >> >> get a correct UM implementation together in Common Lisp > > (CLisp on > > >> >> Cygwin). However, its execution speed was seeming > slow. While > > >> waiting > > >> >> for the Lisp implementation to decode the codex, we wrote up > > a C > > >> >> implementation, fixing its errors by comparing its execution > > path to > > >> >> that of the Lisp implementation. We got about a 320x > > performance > > >> >> increase (16 hours to run SANDmark versus 3 > > minutes). :) But we > > >> >> suspect that having the Lisp implementation was what allowed > > us to > > >> debug > > >> >> the C implementation so easily. > > >> >> > > >> >> Mark > > >> >> > > >> >> > > > >> >> > /Niklas > > >> >> > > > >> >> > On 7/24/06, Rob Hunter > > wrote: > > >> >> >> I'm curious about which high-level languages that teams > > used to > > >> >> >> successfully implement the UM. We eventually resorted to > C > > >> after a > > >> >> >> very extended attempt with Kawa (a Scheme to Java byte code > > >> >> compiler). > > >> >> >> > > >> >> >> Thanks for any info on the matter. And thanks > > organizers, for a > > >> >> >> wonderful contest! > > >> >> >> > > >> >> >> --rob > > >> >> >> _______________________________________________ > > >> >> >> icfpcontest-discuss mailing list > > >> >> >> icfpcontest-discuss@lists.andrew.cmu.edu > > > > >> >> >> > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> >> >> > > >> >> > _______________________________________________ > > >> >> > icfpcontest-discuss mailing list > > >> >> > icfpcontest-discuss@lists.andrew.cmu.edu > > > > >> >> > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> >> > > > >> >> > > >> >> _______________________________________________ > > >> >> icfpcontest-discuss mailing list > > >> >> icfpcontest-discuss@lists.andrew.cmu.edu > > > > >> >> > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> >> > > >> > _______________________________________________ > > >> > icfpcontest-discuss mailing list > > >> > icfpcontest-discuss@lists.andrew.cmu.edu > > > > >> > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> > > > >> > > > >> > > > >> > > >> _______________________________________________ > > >> icfpcontest-discuss mailing list > > >> icfpcontest-discuss@lists.andrew.cmu.edu > > > > >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > >> > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > ------------------------------------------------------------------------ > > > > No virus found in this incoming message. > > Checked by AVG Free Edition. > > Version: 7.1.394 / Virus Database: 268.10.4/396 - Release Date: > 24.07.2006 > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/8470ac8b/attachment-0001.html From azul at freaks-unidos.net Mon Jul 24 16:23:47 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Mon Jul 24 16:08:53 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> Message-ID: <20060724202347.GV15374@bachue.com> > >The dependence becomes manually intractable afterwards.. > > Not at all :) > It is entirely doable manually, as you have to use objects only from a > single pile. > When solving them, I got the impression that the stacks were designed to > annoy programs (by e.g. having multiple objects of a same kind) but quite > easily doable by hand. Only RS232 and EPROM burner were a bit tricky. > > I think it was faster to do everything manually (must have taken me between > 3 and 4 hours) than to write and debug a solver, unless you already knew > which algorithm to use (I didn't). I'd have to second this opinion. Since the object only come from a single pile, one can always just draw a graph of dependencies (we did this on paper) and work from that. And yeah, RS232 and EPROM were tricky. We failed in RS232 (miscalculated one dependency) and then didn't have time to restart adventure and go all the way there... :-( Alejo. http://azul.freaks-unidos.net/ From Alain.Frisch at inria.fr Mon Jul 24 16:09:12 2006 From: Alain.Frisch at inria.fr (Alain Frisch) Date: Mon Jul 24 16:09:22 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <41b037ed0607241251p80bba45x4addd83a6c41c4d1@mail.gmail.com> References: <109049041426-BeMail@beos> <44C518B9.6060909@guxx.net> <200607242117.16214.micha-1@fantasymail.de> <41b037ed0607241251p80bba45x4addd83a6c41c4d1@mail.gmail.com> Message-ID: <44C528E8.1050302@inria.fr> Alexandre Buisse wrote: > Yes but they act on signed ints. We began using them and had some bugs > in the um. Using small C bindings with unsigned long int (on 32-bits > machines) corrected that. FWIW, here is how one of our UM implementations in OCaml implements division: let i64 b = let b = Int64.of_int32 b in if Int64.compare b 0L < 0 then Int64.add b (Int64.shift_left 1L 32) else b let division b c = Int64.to_int32 (Int64.div (i64 b) (i64 c)) -- Alain (from the CamlNuggets team) From plakal at gmail.com Mon Jul 24 16:09:42 2006 From: plakal at gmail.com (Manoj Plakal) Date: Mon Jul 24 16:09:44 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: References: Message-ID: <5230c2820607241309w7364054bkc15f80be4a5cceb7@mail.gmail.com> first: hats off, this was a killer contest! i took the red pill and today my brain still seems fried from the past 72 hours, i especially want to forget the part where i wrote a working raytracer circuit by hand ... i think my teammate has refused to give up on BLACK and is still plugging away at it. so, great job! i hope you'll publish how you conceived and constructed the matrix. On 7/24/06, Tom Murphy wrote: > Updates to the global scoreboard were turned off at 4:00am EDT, so the > standings now shown on the scoreboard do not reflect the final scores. > We will announce the results of the contest at ICFP in September. At > that time we will also release details of how we created the contest. > We also plan to re-launch an updated Codex on a permanent site, so > that programmers can continue to test their skills and experiment with > it indefinitely. it seems a little too much to have to wait till september to see the final scores, especially since that is already automated. could you update the scoreboard one final time to let us see the final scores? -manoj (team pipewrench) From micha-1 at fantasymail.de Mon Jul 24 16:13:09 2006 From: micha-1 at fantasymail.de (Michael Wohlwend) Date: Mon Jul 24 16:11:03 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <41b037ed0607241251p80bba45x4addd83a6c41c4d1@mail.gmail.com> References: <109049041426-BeMail@beos> <200607242117.16214.micha-1@fantasymail.de> <41b037ed0607241251p80bba45x4addd83a6c41c4d1@mail.gmail.com> Message-ID: <200607242213.09924.micha-1@fantasymail.de> Am Montag, 24. Juli 2006 21:51 schrieb Alexandre Buisse: > > there are Int32 and Int64 modules for handling 32 and 64 bit numbers. On > > a 64-bit processor the ints are 63 bits wide. > > Yes but they act on signed ints. We began using them and had some bugs in > the um. Using small C bindings with unsigned long int (on 32-bits machines) > corrected that. yes a div bug ? :-) I converted to 64 bit and droped the higher 32 bits. but a c binding should solve that faster... cheers Michael From jonathan.roewen at gmail.com Mon Jul 24 16:17:38 2006 From: jonathan.roewen at gmail.com (Jonathan Roewen) Date: Mon Jul 24 16:17:41 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <44C528E8.1050302@inria.fr> Message-ID: <2670692978-BeMail@beos> > FWIW, here is how one of our UM implementations in OCaml implements > division: > > let i64 b = > let b = Int64.of_int32 b in > if Int64.compare b 0L < 0 then Int64.add b (Int64.shift_left 1L 32) > else b > > let division b c = > Int64.to_int32 (Int64.div (i64 b) (i64 c)) And what were the performances like of your OCaml implementations? Jonathan From plakal at gmail.com Mon Jul 24 16:17:54 2006 From: plakal at gmail.com (Manoj Plakal) Date: Mon Jul 24 16:17:57 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <20060724202347.GV15374@bachue.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> <20060724202347.GV15374@bachue.com> Message-ID: <5230c2820607241317y2f709629h1388c0a99cf4abfc@mail.gmail.com> well, if you didn't implement checkpointing in your vm, you could always use poor man's record/replay using tee actions.log | vm codex and later cat actions.log - | tee actions.log2 | vm codex -manoj On 7/24/06, Alejandro Forero Cuervo wrote: > > >The dependence becomes manually intractable afterwards.. > > > > Not at all :) > > It is entirely doable manually, as you have to use objects only from a > > single pile. > > When solving them, I got the impression that the stacks were designed to > > annoy programs (by e.g. having multiple objects of a same kind) but quite > > easily doable by hand. Only RS232 and EPROM burner were a bit tricky. > > > > I think it was faster to do everything manually (must have taken me between > > 3 and 4 hours) than to write and debug a solver, unless you already knew > > which algorithm to use (I didn't). > > I'd have to second this opinion. Since the object only come from a > single pile, one can always just draw a graph of dependencies (we did > this on paper) and work from that. And yeah, RS232 and EPROM were > tricky. We failed in RS232 (miscalculated one dependency) and then > didn't have time to restart adventure and go all the way there... :-( > > Alejo. > http://azul.freaks-unidos.net/ > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From christophe.poucet at gmail.com Mon Jul 24 16:39:41 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 16:39:45 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <69304d110607241221t3255fd35ufddd5e572a07b4f7@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> <69304d110607241221t3255fd35ufddd5e572a07b4f7@mail.gmail.com> Message-ID: <2b0051e00607241339t76bc71aaicb926090485676ad@mail.gmail.com> vincenz@abstractlappy:~/icfp/input$ cat um.um um.um um.um um.um um.um um.um hello.um > hello6.um vincenz@abstractlappy:~/icfp/input$ time umop hello6.um Hello, world! halted real 0m57.826s user 0m53.779s sys 0m0.080s On 7/24/06, Antonio Vargas wrote: > > Hello, world! > ABORT reached > > real 1m30.449s > user 1m25.740s > sys 0m0.450s > > winden ^^ > > On 7/24/06, David Dalrymple wrote: > > 1m3.7s here. > > > > --David > > > > On 7/24/06, Kevin Watkins wrote: > > > As an alternative to SANDmark, I present Hellomark: > > > > > > 1. Download um.um from the contest web site. > > > > > > 2. Download hello.um from http://watkins.dnsalias.org/~kw/hello.um (or > > > decode the attached). > > > > > > 3. cat um.um um.um um.um um.um um.um um.um hello.um > um6hello.um > > > > > > (That's six "um.um"s.) > > > > > > 4. Run um6hello.um in your favorite UM implementation. > > > > > > My crummy simulator's Hellomark is 1m46s. > > > > > > Kevin > > > > > > begin 644 hello.um > > > MT```2*````#0``!EH````-```&R@````T```;*````#0``!OH````-```"R@ > > > M````T```(*````#0``!WH````-```&^@````T``` > > :`&2@````T```(:````#0```*H````'`````` > > > ` > > > end > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > -- > Greetz, Antonio Vargas aka winden of network > > http://network.amigascne.org/ > windNOenSPAMntw@gmail.com > thesameasabove@amigascne.org > > Every day, every year > you have to work > you have to study > you have to scene. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/0a3d9f79/attachment-0001.html From christophe.poucet at gmail.com Mon Jul 24 16:40:02 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 16:40:07 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <2b0051e00607241339t76bc71aaicb926090485676ad@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> <69304d110607241221t3255fd35ufddd5e572a07b4f7@mail.gmail.com> <2b0051e00607241339t76bc71aaicb926090485676ad@mail.gmail.com> Message-ID: <2b0051e00607241340ved20608r18773410a272afdd@mail.gmail.com> I forgot to add: P1.6M laptop On 7/24/06, Christophe Poucet wrote: > > vincenz@abstractlappy:~/icfp/input$ cat um.um um.um um.um um.um um.um > um.um hello.um > hello6.um > vincenz@abstractlappy:~/icfp/input$ time umop hello6.um > Hello, world! > halted > > real 0m57.826s > user 0m53.779s > sys 0m0.080s > > > > On 7/24/06, Antonio Vargas wrote: > > > > Hello, world! > > ABORT reached > > > > real 1m30.449s > > user 1m25.740s > > sys 0m0.450s > > > > winden ^^ > > > > On 7/24/06, David Dalrymple wrote: > > > 1m3.7s here. > > > > > > --David > > > > > > On 7/24/06, Kevin Watkins < kevin.watkins@gmail.com> wrote: > > > > As an alternative to SANDmark, I present Hellomark: > > > > > > > > 1. Download um.um from the contest web site. > > > > > > > > 2. Download hello.um from http://watkins.dnsalias.org/~kw/hello.um(or > > > > decode the attached). > > > > > > > > 3. cat um.um um.um um.um um.um um.um um.um hello.um > um6hello.um > > > > > > > > (That's six "um.um"s.) > > > > > > > > 4. Run um6hello.um in your favorite UM implementation. > > > > > > > > My crummy simulator's Hellomark is 1m46s. > > > > > > > > Kevin > > > > > > > > begin 644 hello.um > > > > MT```2*````#0``!EH````-```&R@````T```;*````#0``!OH````-```"R@ > > > > M````T```(*````#0``!WH````-```&^@````T``` > > > :`&2@````T```(:````#0```*H````'`````` > > > > ` > > > > end > > > > _______________________________________________ > > > > icfpcontest-discuss mailing list > > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > -- > > Greetz, Antonio Vargas aka winden of network > > > > http://network.amigascne.org/ > > windNOenSPAMntw@gmail.com > > thesameasabove@amigascne.org > > > > Every day, every year > > you have to work > > you have to study > > you have to scene. > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/ae26374d/attachment.html From mietek at gmail.com Mon Jul 24 16:41:18 2006 From: mietek at gmail.com (=?UTF-8?Q?Mietek_B=C4=85k?=) Date: Mon Jul 24 16:41:26 2006 Subject: [icfp-discuss] The contest is over! In-Reply-To: <5230c2820607241309w7364054bkc15f80be4a5cceb7@mail.gmail.com> References: <5230c2820607241309w7364054bkc15f80be4a5cceb7@mail.gmail.com> Message-ID: On 24/7/2006, at 22:09, Manoj Plakal wrote: > first: hats off, this was a killer contest! i took the red pill and > today my brain still seems fried from the past 72 hours, > i especially want to forget the part where i wrote a working > raytracer circuit by hand ... i think my teammate has refused > to give up on BLACK and is still plugging away at it. I still can't get over the fact that I have a working raytracer written in a Inl/Inr dialect of OCaml, but I was unable to finish porting it to 2D on time. If I only had slept 2 hours instead of 4... I'd like to thank all the organizers for a tremendously exciting experience. The last 3 days are a blur; onestly, I don't think I've ever had more fun-- either alone, or with a friend. I'm glad to hear that the codex is going to be featured on a dedicated site. The amount of effort that must've gone into that thing is incredible! I'm looking forward to solving all the puzzles in time, at a more leisurely pace. Thank you all, desp (desp & q). From azul at freaks-unidos.net Mon Jul 24 16:59:34 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Mon Jul 24 16:44:40 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <5230c2820607241317y2f709629h1388c0a99cf4abfc@mail.gmail.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> <20060724202347.GV15374@bachue.com> <5230c2820607241317y2f709629h1388c0a99cf4abfc@mail.gmail.com> Message-ID: <20060724205934.GW15374@bachue.com> > well, if you didn't implement checkpointing in your vm, > you could always use poor man's record/replay using > tee actions.log | vm codex > and later cat actions.log - | tee actions.log2 | vm codex Actually, yes, we did something along the lines of this, keeping all the actions in a text file and using screen to cut-paste appropiatedly: http://freaks-unidos.net/svn/icfp/notes/adventure However, it was taking long to execute all the instructions. Basically, we decided to focus on other problems rather than continue with adventure. :-) Alejo. http://azul.freaks-unidos.net/ From nattfodd at gmail.com Mon Jul 24 16:45:39 2006 From: nattfodd at gmail.com (Alexandre Buisse) Date: Mon Jul 24 16:45:45 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C5282B.8080507@cs.cmu.edu> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> <44C5282B.8080507@cs.cmu.edu> Message-ID: <41b037ed0607241345q298864bjc3db1e8bd07d57c1@mail.gmail.com> On 7/24/06, Karl Crary wrote: > > I can tell you that we most certainly did not expect people to solve the > adventure puzzles by hand, and I'm impressed that you were able to do > so. Did you get into the "sequel"? I would be astounded if you could > solve the puzzles there by hand. Unfortunately not. It took me a whole day to figure how to read the blueprint and I got it 5 minutes before the deadline (for 5 lousy points :'(). Then I hit a bug in the game (or our UM, but it runs perfectly for everything else, including sandmark) which crashed it and I didn't have time to go there from the beginning. But I intend to keep working on it and i'll let you know if one can manage to solve the sequels one :) /Alexandre -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/5a84e10e/attachment.html From niklas.broberg at gmail.com Mon Jul 24 16:46:14 2006 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Mon Jul 24 16:46:17 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <44C5282B.8080507@cs.cmu.edu> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> <44C5282B.8080507@cs.cmu.edu> Message-ID: I solved all the problems by hand, including the sequels. It wasn't very hard once you learnt the pattern of it. For each puzzle: Examine the top-level item, check what it needs, treat that as its type. Recursively check for such items, and what they need. While you go, write some type synonyms for recurring patterns. Don't use the full names of stuff, just the first letter and the first number worked to disambiguate in all cases. That makes thinking about it a lot easier. The more higher-level the types, the easier, since that meant fewer items to worry about. I think I spent on average some 20 mins on each of the puzzles. I found the sequel puzzles no harder than then early ones, sometimes even easier. They definitely went faster, but much of that was probably experience. I didn't do it completely by hand, I did define some nice macros that took the output from look and generated the take and inc commands in the right order. But there was no logic in there, I had to patch the result of the macros as to which items to keep and combine. *SPOILER BELOW* One of the easiest assembly puzzles was the one for the Package robot. These are the notes I wrote down while going through it. Package robot assembly: ----------------------- let D4Z = D4 <- Z1 let D4T = (D4Z, D4, D4, D4, D4, H9, H9) let Z1D = Z1 <- D4T let D4F = D4 <- (Z1, Z1, H9, H9, H9) robot <- (Z1D, Z1D) Z1D sangria Z1D <- D4F foreign D4F buff The types looked large and scary, but when disassembled and examined there wasn't much left! Of course it helped *a lot* to be used to thinking in terms of higher-order functions. :-) /Niklas On 7/24/06, Karl Crary wrote: > I can tell you that we most certainly did not expect people to solve the > adventure puzzles by hand, and I'm impressed that you were able to do > so. Did you get into the "sequel"? I would be astounded if you could > solve the puzzles there by hand. > > Karl Crary > > > Alexandre Buisse wrote: > > > > The dependence becomes manually intractable afterwards.. > > > > > > > > Not at all :) > > It is entirely doable manually, as you have to use objects only from a > > single pile. > > When solving them, I got the impression that the stacks were designed > > to annoy programs (by e.g. having multiple objects of a same kind) but > > quite easily doable by hand. Only RS232 and EPROM burner were a bit > > tricky. > > > > I think it was faster to do everything manually (must have taken me > > between 3 and 4 hours) than to write and debug a solver, unless you > > already knew which algorithm to use (I didn't). > > > > /Alexandre > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From davidad at mit.edu Mon Jul 24 16:46:34 2006 From: davidad at mit.edu (David Dalrymple) Date: Mon Jul 24 16:46:36 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <2b0051e00607241340ved20608r18773410a272afdd@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> <69304d110607241221t3255fd35ufddd5e572a07b4f7@mail.gmail.com> <2b0051e00607241339t76bc71aaicb926090485676ad@mail.gmail.com> <2b0051e00607241340ved20608r18773410a272afdd@mail.gmail.com> Message-ID: <504b2780607241346q70b1296u727d9c837c7cf446@mail.gmail.com> > I forgot to add: P1.6M laptop It is official: my s0xz0r5 have been r0x0r3d. --David From finnw at sucs.org Mon Jul 24 16:47:40 2006 From: finnw at sucs.org (Finn Wilcox) Date: Mon Jul 24 16:47:59 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: On Mon, 24 Jul 2006, Niklas Broberg wrote: > We did have a working (ahem) implementation in Haskell. Where by > working we mean one that does the correct things. Certainly not one > that was fast. We did implement a C interpreter, while waiting for the > Haskell one to decrypt and decompress the UM... ;-) > > But in Haskell's defense, it was great for prototyping. It didn't take > too long, and the C implementation was easy to write afterwards. :-) Our experience was similar. The first UM implementation was in SETL. Unfortunately this implementation (SETL2 for Windows) has no bitwise operators and we had to simulate NAND using a subtract/compare loop. And all values (including the 32-bit integers) are stored in variants, doubling the memory requirements. Again, it was quick to write & debug, and easy to translate to C when it became apparent that was necessary. From kurt.rinnert at cern.ch Mon Jul 24 16:48:53 2006 From: kurt.rinnert at cern.ch (Kurt Rinnert) Date: Mon Jul 24 16:48:57 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> Message-ID: <20060724204853.GE5426@vulcan> Unfortunately, you code is not 64bit safe. On SuSE Linux 9.2 (x86-64) running on an Athlon 64 I get: trying to Allocate array of size 0.. trying to Abandon size 0 allocation.. trying to Allocate size 11.. trying Array Index on allocated array.. trying Amendment of allocated array.. checking Amendment of allocated array.. trying Alloc(a,a) and amending it.. comparing multiple allocations.. pointer arithmetic.. check old allocation.. simple tests ok! about to load program from some allocated array.. success. verifying that the array and its copy are the same... success. testing aliasing.. success. free after loadprog.. success. loadprog ok. Segmentation fault On Mon, Jul 24, 2006 at 03:38:14PM -0400, Li, Peng wrote: > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > code is attached. Feel free to compile and compare. Have fun! > > real 0m55.453s > user 0m55.427s > sys 0m0.004s > -- Kurt Rinnert, University of Liverpool - Department of Physics From mietek at gmail.com Mon Jul 24 16:51:05 2006 From: mietek at gmail.com (=?UTF-8?Q?Mietek_B=C4=85k?=) Date: Mon Jul 24 16:51:14 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <44C52588.7070804@schlagsei.de> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> Message-ID: <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> Hi, Sorry to bump into your conversation, but I've only just noticed that there is a discussion list available. I'm interested in finding out how fast is my naive C implementation of UM, in comparison with your implementations. On a 1.42 PowerPC G4 (Mac mini), my SANDmark score is: desp@nny:~/um $ time ./um sandmark.umz real 6m6.286s user 5m22.717s sys 0m2.586s I intend to put up a webpage detailing my solutions; currently, I've made the source code available here: You will need to #define SWAP_BYTES 1 on a little-endian machine. Any opinions? Thanks, desp. From nattfodd at gmail.com Mon Jul 24 16:53:32 2006 From: nattfodd at gmail.com (Alexandre Buisse) Date: Mon Jul 24 16:53:35 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> <44C5282B.8080507@cs.cmu.edu> Message-ID: <41b037ed0607241353n4cd5bddq7bd3716b67d3fe3d@mail.gmail.com> On 7/24/06, Niklas Broberg wrote: > > I solved all the problems by hand, including the sequels. It wasn't > very hard once you learnt the pattern of it. For each puzzle: Examine > the top-level item, check what it needs, treat that as its type. > Recursively check for such items, and what they need. While you go, > write some type synonyms for recurring patterns. Don't use the full > names of stuff, just the first letter and the first number worked to > disambiguate in all cases. That makes thinking about it a lot easier. > The more higher-level the types, the easier, since that meant fewer > items to worry about. I'd expect as much. Actually, the hardest part was parsing the description without making any mistake. But then, lisp-aware editors come really handy :) /Alexandre -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/a74f108f/attachment.html From lipeng at cis.upenn.edu Mon Jul 24 16:53:59 2006 From: lipeng at cis.upenn.edu (Li, Peng) Date: Mon Jul 24 16:54:02 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <20060724204853.GE5426@vulcan> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <20060724204853.GE5426@vulcan> Message-ID: <598a055d0607241353y1baeaff1x45c65ea5ca453212@mail.gmail.com> Hi Kurt, No, it's definitely not 64b safe. The trick is that I use the *address* of the array as the array ID, so it's for 32-bit machines only. Best, Peng On 7/24/06, Kurt Rinnert wrote: > Unfortunately, you code is not 64bit safe. On SuSE Linux 9.2 (x86-64) > running on an Athlon 64 I get: > Segmentation fault > > > > > On Mon, Jul 24, 2006 at 03:38:14PM -0400, Li, Peng wrote: > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > code is attached. Feel free to compile and compare. Have fun! > > > > real 0m55.453s > > user 0m55.427s > > sys 0m0.004s > > > -- > Kurt Rinnert, University of Liverpool - Department of Physics > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > From christophe.poucet at gmail.com Mon Jul 24 16:55:26 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 16:55:30 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <20060724204853.GE5426@vulcan> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <20060724204853.GE5426@vulcan> Message-ID: <2b0051e00607241355k64016f3br7fa796d4448aaeeb@mail.gmail.com> For a performant 64bit safe code: #include #include #include #include #include #include using namespace std; typedef uint32_t value; #define INSTR_CONDITIONAL_MOVE 0 #define INSTR_ARRAY_INDEX 1 #define INSTR_ARRAY_AMENDMEND 2 #define INSTR_ADDITION 3 #define INSTR_MULTIPLICATION 4 #define INSTR_DIVISION 5 #define INSTR_NOT_AND 6 #define INSTR_HALT 7 #define INSTR_ALLOCATION 8 #define INSTR_ABANDONMENT 9 #define INSTR_OUTPUT 10 #define INSTR_INPUT 11 #define INSTR_LOAD 12 #define INSTR_ORTHOGRAPHY 13 vector load_module(char *filename) { FILE * fd; unsigned char buf[4096]; size_t len; vector code; fd = fopen(filename, "rb"); while ((len = fread(buf, sizeof(unsigned char), 4096, fd)) > 0) { for (size_t i = 0; i < (len / 4); i++) { value ins = ( ((value)buf[4*i] << 24) | ((value)buf[4*i + 1] << 16) | ((value)buf[4*i + 2] << 8) | (value)buf[4*i + 3]); code.push_back(ins); } } fclose(fd); return code; } #define A (regs[a]) #define B (regs[b]) #define C (regs[c]) void interpret(vector code) { value regs[8] = {0, 0, 0, 0, 0, 0, 0, 0}; vector > array_environment; array_environment.push_back(code); list free_list; value pc = 0; while (true) { value ins = code[pc++]; value op = ins >> 28; value c = ins & 7; value b = (ins >> 3) & 7; value a = (ins >> 6) & 7; //printf("pc: %d\tpat: %d\t op: %d \ta: %d\tb: %d\tc: %d\n", // pc - code - 1, pc[-1], op, a, b, c); switch (op) { case INSTR_CONDITIONAL_MOVE: if (C != 0) A = B; break; case INSTR_ARRAY_INDEX: if (B == 0) { A = code[C]; } else { A = array_environment[B][C]; } break; case INSTR_ARRAY_AMENDMEND: if (A == 0) { code[B] = C; } else { array_environment[A][B] = C; } break; case INSTR_ADDITION: A = B + C; break; case INSTR_MULTIPLICATION: A = B * C; break; case INSTR_DIVISION: A = B / C; break; case INSTR_NOT_AND: A = ~(B & C); break; case INSTR_HALT: printf("halted\n"); exit(0); case INSTR_ALLOCATION: { if (free_list.empty()) { vector empty; empty.resize(C,0); array_environment.push_back(empty); B = array_environment.size() - 1; } else { value loc = free_list.front(); free_list.pop_front(); array_environment[loc].resize(C, 0); B = loc; } } break; case INSTR_ABANDONMENT: { // No other way to empty it and remove storage // Not required array_environment[C].clear(); free_list.push_front(C); } break; case INSTR_OUTPUT: putchar(C); break; case INSTR_INPUT: C = getchar(); break; case INSTR_LOAD: if (B != 0) { code = array_environment[B]; } pc = C; break; case INSTR_ORTHOGRAPHY: a = (ins >> 25) & 7; A = ins & ((1 << 25) - 1); break; default: printf("Unimplemented instruction %d\n", op); exit(0); } } } int main(int argc, char ** argv) { vector code = load_module(argv[1]); interpret(code); return 0; } Cheers Christophe On 7/24/06, Kurt Rinnert wrote: > > Unfortunately, you code is not 64bit safe. On SuSE Linux 9.2 (x86-64) > running on an Athlon 64 I get: > > trying to Allocate array of size 0.. > trying to Abandon size 0 allocation.. > trying to Allocate size 11.. > trying Array Index on allocated array.. > trying Amendment of allocated array.. > checking Amendment of allocated array.. > trying Alloc(a,a) and amending it.. > comparing multiple allocations.. > pointer arithmetic.. > check old allocation.. > simple tests ok! > about to load program from some allocated array.. > success. > verifying that the array and its copy are the same... > success. > testing aliasing.. > success. > free after loadprog.. > success. > loadprog ok. > Segmentation fault > > > > > On Mon, Jul 24, 2006 at 03:38:14PM -0400, Li, Peng wrote: > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > code is attached. Feel free to compile and compare. Have fun! > > > > real 0m55.453s > > user 0m55.427s > > sys 0m0.004s > > > -- > Kurt Rinnert, University of Liverpool - Department of Physics > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/1db1c86f/attachment-0001.html From christophe.poucet at gmail.com Mon Jul 24 16:55:53 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Mon Jul 24 16:55:56 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <2b0051e00607241355k64016f3br7fa796d4448aaeeb@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <20060724204853.GE5426@vulcan> <2b0051e00607241355k64016f3br7fa796d4448aaeeb@mail.gmail.com> Message-ID: <2b0051e00607241355x74a96c04q72118eb8181e18d4@mail.gmail.com> Make sure to compile with -O3 or it will be really slow (lots of redundant memory copies) On 7/24/06, Christophe Poucet wrote: > > For a performant 64bit safe code: > > #include > #include > #include > #include > #include > #include > > using namespace std; > > typedef uint32_t value; > > #define INSTR_CONDITIONAL_MOVE 0 > #define INSTR_ARRAY_INDEX 1 > #define INSTR_ARRAY_AMENDMEND 2 > #define INSTR_ADDITION 3 > #define INSTR_MULTIPLICATION 4 > #define INSTR_DIVISION 5 > #define INSTR_NOT_AND 6 > #define INSTR_HALT 7 > #define INSTR_ALLOCATION 8 > #define INSTR_ABANDONMENT 9 > #define INSTR_OUTPUT 10 > #define INSTR_INPUT 11 > #define INSTR_LOAD 12 > #define INSTR_ORTHOGRAPHY 13 > > vector load_module(char *filename) > { > FILE * fd; > unsigned char buf[4096]; > size_t len; > vector code; > > fd = fopen(filename, "rb"); > while ((len = fread(buf, sizeof(unsigned char), 4096, fd)) > 0) { > for (size_t i = 0; i < (len / 4); i++) { > value ins = ( > ((value)buf[4*i] << 24) | > ((value)buf[4*i + 1] << 16) | > ((value)buf[4*i + 2] << 8) | > (value)buf[4*i + 3]); > code.push_back(ins); > } > } > fclose(fd); > return code; > } > > #define A (regs[a]) > #define B (regs[b]) > #define C (regs[c]) > > void interpret(vector code) { > value regs[8] = {0, 0, 0, 0, 0, 0, 0, 0}; > > vector > array_environment; > array_environment.push_back(code); > list free_list; > > value pc = 0; > > while (true) { > value ins = code[pc++]; > value op = ins >> 28; > > value c = ins & 7; > value b = (ins >> 3) & 7; > value a = (ins >> 6) & 7; > > > //printf("pc: %d\tpat: %d\t op: %d \ta: %d\tb: %d\tc: %d\n", > // pc - code - 1, pc[-1], op, a, b, c); > > switch (op) { > case INSTR_CONDITIONAL_MOVE: > if (C != 0) A = B; > break; > case INSTR_ARRAY_INDEX: > if (B == 0) { > A = code[C]; > } else { > A = array_environment[B][C]; > } > break; > case INSTR_ARRAY_AMENDMEND: > if (A == 0) { > code[B] = C; > } else { > array_environment[A][B] = C; > } > break; > case INSTR_ADDITION: > A = B + C; > break; > case INSTR_MULTIPLICATION: > A = B * C; > break; > case INSTR_DIVISION: > A = B / C; > break; > case INSTR_NOT_AND: > A = ~(B & C); > break; > case INSTR_HALT: > printf("halted\n"); > exit(0); > case INSTR_ALLOCATION: > { > if (free_list.empty()) > { > vector empty; > empty.resize(C,0); > array_environment.push_back(empty); > B = array_environment.size() - 1; > } else { > value loc = free_list.front(); > free_list.pop_front(); > array_environment[loc].resize(C, 0); > B = loc; > } > } > break; > case INSTR_ABANDONMENT: > { > // No other way to empty it and remove storage > // Not required > array_environment[C].clear(); > free_list.push_front(C); > } > break; > case INSTR_OUTPUT: > putchar(C); > break; > case INSTR_INPUT: > C = getchar(); > break; > case INSTR_LOAD: > if (B != 0) { > code = array_environment[B]; > } > pc = C; > break; > case INSTR_ORTHOGRAPHY: > a = (ins >> 25) & 7; > A = ins & ((1 << 25) - 1); > break; > default: > printf("Unimplemented instruction %d\n", op); > exit(0); > > } > } > } > > > int main(int argc, char ** argv) { > vector code = load_module(argv[1]); > interpret(code); > return 0; > } > > > Cheers > Christophe > > > > > On 7/24/06, Kurt Rinnert wrote: > > > Unfortunately, you code is not 64bit safe. On SuSE Linux 9.2 (x86-64) > > running on an Athlon 64 I get: > > > > trying to Allocate array of size 0.. > > trying to Abandon size 0 allocation.. > > trying to Allocate size 11.. > > trying Array Index on allocated array.. > > trying Amendment of allocated array.. > > checking Amendment of allocated array.. > > trying Alloc(a,a) and amending it.. > > comparing multiple allocations.. > > pointer arithmetic.. > > check old allocation.. > > simple tests ok! > > about to load program from some allocated array.. > > success. > > verifying that the array and its copy are the same... > > success. > > testing aliasing.. > > success. > > free after loadprog.. > > success. > > loadprog ok. > > Segmentation fault > > > > > > > > > > On Mon, Jul 24, 2006 at 03:38:14PM -0400, Li, Peng wrote: > > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > > code is attached. Feel free to compile and compare. Have fun! > > > > > > real 0m55.453s > > > user 0m55.427s > > > sys 0m0.004s > > > > > -- > > Kurt Rinnert, University of Liverpool - Department of Physics > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/3058c795/attachment.html From mietek at gmail.com Mon Jul 24 16:56:58 2006 From: mietek at gmail.com (=?UTF-8?Q?Mietek_B=C4=85k?=) Date: Mon Jul 24 16:57:06 2006 Subject: [icfp-discuss] Hellomark In-Reply-To: <2b0051e00607241340ved20608r18773410a272afdd@mail.gmail.com> References: <6b2ccb110607241156k6668808dr286f9f88a932471d@mail.gmail.com> <504b2780607241204q49003fp59c4fd1912aa98ee@mail.gmail.com> <69304d110607241221t3255fd35ufddd5e572a07b4f7@mail.gmail.com> <2b0051e00607241339t76bc71aaicb926090485676ad@mail.gmail.com> <2b0051e00607241340ved20608r18773410a272afdd@mail.gmail.com> Message-ID: <5C684583-07AA-4603-AFDE-25860ED02752@gmail.com> On 7/24/06, Kevin Watkins < kevin.watkins@gmail.com> wrote: > My crummy simulator's Hellomark is 1m46s. desp@nny:~/um $ time ./um um6hello.um Hello, world! real 1m39.184s user 1m28.295s sys 0m0.231s This is on a 1.42 GHz PowerPC G4 (Mac mini). desp. From finnw at sucs.org Mon Jul 24 16:57:46 2006 From: finnw at sucs.org (Finn Wilcox) Date: Mon Jul 24 16:57:49 2006 Subject: [icfp-discuss] Sandmark opcode output In-Reply-To: <3ec1038d0607241219p3388dc24t5508fc890dd6a8eb@mail.gmail.com> References: <3ec1038d0607241219p3388dc24t5508fc890dd6a8eb@mail.gmail.com> Message-ID: On Mon, 24 Jul 2006, Andreia Gaita wrote: > Can anyone be so kind as to send me a log of the sandmark opcodes as > the vm is processing, if you have it? I have a problem in my > implementation and I can't figure out what's wrong, and would like to > compare the logs to see where the opcodes diverge. > The whole trace is much too big, but here's a trace of the first 50k cycles: http://www.sucs.org/~finnw/umtrace.zip From clive at xtra.co.nz Mon Jul 24 16:59:22 2006 From: clive at xtra.co.nz (Clive Gifford) Date: Mon Jul 24 16:59:55 2006 Subject: [icfp-discuss] thanks to the organisers! Message-ID: <011001c6af64$0f3cefc0$0301a8c0@Owhango1> Hi Our thanks also for an absolutely fantastic contest!!! This was our third year in a row. Can't wait for next year already. Unfortunately we (a two person team but one was only "part time") didn't get very far into the main puzzles in the time available but they're still there waiting. :-) With 20/20 hindsight, I spent way too much time trying to get a Python/Pyrex VM running at a reasonable speed. Finally gave that idea away and quickly wrote a much much faster C version. On the other hand I learned quite a bit (good and bad) about using Pyrex in situations like this. Also, before decoding the codex you didn't really know what you were getting into. Despite my omniscient/spooky mention of "xyzzy" in a post to this list before the contest started (and the "ETA" language also) I was actually thinking it was probably going to decode into another spec plus data for a different kind of problem altogether where blinding speed might not be all that important! Some lessons learnt: 1. Getting enough sleep is very important. (I learned this lesson in previous contests also, but other events conspired to make it almost impossible this year!) 2. Use the right tool for the job. C is very good for fast low level code. UMASM is almost as good! :-) 3. There are some very "smart cookies" at CMU. 4. Never miss an ICFP contest! It would be interesting to see the final teams scores normalised as points per person in the team. I guess that will be part of the final results when they are announced. Final thought - perhaps Wikipedia's list of esoteric programming languages needs to be updated now?! (http://en.wikipedia.org/wiki/List_of_esoteric_programming_languages) Thanks again, Clive Gifford (of the "Black Knights") Black Knight: [calling after King Arthur] Oh! Had enough, eh? Come back and take what's coming to you, you yellow bastards! Come back here and take what's coming to you! I'll bite your legs off! From brian.aydemir at gmail.com Mon Jul 24 17:05:37 2006 From: brian.aydemir at gmail.com (brian.aydemir@gmail.com) Date: Mon Jul 24 17:05:42 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> Message-ID: <103f3ec60607241405x1fed2f99o583ddcf43cb7c42c@mail.gmail.com> On 7/24/06, Li, Peng wrote: > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > code is attached. Feel free to compile and compare. Have fun! > > real 0m55.453s > user 0m55.427s > sys 0m0.004s On a 1.33GHz Power PC G4 (iBook G4), this machine gets: % time ./um ../sandmark.umz ... SANDmark complete. 172.291u 0.921s 2:58.23 97.1% 0+0k 0+3io 0pf+0w Cheers, Brian From shana.ufie at gmail.com Mon Jul 24 17:06:24 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Mon Jul 24 17:06:27 2006 Subject: [icfp-discuss] Sandmark opcode output In-Reply-To: References: <3ec1038d0607241219p3388dc24t5508fc890dd6a8eb@mail.gmail.com> Message-ID: <3ec1038d0607241406y11e1c8f0l35e0c2c6c4180a68@mail.gmail.com> On 7/24/06, Finn Wilcox wrote: > The whole trace is much too big, but here's a trace of the first 50k cycles: > http://www.sucs.org/~finnw/umtrace.zip Thank you so much! Gonna go play where's wally with it now :) shana gone crazy, back soon, leave message From james at grayproductions.net Mon Jul 24 17:09:35 2006 From: james at grayproductions.net (James Edward Gray II) Date: Mon Jul 24 17:09:41 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <6aef848f0607241021ka613cafvd3434e98f42d5f73@mail.gmail.com> References: <44C4FD98.3060603@gnu.org> <3ec1038d0607241013s14987d3fx7805520618cea5ed@mail.gmail.com> <6aef848f0607241021ka613cafvd3434e98f42d5f73@mail.gmail.com> Message-ID: <689B3C73-12CD-486D-BA1A-30BC14A1A9A0@grayproductions.net> On Jul 24, 2006, at 12:21 PM, Vilya Harvey wrote: > I'd like to add my thanks too Yeah, we struggled to get our 225 points, but damn did we have a good time! Thanks. James Edward Gray II From finnw at sucs.org Mon Jul 24 17:25:32 2006 From: finnw at sucs.org (Finn Wilcox) Date: Mon Jul 24 17:25:36 2006 Subject: [icfp-discuss] UMIX application language In-Reply-To: <21f2dc700607241220r3d1e8d8bm7b501494ab9e1d28@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <21f2dc700607241220r3d1e8d8bm7b501494ab9e1d28@mail.gmail.com> Message-ID: So, any guesses as to what language the UMIX applications are written in? My first guess was C, since that would be one of the easiest to translate to the UM. Now I'm thinking its more likely something in the LISP family. And are they all written from scratch, or modified versions of existing programs (I would guess QBasic is based on something that already existed.) From azul at freaks-unidos.net Mon Jul 24 17:43:40 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Mon Jul 24 17:28:46 2006 Subject: [icfp-discuss] Team page with our solutions and UM Message-ID: <20060724214340.GY15374@bachue.com> Hi, Since the contest is over, our team (FUN) is creating a page detailing how we solved the problems we did. It includes links to our UM implementation as well as to the GAs we used. You can see it here: http://wiki.freaks-unidos.net/icfp I'd like to thank the organizers again. This has been the funniest programming contest I've ever participated in, and that by a large amount. Thank you, thank you, thank you! Alejo. http://azul.freaks-unidos.net/ From windenntw at gmail.com Mon Jul 24 17:32:14 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Mon Jul 24 17:32:18 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> Message-ID: <69304d110607241432w14d9eaeeo603ff6c7f8c9e413@mail.gmail.com> On 7/24/06, Mietek B?k wrote: > Hi, > > Sorry to bump into your conversation, but I've only just noticed that > there is a discussion list available. I'm interested in finding out > how fast is my naive C implementation of UM, in comparison with your > implementations. On a 1.42 PowerPC G4 (Mac mini), my SANDmark score is: > > desp@nny:~/um $ time ./um sandmark.umz > real 6m6.286s > user 5m22.717s > sys 0m2.586s > > I intend to put up a webpage detailing my solutions; currently, I've > made the source code available here: > > > > You will need to #define SWAP_BYTES 1 on a little-endian machine. > > Any opinions? quite involved unique-key-for-segments implementation... mine did use parallel arrays (one for data ptr, other for key), and a stack for free array entries (when you free a segment, its key goes to a stack, which is consulted before allocating another key). the fastest i've seen uses the malloc result directly as a key, which is quite obvious in hindsight ;) -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. From dankna at gmail.com Mon Jul 24 17:33:29 2006 From: dankna at gmail.com (Dan Knapp) Date: Mon Jul 24 17:33:33 2006 Subject: [icfp-discuss] UMIX application language In-Reply-To: References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <21f2dc700607241220r3d1e8d8bm7b501494ab9e1d28@mail.gmail.com> Message-ID: <5961bfde0607241433y422698acm7f234922d7d8bbaf@mail.gmail.com> I'm guessing ML - they had a small interpreter for it anyway, as I understand it; they could have had UM as an alternate backend. The QBasic actually seems like one of the smaller programs to me. 2D and Advice both look *much* more complicated to implement. On 7/24/06, Finn Wilcox wrote: > > So, any guesses as to what language the UMIX applications are written in? > My first guess was C, since that would be one of the easiest to translate > to the UM. Now I'm thinking its more likely something in the LISP family. > And are they all written from scratch, or modified versions of existing > programs (I would guess QBasic is based on something that already > existed.) > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Dan Knapp -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/28b52353/attachment.html From rinon.programming at gmail.com Mon Jul 24 17:42:57 2006 From: rinon.programming at gmail.com (Stephen Crane) Date: Mon Jul 24 17:43:01 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> Message-ID: We had a (sort of) working implementation in python, well it seemed to be , but it never did decode the codex, since it was too slow. So we had to rewrite in C++ (and lose almost a day.....). But the python did make rewriting and debugging the C code a lot easier. We also used a vector to store the arrays of platters, but we actually stored a pointer to the first Platter of each array and the arrays of platters were defined on the heap. - Stephen Crane Team B.C. Tech On 7/24/06, Mietek B?k wrote: > > Hi, > > Sorry to bump into your conversation, but I've only just noticed that > there is a discussion list available. I'm interested in finding out > how fast is my naive C implementation of UM, in comparison with your > implementations. On a 1.42 PowerPC G4 (Mac mini), my SANDmark score is: > > desp@nny:~/um $ time ./um sandmark.umz > real 6m6.286s > user 5m22.717s > sys 0m2.586s > > I intend to put up a webpage detailing my solutions; currently, I've > made the source code available here: > > > > You will need to #define SWAP_BYTES 1 on a little-endian machine. > > Any opinions? > > Thanks, > desp. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/004cfe53/attachment-0001.html From iicfp at yahoo.com Mon Jul 24 17:48:52 2006 From: iicfp at yahoo.com (icfp icfp) Date: Mon Jul 24 17:48:54 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: Message-ID: <20060724214852.88824.qmail@web55705.mail.re3.yahoo.com> Bigloo Scheme: I got the sandmark to take about 16 minutes to run on my laptop. What helped was that Bigloo has unboxed arrays (called tvectors, which are somewhat undocumented) and has 32-bit signed integers. Modular addition and multiplication on unsigned 32-bit integers is equivalent to the built-in signed twos-complement addition and multiplication (no overflow checking takes place), so the only operation that required a little work was division, where I converted to and from 64-bit. Probably could have improved the allocation - I did not reuse previously allocated arrays. --------------------------------- Groups are talking. We´re listening. Check out the handy changes to Yahoo! Groups. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/5af3ecea/attachment.html From sdb at webalo.com Mon Jul 24 17:54:05 2006 From: sdb at webalo.com (Seth Bruder) Date: Mon Jul 24 17:54:14 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: <44C51CCF.30809@cs.cmu.edu> References: <44C50E8E.6070604@webalo.com> <44C51CCF.30809@cs.cmu.edu> Message-ID: <44C5417D.2060004@webalo.com> Thanks for the reply. I must have read that note at least 20 times and still didn't "get it". I didn't find any goggles to change -- not even in the "Trash Heap" room. If you had a more specific tip/answer, I would be grateful. Thanks, Seth Karl Crary wrote: > The note that you read when first arriving on the streets of Chicago > contains a hint for how to defeat the Censory Engine. > > Karl Crary > > > Seth Bruder wrote: > >> >> I spent most of the time I had doing the Adventure game. >> I used the uploader to turn 'speak' into a "teleport to" command and >> removed the restrictions on 'take', then got the blueprints from the >> Museum, but I could not seem to get around the "REDACTED" message -- >> even messing with string_fromchar, etc -- appears that there is a >> 'taint' on the item description. >> I found this very frustrating after a looong day -- not a lot of >> points for getting to the blueprints. >> >> Does anybody know what to do with the Blueprints? >> >> Thanks, >> Seth >> >> _______________________________________________ >> icfpcontest-discuss mailing list >> icfpcontest-discuss@lists.andrew.cmu.edu >> https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > > From iicfp at yahoo.com Mon Jul 24 17:55:56 2006 From: iicfp at yahoo.com (icfp icfp) Date: Mon Jul 24 17:55:58 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <1815f00607222341n1ba39a94s4055d21e7c88b3c0@mail.gmail.com> Message-ID: <20060724215556.96344.qmail@web55705.mail.re3.yahoo.com> Robert Van Dam wrote: I'm quite curious to hear if anyone has gotten this to run within a reasonable amount of time using something other than C (perhaps even a functional language ;). Bigloo Scheme - takes about 16 minutes for the sandmark on a 2GHz laptop. I just used native Bigloo features and types - no foreign calls or C types. --------------------------------- Do you Yahoo!? Get on board. You're invited to try the new Yahoo! Mail Beta. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/79400e06/attachment.html From davidad at mit.edu Mon Jul 24 17:59:31 2006 From: davidad at mit.edu (David Dalrymple) Date: Mon Jul 24 17:59:33 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <011001c6af64$0f3cefc0$0301a8c0@Owhango1> References: <011001c6af64$0f3cefc0$0301a8c0@Owhango1> Message-ID: <504b2780607241459h7f49df6enbf2cd4bd9cb90090@mail.gmail.com> > Black Knight: [calling after King Arthur] Oh! Had enough, eh? Come back and > take what's coming to you, you yellow bastards! Come back here and take > what's coming to you! I'll bite your legs off! I think it's "I'll bite your kneecaps off" in the original, which is rather more amusing. :D (Sorry for the spam.) --David From geoffw at seas.upenn.edu Mon Jul 24 18:11:53 2006 From: geoffw at seas.upenn.edu (Geoffrey Alan Washburn) Date: Mon Jul 24 18:11:56 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? Message-ID: > Thanks for the reply. > I must have read that note at least 20 times and still didn't "get it". > I didn't find any goggles to change -- not even in the "Trash Heap" room. > If you had a more specific tip/answer, I would be grateful. Switching goggles did not actually require an item, though it wasn't immediately obvious. Just enter "switch goggles". However, as far as I could tell this was mostly to make programming the problem easier, rather than specifically helping with the blueprint. Our team didn't figure the blueprint out either. And we spent significant amounts of time puzzling over the interfaces described in the "sub-cerebral program" trying to find a way to break the "abstraction" that "is weak". We initially thought that the hint "blocks only your perception, not your actions" was key, but we could not find any way to indirectly perform an action that allowed observation of redacted values. We even tried an elaborate scheme where we would pick up all playing cards and drop them to provide a mapping between characters of the redacted string, but redacted values even prevent control flow operations. We also tried to see if we could change the "extern type" definition for an the "item" type and break the abstraction that way, but we couldn't find a type definition that it said matched. Finally, even the somewhat obvious "break" command did not seem to do anything, though admittedly we only tried "breaking" items that were in our possession. From rvandam00 at gmail.com Mon Jul 24 18:13:48 2006 From: rvandam00 at gmail.com (Robert Van Dam) Date: Mon Jul 24 18:13:50 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <20060724214852.88824.qmail@web55705.mail.re3.yahoo.com> References: <20060724214852.88824.qmail@web55705.mail.re3.yahoo.com> Message-ID: <1815f00607241513i4c93bae5h7ef761fb8dab2f7c@mail.gmail.com> We started out in Oz and got pretty far but with no built in bitwise operators and using a buggy unofficial bitvector module was our downfall. Got it to work in C but we had lost so much time at that point that we didn't get much from the puzzles. I think I'm going to write up a module to use C's bit operators just so that I can prove to myself that we could have gotten it to work. On 7/24/06, icfp icfp wrote: > > Bigloo Scheme: > > I got the sandmark to take about 16 minutes to run on my laptop. > > What helped was that Bigloo has unboxed arrays (called tvectors, which are > somewhat undocumented) and has 32-bit signed integers. Modular addition and > multiplication on unsigned 32-bit integers is equivalent to the built-in > signed twos-complement addition and multiplication (no overflow checking > takes place), so the only operation that required a little work was > division, where I converted to and from 64-bit. > > Probably could have improved the allocation - I did not reuse previously > allocated arrays. > > > > > > > ________________________________ > Groups are talking. We?re listening. Check out the handy changes to Yahoo! > Groups. > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From mietek at gmail.com Mon Jul 24 18:24:59 2006 From: mietek at gmail.com (=?UTF-8?Q?Mietek_B=C4=85k?=) Date: Mon Jul 24 18:25:04 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <69304d110607241432w14d9eaeeo603ff6c7f8c9e413@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> <69304d110607241432w14d9eaeeo603ff6c7f8c9e413@mail.gmail.com> Message-ID: On 24/7/2006, at 23:32, Antonio Vargas wrote: > the fastest i've > seen uses the malloc result directly as a key, which is quite obvious > in hindsight ;) Doh, it indeed is... The puzzles occupied me so much I didn't really as much as look at the UM code after the first few hours. And I should have, I just found a type (allocating (2 * size) * 4 bytes for every array, instead of (2 + size) * 4 bytes) that cut my Hellomark time from 1m39.184s to 0m0.026s! SANDmark went down from 6m6.286s to 5m18.487s. On a side note -- when playing the adventure game using a saved solution, my UM always pauses (if it's the first thing I run) at the message: ">: You have successfully combined the motherboard and the screw!" Such pauses are also common during other CPU- and memory-intensive tasks. My guess is that the UM is doing garbage-collection at that moment. Has anyone else encountered this? desp. From ulfn at cs.chalmers.se Mon Jul 24 18:40:56 2006 From: ulfn at cs.chalmers.se (Ulf Norell) Date: Mon Jul 24 18:41:00 2006 Subject: [icfp-discuss] Adventure game question. In-Reply-To: <41b037ed0607241353n4cd5bddq7bd3716b67d3fe3d@mail.gmail.com> References: <44C51B7D.2070403@tepkom.ru> <71fd12e60607241220h239d53cfx77d0516bdeab8c78@mail.gmail.com> <41b037ed0607241258w408e1ce1p226504bd34d6ace@mail.gmail.com> <44C5282B.8080507@cs.cmu.edu> <41b037ed0607241353n4cd5bddq7bd3716b67d3fe3d@mail.gmail.com> Message-ID: <5862E29C-1E31-4F64-A24D-F3ACF56DA249@cs.chalmers.se> On Jul 24, 2006, at 10:53 PM, Alexandre Buisse wrote: > I'd expect as much. Actually, the hardest part was parsing the > description without making any mistake. But then, lisp-aware > editors come really handy :) We implemented a parser. Seemed like the simplest way... / Ulf From ulfn at cs.chalmers.se Mon Jul 24 18:49:19 2006 From: ulfn at cs.chalmers.se (Ulf Norell) Date: Mon Jul 24 18:49:34 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: References: Message-ID: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> On Jul 25, 2006, at 12:11 AM, Geoffrey Alan Washburn wrote: > > Thanks for the reply. > > I must have read that note at least 20 times and still didn't > "get it". > > I didn't find any goggles to change -- not even in the "Trash > Heap" room. > > If you had a more specific tip/answer, I would be grateful. > > Switching goggles did not actually require an item, though it > wasn't immediately obvious. Just enter "switch goggles". However, > as far as I could tell this was mostly to make programming the > problem easier, rather than specifically helping with the blueprint. There was a switch googles command? What did it do? > Our team didn't figure the blueprint out either. And we spent > significant amounts of time puzzling over the interfaces described > in the "sub-cerebral program" trying to find a way to break the > "abstraction" that "is weak". We initially thought that the hint > "blocks only your perception, not your actions" was key, but we > could not find any way to indirectly perform an action that allowed > observation of redacted values. We even tried an elaborate scheme > where we would pick up all playing cards and drop them to provide a > mapping between characters of the redacted string, but redacted > values even prevent control flow operations. That exactly how we solved it. The key is to do it in two steps. Pick up the playing cards. Encode (a segment of) secret string as a permutation of the cards. Drop them in that order. Then you use a parse command (speak parse in our case), to look at the cards and read off the string. We had to do this several times, though. The cards could only encode around 25 characters at a time with our encoding. / Ulf From ulfn at cs.chalmers.se Mon Jul 24 18:53:16 2006 From: ulfn at cs.chalmers.se (Ulf Norell) Date: Mon Jul 24 18:53:22 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> Message-ID: <7EDD413F-80D0-4409-8BCB-52A89A018DB2@cs.chalmers.se> On Jul 24, 2006, at 9:39 PM, Christophe Poucet wrote: > That sounds like the approach I used as well. > > I would use a vector of "arrays" (though in effect they were > vectors as well). Whenever I needed to allocated I'd check a > list to see if any index had been ammended previously. If > so I'd reuse it, otherwise I'd push a new vector onto the vector of > arrays: We used malloc and free for alloc and abandon. Worked like a charm and was dead simple to implement. / Ulf From lipeng at cis.upenn.edu Mon Jul 24 18:53:36 2006 From: lipeng at cis.upenn.edu (Li, Peng) Date: Mon Jul 24 18:53:39 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> Message-ID: <598a055d0607241553y41db3883ub82a79b51a4d8b0f@mail.gmail.com> Attached is an improved version with a customized memory allocator. 48 seconds for sandmark.umz on an Intel(R) Xeon(TM) CPU 3.20GHz! Requirements: 32-bit machine, at least 512MB memory. On 7/24/06, Li, Peng wrote: > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > code is attached. Feel free to compile and compare. Have fun! > > real 0m55.453s > user 0m55.427s > sys 0m0.004s > > Usage: > > $ g++ -O6 machine.cpp -o machine > $ time machine < sandmark.umz -------------- next part -------------- A non-text attachment was scrubbed... Name: peng.cpp Type: text/x-c++src Size: 3473 bytes Desc: not available Url : http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/6f5a668a/peng.bin From geoffw at seas.upenn.edu Mon Jul 24 18:54:03 2006 From: geoffw at seas.upenn.edu (Geoffrey Alan Washburn) Date: Mon Jul 24 18:54:06 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> Message-ID: <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> On Jul 24, 2006, at 6:49 PM, Ulf Norell wrote: > > On Jul 25, 2006, at 12:11 AM, Geoffrey Alan Washburn wrote: > >> > Thanks for the reply. >> > I must have read that note at least 20 times and still didn't >> "get it". >> > I didn't find any goggles to change -- not even in the "Trash >> Heap" room. >> > If you had a more specific tip/answer, I would be grateful. >> >> Switching goggles did not actually require an item, though it >> wasn't immediately obvious. Just enter "switch goggles". >> However, as far as I could tell this was mostly to make >> programming the problem easier, rather than specifically helping >> with the blueprint. > > There was a switch googles command? What did it do? It allowed you to change the output format (XML, S-expressions, "ML" expressions, and groovy ANSI color). > That exactly how we solved it. The key is to do it in two steps. > Pick up the playing cards. Encode (a segment of) secret string as a > permutation of the cards. Drop them in that order. Then you use a > parse command (speak parse in our case), to look at the cards and > read off the string. We had to do this several times, though. The > cards could only encode around 25 characters at a time with our > encoding. Really, how did you get the data from the string? "string_charat" only seemed to evaluate to "redacted" for us, and we couldn't figure out any other functions that might be able to retrieve the data. From ulfn at cs.chalmers.se Mon Jul 24 19:03:13 2006 From: ulfn at cs.chalmers.se (Ulf Norell) Date: Mon Jul 24 19:03:19 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> Message-ID: On Jul 25, 2006, at 12:54 AM, Geoffrey Alan Washburn wrote: >> That exactly how we solved it. The key is to do it in two steps. >> Pick up the playing cards. Encode (a segment of) secret string as >> a permutation of the cards. Drop them in that order. Then you use >> a parse command (speak parse in our case), to look at the cards >> and read off the string. We had to do this several times, though. >> The cards could only encode around 25 characters at a time with >> our encoding. > > Really, how did you get the data from the string? "string_charat" > only seemed to evaluate to "redacted" for us, and we couldn't > figure out any other functions that might be able to retrieve the > data. That's where the two steps come in: when you examine something the string is encoded but not decoded. So there is nothing for the censory engine to redact. You have to decode separately. Example: >: look There is nothing here. >: examine blueprint ... [____REDACTED____] ... >: look There is a king-of-spades here. Underneath the king-of-spades there is a three-of-hearts. ... >: speak parse You speak the words "The blueprint is most enlightening. It shows tha". As mentioned above we had to repeat this process with different offsets to get the whole string. The offset could be changed by dropping different cards on the floor. I would be curious to know if anyone had a better solution. / Ulf From windenntw at gmail.com Mon Jul 24 19:03:50 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Mon Jul 24 19:03:54 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <598a055d0607241553y41db3883ub82a79b51a4d8b0f@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <598a055d0607241553y41db3883ub82a79b51a4d8b0f@mail.gmail.com> Message-ID: <69304d110607241603w7e4a695bm8a8f0f013812bea4@mail.gmail.com> Could you test mine on your machine? On 7/25/06, Li, Peng wrote: > Attached is an improved version with a customized memory allocator. > > 48 seconds for sandmark.umz on an Intel(R) Xeon(TM) CPU 3.20GHz! > > Requirements: 32-bit machine, at least 512MB memory. > > On 7/24/06, Li, Peng wrote: > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > code is attached. Feel free to compile and compare. Have fun! > > > > real 0m55.453s > > user 0m55.427s > > sys 0m0.004s > > > > Usage: > > > > $ g++ -O6 machine.cpp -o machine > > $ time machine < sandmark.umz > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. -------------- next part -------------- #include #include #include #include #define CDSIZE 15923865 #define PROGNAME "umix.umz" //#define CDSIZE 2357032 //#define PROGNAME "codex.umz" //#define CDSIZE 56364 //#define PROGNAME "sandmark.umz" //#define CDSIZE 6260 //#define PROGNAME "um6hello.um" //#define BIGDEBUG //#define LOGOUT #ifdef BIGDEBUG #define DEBN(n) {fprintf(stderr, "%08x ", n);} #define DEBS(s) {fprintf(stderr, "%s\n", s);} #else #define DEBN(n) {} #define DEBS(s) {} #endif #define MAXARR (64 * 1024 * 1024) typedef unsigned int u32; static void load(u32 **ptr, u32*siz) { FILE *f; int i; u32 *p; *siz = CDSIZE / 4; *ptr = p = (u32 *) malloc(sizeof(u32) * CDSIZE); f = fopen(PROGNAME,"r"); fread(ptr[0], sizeof(u32), CDSIZE, f); fclose(f); for(i = 0 ; i < CDSIZE ; i++){ p[i] = htonl(p[i]); } } #define STKMAX (1024*1024) static u32 stk1[STKMAX]; static u32 stkp = 0; static u32 pop(u32 *pn) { if(stkp > 0){ return stk1[--stkp]; } *pn = (*pn) + 1; return *pn; } static u32 push(u32 old) { if(stkp < (STKMAX - 1)) stk1[stkp++] = old; } int main(void) { static u32 *ptr[MAXARR]; static u32 siz[MAXARR]; static u32 reg[8]; u32 pc, pn, nc; u32 i; #ifdef LOGOUT FILE *logfile; logfile = fopen("debug_log","wb"); setbuf(logfile, 0); #endif load(&ptr[0], &siz[0]); setbuf(stdin, 0); setbuf(stdout, 0); for(i = 0 ; i < 8 ; i++) reg[i] = 0; pc = 0; pn = 1; nc = 0; for(;;){ u32 op,ir,a,b,c; ir = ptr[0][pc]; op = ((ir >> (32 - 4))); a = ((ir >> 6) & 7); b = ((ir >> 3) & 7); c = ((ir >> 0) & 7); //if(!(nc & 0x00ffffff)) fprintf(stderr, "nc %08x pc %08x ir %08x\n", nc, pc, ir); #ifdef BIGDEBUG for(i = 0 ; i < 8 ; i++) DEBN(reg[i]); DEBS(""); DEBN(a); DEBN(b); DEBN(c); #endif pc++; nc++; switch(op){ case 0: DEBS("CMOV\n"); if(reg[c]) reg[a] = reg[b]; break; case 1: DEBS("LD\n"); reg[a] = ptr[reg[b]][reg[c]]; break; case 2: DEBS("ST\n"); ptr[reg[a]][reg[b]] = reg[c]; break; case 3: DEBS("ADD\n"); reg[a] = reg[b] + reg[c]; break; case 4: DEBS("MUL\n"); { const unsigned int fb = reg[b]; const unsigned int fc = reg[c]; reg[a] = (u32) ((fb * fc) & 0xffffffff); } break; case 5: DEBS("DIV\n"); { const unsigned fb = reg[b]; const unsigned fc = reg[c]; reg[a] = (u32) ((fb / fc) & 0xffffffff); } break; case 6: DEBS("NAND\n"); reg[a] = ~(reg[b] & reg[c]); break; case 7: DEBS("ABORT\n"); fprintf(stdout, "ABORT reached\n"); return 0; break; case 8: DEBS("ALLOC\n"); if(pn == MAXARR){ fprintf(stdout, "MAXARR reached\n"); return 1; } i = pop(&pn); //fprintf(stderr, "alloc %d size %d\n", i, reg[c]); siz[i] = reg[c]; ptr[i] = (u32 *) calloc(sizeof(u32), siz[i]); reg[b] = i; pn++; break; case 9: DEBS("FREE\n"); //fprintf(stderr, "free %d\n", reg[c]); free(ptr[reg[c]]); push(reg[c]); break; case 10: DEBS("PUTCHAR\n"); if(reg[c] > 255) abort(); else{ fputc(reg[c], stdout); #ifdef LOGOUT fputc(reg[c], logfile); #endif } break; case 11: DEBS("GETCHAR\n"); { reg[c] = fgetc(stdin); } break; case 12: DEBS("LOAD\n"); if(reg[b]){ const int m = siz[reg[b]]; free(ptr[0]); ptr[0] = (u32 *) malloc(sizeof(u32) * m); memcpy(ptr[0], ptr[reg[b]], sizeof(u32) * m); siz[0] = m; } pc = reg[c]; break; case 13: DEBS("IMM\n"); a = (ir >> 25) & 7; reg[a] = ir & 0x01ffffff; break; } } return 0; } From nattfodd at gmail.com Mon Jul 24 19:04:29 2006 From: nattfodd at gmail.com (Alexandre Buisse) Date: Mon Jul 24 19:04:32 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> Message-ID: <41b037ed0607241604m781e1ff1yf1410cf11f6de182@mail.gmail.com> On 7/25/06, Geoffrey Alan Washburn wrote: > > > On Jul 24, 2006, at 6:49 PM, Ulf Norell wrote: > > > > > On Jul 25, 2006, at 12:11 AM, Geoffrey Alan Washburn wrote: > > > >> > Thanks for the reply. > >> > I must have read that note at least 20 times and still didn't > >> "get it". > >> > I didn't find any goggles to change -- not even in the "Trash > >> Heap" room. > >> > If you had a more specific tip/answer, I would be grateful. > >> > >> Switching goggles did not actually require an item, though it > >> wasn't immediately obvious. Just enter "switch goggles". > >> However, as far as I could tell this was mostly to make > >> programming the problem easier, rather than specifically helping > >> with the blueprint. > > > > There was a switch googles command? What did it do? > > > It allowed you to change the output format (XML, S-expressions, > "ML" > expressions, and groovy ANSI color). > > > > That exactly how we solved it. The key is to do it in two steps. > > Pick up the playing cards. Encode (a segment of) secret string as a > > permutation of the cards. Drop them in that order. Then you use a > > parse command (speak parse in our case), to look at the cards and > > read off the string. We had to do this several times, though. The > > cards could only encode around 25 characters at a time with our > > encoding. > > > Really, how did you get the data from the string? "string_charat" > only seemed to evaluate to "redacted" for us, and we couldn't figure > out any other functions that might be able to retrieve the data. The key was to make use of side-effects (hence the "abstraction is weak" hint). Stuff like [ do throw_card_from_value(string_charat(item_description(item),0)). return "DIE, YOU CENSORY ENGINE!!!"] would allow you to do stuff on the throw_card_from_value function based on the real value. So if you can manage to modify the state of the world in this function (in my case just moving a card to another room), then you had a way to decode the string (and crowbar that bloody censory engine, mwahahahahahaha). /Alexandre -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/09436b7e/attachment.html From andy_zyx at yahoo.com Mon Jul 24 19:08:55 2006 From: andy_zyx at yahoo.com (Andy) Date: Mon Jul 24 19:08:58 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: Message-ID: <20060724230855.41675.qmail@web50711.mail.yahoo.com> It was an amazing contest organized by the CMO POP team. I agree, it will be very hard for forthcoming icfp contests to make it as interesting. The last time, one very close was in 2004. Great job again ! Andy --- Ganesh Sittampalam wrote: > Hi, > > I'd like to thank all the organisers for an amazing contest. The basic > idea of using a virtual machine was brilliant and the individual puzzles > clearly had a lot of work put into them - they were all the right level of > difficulty for the time and people available. Using multiple puzzles also > did a lot to smooth out the element of luck. > > It'll be rather hard for future organisers to top this year! > > Cheers, > > Ganesh > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From amin.ahmad at gmail.com Mon Jul 24 19:10:15 2006 From: amin.ahmad at gmail.com (Amin Ahmad) Date: Mon Jul 24 19:10:18 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <69304d110607241603w7e4a695bm8a8f0f013812bea4@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <598a055d0607241553y41db3883ub82a79b51a4d8b0f@mail.gmail.com> <69304d110607241603w7e4a695bm8a8f0f013812bea4@mail.gmail.com> Message-ID: <4fc9f4dd0607241610u6d148f0ei6f934d6754a3e1b9@mail.gmail.com> right, watch your hard-disk get formatted, man! On 7/24/06, Antonio Vargas wrote: > > Could you test mine on your machine? > > > On 7/25/06, Li, Peng wrote: > > Attached is an improved version with a customized memory allocator. > > > > 48 seconds for sandmark.umz on an Intel(R) Xeon(TM) CPU 3.20GHz! > > > > Requirements: 32-bit machine, at least 512MB memory. > > > > On 7/24/06, Li, Peng wrote: > > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > > code is attached. Feel free to compile and compare. Have fun! > > > > > > real 0m55.453s > > > user 0m55.427s > > > sys 0m0.004s > > > > > > Usage: > > > > > > $ g++ -O6 machine.cpp -o machine > > > $ time machine < sandmark.umz > > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > -- > Greetz, Antonio Vargas aka winden of network > > http://network.amigascne.org/ > windNOenSPAMntw@gmail.com > thesameasabove@amigascne.org > > Every day, every year > you have to work > you have to study > you have to scene. > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060724/d21db6ed/attachment.html From geoffw at seas.upenn.edu Mon Jul 24 19:12:20 2006 From: geoffw at seas.upenn.edu (Geoffrey Alan Washburn) Date: Mon Jul 24 19:12:24 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: <41b037ed0607241604m781e1ff1yf1410cf11f6de182@mail.gmail.com> References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> <41b037ed0607241604m781e1ff1yf1410cf11f6de182@mail.gmail.com> Message-ID: On Jul 24, 2006, at 7:04 PM, Alexandre Buisse wrote: > The key was to make use of side-effects (hence the "abstraction is > weak" hint). Stuff like > > [ do throw_card_from_value(string_charat(item_description(item),0)). > return "DIE, YOU CENSORY ENGINE!!!"] > > would allow you to do stuff on the throw_card_from_value function > based on the real value. So if you can manage to modify the state > of the world in this function (in my case just moving a card to > another room), then you had a way to decode the string (and crowbar > that bloody censory engine, mwahahahahahaha). Huh. That is almost exactly what I did: drop_nth_item ( (string_charat(item_description(item),0)), 0, room_items (inventory), here ())) But as far as I could tell it would never invoke drop_nth_item. When I tried drop_nth_item ( 3, 0, room_items (inventory), here ())) It worked just fine. From wei.hoo at gmail.com Mon Jul 24 19:13:31 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Mon Jul 24 19:13:36 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> <69304d110607241432w14d9eaeeo603ff6c7f8c9e413@mail.gmail.com> Message-ID: <71fd12e60607241613yf568a7rabef3775e336ca86@mail.gmail.com> > On a side note -- when playing the adventure game using a saved > solution, my UM always pauses (if it's the first thing I run) at the > message: > > ">: You have successfully combined the motherboard and the screw!" > > Such pauses are also common during other CPU- and memory-intensive > tasks. My guess is that the UM is doing garbage-collection at that > moment. Has anyone else encountered this? > In my first version, I always encountered such pauses when I was awarded a publication. From icfp at jdev.users.panix.com Mon Jul 24 19:14:13 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Mon Jul 24 19:14:15 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: Message-ID: <20060724231413.GA16865@panix.com> On Mon, Jul 24, 2006 at 05:23:30PM +0100, Ganesh Sittampalam wrote: > > I'd like to thank all the organisers for an amazing contest. The basic > idea of using a virtual machine was brilliant and the individual puzzles > clearly had a lot of work put into them - they were all the right level of > difficulty for the time and people available. Using multiple puzzles also > did a lot to smooth out the element of luck. > > It'll be rather hard for future organisers to top this year! I agree wholeheartedly. -- proc{|x,y|x[y]}[*[[?J,?d,?D,?v,\ ?s],[?e,?\s,?a,?i,?\n]].collect\ {|l|proc{|o|l.each{|c|print\ c.chr;o=callcc{|k|o[k]}}}}] From lipeng at cis.upenn.edu Mon Jul 24 19:20:00 2006 From: lipeng at cis.upenn.edu (Li, Peng) Date: Mon Jul 24 19:20:32 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <69304d110607241603w7e4a695bm8a8f0f013812bea4@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <598a055d0607241553y41db3883ub82a79b51a4d8b0f@mail.gmail.com> <69304d110607241603w7e4a695bm8a8f0f013812bea4@mail.gmail.com> Message-ID: <598a055d0607241620u66fcd216kd5cfc95512e917c6@mail.gmail.com> I edited your code to use sandmark.umz and compiled it with gcc -O6. On the same Xeon 3.2 machine I got ..... 32. 2963bf25.d9f06dfe 31. c493d2db.f39ce804 30. 3b6e5a8e.5cf63bd7 29. 4c5c2fbe.8d881c00 28. 9b7354a6.81181438 MAXARR reached real 1m13.086s user 1m13.061s sys 0m0.016s looks like the program is not finished yet... On 7/24/06, Antonio Vargas wrote: > Could you test mine on your machine? > > > On 7/25/06, Li, Peng wrote: > > Attached is an improved version with a customized memory allocator. > > > > 48 seconds for sandmark.umz on an Intel(R) Xeon(TM) CPU 3.20GHz! > > > > Requirements: 32-bit machine, at least 512MB memory. > > > > On 7/24/06, Li, Peng wrote: > > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > > code is attached. Feel free to compile and compare. Have fun! > > > > > > real 0m55.453s > > > user 0m55.427s > > > sys 0m0.004s > > > > > > Usage: > > > > > > $ g++ -O6 machine.cpp -o machine > > > $ time machine < sandmark.umz > > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > -- > Greetz, Antonio Vargas aka winden of network > > http://network.amigascne.org/ > windNOenSPAMntw@gmail.com > thesameasabove@amigascne.org > > Every day, every year > you have to work > you have to study > you have to scene. > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > From philippe.wang.lists at gmail.com Mon Jul 24 19:39:13 2006 From: philippe.wang.lists at gmail.com (Wang Philippe) Date: Mon Jul 24 19:39:15 2006 Subject: [icfp-discuss] Adventure memory usage | Obj.magic ... Message-ID: <4d1b2df20607241639v43fed1f8r33461fe2bf7a5984@mail.gmail.com> > Date: Sun, 23 Jul 2006 23:10:25 -0700 (PDT) > From: "Jonathan Roewen" How dare you ? :-D > Well, it runs most of UMIX fairly quickly. At the moment, I'm working > on some Obj.magic related stuff for allocation -- should be > interesting. > Jonathan From windenntw at gmail.com Mon Jul 24 19:49:36 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Mon Jul 24 19:49:39 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <598a055d0607241620u66fcd216kd5cfc95512e917c6@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <598a055d0607241553y41db3883ub82a79b51a4d8b0f@mail.gmail.com> <69304d110607241603w7e4a695bm8a8f0f013812bea4@mail.gmail.com> <598a055d0607241620u66fcd216kd5cfc95512e917c6@mail.gmail.com> Message-ID: <69304d110607241649v4df4c8efvad2eb91bd155cf3@mail.gmail.com> yes it is, but for running sanmark, it's needed to raise the MAXARR define. anyways i can see it could be better optimized... thx for testing it ^^ On 7/25/06, Li, Peng wrote: > I edited your code to use sandmark.umz and compiled it with gcc -O6. > On the same Xeon 3.2 machine I got > > ..... > 32. 2963bf25.d9f06dfe > 31. c493d2db.f39ce804 > 30. 3b6e5a8e.5cf63bd7 > 29. 4c5c2fbe.8d881c00 > 28. 9b7354a6.81181438 > MAXARR reached > > real 1m13.086s > user 1m13.061s > sys 0m0.016s > > looks like the program is not finished yet... > > On 7/24/06, Antonio Vargas wrote: > > Could you test mine on your machine? > > > > > > On 7/25/06, Li, Peng wrote: > > > Attached is an improved version with a customized memory allocator. > > > > > > 48 seconds for sandmark.umz on an Intel(R) Xeon(TM) CPU 3.20GHz! > > > > > > Requirements: 32-bit machine, at least 512MB memory. > > > > > > On 7/24/06, Li, Peng wrote: > > > > I got the following time on a Intel(R) Xeon(TM) CPU 3.20GHz. Source > > > > code is attached. Feel free to compile and compare. Have fun! > > > > > > > > real 0m55.453s > > > > user 0m55.427s > > > > sys 0m0.004s > > > > > > > > Usage: > > > > > > > > $ g++ -O6 machine.cpp -o machine > > > > $ time machine < sandmark.umz > > > > > > > > > _______________________________________________ > > > icfpcontest-discuss mailing list > > > icfpcontest-discuss@lists.andrew.cmu.edu > > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > > > > > > > > > > -- > > Greetz, Antonio Vargas aka winden of network > > > > http://network.amigascne.org/ > > windNOenSPAMntw@gmail.com > > thesameasabove@amigascne.org > > > > Every day, every year > > you have to work > > you have to study > > you have to scene. > > > > > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. From bookeldor.lists at gmail.com Mon Jul 24 19:55:04 2006 From: bookeldor.lists at gmail.com (Benjamin Canou) Date: Mon Jul 24 19:55:06 2006 Subject: [icfp-discuss] multiplication... Message-ID: Since the contest is now over, does anybody here knows how to program the multiplication (and the fillmem without using the undocumented 1 in the memory) in balance assembly? It's the only puzzle on which we totally stuck... PS: I, and my whole team (PLOP) want to thank the organizers for their colossal amount of work and the resulting very interesting puzzles, as well as for the jokes and puns in the texts :-) From kurt.rinnert at cern.ch Mon Jul 24 20:08:15 2006 From: kurt.rinnert at cern.ch (Kurt Rinnert) Date: Mon Jul 24 20:08:24 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <2b0051e00607241355x74a96c04q72118eb8181e18d4@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <20060724204853.GE5426@vulcan> <2b0051e00607241355k64016f3br7fa796d4448aaeeb@mail.gmail.com> <2b0051e00607241355x74a96c04q72118eb8181e18d4@mail.gmail.com> Message-ID: <20060725000815.GF5426@vulcan> Thanks! I compiled your code with -O6 -fstrict-aliasing and ran it on SANDmark: real 2m1.065s user 1m59.830s sys 0m0.927s This is on an AMD Athlon(tm) 64 Processor 3000+, 1.8 GHz with 2GB, running SuSE Linux 9.2 (x86-64). My slightly more bloated C++ implementation yields: real 2m15.265s user 2m13.535s sys 0m1.214s Also not too bad :) However, my memory footprint is always at least ~240M because I pre-allocate some vectors to avoid unnecessary copying. Without that I am going down to ~2m25 (which probably means the preallocation is a silly idea). Yours on SANDmark is only ~10M -- your code is definitely more efficient. :) I have attached my code, in case somebody is interested. Simply unwind the tarball, 'cd um' and 'make'. Run it with './bin/um'. This was really fun! Now I need some food and sleep... best, Kurt On Mon, Jul 24, 2006 at 10:55:53PM +0200, Christophe Poucet wrote: > Make sure to compile with -O3 or it will be really slow (lots of redundant > memory copies) > -- Kurt Rinnert, University of Liverpool - Department of Physics From kurt.rinnert at cern.ch Mon Jul 24 20:12:39 2006 From: kurt.rinnert at cern.ch (Kurt Rinnert) Date: Mon Jul 24 20:12:42 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <20060725000815.GF5426@vulcan> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <598a055d0607241238ia728469l81a4f3ba4a271b58@mail.gmail.com> <20060724204853.GE5426@vulcan> <2b0051e00607241355k64016f3br7fa796d4448aaeeb@mail.gmail.com> <2b0051e00607241355x74a96c04q72118eb8181e18d4@mail.gmail.com> <20060725000815.GF5426@vulcan> Message-ID: <20060725001239.GG5426@vulcan> As usual I pressed 'y' without attaching anything. Here you go... *moves left arm behind back* > I have attached my code, in case somebody is interested. Simply unwind > the tarball, 'cd um' and 'make'. Run it with './bin/um'. > -- Kurt Rinnert, University of Liverpool - Department of Physics -------------- next part -------------- A non-text attachment was scrubbed... Name: um.tgz Type: application/x-gtar Size: 5806 bytes Desc: not available Url : http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/3c758ea1/um.gtar From kurt.rinnert at cern.ch Mon Jul 24 20:33:26 2006 From: kurt.rinnert at cern.ch (Kurt Rinnert) Date: Mon Jul 24 20:33:28 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: References: Message-ID: <20060725003326.GH5426@vulcan> So here is another 'me too'... Thank you all very much! It was great fun and I learned a lot. Next time I rather not try this alone. Then again, a fast UM and 360 is not too bad for a one-man team entering on sunday. :) It didn't help that I'm learning a new editor and was ready to submit the CIRCS.MUL=30@2429|083f908fc1067c4b9e140664b8879bb at 12:10 EDT. (Btw. running this solution takes 4.8s :)) See you next time, Team Truk -- Kurt Rinnert, University of Liverpool - Department of Physics From icfp at jdev.users.panix.com Mon Jul 24 20:39:21 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Mon Jul 24 20:39:23 2006 Subject: [icfp-discuss] Allocation strategies (was Re: Highest level language with a successful impl of UM?) In-Reply-To: <7EDD413F-80D0-4409-8BCB-52A89A018DB2@cs.chalmers.se> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <7EDD413F-80D0-4409-8BCB-52A89A018DB2@cs.chalmers.se> Message-ID: <20060725003920.GB16865@panix.com> On Tue, Jul 25, 2006 at 12:53:16AM +0200, Ulf Norell wrote: > > We used malloc and free for alloc and abandon. Worked like a charm > and was dead simple to implement. When I realized that allocation of many small segments was being a bottleneck, and that it was going to use a *LOT* of memory, I wrote an allocator that maintains a big array of each power-of-two size from 2 to 128 inclusive, and a table of pointer/size pairs for the larger ones (calloc'ed individually); each of these is realloc'ed to double the size when it runs out (which has worst-case performance implications that I cheerfully ignore), and is equipped with a simple LIFO free-list. The segment identifiers are constructed thusly: the top three bits indicate the bucket number, or are 000 for a "large" segment, and the bottom 29 index into the relevant array. This imposes a certain burden on the memory operations, of course. -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From sean.seefried at gmail.com Mon Jul 24 20:46:42 2006 From: sean.seefried at gmail.com (Sean Seefried) Date: Mon Jul 24 20:59:41 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: On 25/07/2006, at 3:27 AM, Rob Hunter wrote: > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > Thanks for any info on the matter. And thanks organizers, for a > wonderful contest! Amazingly we used our Haskell implementation the entire time. It was a little slow though and in retrospect it would have been worthwhile switching to a C implementation. But it was surprisingly *not* slow in may ways too. For instance, we could decompress the original task in less than 15 minutes. Cheers, Sean From plakal at gmail.com Mon Jul 24 21:39:49 2006 From: plakal at gmail.com (Manoj Plakal) Date: Mon Jul 24 21:39:52 2006 Subject: [icfp-discuss] Allocation strategies (was Re: Highest level language with a successful impl of UM?) In-Reply-To: <20060725003920.GB16865@panix.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <7EDD413F-80D0-4409-8BCB-52A89A018DB2@cs.chalmers.se> <20060725003920.GB16865@panix.com> Message-ID: <5230c2820607241839t38f0cc29qd7365710ad9db56c@mail.gmail.com> alternatively, you can also try linking with google's fast tcmalloc http://goog-perftools.sourceforge.net/doc/tcmalloc.html -manoj On 7/24/06, Jed Davis wrote: > On Tue, Jul 25, 2006 at 12:53:16AM +0200, Ulf Norell wrote: > > > > We used malloc and free for alloc and abandon. Worked like a charm > > and was dead simple to implement. > > When I realized that allocation of many small segments was being a > bottleneck, and that it was going to use a *LOT* of memory, I wrote an > allocator that maintains a big array of each power-of-two size from 2 > to 128 inclusive, and a table of pointer/size pairs for the larger ones > (calloc'ed individually); each of these is realloc'ed to double the size > when it runs out (which has worst-case performance implications that I > cheerfully ignore), and is equipped with a simple LIFO free-list. > > The segment identifiers are constructed thusly: the top three bits > indicate the bucket number, or are 000 for a "large" segment, and the > bottom 29 index into the relevant array. > > This imposes a certain burden on the memory operations, of course. > > -- > (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map > ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda > (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) > (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From tapani at cs.chalmers.se Mon Jul 24 21:50:01 2006 From: tapani at cs.chalmers.se (Tapani Utriainen) Date: Mon Jul 24 21:50:04 2006 Subject: [icfp-discuss] multiplication... In-Reply-To: References: Message-ID: <1042.82.182.96.93.1153792201.squirrel@webmail.chalmers.se> > Since the contest is now over, does anybody here knows how to program > the multiplication (and the fillmem without using the undocumented 1 > in the memory) in balance assembly? It's the only puzzle on which we > totally stuck... > > PS: I, and my whole team (PLOP) want to thank the organizers for their > colossal amount of work and the resulting very interesting puzzles, as > well as for the jokes and puns in the texts :-) Hi, this is an outline of how our (team Begot) multiplier works (brackets denote memory locations). The idea is to test the bits of the b value one by one, and add an up-shifted value of a to the result if the bit is set. Essentially this is computing 7*5 by 7*5 = 7*(1+4) = (7<<0) + (7<<2). Since the only one-bit number we can guarantee to find is 0x80, this is done by testing for 0x80, and shifting up b one step for each iteration. More technically: The input values are denoted a and b, and initially stored in [0] and [1]. 1. First, a table T is created consisting of up-shifted values of a. That is: T[0]=a, [1]=2a, [2]=4a, ..., [7]=128a This is achieved by repetitive additions, T[0]=a, T[1]=T[0]+T[0], ... more generally T[n+1]=T[n]+T[n] for n<7. In our case T is placed in memory cells [5 -- 0xc]. 2. Since a != 0, one of the values in T is the single bit value 0x80 (representing the least significant bit of a). This can be found by looping over the values in T and finding the largest index with a non-zero value. (Or, more suitedly to the Balance architecture, loop over the values in T until you hit a zero, and then decrease your counter once). T[counter] is then always 0x80. 3. This is just a practical measure. The constant 0x80 is moved to a fix location (in our case 0 so [0] = 0x80), this in order to avoid having any register values being dependent on the input values. (They need to be 'cleaned' after the loop of finding 0x80, but that is left as an exercise for the reader :-) 4. The main loop processes the bits of b one by one. This uses a counter register X representing the bit of b being tested. X is initialized by X=7. 5. Test whether b has bit X set. This is done by AND:ing the current b-value with 0x80. In our code the result is stored in [3], this step is just: AND 0x80,[1] -> [3] (0x80 is a memory reference to say [0]) 6. If the result is nonzero, add the value in T[X] to the result field, that is: IF [3] != 0 THEN ADD [2],T[X] -> [2] 7. Shift b up one step, that is ADD [1],[1] -> [1] 8. decrease X (yuck!) 9. IF [1] != 0 GOTO 5. Hope that made sense.. I must admit that this was not completely trivial to come up with. Regarding fillmem, we had a *very* complex idea (in the Balance world) after pondering about it for quite some time, but found the hidden one when the implementation was to begin. I won't even try to explain the original idea. regards, //Tapani Utriainen From jackdied at jackdied.com Mon Jul 24 21:50:08 2006 From: jackdied at jackdied.com (Jack Diederich) Date: Mon Jul 24 21:50:16 2006 Subject: [icfp-discuss] Allocation strategies (was Re: Highest level language with a successful impl of UM?) In-Reply-To: <20060725003920.GB16865@panix.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <7EDD413F-80D0-4409-8BCB-52A89A018DB2@cs.chalmers.se> <20060725003920.GB16865@panix.com> Message-ID: <20060725015008.GB31035@performancedrivers.com> On Mon, Jul 24, 2006 at 08:39:21PM -0400, Jed Davis wrote: > On Tue, Jul 25, 2006 at 12:53:16AM +0200, Ulf Norell wrote: > > > > We used malloc and free for alloc and abandon. Worked like a charm > > and was dead simple to implement. > > When I realized that allocation of many small segments was being a > bottleneck, and that it was going to use a *LOT* of memory, I wrote an > allocator that maintains a big array of each power-of-two size from 2 > to 128 inclusive, and a table of pointer/size pairs for the larger ones > (calloc'ed individually); each of these is realloc'ed to double the size > when it runs out (which has worst-case performance implications that I > cheerfully ignore), and is equipped with a simple LIFO free-list. > > The segment identifiers are constructed thusly: the top three bits > indicate the bucket number, or are 000 for a "large" segment, and the > bottom 29 index into the relevant array. > When I realized that most of the memory and 90% of the allocations were taken up by block sizes of ten or less (and most size 3!) I decided on an arena approach for small allocations (10 or less). When I further noticed that there had been over 1.5M alocations and only 30k frees I stopped keeping track of each small allocation's id and size. The block_id+array_index was the memory address and since UMIX wasn't going to free it we wouldn't have to either, so forget about remembering the size. Worked like a charm! (this worked because UMIX never requested an illegal block or offset and also because on the off chance that it asked to copy a small block into block zero we could just copy the max size (10) and know UMIX wouldn't access the extra few bytes). -Jack From lipeng at cis.upenn.edu Mon Jul 24 21:56:44 2006 From: lipeng at cis.upenn.edu (Li, Peng) Date: Mon Jul 24 21:56:46 2006 Subject: [icfp-discuss] Allocation strategies (was Re: Highest level language with a successful impl of UM?) In-Reply-To: <20060725003920.GB16865@panix.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <7EDD413F-80D0-4409-8BCB-52A89A018DB2@cs.chalmers.se> <20060725003920.GB16865@panix.com> Message-ID: <598a055d0607241856s879488bp87cfe1a95ca8cfe5@mail.gmail.com> On 7/24/06, Jed Davis wrote: > On Tue, Jul 25, 2006 at 12:53:16AM +0200, Ulf Norell wrote: > > > > We used malloc and free for alloc and abandon. Worked like a charm > > and was dead simple to implement. > > When I realized that allocation of many small segments was being a > bottleneck, and that it was going to use a *LOT* of memory, I wrote an Most allocations are between 3 to 5 platters (12 to 20 bytes). In fact, it is not that much a bottleneck (in terms of speed) for malloc and free. I did some hacking with my own allocator and I can only beat malloc() by 15% to 20%. > allocator that maintains a big array of each power-of-two size from 2 > to 128 inclusive, and a table of pointer/size pairs for the larger ones > (calloc'ed individually); each of these is realloc'ed to double the size > when it runs out (which has worst-case performance implications that I > cheerfully ignore), and is equipped with a simple LIFO free-list. > > The segment identifiers are constructed thusly: the top three bits > indicate the bucket number, or are 000 for a "large" segment, and the > bottom 29 index into the relevant array. > > This imposes a certain burden on the memory operations, of course. Can you directly use the address of the array as its identifier and search for the identifier cleverly only when you free it? Or, you can think about storing the identifier at the -1 position of the array. This will speed up the memory accesses. I have a VM implementation that uses a hybrid of malloc() and a fixed-size, 32-byte allocator. It runs very fast. Compile it with g++ -O6 :) http://www.seas.upenn.edu/~lipeng/tmp/peng.cpp Peng From alexshinn at gmail.com Mon Jul 24 22:48:59 2006 From: alexshinn at gmail.com (Alex Shinn) Date: Mon Jul 24 22:49:00 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: <5fb7e0870607241948v543401a2q6bbce4133a333517@mail.gmail.com> On 7/25/06, Rob Hunter wrote: > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code compiler). I started writing the UM in Chicken Scheme, but switched to C when I realized how much memory and computation was needed. However a post-facto (few line) cleanup of the Scheme implementation now gets a sandmark of 15 minutes, using only R5RS Scheme plus SRFIs 4 and 60. -- Alex From azul at freaks-unidos.net Mon Jul 24 23:31:16 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Mon Jul 24 23:16:27 2006 Subject: [icfp-discuss] multiplication... In-Reply-To: References: Message-ID: <20060725033116.GA6047@bachue.com> > Since the contest is now over, does anybody here knows how to > program the multiplication (and the fillmem without using the > undocumented 1 in the memory) in balance assembly? It's the only > puzzle on which we totally stuck... These are exactly the same problems (team FUN) couldn't solve. We only noticed that the fillmem started with a 1 in memory a few minutes before the end of the contest and we couldn't finish a solution to it on time. By the way, our solution for copreg was for every 0 <= i < 256, set m[i] = i + 1. That is, load all possible values in memory and stop. This produces the same state, regardless of the value of the input (which it totally ignores). Is there any other way to solve this problem? We documented our solutions to the balance problems here: http://wiki.freaks-unidos.net/icfp#BLNCE But, as I said, we couldn't solve multmem nor fillmem (I wish we had noticed earlier that a "1" was available in memory!). Alejo. http://azul.freaks-unidos.net/ From johninprc at gmail.com Mon Jul 24 23:43:42 2006 From: johninprc at gmail.com (Yang Jiao) Date: Mon Jul 24 23:43:13 2006 Subject: [icfp-discuss] The bottle neck is here, I just found... Message-ID: I m afraid it s known to all of u, I just found that the most time-consuming part is the re-allocation, I mean in order to find a NULL pointer in a million array using loop is quite slow. After I use a free_node to record where the last free pointer is, my um is flying now... She completes the sandmark in only 3 minutes:) a big big big progress since the last 2.5 hour... ======================== Yours Sincerely Yang Jiao Department of Computer Science Nanjing University 22 Hankou Road, Nanjing China.PR, 210008 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/a637521b/attachment.html From lipeng at cis.upenn.edu Mon Jul 24 23:49:01 2006 From: lipeng at cis.upenn.edu (Li, Peng) Date: Mon Jul 24 23:49:04 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: <598a055d0607242049g3ee2a6bbu974b64fb29fcca6e@mail.gmail.com> I guess another question to ask is, can any one justify the use of a higher-level language for implementing the UM? For most functional languages it shouldn't be that hard to do some hacking and end up with being 20x slower than the C code, but is there any benefits of doing this? For example, if the use of a higher level language makes checkpointing/rollback easy, I wouldn't mind a 10x slowdown. Best, Peng On 7/24/06, Rob Hunter wrote: > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > Thanks for any info on the matter. And thanks organizers, for a > wonderful contest! > > --rob From flyfree at gmail.com Mon Jul 24 23:50:32 2006 From: flyfree at gmail.com (Zhenzhong Xu) Date: Mon Jul 24 23:50:35 2006 Subject: [icfp-discuss] The bottle neck is here, I just found... In-Reply-To: References: Message-ID: <7b2bf4900607242050y4247ebe3s83aa053cc819b3d7@mail.gmail.com> yep this has been discussed on the list serval times...if you are using some high level programming language, avoid using methods such like indexOf() would save you tons of time. Zhenzhong On 7/24/06, Yang Jiao wrote: > > I m afraid it s known to all of u, I just found that the most time-consuming > part is the re-allocation, I mean in order to find a NULL pointer in a > million array using loop is quite slow. > After I use a free_node to record where the last free pointer is, my um is > flying now... > She completes the sandmark in only 3 minutes:) a big big big progress since > the last 2.5 hour... > ======================== > Yours Sincerely > Yang Jiao > Department of Computer Science > Nanjing University > 22 Hankou Road, Nanjing > China.PR, 210008 > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From flyfree at gmail.com Mon Jul 24 23:52:49 2006 From: flyfree at gmail.com (Zhenzhong Xu) Date: Mon Jul 24 23:52:52 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <598a055d0607242049g3ee2a6bbu974b64fb29fcca6e@mail.gmail.com> References: <598a055d0607242049g3ee2a6bbu974b64fb29fcca6e@mail.gmail.com> Message-ID: <7b2bf4900607242052x702262d6u814624e09fe8b759@mail.gmail.com> my C# version of the UM is about 15X times slower than fastest C version UMs. You would be able to serialize the whole class and make restore points with few lines of code. Memory management is actually done quite easy with C# too. Zhenzhong On 7/24/06, Li, Peng wrote: > I guess another question to ask is, can any one justify the use of a > higher-level language for implementing the UM? For most functional > languages it shouldn't be that hard to do some hacking and end up with > being 20x slower than the C code, but is there any benefits of doing > this? For example, if the use of a higher level language makes > checkpointing/rollback easy, I wouldn't mind a 10x slowdown. > > Best, > Peng > > On 7/24/06, Rob Hunter wrote: > > I'm curious about which high-level languages that teams used to > > successfully implement the UM. We eventually resorted to C after a > > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > > > Thanks for any info on the matter. And thanks organizers, for a > > wonderful contest! > > > > --rob > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From icfp at jdev.users.panix.com Tue Jul 25 01:39:45 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Tue Jul 25 01:39:46 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> Message-ID: <20060725053945.GA21536@panix.com> On Sun, Jul 23, 2006 at 01:10:57AM -0400, David Dalrymple wrote: > Just got mine to work - runs in 1m38s. > > Of course, that's on a 3Ghz Xeon server -- so maybe it would be fairer > to do a ratio against SuperPI. On the computer I used for almost all of the contest, being an 800 MHz PPC G3 (or, more specifically, a 3.5-year-old iBook): ./um sandmark.umz 218.23s user 2.50s system 75% cpu 4:53.21 total It was fast enough for my uses. I also have a 3GHz P4, which I didn't use during the contest partially on account of laziness, and partially because, from Friday until Sunday evening, my apartment had no power except for part of the kitchen and I had to run extension cords all over the place. Anyway, there: ./um sandmark.umz 84.36s user 0.00s system 99% cpu 1:24.39 total This was in C, using GCC; and oddly, -O1 (which that is) did slightly but clearly better than -O3 (plus -fstrict-aliasing and -march=pentium4), while -O2 and -Os did a bit worse than either. I did write safety checks and some internal assertions, but compiled with both of them disabled once I was fairly sure things were working. > On SuperPI calculating 2^20 digits on the server, I have 40s user time. > > So that's a calibrated SANDmark of 2.45. Can anyone beat that? On the fast box under Windows, SuperPI takes 43s. So that's 1.96 (which others have in turn already beaten). I could probably juice a little more speed out of it if I wanted, I think. --Jed (as "Celestial Dire Badger") -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From icfp at jdev.users.panix.com Tue Jul 25 01:55:33 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Tue Jul 25 01:55:34 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <003501c6ae54$9287ff70$0301a8c0@Owhango1> References: <003401c6ae3f$07781240$15b2a8c0@wiko> <003501c6ae54$9287ff70$0301a8c0@Owhango1> Message-ID: <20060725055533.GB21536@panix.com> On Mon, Jul 24, 2006 at 12:36:02AM +1200, Clive Gifford wrote: > > My absolutely bare bones C version runs the sandmark in 7m 20s on a 500Mhz > Pentuim 3 with 384MB RAM on Win2000 Pro. > > "C is the language of choice for discriminating hackers!" > Sometimes you just have to use the right tool for the job!! > > And by the way, is there anybody out there working on a SLOWER machine than > that? :-) Well, since you ask, I can find some slower ones to try. Here's one: total memory = 127 MB cpu0: National Semiconductor Geode GX1 (586-class), 266.64 MHz, id 0x540 cpu0: features 808131 cpu0: features 808131 cpu0: I-cache 12K uOp cache 8-way SANDmark complete. 1170.2u 0.0s 19:31.95 99.8% And here's another, which takes advantage of my UM's 64-bit-cleanness[*]: total memory = 128 MB mainbus0 (root): SUNW,Ultra-1: hostid [___REDACTED___] cpu0 at mainbus0: SUNW,UltraSPARC @ 143 MHz, version 0 FPU cpu0: 32K instruction (32 b/l), 16K data (32 b/l), 512K external (64 b/l) ./um sandmark.umz 1482.66s user 0.49s system 99% cpu 24:49.62 total [*] Sort of. It's running in 64-bit mode (despite the Ultra1 CPU bug) but NetBSD happens to put the malloc heap all in low memory, so a pointer-casting UM would probably happen to work. -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From ccasingh at andrew.cmu.edu Tue Jul 25 03:39:56 2006 From: ccasingh at andrew.cmu.edu (Big Chris) Date: Tue Jul 25 03:39:57 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <011001c6af64$0f3cefc0$0301a8c0@Owhango1> References: <011001c6af64$0f3cefc0$0301a8c0@Owhango1> Message-ID: On Tue, 25 Jul 2006, Clive Gifford wrote: > into. Despite my omniscient/spooky mention of "xyzzy" in a post to this list > before the contest started (and the "ETA" language also) I was actually :) We had quite a good laugh when you mentioned xyzzy on the list - we couldn't have planned it better! Thanks for keeping us entertained. And thanks so much for the kind words about the contest. It's refreshing to see that other people enjoyed participating as much as we enjoyed putting it together. --Chris From amin.ahmad at gmail.com Tue Jul 25 03:51:00 2006 From: amin.ahmad at gmail.com (Amin Ahmad) Date: Tue Jul 25 03:51:04 2006 Subject: [icfp-discuss] Java Sandmark Results Message-ID: <4fc9f4dd0607250051y5f598bfchb346bb43465fa44@mail.gmail.com> I'm running my java-based UM using Java 6, alpha on my Athlon 1900+ (~1.4Ghz), and I have achieved a time of 164 seconds on Sandmark. Given that the Athlon 1900+ was run-of-the-mill when I purchased it back in 2001, I have no idea how well my program would perform on newer hardware, but I suspect that it would be less than 1.5x the timings of the C implementations people are posting. Java's in-built array bounds checking and garbage collection preclude it, afaik, from winning the speed title, despite the benefits of JIT. amin -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/f9eaae1c/attachment-0001.html From filliatr at lri.fr Tue Jul 25 04:03:04 2006 From: filliatr at lri.fr (Jean-Christophe Filliatre) Date: Tue Jul 25 04:03:00 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <1815f00607222341n1ba39a94s4055d21e7c88b3c0@mail.gmail.com> References: <504b2780607222210m4b36741ak57ff53e3d6a7e3ca@mail.gmail.com> <5230c2820607222307m46edfbadwdc84035b5a549578@mail.gmail.com> <504b2780607222318x631b33bakc870e24b81c24850@mail.gmail.com> <1815f00607222341n1ba39a94s4055d21e7c88b3c0@mail.gmail.com> Message-ID: <17605.53304.742325.515109@pc9-152.lri.fr> Robert Van Dam writes: > I'm quite curious to hear if anyone has gotten this to run within a > reasonable amount of time using something other than C (perhaps even a > functional language ;). Our machine was written in 172 lines of Objective Caml, completed and debugged in less than 2 hours, and performed reasonably well (at least to reach 4553 points by the end of the contest). You can find it here: http://www.lri.fr/~filliatr/icfp-2006/ -- Jean-Christophe From chris at chr-breitkopf.de Tue Jul 25 04:54:37 2006 From: chris at chr-breitkopf.de (Christoph Breitkopf) Date: Tue Jul 25 04:54:46 2006 Subject: [icfp-discuss] Invalid solution for ADVIS Message-ID: Hello, first off, thanks to the organizers for a great contest. While I did't manage completely solve any of the puzzles, I had loads of fun. Converning the Advise problem: I never figured out how to disabiguate equal numbers of rule matches, and I think that my solution for arith certifies only by accident. /bin/umodem arith.adv EOF Add Z x => x; Mult Z x => Z; Add (S x) y => S (Add x y); Mult (S x) y => Add y (Mult x y); Add (Add a b) c => Add a (Add b c); { Mult (Mult a b) c => Mult a (Mult b c); } Add (Mult (S a) b) c => Add b (Add c (Mult a b)); Mult (Add a b) c => Add (Mult a c) (Mult b c); { when all other computation is done } Compute x => x; . { end of rules } EOF This certifies as-is, but after deleting the first comment (line 7) it no longer certifies. Thus, I feel that my 167 points are undeserved and should probably be removed :-( What's your opinion about this? Should such non-solutions be discarded? Regards, Chris From chris at chr-breitkopf.de Tue Jul 25 05:05:38 2006 From: chris at chr-breitkopf.de (Christoph Breitkopf) Date: Tue Jul 25 05:05:44 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <69304d110607241432w14d9eaeeo603ff6c7f8c9e413@mail.gmail.com> References: <44C5097B.8050302@sympatico.ca> <7b2bf4900607241057x5cc87ccfh693c8d851fe57fed@mail.gmail.com> <44C50C7B.6050600@schlagsei.de> <83d675d20607241114k725a982m3ae8920374fbed40@mail.gmail.com> <44C5210E.3050308@schlagsei.de> <2b0051e00607241239x499bf1e9pa4d71dd66863c098@mail.gmail.com> <44C52588.7070804@schlagsei.de> <6AC8672B-BD3B-468F-8A08-932F59F32C87@gmail.com> <69304d110607241432w14d9eaeeo603ff6c7f8c9e413@mail.gmail.com> Message-ID: "Antonio Vargas" writes: > which is consulted before allocating another key). the fastest i've > seen uses the malloc result directly as a key, which is quite obvious > in hindsight ;) On a 32-bit machine, at least. I did not do this because I thought that an if (array != 0) on any reference to handle the 0 array specially would be a greater slow-down that an additional indirection. Doesn't seem to be the case in practice - maybe UMIX and sandmark don't use self-modifying code and the branch-prdictor takes casre of the rest? Anyway, I guess the "right" (and fastest) way to this would be to handle array 0 accesses using the OS/Hardware memory protection. Did anyone do that? Regards, Chris From cohen at crans.org Tue Jul 25 05:18:39 2006 From: cohen at crans.org (cohen@crans.org) Date: Tue Jul 25 05:18:41 2006 Subject: [icfp-discuss] ADVIS : how to get more than 330 points ? Message-ID: <20060725111839.885yf1uo00404k4w@webmail.crans.org> Hello, I would like to now how to make a shorter code (since some teams got strictly more than 330 point). My idea was to have one and only one possibility of reduction at a time. So there is one and only one constant "SNF" (resp "Compute") or "R" in the tree. And every reduction needs one of theses constants. "SNF x" (resp "Compute x") means that we look for the SNF (resp we look for the result) of x. And "R x" means that x is in SNF (resp is calculated). I tried to gather the rules, but I didn't find shorter ... Was the shortest solution based on an other idea ? I got 330 points making theses rules in O'Cult : xml.adv (163 pts): "SNF (f x y) => f x (SNF y); Tag q (R (Tag q t)) => R (Tag q t); Tag Maj (R (Tag q d)) => Tag q (SNF (Tag Maj d)); Tag Emph (R (Tag Bold d)) => Tag Bold (SNF (Tag Emph d)); Seq (R (Tag q x)) (Tag q y) => SNF(Tag q (Seq x y)); Seq (R (Seq x y)) z => SNF (Seq x (Seq y z)) ; f (R t) z => R (f t z); f x (R t) => f (SNF x) t; SNF x => R x; R x => x;." arith.adv (167 pts): "Compute (f x) => f (Compute x); Compute x => R x; Add (R Z) y => R y; Add (R (S x)) y => Add (R x) (S y); Mult (R Z) y => R Z; Mult (R (S x)) y => Add y (Mult (R x) y); f x (R y) => f (Compute x) y; f (R x)=> R (f x); R x => x;. " -- Cyril Cohen (Entirely Non-Serious) From filliatr at lri.fr Tue Jul 25 05:33:52 2006 From: filliatr at lri.fr (Jean-Christophe Filliatre) Date: Tue Jul 25 05:33:47 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <2670692978-BeMail@beos> References: <44C528E8.1050302@inria.fr> <2670692978-BeMail@beos> Message-ID: <17605.58752.292411.209954@pc9-152.lri.fr> Jonathan Roewen writes: > > let i64 b = > > let b = Int64.of_int32 b in > > if Int64.compare b 0L < 0 then Int64.add b (Int64.shift_left 1L 32) > > else b > > > > let division b c = > > Int64.to_int32 (Int64.div (i64 b) (i64 c)) > > And what were the performances like of your OCaml implementations? I did exactly the same as Alain above. My UM in ocaml runs the sandmark in 6 minutes on a 2.8GHz machine. This is clearly not what could be achieved with a native 32 bits unsigned arithmetic, but it is fast enough. And using Objective Caml has other advantages, like an efficient GC. -- Jean-Christophe, from the Caml Riders From windenntw at gmail.com Tue Jul 25 05:45:05 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Tue Jul 25 05:45:08 2006 Subject: [icfp-discuss] ADVIS : how to get more than 330 points ? In-Reply-To: <20060725111839.885yf1uo00404k4w@webmail.crans.org> References: <20060725111839.885yf1uo00404k4w@webmail.crans.org> Message-ID: <69304d110607250245o6dbb3217kff025ab4beed97e6@mail.gmail.com> On 7/25/06, cohen@crans.org wrote: > Hello, > I would like to now how to make a shorter code (since some teams got > strictly more than 330 point). > > My idea was to have one and only one possibility of reduction at a time. > So there is one and only one constant "SNF" (resp "Compute") or "R" in the tree. > And every reduction needs one of theses constants. > "SNF x" (resp "Compute x") means that we look for the SNF (resp we > look for the result) of x. > And "R x" means that x is in SNF (resp is calculated). *snip* > > arith.adv (167 pts): > "Compute (f x) => f (Compute x); > Compute x => R x; > > Add (R Z) y => R y; > Add (R (S x)) y => Add (R x) (S y); > > Mult (R Z) y => R Z; > Mult (R (S x)) y => Add y (Mult (R x) y); > > f x (R y) => f (Compute x) y; > f (R x)=> R (f x); > R x => x;. " > Cyril, I became totally stuck on the (mul (add x) (add y)) and similar places... the R is acting as a sort-of place where you want the computation to continue? -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. From cohen at crans.org Tue Jul 25 06:16:19 2006 From: cohen at crans.org (cohen@crans.org) Date: Tue Jul 25 06:16:21 2006 Subject: [icfp-discuss] ADVIS : how to get more than 330 points ? Message-ID: <20060725121619.cllgjgc8gs4sw00s@webmail.crans.org> 2006/7/25, Antonio Vargas : > On 7/25/06, cohen@crans.org wrote: > > [...] > > *snip* > > > > arith.adv (167 pts): > > "Compute (f x) => f (Compute x); > > Compute x => R x; > > > > Add (R Z) y => R y; (RULE 1) > > Add (R (S x)) y => Add (R x) (S y); (RULE 2) > > > > Mult (R Z) y => R Z; (RULE 3) > > Mult (R (S x)) y => Add y (Mult (R x) y); (RULE 4) > > > > f x (R y) => f (Compute x) y; (RULE A) > > f (R x)=> R (f x); > > R x => x;. " > > > > Cyril, I became totally stuck on the (mul (add x) (add y)) and similar > places... the R is acting as a sort-of place where you want the > computation to continue? No exactly, in fact "(R x)" means "Computation of x is over" so that x has the form S(S(S(...(S(Z))...))). Indirectly it means that I probably need to continue computation on its brother ... In fact when there is a node "f" of arity 2 (such as Mult and Add) and the "R"-term is the left child of "f" (for example : "Add x (R y)" ) , it means that the right child of "f" must be computed (RULE A). And when the "R"-term is the right child (for example : "Add (R x) y"), it means both children have been computed and so we can consider that they have the form S(S...S(Z)...) and do whatever we need on "f" ... (RULES 1 2 3 4) I tried a version with a "marker of continuation" but they were multpling and so it stucks ... -- Cyril Cohen (Entirely Non-Serious team) From triska at gmx.at Tue Jul 25 06:24:27 2006 From: triska at gmx.at (Markus Triska) Date: Tue Jul 25 06:19:35 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: <598a055d0607242049g3ee2a6bbu974b64fb29fcca6e@mail.gmail.com> References: <598a055d0607242049g3ee2a6bbu974b64fb29fcca6e@mail.gmail.com> Message-ID: <17605.61787.298050.595458@localhost.localdomain> Li, Peng writes: > I guess another question to ask is, can any one justify the use of a > higher-level language for implementing the UM? For most functional Initially, we thought we'd probably have to improve given abstract machine instructions later on and had implementations in Haskell and Prolog to make rule-based peep-hole optimizations easier. All the best, Markus Triska. From cyril.cohen at gmail.com Tue Jul 25 06:26:30 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Tue Jul 25 06:26:32 2006 Subject: [icfp-discuss] ADVIS : how to get more than 330 points ? In-Reply-To: <20060725121619.cllgjgc8gs4sw00s@webmail.crans.org> References: <20060725121619.cllgjgc8gs4sw00s@webmail.crans.org> Message-ID: <710af3c70607250326g26a8dc99p1ff08c671a3d3473@mail.gmail.com> 2006/7/25, cohen@crans.org : > > Cyril, I became totally stuck on the (mul (add x) (add y)) and similar > > places... the R is acting as a sort-of place where you want the > > computation to continue? > > No exactly, in fact "(R x)" means "Computation of x is over" so that x > has the form S(S(S(...(S(Z))...))). Actually, both "R" and "Compute" mean that the next reduction (if it was what you meant by "computation") should take place nearby. By "computation" I was thinking about the process of calculating the formula, not reducing the tree. -- Cyril Cohen (Entirely Non-Serious team) From ulfn at cs.chalmers.se Tue Jul 25 06:47:02 2006 From: ulfn at cs.chalmers.se (Ulf Norell) Date: Tue Jul 25 06:47:06 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> <41b037ed0607241604m781e1ff1yf1410cf11f6de182@mail.gmail.com> Message-ID: On Jul 25, 2006, at 1:12 AM, Geoffrey Alan Washburn wrote: > Huh. That is almost exactly what I did: > > drop_nth_item ( (string_charat(item_description(item),0)), 0, > room_items (inventory), here ())) > > But as far as I could tell it would never invoke drop_nth_item. > When I tried > > drop_nth_item ( 3, 0, room_items (inventory), here ())) > > It worked just fine. string_charat gives you the ascii value of the character. I guess the problem was that you didn't have enough items in the inventory. The censory engine never stops you from doing anything. / Ulf -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/b215f1dd/attachment.html From philippe.wang at gmail.com Tue Jul 25 07:17:26 2006 From: philippe.wang at gmail.com (Philippe Wang) Date: Tue Jul 25 07:17:30 2006 Subject: [icfp-discuss] 168 points for arith Message-ID: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> Hi. I've just seen that some people fought with that arith rules... Here is my solution that gives 168 points. (we had the one that gave 166 points... I removed a line... and it gave two more points...) Ifadd Add x y => x; Ifadd Mult x y => y; c Z y => Ifadd c y Z; c (S x) y => Ifadd c (S (Add x y)) (Add y (Mult x y)); c (c x y) z => c x (c y z); {-----\/----- EXCLUDED -----\/----- c (d Z y) z => Ifadd c z (Mult y z); -----/\----- EXCLUDED -----/\-----} c (d (S x) y) z => Ifadd c (Add (Add y (Mult x y)) z) (Mult (S (Add x y)) z); Compute x => x; . { end of rules } -- Philippe Wang Member of the team called PLOP From philippe.wang at gmail.com Tue Jul 25 07:19:12 2006 From: philippe.wang at gmail.com (Philippe Wang) Date: Tue Jul 25 07:19:14 2006 Subject: [icfp-discuss] Congratulations & Thanks In-Reply-To: <15579e0b0607241557p4e47faf9xb40f10d2d3a4a2ac@mail.gmail.com> References: <15579e0b0607241557p4e47faf9xb40f10d2d3a4a2ac@mail.gmail.com> Message-ID: <15579e0b0607250419p4186695el4136fe54c052ad7c@mail.gmail.com> (Original date: Jul 25, 2006 12:57 AM UTC+2) Hi ! One more message to say thank you for this contest. It was really great, interesting, and ... totally amazing ! I mean... how you could have had such ideas and managed to implement all that... Bravo! And yes, in deed, to repeat something already said, it will be really hard next year to do better than that ! Now... I am... and the rest of my team too... a bit starving to knowing the results... 8-) Regards, -- Philippe Wang (one of the four member team called PLOP) From Alain.Frisch at inria.fr Tue Jul 25 07:19:53 2006 From: Alain.Frisch at inria.fr (Alain Frisch) Date: Tue Jul 25 07:20:10 2006 Subject: [icfp-discuss] OCaml and 31 bits? In-Reply-To: <2670692978-BeMail@beos> References: <2670692978-BeMail@beos> Message-ID: <44C5FE59.2040807@inria.fr> Jonathan Roewen wrote: > And what were the performances like of your OCaml implementations? What had two main pure OCaml implementations, which were fast enough for most of the tasks at the beginning. We wrote another one in C around the middle of the contest, which turned out to be about 10x faster and allowed better testing, e.g. of our 2d raytracer submission. -- Alain From wei.hoo at gmail.com Tue Jul 25 07:45:52 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Tue Jul 25 07:45:55 2006 Subject: [icfp-discuss] 168 points for arith In-Reply-To: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> References: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> Message-ID: <71fd12e60607250445x57f24e37u56306afa79f9c2b0@mail.gmail.com> Wow, looking at your solution enligntened me and made me beat another 2 points out of it, making 169 points: Add Z y => y; Add (S x) y => S (Add x y); { define multiplication (Mult) here } { a*0 = 0 and a*Sb = (a*b) + a. } Mult Z y => Z; Mult (S x) y => Add y (Mult x y); Compute (op x y) => op (Compute x) y; {1} Compute x => x; op1 (op2 x y) => op1 (Compute (op2 x y)); {2} . { end of rules } In the contest I used 9 rules and got 167. Now I used a variable op to combine four rules into two as marked by {1} and {2}. From probst at imm.dtu.dk Tue Jul 25 07:57:08 2006 From: probst at imm.dtu.dk (Christian W. Probst) Date: Tue Jul 25 07:57:26 2006 Subject: [icfp-discuss] participants prize Message-ID: <44C60714.60800@imm.dtu.dk> Dear *, I've participated the first time this year, so I don't have any other ICFP contest to compare against, but this was the absolutely most amazing event I have participated in in the last years. Three days and nights filled with one surprise and challenge after the other. Therefore I would like to suggest to award a (yet to be created and therefore purely virtual) "PARTICIPANTS PRIZE" to the organizers. Thanks! Cheers, Chris -- <><> Christian W. Probst * Technical University of Denmark <><> Assistant Professor * www.imm.dtu.dk/~probst <><> phone +45 45 25 75 12 * fax +45 45 93 00 74 From filliatr at lri.fr Tue Jul 25 07:59:25 2006 From: filliatr at lri.fr (Jean-Christophe Filliatre) Date: Tue Jul 25 07:59:19 2006 Subject: [icfp-discuss] Re: [icfp-announce] The contest is over! In-Reply-To: References: Message-ID: <17606.1949.390701.137504@pc9-152.lri.fr> Dear organizers, This year's contest was really great. We had a wonderful time playing with all these puzzles. So thank you very much on behalf of all the members of the Caml Riders team. Clearly the judge's prize should go to the organizers themselves, for they obviously are ``an extremely cool bunch of hackers'' :-) -- The Caml Riders Tom Murphy writes: > > The 9th Annual ICFP Programming Contest has come to an end! > Thank you all so much for participating. From geoffw at seas.upenn.edu Tue Jul 25 08:08:09 2006 From: geoffw at seas.upenn.edu (Geoffrey Alan Washburn) Date: Tue Jul 25 08:08:14 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> <41b037ed0607241604m781e1ff1yf1410cf11f6de182@mail.gmail.com> Message-ID: <467140F6-38FC-47F6-B84F-BCFC1F4B421E@seas.upenn.edu> On Jul 25, 2006, at 6:47 AM, Ulf Norell wrote: > On Jul 25, 2006, at 1:12 AM, Geoffrey Alan Washburn wrote: > >> Huh. That is almost exactly what I did: >> >> drop_nth_item ( (string_charat(item_description(item),0)), 0, >> room_items (inventory), here ())) >> >> But as far as I could tell it would never invoke drop_nth_item. >> When I tried >> >> drop_nth_item ( 3, 0, room_items (inventory), here ())) >> >> It worked just fine. > > string_charat gives you the ascii value of the character. I guess > the problem was that you didn't have enough items in the inventory. > The censory engine never stops you from doing anything. I don't think that was the case either. I had actually tried accounting for the fact that it would be ASCII by subtracting 31 from the number. Given from your e-mail that the first letter was "T", decimal 84, this should have worked when I was carrying 52 cards, blueprint, note, and then some. Maybe more extensive testing would have narrowed the problem down; at this point I mostly assumed that redacted values behaved kind of like an "error" term, preventing evaluation of whatever they encountered. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/df1e2f6e/attachment-0001.html From crary at cs.cmu.edu Tue Jul 25 08:16:23 2006 From: crary at cs.cmu.edu (Karl Crary) Date: Tue Jul 25 08:16:24 2006 Subject: [icfp-discuss] What to do with Blueprints in Adventure??? In-Reply-To: References: <07A53912-909E-4D49-B18A-B62F93F39702@cs.chalmers.se> <775E8FEE-13B8-4E99-812F-620279F1A24E@seas.upenn.edu> <41b037ed0607241604m781e1ff1yf1410cf11f6de182@mail.gmail.com> Message-ID: <44C60B97.3040702@cs.cmu.edu> That is correct. The censory engine only comes into play when a result is about to be printed to the console. Karl Crary Ulf Norell wrote: > > On Jul 25, 2006, at 1:12 AM, Geoffrey Alan Washburn wrote: > >> Huh. That is almost exactly what I did: >> >> >> drop_nth_item ( (string_charat(item_description(item),0)), 0, >> room_items (inventory), here ())) >> >> >> But as far as I could tell it would never invoke drop_nth_item. When >> I tried >> >> >> drop_nth_item ( 3, 0, room_items (inventory), here ())) >> >> >> It worked just fine. >> > > string_charat gives you the ascii value of the character. I guess the > problem was that you didn't have enough items in the inventory. The > censory engine never stops you from doing anything. > > / Ulf > ------------------------------------------------------------------------ > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From davidad at mit.edu Tue Jul 25 08:17:19 2006 From: davidad at mit.edu (David Dalrymple) Date: Tue Jul 25 08:17:22 2006 Subject: [icfp-discuss] participants prize In-Reply-To: <44C60714.60800@imm.dtu.dk> References: <44C60714.60800@imm.dtu.dk> Message-ID: <504b2780607250517t2a3d0d07vb8f7e25b8d64e660@mail.gmail.com> Aye! Votes: 2 For 0 Against --David On 7/25/06, Christian W. Probst wrote: > > Dear *, > > I've participated the first time this year, so I don't have any other > ICFP contest to compare against, but this was the absolutely most > amazing event I have participated in in the last years. Three days and > nights filled with one surprise and challenge after the other. > > Therefore I would like to suggest to award a (yet to be created and > therefore purely virtual) "PARTICIPANTS PRIZE" to the organizers. > > Thanks! > > Cheers, Chris > > -- > <><> Christian W. Probst * Technical University of Denmark > <><> Assistant Professor * www.imm.dtu.dk/~probst > <><> phone +45 45 25 75 12 * fax +45 45 93 00 74 > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From cyril.cohen at gmail.com Tue Jul 25 09:19:14 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Tue Jul 25 09:19:17 2006 Subject: [icfp-discuss] 168 points for arith In-Reply-To: <71fd12e60607250445x57f24e37u56306afa79f9c2b0@mail.gmail.com> References: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> <71fd12e60607250445x57f24e37u56306afa79f9c2b0@mail.gmail.com> Message-ID: <710af3c70607250619xcd8b95bie60241fb045b122@mail.gmail.com> 2006/7/25, Wei Hu : > Wow, looking at your solution enligntened me and made me beat another > 2 points out of it, making 169 points: > > Add Z y => y; > Add (S x) y => S (Add x y); > > { define multiplication (Mult) here } > { a*0 = 0 and a*Sb = (a*b) + a. } > Mult Z y => Z; > Mult (S x) y => Add y (Mult x y); > > Compute (op x y) => op (Compute x) y; {1} > Compute x => x; > > op1 (op2 x y) => op1 (Compute (op2 x y)); {2} > > . { end of rules } As for me this doesn't work on the test: "Mult (Add (S Z) (S Z)) (Add (S Z) (S Z)) -> S(S(S(S(Z))));." It has en infinit loop. (Or did I make a mistake ?) -- Cyril Cohen From aslatter at gmail.com Mon Jul 24 12:16:58 2006 From: aslatter at gmail.com (Antoine Latter) Date: Tue Jul 25 09:30:08 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? Message-ID: <694519c50607240916n204f8e77oacdc445bc3041289@mail.gmail.com> I've got a C implementation - I don't re-use any arrays in my code, and I only do bounds-checking when instruction 12 is called. Running on an AthlonXP-1800 with 3/4 GB of RAM: SuperPi 20 runs in about 1m 1s user time, with SandMark running at about 1m 45s user time. I took three runs of "time ./cUM sandmark.umz > /dev/null" and three runs of "time ./super_pi 20 > /dev/null" to get a user time SandMark/SuperPi ratio of: 1.70 Antoine From bruce.hoult at gmail.com Mon Jul 24 19:42:52 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Tue Jul 25 09:30:09 2006 Subject: [icfp-discuss] thanks to the organisers! In-Reply-To: <20060724230855.41675.qmail@web50711.mail.yahoo.com> References: <20060724230855.41675.qmail@web50711.mail.yahoo.com> Message-ID: <391c06200607241642n78e6f3bdo7c2395a700f518b8@mail.gmail.com> On 7/25/06, Andy wrote: > > It was an amazing contest organized by the CMO POP team. I agree, it will > be very hard for forthcoming icfp contests to make it as interesting. The > last time, one very close was in 2004. > Great job again ! I guess different people like different things. I thought the 2004 one was the worst ever. But first off, there was an *incredible* amount of work went into writing this thing. Just incredible. It simply has to have fallen out of somthing else they were doing anyway. And the puzzles were interesting and the difficulties pitched so that everyone could solve something for the whole three days, no matter how good or bad they were. The problem, to me, was that this was a puzzle solving and crude hacking contest, not a programming contest. To the extent that writing programs was involved, they were short, one-off, run on known data, and did not have to be robust. And when it came to programming you were programming some obscure language, not your language of choice. Perhaps you could use your language of choice to write some little helper programs (for example to find sequences of PHYSICS moves that updated Balance register values in a desired way) but those were small program, with little in the way of software engineering needed. I guess that's what I didn't like so much. I prefer the contests where you submit a binary, it is run against unknown data, or against other people's programs, and correctness and robustness are of prime importance. Programming in the large(ish) and software engineering is important. Not just tricks. That, to me, is what makes the ICFP contest something very special and not just another "solve as many puzzles as you can in six hours" exam on a bigger scale. I say this despite being well inside the top 10% at scoreboard freeze time. From bruce.hoult at gmail.com Mon Jul 24 20:26:31 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Tue Jul 25 09:30:10 2006 Subject: [icfp-discuss] multiplication... In-Reply-To: References: Message-ID: <391c06200607241726y26e211c7r496714b54a789f0a@mail.gmail.com> On 7/25/06, Benjamin Canou wrote: > Since the contest is now over, does anybody here knows how to program > the multiplication (and the fillmem without using the undocumented 1 > in the memory) in balance assembly? It's the only puzzle on which we > totally stuck... Yeah, that was what I was working on when time ran out, having solved all the other ones with reasonable scores (150+/200). It's easy enough (ha!! given the horrid PHYSICS instruction!) to create a "1" proxy by doing a&(0-a), and then you can do a t+=b, diff-=one loop until diff == 0. The problem is then that you may have to shift the answer a few bit positions. You can add "one" to itself until it shifts off the left side and becomes 0 after n operations, and then shift t left by (8-n) positions. Ta-da! Not Easy. From Don.Syme at microsoft.com Mon Jul 24 21:08:18 2006 From: Don.Syme at microsoft.com (Don Syme) Date: Tue Jul 25 09:30:11 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <20060725000815.GF5426@vulcan> Message-ID: FWIW our 74 line F# implementation is showing 80s on a 3GHz Intel Xeon (Windows 2003 Server). That seems a pretty good lines/perf tradedoff. We squeezed a few more seconds out using direct pointer manipulation, but I didn't include that in the attached. -- The memory footprint is fairly high. -- The version used in the competition was a little slower, since the extra perf wasn't needed. James Margetson may follow up with more details. Cheers, Don -----Original Message----- From: icfpcontest-discuss-bounces@lists.andrew.cmu.edu [mailto:icfpcontest-discuss-bounces@lists.andrew.cmu.edu] On Behalf Of Kurt Rinnert Sent: 25 July 2006 01:08 To: Discussion of the 2006 ICFP Programming Contest Subject: Re: [icfp-discuss] Who's got the fastest sandmark? Thanks! I compiled your code with -O6 -fstrict-aliasing and ran it on SANDmark: real 2m1.065s user 1m59.830s sys 0m0.927s This is on an AMD Athlon(tm) 64 Processor 3000+, 1.8 GHz with 2GB, running SuSE Linux 9.2 (x86-64). My slightly more bloated C++ implementation yields: real 2m15.265s user 2m13.535s sys 0m1.214s Also not too bad :) However, my memory footprint is always at least ~240M because I pre-allocate some vectors to avoid unnecessary copying. Without that I am going down to ~2m25 (which probably means the preallocation is a silly idea). Yours on SANDmark is only ~10M -- your code is definitely more efficient. :) I have attached my code, in case somebody is interested. Simply unwind the tarball, 'cd um' and 'make'. Run it with './bin/um'. This was really fun! Now I need some food and sleep... best, Kurt On Mon, Jul 24, 2006 at 10:55:53PM +0200, Christophe Poucet wrote: > Make sure to compile with -O3 or it will be really slow (lots of redundant > memory copies) > -- Kurt Rinnert, University of Liverpool - Department of Physics _______________________________________________ icfpcontest-discuss mailing list icfpcontest-discuss@lists.andrew.cmu.edu https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss -------------- next part -------------- A non-text attachment was scrubbed... Name: um.fs Type: application/octet-stream Size: 3395 bytes Desc: um.fs Url : http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/d453033a/um-0001.obj From bruce.hoult at gmail.com Mon Jul 24 23:41:14 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Tue Jul 25 09:30:12 2006 Subject: [icfp-discuss] multiplication... In-Reply-To: <20060725033116.GA6047@bachue.com> References: <20060725033116.GA6047@bachue.com> Message-ID: <391c06200607242041m701ae864oac920e9d4567b4f4@mail.gmail.com> > By the way, our solution for copreg was for every 0 <= i < 256, set > m[i] = i + 1. That is, load all possible values in memory and stop. > This produces the same state, regardless of the value of the input > (which it totally ignores). Is there any other way to solve this > problem? Pretty much. Note that once you've filled the memory with 0..255 (I did 1..254,0) you could use that A in the register as a pointer to copy its own own value from memory to a known location, such as mem[0], if that would make you happier. I didn't bother. The only other way to proceed would be to have all of memory zeroed except for a counter at mem[0] and decrement A until it pointed at the (nonzero) counter. But you need to have a 1 stored somewhere, which means some trickiness to void finding it first -- I guess you could initially test whether A was 255 (e.g. by incrementing it to point to location zero) and then it it was then decrement it to poiknt below mem[255] and then copy the 1 to mem[255] and then ... yuk From jamesm at skate.org Tue Jul 25 00:29:06 2006 From: jamesm at skate.org (Mark James) Date: Tue Jul 25 09:30:12 2006 Subject: [icfp-discuss] How was it done? Message-ID: <5BD3B7BC-67E5-48D3-BF09-ECB2DF1353DD@skate.org> I really enjoyed the contest. Unfortunately, I was only able to put in a few hours and I had a very inefficient memory allocator, so I didn't get very far. I never managed to get my Intercal version working at all. I've since rewritten the allocation, and now things are going much faster. I intend to keep solving puzzles in my free time over the next few weeks. :) My big question is "How was it done?". I'm sure the organizers didn't write a giant 16MB assembly language program and then compress it by hand. What language were the problems written in? Are the tools available? Thanks a lot for all the effort. M. From rossberg at ps.uni-sb.de Tue Jul 25 08:25:20 2006 From: rossberg at ps.uni-sb.de (Andreas Rossberg) Date: Tue Jul 25 09:30:13 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? Message-ID: <44C60DB0.90303@ps.uni-sb.de> Our implementation [http://www.ps.uni-sb.de/~rossberg/um.sml] is in Standard ML and runs the SANDmark in 2m30 on a 2.2 GHz machine when compiled with MLton. It is really simple, just 100+ lines, relying on garbage collection for memory management. That should be sufficient justification for using a higher-level language, as somebody has asked. :-) From filliatr at lri.fr Tue Jul 25 10:49:30 2006 From: filliatr at lri.fr (Jean-Christophe Filliatre) Date: Tue Jul 25 10:49:24 2006 Subject: [icfp-discuss] The Caml Riders writeup Message-ID: <17606.12154.328115.358226@pc9-152.lri.fr> Here is a short deccription of our entry: http://www.lri.fr/~filliatr/icfp-2006/ -- The Caml Riders From cyril.cohen at gmail.com Tue Jul 25 11:36:00 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Tue Jul 25 11:36:04 2006 Subject: [icfp-discuss] 168 points for arith In-Reply-To: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> References: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> Message-ID: <710af3c70607250836g7013df62g96b75f664c948419@mail.gmail.com> 2006/7/25, Philippe Wang : > Hi. > > I've just seen that some people fought with that arith rules... > > Here is my solution that gives 168 points. > (we had the one that gave 166 points... I removed a line... and it > gave two more points...) > > Ifadd Add x y => x; > Ifadd Mult x y => y; > c Z y => Ifadd c y Z; > c (S x) y => Ifadd c (S (Add x y)) (Add y (Mult x y)); > c (c x y) z => c x (c y z); > {-----\/----- EXCLUDED -----\/----- > c (d Z y) z => Ifadd c z (Mult y z); > -----/\----- EXCLUDED -----/\-----} > c (d (S x) y) z => Ifadd c (Add (Add y (Mult x y)) z) (Mult (S (Add x y)) z); > Compute x => x; > . { end of rules } However, if you exclude this rule, this test doesn't work : "Mult (Add Z Z) (Add Z Z) -> Z ;." -- Cyril Cohen (from Entirely Non-Serious team) From andy_zyx at yahoo.com Tue Jul 25 11:41:38 2006 From: andy_zyx at yahoo.com (Andy) Date: Tue Jul 25 11:41:42 2006 Subject: [icfp-discuss] participants prize In-Reply-To: <504b2780607250517t2a3d0d07vb8f7e25b8d64e660@mail.gmail.com> Message-ID: <20060725154138.87340.qmail@web50702.mail.yahoo.com> Votes 3:For 0:Against BTW, to CMU POP: How long did it take for you all to come up with and create this ?. [ Just curious as it is amazing ] ;) Andy --- David Dalrymple wrote: > Aye! > > Votes: > 2 For > 0 Against > > --David > > On 7/25/06, Christian W. Probst wrote: > > > > Dear *, > > > > I've participated the first time this year, so I don't have any other > > ICFP contest to compare against, but this was the absolutely most > > amazing event I have participated in in the last years. Three days and > > nights filled with one surprise and challenge after the other. > > > > Therefore I would like to suggest to award a (yet to be created and > > therefore purely virtual) "PARTICIPANTS PRIZE" to the organizers. > > > > Thanks! > > > > Cheers, Chris > > > > -- > > <><> Christian W. Probst * Technical University of Denmark > > <><> Assistant Professor * www.imm.dtu.dk/~probst > > <><> phone +45 45 25 75 12 * fax +45 45 93 00 74 > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From cyril.cohen at gmail.com Tue Jul 25 11:45:31 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Tue Jul 25 11:45:35 2006 Subject: [icfp-discuss] participants prize In-Reply-To: <20060725154138.87340.qmail@web50702.mail.yahoo.com> References: <504b2780607250517t2a3d0d07vb8f7e25b8d64e660@mail.gmail.com> <20060725154138.87340.qmail@web50702.mail.yahoo.com> Message-ID: <710af3c70607250845u722dda0cy1d0245c271d78486@mail.gmail.com> Votes 4:For 0:Against -- Cyril Cohen From christophe.poucet at gmail.com Tue Jul 25 11:49:40 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Tue Jul 25 11:49:44 2006 Subject: [icfp-discuss] 168 points for arith In-Reply-To: <710af3c70607250836g7013df62g96b75f664c948419@mail.gmail.com> References: <15579e0b0607250417w180c7774v84bfe63b6fa3ca0b@mail.gmail.com> <710af3c70607250836g7013df62g96b75f664c948419@mail.gmail.com> Message-ID: <2b0051e00607250849x792f5276v97081ad8fa76744b@mail.gmail.com> Here is a version for arith that does give 168 points: rm -f arith.adv2 /bin/umodem arith.adv2 STOP { comments are enclosed by curly-braces; no nested comments are allowed } Compute Z => U Z; Add x (U Z) => Compute x; Add x (U (S y)) => S (Add x (U y)); Mult x (U Z) => Compute Z; Mult x (U (S y)) => Add x (Compute (Mult x y)); o (U x) => U (o x); { when all other computation is done } Compute (o x) => o (Compute x); U x => x; . { end of rules } STOP ./advise arith arith.adv2 Cheers, Christophe/vincenz Team Lazy Bottoms On 7/25/06, Cyril Cohen wrote: > > 2006/7/25, Philippe Wang : > > Hi. > > > > I've just seen that some people fought with that arith rules... > > > > Here is my solution that gives 168 points. > > (we had the one that gave 166 points... I removed a line... and it > > gave two more points...) > > > > Ifadd Add x y => x; > > Ifadd Mult x y => y; > > c Z y => Ifadd c y Z; > > c (S x) y => Ifadd c (S (Add x y)) (Add y (Mult x y)); > > c (c x y) z => c x (c y z); > > {-----\/----- EXCLUDED -----\/----- > > c (d Z y) z => Ifadd c z (Mult y z); > > -----/\----- EXCLUDED -----/\-----} > > c (d (S x) y) z => Ifadd c (Add (Add y (Mult x y)) z) (Mult (S (Add x > y)) z); > > Compute x => x; > > . { end of rules } > > However, if you exclude this rule, this test doesn't work : > "Mult (Add Z Z) (Add Z Z) -> Z ;." > > > -- > Cyril Cohen > (from Entirely Non-Serious team) > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/1906dd75/attachment-0001.html From shana.ufie at gmail.com Tue Jul 25 11:52:59 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Tue Jul 25 11:53:02 2006 Subject: [icfp-discuss] participants prize In-Reply-To: <710af3c70607250845u722dda0cy1d0245c271d78486@mail.gmail.com> References: <504b2780607250517t2a3d0d07vb8f7e25b8d64e660@mail.gmail.com> <20060725154138.87340.qmail@web50702.mail.yahoo.com> <710af3c70607250845u722dda0cy1d0245c271d78486@mail.gmail.com> Message-ID: <3ec1038d0607250852t7c7d801dqd544d97b81e4217c@mail.gmail.com> Votes 5:For 0:Against From rinnert at hep.ph.liv.ac.uk Tue Jul 25 12:02:03 2006 From: rinnert at hep.ph.liv.ac.uk (Kurt Rinnert) Date: Tue Jul 25 12:02:05 2006 Subject: [icfp-discuss] participants prize In-Reply-To: <3ec1038d0607250852t7c7d801dqd544d97b81e4217c@mail.gmail.com> References: <504b2780607250517t2a3d0d07vb8f7e25b8d64e660@mail.gmail.com> <20060725154138.87340.qmail@web50702.mail.yahoo.com> <710af3c70607250845u722dda0cy1d0245c271d78486@mail.gmail.com> <3ec1038d0607250852t7c7d801dqd544d97b81e4217c@mail.gmail.com> Message-ID: <20060725160203.GC14425@hep55.ph.liv.ac.uk> Votes 1:For 0:Against -- Kurt Rinnert, University of Liverpool - Department of Physics From triska at gmx.at Tue Jul 25 12:13:32 2006 From: triska at gmx.at (Markus Triska) Date: Tue Jul 25 12:08:26 2006 Subject: [icfp-discuss] participants prize In-Reply-To: <20060725160203.GC14425@hep55.ph.liv.ac.uk> References: <504b2780607250517t2a3d0d07vb8f7e25b8d64e660@mail.gmail.com> <20060725154138.87340.qmail@web50702.mail.yahoo.com> <710af3c70607250845u722dda0cy1d0245c271d78486@mail.gmail.com> <3ec1038d0607250852t7c7d801dqd544d97b81e4217c@mail.gmail.com> <20060725160203.GC14425@hep55.ph.liv.ac.uk> Message-ID: <17606.17196.159861.840929@localhost.localdomain> Votes for. From cyril.cohen at gmail.com Tue Jul 25 12:09:53 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Tue Jul 25 12:09:56 2006 Subject: [icfp-discuss] xml.adv to get more than 163 points ? Message-ID: <710af3c70607250909s108f1b31v928c10236be850e4@mail.gmail.com> Since I posted my solutions for xml.adv and arith.adv, I found some shortcuts in xml.adv and reduced its size from 172 to 164 ... However I still get 163 points... (NB here is my new code form xml.adv " SNF (f x y) => f (SNF x) y; SNF x => R x; Tag q (R (Tag q t)) => R (Tag q t); Tag Maj (R (Tag q d)) => Tag q (SNF (Tag Maj d)); Tag Emph (R (Tag Bold d)) => Tag Bold (SNF (Tag Emph d)); Seq ( Tag q x) (R (Tag q y)) => SNF(Tag q (Seq x y)); Seq (Seq x y) (R z) => SNF (Seq x (Seq y z)) ; f (R t) => R (f t); (R f) y=> f (SNF y); R x => x;. ") -- Cyril Cohen From td at pixar.com Tue Jul 25 12:31:20 2006 From: td at pixar.com (Tom Duff) Date: Tue Jul 25 12:31:24 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: <20060725055533.GB21536@panix.com> References: <003401c6ae3f$07781240$15b2a8c0@wiko> <003501c6ae54$9287ff70$0301a8c0@Owhango1> <20060725055533.GB21536@panix.com> Message-ID: On Mon, Jul 24, 2006 at 12:36:02AM +1200, Clive Gifford wrote: > And by the way, is there anybody out there working on a SLOWER machine than > that? :-) My web server at home runs on a 90 MHz Pentium (48 MB) running FreeBSD, the operating system of choice for garage-sale PCs. Just for grins, I ran sandmark on it using my UM (123 ncsl of C). It took 2077.03 seconds (just under 35 minutes), compared to 53.072 seconds on my 3.4GHz Xeon at work. That's a factor of 39, roughly the same as the ratio of clock speeds. The ratio of prices is more spectacular: these days you get P90s at moving sales for a dollar or two (if you can find one at all) -- free if you get lucky in a dumpster adventure. (I paid $100 for mine, eight or nine years ago.) -- Tom Duff. Good, fast, cheap. Pick two. From dodnet at web.de Tue Jul 25 12:45:20 2006 From: dodnet at web.de (=?ISO-8859-1?Q?Pierre_Br=E4unig?=) Date: Tue Jul 25 12:48:39 2006 Subject: [icfp-discuss] Re: Who's got the fastest sandmark? In-Reply-To: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> References: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> Message-ID: <44C64AA0.9010905@web.de> Just for protocol, or trash - however ;) - Sandmark of my the Java-version during contest: SANDmark complete. Operation 0 ran 356404848 times and took 56.331 secs (5.3159704%) relation time/count: 1.580534E-4 Operation 1 ran 979571632 times and took 214.582 secs (20.250156%) relation time/count: 2.1905698E-4 Operation 2 ran 747283504 times and took 152.026 secs (14.346731%) relation time/count: 2.0343818E-4 Operation 3 ran 92344429 times and took 21.872 secs (2.064066%) relation time/count: 2.368524E-4 Operation 4 ran 40860531 times and took 9.411 secs (0.88811845%) relation time/count: 2.3032006E-4 Operation 5 ran 4987085 times and took 1.365 secs (0.1288154%) relation time/count: 2.7370697E-4 Operation 6 ran 389368029 times and took 55.037 secs (5.1938553%) relation time/count: 1.4134956E-4 Operation 7 ran 1 times and took 0.0 secs (0.0%) relation time/count: 0.0 Operation 8 ran 91964700 times and took 56.322 secs (5.315121%) relation time/count: 6.124306E-4 Operation 9 ran 91949290 times and took 23.341 secs (2.202696%) relation time/count: 2.5384643E-4 Operation 10 ran 2946 times and took 0.375 secs (0.035388842%) relation time/count: 0.12729125 Operation 11 ran 0 times and took 0.0 secs (0.0%) relation time/count: NaN Operation 12 ran 395373297 times and took 72.068 secs (6.801075%) relation time/count: 1.8227837E-4 Operation 13 ran -1929076009 times and took 396.926 secs (37.458004%) relation time/count: -2.0575966E-4 Time elapsed: 4969 secs (82 mins) From dodnet at web.de Tue Jul 25 12:47:16 2006 From: dodnet at web.de (=?ISO-8859-1?Q?Pierre_Br=E4unig?=) Date: Tue Jul 25 12:48:39 2006 Subject: [icfp-discuss] Re: thanks to the organisers! In-Reply-To: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> References: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> Message-ID: <44C64B14.7000401@web.de> Hi there, a big thanks to the organizers for this incredible contest. It was a lot of fun first implementing the UM and then trying to solve the puzzles. And the story all around made it even more interesting. I've watched the contest for 3 years now, but this was the first time I took place. I didn't even thought of such a lot fun. I'm happy getting the UM to work and making even some more points :o) I'm really looking forward to next years contest - will be hard to top this years one ;) cu, Pierre (DoD) From dodnet at web.de Tue Jul 25 12:49:32 2006 From: dodnet at web.de (=?ISO-8859-1?Q?Pierre_Br=E4unig?=) Date: Tue Jul 25 12:48:39 2006 Subject: [icfp-discuss] Re: Highest level language with a successful impl of UM? In-Reply-To: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> References: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> Message-ID: <44C64B9C.80702@web.de> I implemented my UM in Java and got it first to run on late saturday (contest started at friday evening over here in germany ;)). My biggest problem where the missing unsigned datatypes. The first version use longs, but it was so memory-consuming and slow, I rewrote it till sunday - now using chars. This one was far quicker and used less memory, but it was still slow as hell and constantly ran out of memory. The password-cracking with number combinations only ran through some words before the UM hang up. I thought of rewriting the machine in C, but I wanted to solve some of the riddles instead - I finally got the UM to run more or less stable - setting max memory to 1.6 GB (swapping included *g*) made the twist. From that on the UM run fairly well (using around 1.2 GB on a 1 GB-machine ;)) SANDmark complete. Time elapsed: 4969 secs (82 mins) Today I finally implemented a new version running in C and its no comparison to the java-version. cu, Pierre From drl at cs.cmu.edu Tue Jul 25 14:03:49 2006 From: drl at cs.cmu.edu (Dan Licata) Date: Tue Jul 25 14:04:20 2006 Subject: [icfp-discuss] [icfp-announce] team info & contest feedback In-Reply-To: <9877-80952@sneakemail.com> References: <9877-80952@sneakemail.com> Message-ID: <20060725180349.GA14223@cs.cmu.edu> Just submit what you have available, and if we need more information, we will contact you. Thanks for participating! -Dan On Jul24, vbzoli wrote: > And if somebody just pasted/done by hand instead of feeded by script? > > > UMIX scripts (i.e., files that can be piped to the decompressed > > umix binary) that generate all publications that you have > > submitted > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From blo.b at infonie.fr Tue Jul 25 14:04:59 2006 From: blo.b at infonie.fr (Laurent Vaucher) Date: Tue Jul 25 14:05:21 2006 Subject: [icfp-discuss] Who's got the fastest sandmark? In-Reply-To: References: <003401c6ae3f$07781240$15b2a8c0@wiko> <003501c6ae54$9287ff70$0301a8c0@Owhango1> <20060725055533.GB21536@panix.com> Message-ID: > Tom Duff. Good, fast, cheap. Pick two. Oh, we've got some famous hackers around here :o) From christophe.poucet at gmail.com Tue Jul 25 16:56:03 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Tue Jul 25 16:56:04 2006 Subject: [icfp-discuss] Uploading a .umz as solution for your team Message-ID: <44C68563.5010403@gmail.com> Hello fellow hackers, If you want to upload your solutions as a .umz file then I made a simple .um that will allow this. Notice that it's a very alpha version and assumes that whatever file you're encoding can be appened to without screwing up the format (seems fine for .tgz and .zip though you'll get a meaningless error for .tgz). First, append bytes to your file so its size is a multiple of four. Then: cat test.umz yourfile > yourfile.umz Now all the organizers need to is: um yourfile.umz > yourfile Cheers! Christophe/vincenz Team Lazy Bottoms -- Christophe Poucet Ph.D. Student DESICS - DDT Phone:+32 16 28 87 20 E-mail: Christophe (dot) Poucet (at) imec (dot) be IMEC vzw ? Register of Legal Entities Leuven VAT BE 0425.260.668 ? Kapeldreef 75, B-3001 Leuven, Belgium ? http://www.imec.be -------------------------------------------------------------------------------- -------------- next part -------------- A non-text attachment was scrubbed... Name: test.umz Type: application/octet-stream Size: 180 bytes Desc: not available Url : http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/7f4a8ef9/test.obj From christophe.poucet at gmail.com Tue Jul 25 16:59:10 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Tue Jul 25 16:59:13 2006 Subject: [icfp-discuss] Re: Uploading a .umz as solution for your team In-Reply-To: <44C68563.5010403@gmail.com> References: <44C68563.5010403@gmail.com> Message-ID: <2b0051e00607251359h55368559v371cef6e78b9417c@mail.gmail.com> Hmm, Whoops, I should've sent the sources. I forgot that the size of the file is hardcoded in the .um Here is the code: ;------------------------------------------------------------------------------ ; Initialize variables ; r0 = 0 ; r6 = &data ; r7 = counter orth r0 0 orth r6 &data orth r7 1239624 ; sizeof(data)/4 ;------------------------------------------------------------------------------ ; ; Assume we have at least one element(4bytes) to output start: orth r2 255 read r1 r0 r6 ;------------------------------------------------------------------------------ ; Print 4th byte add r5 r0 r1 orth r3 256 div r5 r5 r3 div r5 r5 r3 div r5 r5 r3 nand r3 r0 r0 nand r4 r2 r5 nand r4 r3 r4 outb r4 ;------------------------------------------------------------------------------ ; Print 3rd byte add r5 r0 r1 orth r3 256 div r5 r5 r3 div r5 r5 r3 nand r3 r0 r0 nand r4 r2 r5 nand r4 r3 r4 outb r4 ;------------------------------------------------------------------------------ ; Print 2nd byte add r5 r0 r1 orth r3 256 div r5 r5 r3 nand r3 r0 r0 nand r4 r2 r5 nand r4 r3 r4 outb r4 ;------------------------------------------------------------------------------ ; Print 1st byte add r5 r0 r1 nand r3 r0 r0 nand r4 r2 r5 nand r4 r3 r4 outb r4 ;------------------------------------------------------------------------------ ; increment dataaddress: orth r1 1 add r6 r6 r1 ;------------------------------------------------------------------------------ ; decrement counter nand r1 r0 r0 add r7 r7 r1 ;------------------------------------------------------------------------------ ; jump based on counter orth r2 &ending orth r1 &altending cmove r1 r2 r7 load r0 r1 ;------------------------------------------------------------------------------ ending: orth r5 &start load r0 r5 ;------------------------------------------------------------------------------ altending: halt ;------------------------------------------------------------------------------ ;--:data data: Cheers, On 7/25/06, Christophe Poucet wrote: > > Hello fellow hackers, > > If you want to upload your solutions as a .umz file then I made a simple > .um that will allow this. Notice that it's a very alpha version and > assumes that whatever file you're encoding can be appened to without > screwing up the format (seems fine for .tgz and .zip though you'll get a > meaningless error for .tgz). > > First, append bytes to your file so its size is a multiple of four. > > Then: > cat test.umz yourfile > yourfile.umz > > Now all the organizers need to is: > > um yourfile.umz > yourfile > > Cheers! > Christophe/vincenz > Team Lazy Bottoms > > -- > Christophe Poucet > Ph.D. Student > DESICS - DDT > > Phone:+32 16 28 87 20 > E-mail: Christophe (dot) Poucet (at) imec (dot) be > IMEC vzw ? Register of Legal Entities Leuven VAT BE 0425.260.668 ? > Kapeldreef 75, B-3001 Leuven, Belgium ? http://www.imec.be > > -------------------------------------------------------------------------------- > http://www.imec.be/wwwinter/email-disclaimer.shtml> > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/6351e77b/attachment.html From oezi at oezi.de Tue Jul 25 17:35:30 2006 From: oezi at oezi.de (Christopher Oezbek) Date: Tue Jul 25 17:35:37 2006 Subject: [icfp-discuss] Thanks for great contest, some Java remarks and a question for new contests In-Reply-To: <44C64B9C.80702@web.de> References: <200607242241.k6OMfI2I024210@lists2.andrew.cmu.edu> <44C64B9C.80702@web.de> Message-ID: First: Dear Organizers, thanks so much for this contest! It has been awesome. People were looking kind of disturbed on monday when I told them that I probably had slept less than 10 hours since friday, but it was definitely worth it. participantsPrize++; I wish I had put more effort into getting a team together in retrospect, but people on IRC were very friendly, too. Before I divert to Java a question to the list: * Does anybody know any other contests that will come up before next year's ICFP? I also wrote a Java UM and the first remark on IRC about that was something like > HAHA! > Wait you are not kidding? :-) Well after having some problems with NAND, I got stuck seriously on a bug with outputting, because I did not close the output stream and the UM-dump missed the last line thus. I guess that is a classical mistake. Then I also had problems with memory (using longs instead of ints), especially Garbage collection was going like crazy giving me 30 seconds stalls in between computations. I finally found the culprit: Needed to change List free = new ArrayList(); to List free = new LinkedList(); since this was used as a Queue of free array ids and apparently recreated the whole list each time an element was removed from head. In the end I got Sandmark done in 3 minutes 17. I also checked that maintaining a pool of array of a given size does not pay in speed (guess mostly because they need to 0ed). Greetings, Christopher (Team PublicStaticVoid) On Tue, 25 Jul 2006 18:49:32 +0200, Pierre Br?unig wrote: > I implemented my UM in Java and got it first to run on late saturday > (contest started at friday evening over here in germany ;)). My biggest > problem where the missing unsigned datatypes. The first version use > longs, but it was so memory-consuming and slow, I rewrote it till sunday > - now using chars. > This one was far quicker and used less memory, but it was still slow as > hell and constantly ran out of memory. > The password-cracking with number combinations only ran through some > words before the UM hang up. > > I thought of rewriting the machine in C, but I wanted to solve some of > the riddles instead - I finally got the UM to run more or less stable - > setting max memory to 1.6 GB (swapping included *g*) made the twist. > From that on the UM run fairly well (using around 1.2 GB on a 1 > GB-machine ;)) > > SANDmark complete. > Time elapsed: 4969 secs (82 mins) > > Today I finally implemented a new version running in C and its no > comparison to the java-version. > > cu, > Pierre > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss From oezi at oezi.de Tue Jul 25 17:58:13 2006 From: oezi at oezi.de (Christopher Oezbek) Date: Tue Jul 25 17:58:18 2006 Subject: [icfp-discuss] Invalid solution for ADVIS In-Reply-To: References: Message-ID: I asked the organizers about this because I had a similar issue (with the Ray-Tracer). The answer was "Yes, that's sneaky but permitted." Greetings, Christopher On Tue, 25 Jul 2006 10:54:37 +0200, Christoph Breitkopf wrote: > Hello, > > first off, thanks to the organizers for a great contest. While I did't > manage completely solve > any of the puzzles, I had loads of fun. > > Converning the Advise problem: > I never figured out how to disabiguate equal numbers of rule matches, and > I think that my solution for arith certifies only by accident. > > /bin/umodem arith.adv EOF > > Add Z x => x; > Mult Z x => Z; > Add (S x) y => S (Add x y); > Mult (S x) y => Add y (Mult x y); > Add (Add a b) c => Add a (Add b c); > { Mult (Mult a b) c => Mult a (Mult b c); } > Add (Mult (S a) b) c => Add b (Add c (Mult a b)); > Mult (Add a b) c => Add (Mult a c) (Mult b c); > > > { when all other computation is done } > Compute x => x; > > > . { end of rules } > EOF > > This certifies as-is, but after deleting the first comment (line 7) it > no longer certifies. > > Thus, I feel that my 167 points are undeserved and should probably be > removed :-( > > What's your opinion about this? Should such non-solutions be discarded? > > Regards, > Chris > > > > > > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss From ij7b3u502 at sneakemail.com Tue Jul 25 18:36:16 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Tue Jul 25 18:36:27 2006 Subject: [icfp-discuss] Usable Lisp UM simulator... Message-ID: <18682-53093@sneakemail.com> Well, finally got time to polish and optimise my Common Lisp UM simulator. I was curios what can be achieved with a "higher level" language. It's quite usable now... :) It contains some SBCL dependent code, unbuffered I/O and command line argument handling. I got following sandmark timings: real 9m57.114s user 9m54.601s sys 0m1.240s (Opteron 244, my plain C code had about 1m30s) It uses ASDF, attached package.lisp and um.asd. Well, looking forward to the next contest, this was really amusing! VOROSBARANYI Zoltan -------------- next part -------------- ;;;; ;;;; um.lisp ;;;; ;;;; UM simulator ;;;; ;;;; Written by VOROSBARANYI Zoltan, 2006 ;;;; (in-package #:um) (declaim (optimize (debug 0) (speed 3) (compilation-speed 0) (space 0) (safety 0))) ;;; UM State (defparameter *reg* (make-array 8 :element-type '(unsigned-byte 32) :initial-element 0) "UM registers.") (declaim (type (simple-array (unsigned-byte 32) (8)) *reg*)) (defparameter *arr* (make-hash-table) "UM arrays") (declaim (type hash-table *arr*)) (defparameter *arr-id* 1 "Next array identifier. To be incremented each time an array is allocated.") (declaim (type fixnum *arr-id*)) (defparameter *prg* nil "UM program array, the '0' array") (declaim (type (simple-array (unsigned-byte 32) (*)) *prg*)) (defparameter *ef* 0 "Execution Finger (Program Counter)") (declaim (type fixnum *ef*)) (defconstant +eof-reg-value+ #xffffffff "EOF value") ;;; Utilities (defmacro reg-place (reg-index) `(aref *reg* ,reg-index)) (defmacro op-reg-a-index (op) `(ldb (byte 3 6) ,op)) (defmacro op-reg-b-index (op) `(ldb (byte 3 3) ,op)) (defmacro op-reg-c-index (op) `(ldb (byte 3 0) ,op)) ;; (defmacro op-reg-c-index (op) ;; `(logand #b111 ,op)) (defmacro op-reg-ort-a-index (op) `(ldb (byte 3 25) ,op)) (defmacro op-immediate-value (op) `(ldb (byte 25 0) ,op)) ;;(defmacro op-immediate-value (op) ;; `(logand #x1ffffff ,op)) (defmacro op-instruction-code (op) `(ldb (byte 4 28) ,op)) (defmacro the-array (array-key) `(the (simple-array (unsigned-byte 32) (*)) (gethash ,array-key *arr*))) (defun allocate-array (size) (declare (type fixnum size)) (setf (gethash *arr-id* *arr*) (make-array size :element-type '(unsigned-byte 32) :initial-element 0)) (prog1 *arr-id* (incf *arr-id*) (when (>= *arr-id* #. (expt 2 32)) (error "*arr-id* >= 2^32, please rewrite array id allocation code")))) (declaim (type (function (fixnum) (simple-array (unsigned-byte 32) (*))) allocate-array)) (defun delete-array (array-key) (remhash array-key *arr*)) (defun copy-array (array) (declare (type (simple-array (unsigned-byte 32) (*)) array)) (copy-seq array)) (defmacro set-program-array (program) (let ((prog (gensym "PROGRAM-"))) `(let ((,prog ,program)) (setf *prg* ,prog) (setf (the-array 0) ,prog)))) ;;; When calling the following macros opcode should be a variable and ;;; a, b, c, and val should be referenced once. (defmacro with-reg-a-b-c ((a b c) opcode &body body) `(symbol-macrolet ((,a (reg-place (op-reg-a-index ,opcode))) (,b (reg-place (op-reg-b-index ,opcode))) (,c (reg-place (op-reg-c-index ,opcode)))) ,@body)) (defmacro with-reg-b-c ((b c) opcode &body body) `(symbol-macrolet ((,b (reg-place (op-reg-b-index ,opcode))) (,c (reg-place (op-reg-c-index ,opcode)))) ,@body)) (defmacro with-reg-c ((c) opcode &body body) `(symbol-macrolet ((,c (reg-place (op-reg-c-index ,opcode)))) ,@body)) (defmacro with-ort-reg-a-val ((a val) opcode &body body) `(symbol-macrolet ((,a (reg-place (op-reg-ort-a-index ,opcode))) (,val (op-immediate-value ,opcode))) ,@body)) (defmacro cut32 (x) `(logand #xffffffff ,x)) ;;; I/O (defun do-output (byte) (write-byte byte *standard-output*)) (defun do-input () (let ((byte (read-byte *standard-input* nil nil))) (when byte byte))) ;;; Interpreter (defconstant +halt-ins-code+ 7) (defmacro fetch () `(prog1 (aref *prg* *ef*) ;(format t "D ~a~&" *ef*) (incf *ef*))) (defmacro with-unbuffered-binary-standard-io (&body body) `(let ((*standard-input* (sb-sys:make-fd-stream 0 :input t :buffering :none :element-type '(unsigned-byte 8) :auto-close t)) (*standard-output* (sb-sys:make-fd-stream 1 :output t :buffering :none :element-type '(unsigned-byte 8) :auto-close t))) ,@body)) (defun spin-cycle () (with-unbuffered-binary-standard-io (do* ((op (fetch) (fetch)) (ins (op-instruction-code op) (op-instruction-code op))) ((= ins +halt-ins-code+)) ;(format t "D ins=~a, op=~32B~&" ins op) (declare (type (unsigned-byte 32) op) (type (unsigned-byte 4) ins)) (case ins (0 (with-reg-a-b-c (a b c) op (unless (= c 0) (setf a b)))) (1 (with-reg-a-b-c (a b c) op (setf a (aref (the-array b) c)))) (2 (with-reg-a-b-c (a b c) op (setf (aref (the-array a) b) c))) (3 (with-reg-a-b-c (a b c) op (setf a (cut32 (+ b c))))) (4 (with-reg-a-b-c (a b c) op (setf a (cut32 (* b c))))) (5 (with-reg-a-b-c (a b c) op (setf a (truncate b c)))) (6 (with-reg-a-b-c (a b c) op (setf a (cut32 (lognand b c))))) (7 (error "In function INS-HALT: should not happen.")) (8 (with-reg-b-c (b c) op (setf b (allocate-array c)))) (9 (with-reg-c (c) op (delete-array c))) (10 (with-reg-c (c) op (do-output c))) (11 (with-reg-c (c) op (let ((byte (do-input))) (if byte (setf c byte) (setf c +eof-reg-value+))))) (12 (with-reg-b-c (b c) op (when (/= b 0) (let ((new-array (copy-array (the-array b)))) (set-program-array new-array))) (setf *ef* c))) (13 (with-ort-reg-a-val (a val) op (setf a val))) ((14 15) (error "Illegal instruction.")))))) (defmacro make32 (a b c d) `(the (unsigned-byte 32) (+ (the (unsigned-byte 32) (ash (the (unsigned-byte 8) ,a) 24)) (the (unsigned-byte 32) (ash (the (unsigned-byte 8) ,b) 16)) (the (unsigned-byte 32) (ash (the (unsigned-byte 8) ,c) 8)) (the (unsigned-byte 32) ,d)))) (defun load-program (path) (with-open-file (in path :direction :input :element-type 'unsigned-byte) (let* ((size (truncate (file-length in) 4)) (a (make-array size :element-type '(unsigned-byte 32)))) (declare (type (simple-array (unsigned-byte 32) (*)) a) (type fixnum size)) (loop :for i :from 0 :below size do (setf (aref a i) (make32 (read-byte in) (read-byte in) (read-byte in) (read-byte in)))) (set-program-array a)))) (defun start (program) (load-program program) (spin-cycle)) (defun entry () (let ((prog (second sb-ext:*posix-argv*))) (cond (prog (start prog) 0) (t (format *error-output* "UM code file argument required.~&") 1)))) (defun save () (sb-ext:save-lisp-and-die "um" :toplevel #'entry :executable t)) -------------- next part -------------- ;;;; um.asd (defpackage #:um-system (:use #:cl #:asdf)) (in-package #:um-system) (defsystem #:um :name "um" :author "VOROSBARANYI Zoltan" :version "0.1" :serial t :components ((:file "package") (:file "um"))) -------------- next part -------------- ;;;; package.lisp (in-package #:cl-user) (defpackage #:um (:use #:cl)) From muranushi at gmail.com Tue Jul 25 21:17:24 2006 From: muranushi at gmail.com (Takayuki Muranushi) Date: Tue Jul 25 21:17:29 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests Message-ID: Was it a suitable contest to choose "the programming language of choice for discriminating hackers" ? I enjoyed the never ending flow of brain twisters, hidden stories, well done UM. And It must have been ultimate hard to prepare all these (almost) without a smallest bugs. I respect the contest organizers, who deserve. However, I'd like to pose the question, "was it really a contest to choose the programming language of choice for discriminating hackers" ? I am left with the feeling of not using programming languages ... feeling of being forced not to use languages. I'm sure that the top team is a team of discriminating hackers, so their choice is "the programming language of choice for discriminating hackers", automatically, but it makes no point - The contest means to choose "the language", not people. At this year's contest, we had to make UM first. UM implementation takes not many lines, and it is critical to speed. The language of fastest, C, is even not adequate. Slower languages are out of choice. Evaluation of language thus depended on not how good the language was, but how optimized the languages happened to be. The amount of problems is also questionable. In past ICFPCs, there had been actually only one problem each year. And a single person team stood not a narrow chance to win, by brilliant ideas. Contest evaluated the power of language to describe complex and insighted strategies he came up with. This year, the main idea was quantity, each problem being rather easy, so, again, it depend on size of the team, rather than ideas or language they choose. The lack of deep strategy, I think, is because all problems had determined answers. In past contests' tasks like "make robbers and cops that cooperates or betrays", "make ants that are smarter than the other", "brush up the race car", there were unlimited room of inventing and implementing gimmicks ... freedom of programming. This year's contest had unlimited amount of problems, but the freedom of programming was, I dare say, was limited. I have no doubt, and I do think, This contest was one of the most successful ones as a programming contest ever. But as a contest of "the programming language of choice for discriminating hackers", with above reason, I pose a question. May the future of ICFP contests and joy of hacking prosper. Takayuki And Hideyuki, team combat. From aguilar.james at gmail.com Tue Jul 25 21:22:59 2006 From: aguilar.james at gmail.com (James Aguilar) Date: Tue Jul 25 21:23:03 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: On 7/25/06, Takayuki Muranushi wrote: > > [snip] > I somewhat agree . . . I was disappointed that I didn't really get to use my language of choice during this contest. I also want to point out that it's really impossible just to choose the language and not the people -- if you look at previous contests, the difference between the winners and the losers is always the intelligence of the methods used, not the language used to implement those methods. That said, it would be good if we were able to use our languages a little more in a contest that's ostensibly all about languages. It was really fun though! :) Yours, James Aguilar -- [?] James Aguilar [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 [#] 314 494 0450 [!] In the wind and the rain, my darling, say goodbye -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060725/59873bad/attachment.html From dklein at dmk.dyndns.org Tue Jul 25 23:01:03 2006 From: dklein at dmk.dyndns.org (Daniel Klein) Date: Tue Jul 25 23:01:09 2006 Subject: [icfp-discuss] For future solving enjoyment Message-ID: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> Despite the contest having concluded, it might be fun for some of us slowpokes to have an indication of how well we're doing, and how far through the maze of problems we've come. Is there a possibility of leaving the scoring scripts and such in place for future generations? Regards, Daniel M. Klein Lakehead University Thunder Bay, ON CA From bruce.hoult at gmail.com Tue Jul 25 23:16:40 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Tue Jul 25 23:16:43 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> On 7/26/06, James Aguilar wrote: > On 7/25/06, Takayuki Muranushi wrote: > > [snip] > > I somewhat agree . . . I was disappointed that I didn't really get to use my > language of choice during this contest. I also want to point out that it's > really impossible just to choose the language and not the people -- if you > look at previous contests, the difference between the winners and the losers > is always the intelligence of the methods used, not the language used to > implement those methods. That said, it would be good if we were able to use > our languages a little more in a contest that's ostensibly all about > languages. Yes I agree. I don't think such a programming contest can show that a particular language is better than the rest, but what it *can* show is that the language&implementation used by the winners doesn't suck too badly on a task that would probably be scheduled at a man-month (or more) if it was done as a job. I consider this to be one of the very best forums that exists -- possible THE best -- for showing off your favourite obscure language and showing, in a way that even a PHB can understand, that it doesn't suck for real-world tasks (as opposed to toy benchmarks). That's mostly why I'm here. To show off my favourite programming language (Dylan). Oh, and I've found that getting prizes in ICFP doesn't hurt in job interviews either :-) Especially last year's one, with a prize for software malleability in the face of changing requirements. > It was really fun though! :) Yes, it was fun. But no more so than topcoder or the ACM Student programming competition, or any of the myriad other contests around that use toy problems and toy programs to solve them. If that's what I wanted, that's what I'd be doing. The types of task that I like are the ones where you submit a program written in your favourite langauge. And the judges run it on input you didn't know about in advance, possibly against other people's programs. And if the program crashes, or creates invalid output, or just takes too long then it's out. The tasks in 2000, 2001, 2002 and 2005 were like this (and I think 1999 and 1998 ones were as well but I didn't do them). 2003 was almost like that, except the input was known. That all said, I'm astounded at the amount of work the organizers put into creating the codex. An amazing job, and it has attracted about twice as many entries as any previous contest, which has to be a good thing -- I suspect that previous ones have had around 1000 teams attempt the task, and that may be the same this year, but this year more got to the point where they felt a sumbission was worthwhile. I do hope next year returns more to the style of previous (non 2004) contests though. From sdb at webalo.com Tue Jul 25 23:18:21 2006 From: sdb at webalo.com (Seth Bruder) Date: Tue Jul 25 23:18:27 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: <44C6DEFD.50000@webalo.com> I think the contest was beautifully executed, but I agree that, among the last seven contests, this one stands out as especially conducive to teams. Re talent versus language: Let's not pretend that it's ever about the language :). Several years ago, the contest materials used to ask something like, "are functional programming languages better, or is it the people who use them?". Speaking of which, our company is hiring. If anybody out there can do disciplined software engineering and did at least 320 points (but could have done a lot more with more time :)), we may have a spot for you. Come and work with a great team in Santa Monica, California .... Seth sdb@webalo.com Takayuki Muranushi wrote: > Was it a suitable contest to choose "the programming language of > choice for discriminating hackers" ? > ... From bruce.hoult at gmail.com Tue Jul 25 23:34:54 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Tue Jul 25 23:34:56 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> Message-ID: <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> On 7/26/06, Daniel Klein wrote: > Despite the contest having concluded, it might be fun for some of us > slowpokes to have an indication of how well we're doing, and how far > through the maze of problems we've come. > > Is there a possibility of leaving the scoring scripts and such in place > for future generations? The score is right there in the publication. For example... BLNCE.CRE=176@1120|a6f506ad1078ac09a2d7e68f1bb64ce .. is worth 176 points. From nelsoneci at gmail.com Wed Jul 26 00:19:23 2006 From: nelsoneci at gmail.com (Nelson Castillo) Date: Wed Jul 26 00:19:26 2006 Subject: [icfp-discuss] ANTWO and Genetic algorithms Message-ID: <2accc2ff0607252119l5d51b486n9cffe7a5fd6c35de@mail.gmail.com> Hi. Did any of you solve the ANTWO puzzles by hand? We only solved by hand the first problem. Here are our solutions: http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle1.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle2.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle3.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle4.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle5.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle6.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle7.html http://freaks-unidos.net/svn/icfp/src/gardener/solutions/puzzle8.html I would like to know about your experiences with this task. We couldn't solve the last puzzle. I guess we had good luck with the fitness function[1] we implemented. Here is the code that generates part of the HTML pages in case you're interested. http://freaks-unidos.net/svn/icfp/src/gardener/simulator.c We changed the symbols that could be evolved depending on the problem and I think it helped a lot. Experiences? horror tales? I'd love to know how you solved the last puzzle. Regards, Nelson.- FUN team. [1]http://freaks-unidos.net/svn/icfp/src/gardener/fitness.c -- http://arhuaco.org/ From azul at freaks-unidos.net Wed Jul 26 01:21:43 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Wed Jul 26 01:06:57 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: <20060726052143.GB6047@bachue.com> > At this year's contest, we had to make UM first. UM implementation > takes not many lines, and it is critical to speed. The language of > fastest, C, is even not adequate. Slower languages are out of choice. > Evaluation of language thus depended on not how good the language was, > but how optimized the languages happened to be. Even though I coded the UM in C from the start, this only took around 15% of the time for the contest. For the remaining time I used my favorite programming language/implementation in order to solve many of the puzzles (specially balance, also tried, without much success, at plinks; others in our team used their favorite languages for ants and plinks). So I can't say I agree, I'd guess that the time the winning teams spent writing the UM should have been around 10%. So, in my opinion, being able to code things quickly (eg. search algorithms for balance, automated solvers for adventure, etc) was very important in this contest and probably a good criteria for picking out good programming languages. Then again, I do agree that future contests should try not to favoure large teams over small ones. Perhaps a separate judges prize/mention should be awared to the team having the most points per member? Alejo. http://azul.freaks-unidos.net/ From plakal at gmail.com Wed Jul 26 01:40:30 2006 From: plakal at gmail.com (Manoj Plakal) Date: Wed Jul 26 01:40:33 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> References: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> Message-ID: <5230c2820607252240o49d2ffa6sd852dc1a4db88ddc@mail.gmail.com> On 7/25/06, Bruce Hoult wrote: > Yes, it was fun. But no more so than topcoder or the ACM Student > programming competition, or any of the myriad other contests around > that use toy problems and toy programs to solve them. If that's what > I wanted, that's what I'd be doing. > > The types of task that I like are the ones where you submit a program > written in your favourite langauge. And the judges run it on input > you didn't know about in advance, possibly against other people's > programs. And if the program crashes, or creates invalid output, or > just takes too long then it's out. The tasks in 2000, 2001, 2002 and > 2005 were like this (and I think 1999 and 1998 ones were as well but I > didn't do them). 2003 was almost like that, except the input was > known. > > [snip] > > I do hope next year returns more to the style of previous (non 2004) > contests though. this is the fourth icfp that i've taken part in, and i must say that i found this to be the most refreshing and the most fun (and i think this is fun in a very different way than topcoder or acm et al, this was more like a 72-hour treasure hunt). i thought that this was refreshing not just because of the novelty of the whole vm-layers-within-layers thing, but because of the diversity of the tasks and the range of techniques and tools you could use. i would wager that teams which used a wide variety of languages and ideas performed better on average. writing the vm in c took our team <5% of 72 hrs. i also found this to be refreshingly different from previous icfps that have focused too much IMHO on optimization problems or pitting agents against each other in some virtual world. those are ok in small doses, but it's healthy to try out completely different problems and settings instead of getting stuck in a rut. for reference, i think that icfps 2000 (raytracing), 2001 (markup optimization), and perhaps 1999 (adventure game optimization) were fun but the other icfp tasks were depressingly similar and not too motivating. finally, a real-time scoreboard with incremental points is much more satisfying, imho, than frantically submitting your code into a black hole and then waiting a long time to see anything come out. that's one reason why there have been so many participants this year, i think. -manoj From bartoschek at gmx.de Wed Jul 26 02:21:23 2006 From: bartoschek at gmx.de (Christoph Bartoschek) Date: Wed Jul 26 02:21:29 2006 Subject: [icfp-discuss] ANTWO and Genetic algorithms In-Reply-To: <2accc2ff0607252119l5d51b486n9cffe7a5fd6c35de@mail.gmail.com> References: <2accc2ff0607252119l5d51b486n9cffe7a5fd6c35de@mail.gmail.com> Message-ID: <200607260821.23480.bartoschek@gmx.de> Am Mittwoch, 26. Juli 2006 06:19 schrieb Nelson Castillo: > Hi. > > Did any of you solve the ANTWO puzzles by hand? It was quite easy to solve them by hand. Took about two hours. Here is a solution to puzzle9. Christoph -------------- next part -------------- gardener mathemantica /bin/umodem a.ant FII Puzzle 9: Diagonalia WNNNNNS ENNNSNN NNNNNNN ENNNNNN 18 18 0^1< - - - o o o o o o o o o o o o o -0^1< - - - o o o o o o o o o o o o - -0^1< - - - o o o o o o o o o o o - - -0^1< - - - o o o o o o o o o o - - - -0^1< - - - o o o o o o o o o o - - - -0^1< - - - o o o o o o o o o o - - - -0^ - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - - o o o o o o o o o o - - - - - - - - o o o o o o o o o o o - - - - - - - o o o o o o o o o o o o - - - - - - o o o o o o o o o o o o o - - - - $ o o o o o o o o o o o o o o o o o o o FII ./antomaton -i a.ant From christophe.poucet at gmail.com Wed Jul 26 04:04:55 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Wed Jul 26 04:04:59 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: <5230c2820607252240o49d2ffa6sd852dc1a4db88ddc@mail.gmail.com> References: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> <5230c2820607252240o49d2ffa6sd852dc1a4db88ddc@mail.gmail.com> Message-ID: <2b0051e00607260104j5c7539d7mf25913171eb9e347@mail.gmail.com> I must say that I agree with Manoj's points. I only participated in the 2003 and 2004 one (and did the 2005 one offline due to timing reasons) but they always had one single problem. Either you struck out lucky and knew the specific algorithm required, or you'd spend a lot of time fishing in the dark. This year's was much more like receiving a big bag of fun goodies for christmas where if you got stuck on one problem you could move over to the next and have one of your teammates try it out. I also agree on the fact that a real-time scoreboard added much more to the contest, it gave it a feeling of a real contest as well as creating a sort of community. Instead of feeling like a hacker hacking on some faceless problem you're now really competing against one another. Regarding the use of languages and the vm. I must say that we probably spent < 5% on writing the vm (first in haskell then C then C++). The rest of the time was spent in writing different solvers for the different puzzles. Each puzzle required a different sort of tactic and none could be solved through bruteforce alone (re: 2003). This led us to use the language of our choice (haskell of course) and even fishing up other languages we had forgotten about but were actually suitable to the problem and fun to write in as well (prolog for adventure after a long failed attempt to write a prolog system in haskell from scratch). Overall I think this contest was a success, with a bigger oh-factor of surprise at every turn and bend as well as a real feeling of competing against one another through the scoreboard. Besides, if you were toplisted (we typically ranked top10 the first 2 days) it was fun to compare your solutions against others' so you could determine what needed work and improvement, what the main priorities were. So I guess what this mail really communicates is: Good job to the organizers, that must've been a hell of a lot of work Cheers, Christophe/vincenz Team Lazy Bottoms On 7/26/06, Manoj Plakal wrote: > > On 7/25/06, Bruce Hoult wrote: > > Yes, it was fun. But no more so than topcoder or the ACM Student > > programming competition, or any of the myriad other contests around > > that use toy problems and toy programs to solve them. If that's what > > I wanted, that's what I'd be doing. > > > > The types of task that I like are the ones where you submit a program > > written in your favourite langauge. And the judges run it on input > > you didn't know about in advance, possibly against other people's > > programs. And if the program crashes, or creates invalid output, or > > just takes too long then it's out. The tasks in 2000, 2001, 2002 and > > 2005 were like this (and I think 1999 and 1998 ones were as well but I > > didn't do them). 2003 was almost like that, except the input was > > known. > > > > [snip] > > > > I do hope next year returns more to the style of previous (non 2004) > > contests though. > > this is the fourth icfp that i've taken part in, and i must say > that > i found this to be the most refreshing and the most fun (and i > think this is fun in a very different way than topcoder or acm et > al, > this was more like a 72-hour treasure hunt). > > i thought that this was refreshing not just because of the novelty > of the whole vm-layers-within-layers thing, but because of the > diversity of the tasks and the range of techniques and tools > you could use. i would wager that teams which used a wide > variety of languages and ideas performed better on average. > writing the vm in c took our team <5% of 72 hrs. > > i also found this to be refreshingly different from previous icfps > that have focused too much IMHO on optimization problems > or pitting agents against each other in some virtual world. those > are ok in small doses, but it's healthy to try out completely > different problems and settings instead of getting stuck in a rut. > for reference, i think that icfps 2000 (raytracing), 2001 (markup > optimization), and perhaps 1999 (adventure game optimization) > were fun but the other icfp tasks were depressingly similar > and not too motivating. > > finally, a real-time scoreboard with incremental points is much > more satisfying, imho, than frantically submitting your code > into a black hole and then waiting a long time to see anything > come out. that's one reason why there have been so many > participants this year, i think. > > -manoj > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/ae01024d/attachment.html From bruce.hoult at gmail.com Wed Jul 26 04:27:35 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Wed Jul 26 04:27:38 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: <2b0051e00607260104j5c7539d7mf25913171eb9e347@mail.gmail.com> References: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> <5230c2820607252240o49d2ffa6sd852dc1a4db88ddc@mail.gmail.com> <2b0051e00607260104j5c7539d7mf25913171eb9e347@mail.gmail.com> Message-ID: <391c06200607260127n52966c7dq314f167137d41ac6@mail.gmail.com> On 7/26/06, Christophe Poucet wrote: > Each puzzle required a different sort of tactic and none could be > solved through bruteforce alone (re: 2003). I don't quite understand that comment. Perhaps you meant that the 2003 contest was best solved using brute force, since the winner made use of a server farm. He did get quite good solutions that way, but note that my team beat his brute force solutions on four of the nine tracks using pure native cunning and a G4 iMac, so the brute force solutions were not optimal solutions. From chris at chr-breitkopf.de Wed Jul 26 04:32:27 2006 From: chris at chr-breitkopf.de (Christoph Breitkopf) Date: Wed Jul 26 04:32:45 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: "Takayuki Muranushi" writes: > However, I'd like to pose the question, "was it really a contest to > choose the programming language of choice for discriminating hackers"? Should that be the goal of the contest? It is, after all, called "Programming Contest", not "Programming Language Contest", i.e. it's the programming that matters, first prize declaration nonwithstanding. As a programming contest, I liked this one very much. I feel that really good programmers need to know more than one kind of language or way of problem solving, and the diversity of problems in this contest (imperative, term reduction, data flow, etc.) made it necessary look beyound your favorite tool. Quite different from a "let's see whose hammer fits our nails (the problem) best"-kind of contest. The nice thing about ICFP contests are that you never know what to expect. I was firmly in the "please no more games with incomplete information" camp prior to this contest, and got something I liked. Let's just see what next year (10th anniversary!) will bring. I'm sure it'll be as interesting as always. Regards, Chris From dinko.tenev at gmail.com Wed Jul 26 04:40:21 2006 From: dinko.tenev at gmail.com (Dinko Tenev) Date: Wed Jul 26 04:40:25 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: The language you used to implement the UM emulator did not really have to be the only language you used, and the UM implementation would ideally be a small (albeit crucial) part of the whole effort -- many of the puzzles required a lot more programming in order to be solved, and you could use any language for that. I, for one, would have been happy if the organizers had somehow stressed beforehand the importance of the emulator's performance, both in terms of speed and memory efficiency -- and this obviously couldn't be stressed enough, given the experiences of most of the contestants. Cheers, Dinko On 7/26/06, Takayuki Muranushi wrote: > Was it a suitable contest to choose "the programming language of > choice for discriminating hackers" ? > > I enjoyed the never ending flow of brain twisters, hidden stories, > well done UM. And It must have been ultimate hard to prepare all these > (almost) without a smallest bugs. I respect the contest organizers, > who deserve. > > However, I'd like to pose the question, "was it really a contest to > choose the programming language of choice for discriminating hackers" > ? > > I am left with the feeling of not using programming languages ... > feeling of being forced not to use languages. > > I'm sure that the top team is a team of discriminating hackers, so > their choice is "the programming language of choice for discriminating > hackers", automatically, but it makes no point - The contest means to > choose "the language", not people. > > At this year's contest, we had to make UM first. UM implementation > takes not many lines, and it is critical to speed. The language of > fastest, C, is even not adequate. Slower languages are out of choice. > Evaluation of language thus depended on not how good the language was, > but how optimized the languages happened to be. > > The amount of problems is also questionable. In past ICFPCs, there had > been actually only one problem each year. And a single person team > stood not a narrow chance to win, by brilliant ideas. Contest > evaluated the power of language to describe complex and insighted > strategies he came up with. > This year, the main idea was quantity, each problem being rather easy, > so, again, it depend on size of the team, rather than ideas or > language they choose. > > The lack of deep strategy, I think, is because all problems had > determined answers. In past contests' tasks like "make robbers and > cops that cooperates or betrays", "make ants that are smarter than the > other", "brush up the race car", there were unlimited room of > inventing and implementing gimmicks ... freedom of programming. This > year's contest had unlimited amount of problems, but the freedom of > programming was, I dare say, was limited. > > I have no doubt, and I do think, This contest was one of the most > successful ones as a programming contest ever. But as a contest of > "the programming language of choice for discriminating hackers", with > above reason, I pose a question. > > > May the future of ICFP contests and joy of hacking prosper. > > Takayuki And Hideyuki, team combat. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From bruce.hoult at gmail.com Wed Jul 26 04:58:14 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Wed Jul 26 04:58:17 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: References: Message-ID: <391c06200607260158m75c680baq6aed1e1a997d1b4d@mail.gmail.com> On 7/26/06, Dinko Tenev wrote: > The language you used to implement the UM emulator did not really have > to be the only language you used, and the UM implementation would > ideally be a small (albeit crucial) part of the whole effort -- Absolutely, it was. The contest started at 4 am lcoal time here and the rest of my team had the codex decompressed well before I woke up. > many of the puzzles required a lot more programming in order to be > solved, and you could use any language for that. My point is that the programs involved were small and did not need to be well-engineered or robust. "Hacking" was the order of the day. Not careful software engineeering like, say, last year. > I, for one, would have been happy if the organizers had somehow > stressed beforehand the importance of the emulator's performance, both > in terms of speed and memory efficiency -- and this obviously couldn't > be stressed enough, given the experiences of most of the contestants. In fact I was very happy with that aspect. For all we knew at first, you might only have to run the UM once, which made it important to minimize the sum of programming time and execution time, which meant that a program that took 15 minutes to run instead of 2 minutes was actually better if you could as a result write it in 30 minutes instead of an hour. So we wrote it in Dylan. Later, when it became obvious that it would have to be run many many times, we rewrote it in C -- it's only 50 lines or so, after all. (If it had been a small part of a large and complex program then we would have optimized the Dylan) Still later, when verifying large solutions such as BLACK.200 and up was very slow, we further optimized that C, speeding it up by quite a large factor and increasing the code size as a result. The end result is a UM that can decompress the codex in 49 sec on a 1.0 GHz PowerBook G4, and that runs sandmark in 4 MB of RAM. From mfp at acm.org Wed Jul 26 05:36:07 2006 From: mfp at acm.org (Mauricio Fernandez) Date: Wed Jul 26 05:36:12 2006 Subject: [icfp-discuss] Uploading code & solutions: pointless? Message-ID: <20060726093607.GV8431@tux-chan> I worked alone and performed pretty badly (only 607 points). I solved most things manually, and the programs I wrote (besides the VM) were too slow to solve the harder problems; i.o.w. I don't think there's any merit in them. In cases like that, does it make sense to submit the solutions? As I see it, it mainly serves to increase the work load of the organizers (and they have worked more than enough, kudos on the excellent preparation and development of the contest!). There are but a few hours left to submit the solutions, so I'd appreciate an answer before noon EDT :) Thank you, -- Mauricio Fernandez - http://eigenclass.org - singular Ruby From pingemi at WPI.EDU Wed Jul 26 07:32:28 2006 From: pingemi at WPI.EDU (Paul Ingemi) Date: Wed Jul 26 07:32:12 2006 Subject: [icfp-discuss] Sandmark time Message-ID: <9ae61cd92af577afc2091bf6dbcb2503@wpi.edu> I started the contest Saturday night and I didn't have any team members, so I decided to try my hand at making a fast UM. On a 2 GHz dual core x86 laptop running linux, sandmark completes in 25s The same code running on a 2.0 GHz core duo MacOS X laptop takes a minute. Running it on the laptop in purely interpreted mode takes 2 minutes. The JITC UM is available here: http://paul.bluereboot.net/um/ enjoy, -- Paul Ingemi From dinko.tenev at gmail.com Wed Jul 26 08:58:30 2006 From: dinko.tenev at gmail.com (Dinko Tenev) Date: Wed Jul 26 08:58:32 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: <391c06200607260158m75c680baq6aed1e1a997d1b4d@mail.gmail.com> References: <391c06200607260158m75c680baq6aed1e1a997d1b4d@mail.gmail.com> Message-ID: On 7/26/06, Bruce Hoult wrote: [...] > > many of the puzzles required a lot more programming in order to be > > solved, and you could use any language for that. > > My point is that the programs involved were small and did not need to > be well-engineered or robust. "Hacking" was the order of the day. > Not careful software engineeering like, say, last year. Being relatively new to the contest, I am left with the impression that last year was a bit of an exception (actually, I was slightly taken aback by the change of format.) For what I can see in the history of the contest, it has been traditionally all about "hacking." > > I, for one, would have been happy if the organizers had somehow > > stressed beforehand the importance of the emulator's performance, both > > in terms of speed and memory efficiency -- and this obviously couldn't > > be stressed enough, given the experiences of most of the contestants. > > In fact I was very happy with that aspect. For all we knew at first, > you might only have to run the UM once, which made it important to > minimize the sum of programming time and execution time, which meant > that a program that took 15 minutes to run instead of 2 minutes was > actually better if you could as a result write it in 30 minutes > instead of an hour. So we wrote it in Dylan. > > Later, when it became obvious that it would have to be run many many > times, we rewrote it in C -- it's only 50 lines or so, after all. (If > it had been a small part of a large and complex program then we would > have optimized the Dylan) > > Still later, when verifying large solutions such as BLACK.200 and up > was very slow, we further optimized that C, speeding it up by quite a > large factor and increasing the code size as a result. The end result > is a UM that can decompress the codex in 49 sec on a 1.0 GHz PowerBook > G4, and that runs sandmark in 4 MB of RAM. Well, you were lucky to have free hands to deal with it :) I was considering the tradeoff between re-implementation and sluggishness all of the time, and nothing compelled me to re-write the engine until it was too late, mainly because of lack of anticipation of what was ahead of me. I guess my real problem was participating as a team of one, just as it has been last year. Twice is enough, I will know better next time :) Cheers, Dinko From nelsoneci at gmail.com Wed Jul 26 09:13:32 2006 From: nelsoneci at gmail.com (Nelson Castillo) Date: Wed Jul 26 09:13:34 2006 Subject: [icfp-discuss] ANTWO and Genetic algorithms In-Reply-To: <200607260821.23480.bartoschek@gmx.de> References: <2accc2ff0607252119l5d51b486n9cffe7a5fd6c35de@mail.gmail.com> <200607260821.23480.bartoschek@gmx.de> Message-ID: <2accc2ff0607260613u4dc1d261q3e1bd57ba48ec7a4@mail.gmail.com> On 7/26/06, Christoph Bartoschek wrote: > Am Mittwoch, 26. Juli 2006 06:19 schrieb Nelson Castillo: > > Hi. > > > > Did any of you solve the ANTWO puzzles by hand? > > It was quite easy to solve them by hand. Took about two hours. Here is a > solution to puzzle9. Thanks! I guess I should avoid thinking less often. -- http://arhuaco.org/ From tom7 at cs.cmu.edu Wed Jul 26 09:44:33 2006 From: tom7 at cs.cmu.edu (Tom Murphy) Date: Wed Jul 26 09:41:32 2006 Subject: [icfp-discuss] Uploading code & solutions: pointless? In-Reply-To: <20060726093607.GV8431@tux-chan> References: <20060726093607.GV8431@tux-chan> Message-ID: <44C771C1.9020707@cs.cmu.edu> We don't mind having your solutions, if you don't mind uploading them... they may be useful in putting together a test suite for the codex as we tweak it for a final release. Tom Mauricio Fernandez wrote: > I worked alone and performed pretty badly (only 607 points). I solved most > things manually, and the programs I wrote (besides the VM) were too slow to > solve the harder problems; i.o.w. I don't think there's any merit in them. > > In cases like that, does it make sense to submit the solutions? As I see it, > it mainly serves to increase the work load of the organizers (and they have > worked more than enough, kudos on the excellent preparation and development > of the contest!). > > There are but a few hours left to submit the solutions, so I'd appreciate an > answer before noon EDT :) > > Thank you, > From james at grayproductions.net Wed Jul 26 09:53:46 2006 From: james at grayproductions.net (James Edward Gray II) Date: Wed Jul 26 09:53:52 2006 Subject: [icfp-discuss] Uploading code & solutions: pointless? In-Reply-To: <20060726093607.GV8431@tux-chan> References: <20060726093607.GV8431@tux-chan> Message-ID: There's a familiar face. Hello Mauricio. ;) On Jul 26, 2006, at 4:36 AM, Mauricio Fernandez wrote: > I worked alone and performed pretty badly (only 607 points). I > solved most > things manually, and the programs I wrote (besides the VM) were too > slow to > solve the harder problems; i.o.w. I don't think there's any merit > in them. > > In cases like that, does it make sense to submit the solutions? As > I see it, > it mainly serves to increase the work load of the organizers (and > they have > worked more than enough, kudos on the excellent preparation and > development > of the contest!). I'm just giving my opinion here obviously, but my team pretty much reached the same conclusion. Our code is really just an exploration in building fast enough VMs. We wrote it in Ruby, optimized everything we could think of, tried it on YARV, rewrote in Lua, and finally rewrote in C. So we have three so-so VMs we could send in. Each one is faster than the previous, but far from innovative. I did solve the multiplication 2D problem (it didn't verify until after the contest closed), but I used boring old index cards to do it. I tried the list reversing one as well, but couldn't seem to nail the right 2D syntax for my solution there. I did do a six-line prototype for that in Ruby, but there's nothing impressive there. I don't see any reason to send in the code. There are no interesting sections for me to point out to them. Just my opinion. James Edward Gray II P.S. I learned a lot from your blog post, as I always do, even if you did call my team abysmal. ;) (I'm kidding. I know you didn't say that.) From harley at jane.mahalito.net Wed Jul 26 01:44:17 2006 From: harley at jane.mahalito.net (Harley Gorrell) Date: Wed Jul 26 09:59:54 2006 Subject: [icfp-discuss] Usable Lisp UM simulator... In-Reply-To: <18682-53093@sneakemail.com> References: <18682-53093@sneakemail.com> Message-ID: On Wed, 26 Jul 2006, vbzoli wrote: > Well, finally got time to polish and optimise my Common Lisp UM simulator. Thanks for posting this -- I wrote my first UM in sbcl as well, but had problems with the divide instruction. It was yeilding negative results. (like: -#x1234) I had overlooked "(truncate)". I ended up writing my UM in C with a Sandmark of ~120s. harley. From jgerman75 at comcast.net Wed Jul 26 10:25:56 2006 From: jgerman75 at comcast.net (jgerman75@comcast.net) Date: Wed Jul 26 10:25:59 2006 Subject: [icfp-discuss] Grats to the organizers Message-ID: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> Since there are several criticisms of the contest (though there seem to be a lot more positive comments) I wanted to add my 2 cents. I loved the challenge. I thought you did an excellent job putting this together and making it fun. I can somewhat understand the viewpoint that it didn't take a lot of coding other than the UM, but I don't necessarily agree with it. I think that the way the problem was presented and the resulting excitement of discovering more and more of the challenge as you went was fantastic. It was probably this aspect that made the contest the most fun. When you create a contest where I'm afraid to read the discussion list for fear of spoilers you've certainly created a quality experience. I wish contests like this were much more frequent. As far as the history of the contest goes, imo it has always been about hacking. It's only three days and one of the greatest strengths of the functional paradigm is the ability to write fast correct programs. Careful software engineering just isn't possible in three days. That's not to say that you can't use some careful engineering techniques (and of course you should) but the environment of the challenge isn't conducive to careful software engineering as such. In any event I thought the way this contest was presented was top notch and I hope future organizers look to this year as a model. Especially the initial mystery of the problem. thanks for all the hard work in putting this together, Jeremy German -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/4b10968f/attachment.html From azul at freaks-unidos.net Wed Jul 26 10:48:48 2006 From: azul at freaks-unidos.net (Alejandro Forero Cuervo) Date: Wed Jul 26 10:34:01 2006 Subject: [icfp-discuss] A Criticism, For the even better Future ICFP Contests In-Reply-To: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> References: <391c06200607252016t3d95f581l8acb1996d4748e69@mail.gmail.com> Message-ID: <20060726144848.GF6047@bachue.com> > Yes, it was fun. But no more so than topcoder or the ACM Student > programming competition, or any of the myriad other contests around > that use toy problems and toy programs to solve them. Having participated in many of the ACM Students programming contests I must say I find them and this ICFP in an entirely different league. This was FAR more fun than the ACM contests and the problems where far more complex than those in ACM contests, IMO. Alejo. http://azul.freaks-unidos.net/ From dklein at dmk.dyndns.org Wed Jul 26 10:34:41 2006 From: dklein at dmk.dyndns.org (Daniel M. Klein) Date: Wed Jul 26 10:34:53 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> Message-ID: <44C77D81.8070205@dmk.dyndns.org> Not having the history myself -- this is the first time I engaged in this -- I found the contest compelling from the get go. The presentation and lead-up to the contest were very much factors that drew me into trying my hand at it. Three VM implementations later (Perl, C++, C...) and in still in the midst of exploring the codex (just for fun), I concur with everything said below. Great stuff! Great experience! My thanks to the organizers for their substantial efforts in creating this contest. Enjoying the hacking, DMK jgerman75@comcast.net wrote: > Since there are several criticisms of the contest (though there seem > to be a lot more positive comments) I wanted to add my 2 cents. > > I loved the challenge. I thought you did an excellent job putting this > together and making it fun. I can somewhat understand the viewpoint > that it didn't take a lot of coding other than the UM, but I don't > necessarily agree with it. > > I think that the way the problem was presented and the resulting > excitement of discovering more and more of the challenge as you went > was fantastic. It was probably this aspect that made the contest the > most fun. When you create a contest where I'm afraid to read the > discussion list for fear of spoilers you've certainly created a > quality experience. I wish contests like this were much more frequent. > From pauls101 at mindspring.com Wed Jul 26 10:38:18 2006 From: pauls101 at mindspring.com (Paul Sexton) Date: Wed Jul 26 10:38:36 2006 Subject: [icfp-discuss] Uploading code & solutions: pointless? References: <20060726093607.GV8431@tux-chan> Message-ID: <004201c6b0c1$23f62b30$3701a8c0@DELL2> I'm not sending anything. I had to work long days (in reasonably rested condition, out of a cheap hotel room) Friday and Monday, and only got a working UMIX Sunday afternoon, so there's not much to show. (Less than 607 points, too.) When I realized that I had no time to win on Sunday, I considered just going for the Judge's prize (fastest) instead (I hadn't seen anyone else claim ANSI-C at the time, have since), but I ran out of time and just basically gave up on it. FWIW, it's the closest I've ever come to having an entry and I'm pumped for next year. Hope you are too. ----- Original Message ----- From: "Mauricio Fernandez" To: Sent: Wednesday, July 26, 2006 5:36 AM Subject: [icfp-discuss] Uploading code & solutions: pointless? > I worked alone and performed pretty badly (only 607 points). I solved most > things manually, and the programs I wrote (besides the VM) were too slow to > solve the harder problems; i.o.w. I don't think there's any merit in them. > > In cases like that, does it make sense to submit the solutions? As I see it, > it mainly serves to increase the work load of the organizers (and they have > worked more than enough, kudos on the excellent preparation and development > of the contest!). > > There are but a few hours left to submit the solutions, so I'd appreciate an > answer before noon EDT :) > > Thank you, > > -- > Mauricio Fernandez - http://eigenclass.org - singular Ruby From bruce.hoult at gmail.com Wed Jul 26 10:52:43 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Wed Jul 26 10:52:46 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> Message-ID: <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> On 7/27/06, jgerman75@comcast.net wrote: > As far as the history of the contest goes, imo it has always been about > hacking. It's only three days and one of the greatest strengths of the > functional paradigm is the ability to write fast correct programs. Careful > software engineering just isn't possible in three days. I disagree most strongly!! Assuming a four person team, working 16 hours a day, we're looking at 24 person days of effort. That's more than a man month -- perhaps close to a typical six weeks if you count the fact that most programmers in a company seldom get in more than 5 - 6 hours of actual work in a day. A six week, one man, project can't have careful software engineering?? Really? I would contend that careful software engineering is precisely what has enabled top teams to acheive so much in many previous contests -- this is especially shown by the "twist" task last year, where careful software engineering during the original contest allowed for quite radical changes in 24 hours later on. From shawnyar217 at yahoo.com Wed Jul 26 11:27:49 2006 From: shawnyar217 at yahoo.com (Shawn Yarbrough) Date: Wed Jul 26 11:27:51 2006 Subject: [icfp-discuss] random number challenge from some earlier year? Message-ID: <20060726152749.34593.qmail@web53413.mail.yahoo.com> I'm trying to remember what contest this was. You had to write a program that would output a stream of numbers. Your program's stdio would be hooked up to some other competitor's stdio. The goal was (IIRC) to keep the average number as close to zero as possible but on your side (positive or negative, basically). So if your program could figure out the enemy's number pattern and react to it correctly, you'd win. I thought this was an ICFP contest, but on the Previous Years page I can't find it. Anybody remember the contest I'm talking about? Shawn --------------------------------- Yahoo! Messenger with Voice. Make PC-to-Phone Calls to the US (and 30+ countries) for 2?/min or less. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/5e25b630/attachment.html From mfp at acm.org Wed Jul 26 12:03:42 2006 From: mfp at acm.org (Mauricio Fernandez) Date: Wed Jul 26 12:03:50 2006 Subject: [icfp-discuss] Uploading code & solutions: pointless? In-Reply-To: <44C771C1.9020707@cs.cmu.edu> References: <20060726093607.GV8431@tux-chan> <44C771C1.9020707@cs.cmu.edu> Message-ID: <20060726160342.GA25276@tux-chan> On Wed, Jul 26, 2006 at 09:44:33AM -0400, Tom Murphy wrote: > We don't mind having your solutions, if you don't mind uploading them... > they may be useful in putting together a test suite for the codex as we > tweak it for a final release. Thanks for the timely reply. I was somewhat slower and barely managed to upload the tarball --- I submitted it around 20s before the deadline :) -- Mauricio Fernandez - http://eigenclass.org - singular Ruby From wlovas at cs.cmu.edu Wed Jul 26 12:27:25 2006 From: wlovas at cs.cmu.edu (William Lovas) Date: Wed Jul 26 12:27:27 2006 Subject: [icfp-discuss] random number challenge from some earlier year? In-Reply-To: <20060726152749.34593.qmail@web53413.mail.yahoo.com> References: <20060726152749.34593.qmail@web53413.mail.yahoo.com> Message-ID: <20060726162721.GA31420@cs.cmu.edu> On Wed, Jul 26, 2006 at 08:27:49AM -0700, Shawn Yarbrough wrote: > I'm trying to remember what contest this was. > > You had to write a program that would output a stream of numbers. Your program's stdio would be hooked up to some other competitor's stdio. The goal was (IIRC) to keep the average number as close to zero as possible but on your side (positive or negative, basically). So if your program could figure out the enemy's number pattern and react to it correctly, you'd win. > > I thought this was an ICFP contest, but on the Previous Years page I can't find it. Anybody remember the contest I'm talking about? It sounds like you might be thinking of the International RoShamBo Programming Competition, which pits competitor's rock-paper-scissors strategies against each other: http://www.cs.ualberta.ca/~darse/rsbpc.html The first competition had an "anything goes" category with several amusing cheat entries, such as one that forked three copies of itself, threw all three options, and killed the two that lost. http://www.cs.ualberta.ca/~darse/rsb-results2.html Although this wasn't an ICFP contest, the problem statement had a similar flavor. Notably different, though, was that all entries had to be written in C :) cheers, William From mfp at acm.org Wed Jul 26 12:29:49 2006 From: mfp at acm.org (Mauricio Fernandez) Date: Wed Jul 26 12:29:52 2006 Subject: Legal status; OK to reuse the problems? (was Re: [icfp-discuss] Uploading code & solutions: pointless?) In-Reply-To: References: <20060726093607.GV8431@tux-chan> Message-ID: <20060726162948.GB25276@tux-chan> On Wed, Jul 26, 2006 at 08:53:46AM -0500, James Edward Gray II wrote: > P.S. I learned a lot from your blog post, as I always do, even if > you did call my team abysmal. ;) (I'm kidding. I know you didn't > say that.) Sure enough, I said the performance was *abyssal* };-) (although I'm not sure anymore I read Gregory's blog correctly --- maybe he didn't refer to the final implementation?) I seize the occasion to ask the organizers about the legal status of the problems; would it be OK to reuse some of them (in adapted form)? James runs a very successful weekly programming challenge for Ruby programmers, the Ruby Quiz (http://rubyquiz.com/). I'm sure many of the usual participants would enjoy working on puzzles derived from this year's ICFP (they seem more suitable than those from previous years, being smaller and simpler in general -- a typical Ruby Quiz takes a few minutes to a couple hours typically). -- Mauricio Fernandez - http://eigenclass.org - singular Ruby From james at grayproductions.net Wed Jul 26 12:47:02 2006 From: james at grayproductions.net (James Edward Gray II) Date: Wed Jul 26 12:47:07 2006 Subject: Legal status; OK to reuse the problems? (was Re: [icfp-discuss] Uploading code & solutions: pointless?) In-Reply-To: <20060726162948.GB25276@tux-chan> References: <20060726093607.GV8431@tux-chan> <20060726162948.GB25276@tux-chan> Message-ID: <8CF44956-C856-4408-8446-1166DAE689CD@grayproductions.net> On Jul 26, 2006, at 11:29 AM, Mauricio Fernandez wrote: > James runs a very successful weekly programming challenge for Ruby > programmers, the Ruby Quiz (http://rubyquiz.com/). I'm sure many of > the usual > participants would enjoy working on puzzles derived from this > year's ICFP > (they seem more suitable than those from previous years, being > smaller and > simpler in general -- a typical Ruby Quiz takes a few minutes to a > couple > hours typically). It would be a lot of fun to ask people to write 2D compilers and the like, if allowed. ;) James Edward Gray II From crary at cs.cmu.edu Wed Jul 26 13:08:50 2006 From: crary at cs.cmu.edu (Karl Crary) Date: Wed Jul 26 13:08:51 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> Message-ID: <44C7A1A2.8050703@cs.cmu.edu> I'm sorry you didn't like the contest. I think we disagree about its purpose, though. Our aim was not to provide a venue for people to prove the superiority of their favorite programming language or technique. Our aim was merely to hold a contest that was fun and thought-provoking, and to draw from ideas in programming languages. Karl Crary Bruce Hoult wrote: > On 7/27/06, jgerman75@comcast.net wrote: >> As far as the history of the contest goes, imo it has always been about >> hacking. It's only three days and one of the greatest strengths of the >> functional paradigm is the ability to write fast correct programs. >> Careful >> software engineering just isn't possible in three days. > > I disagree most strongly!! > > Assuming a four person team, working 16 hours a day, we're looking at > 24 person days of effort. That's more than a man month -- perhaps > close to a typical six weeks if you count the fact that most > programmers in a company seldom get in more than 5 - 6 hours of actual > work in a day. > > A six week, one man, project can't have careful software > engineering?? Really? > > I would contend that careful software engineering is precisely what > has enabled top teams to acheive so much in many previous contests -- > this is especially shown by the "twist" task last year, where careful > software engineering during the original contest allowed for quite > radical changes in 24 hours later on. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From mietek at gmail.com Wed Jul 26 13:10:07 2006 From: mietek at gmail.com (=?UTF-8?Q?Mietek_B=C4=85k?=) Date: Wed Jul 26 13:10:26 2006 Subject: [icfp-discuss] Sandmark time In-Reply-To: <9ae61cd92af577afc2091bf6dbcb2503@wpi.edu> References: <9ae61cd92af577afc2091bf6dbcb2503@wpi.edu> Message-ID: <1F7A678F-8767-4690-A8CD-8C72888D4A2C@gmail.com> On 26/7/2006, at 13:32, Paul Ingemi wrote: > The JITC UM is available here: > http://paul.bluereboot.net/um/ Very nice! Keep up the good work. :) -- (desp) From wlovas at cs.cmu.edu Wed Jul 26 13:36:55 2006 From: wlovas at cs.cmu.edu (William Lovas) Date: Wed Jul 26 13:37:15 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> Message-ID: <20060726173652.GB31420@cs.cmu.edu> On Thu, Jul 27, 2006 at 02:52:43AM +1200, Bruce Hoult wrote: > I disagree most strongly!! > > Assuming a four person team, working 16 hours a day, we're looking at > 24 person days of effort. That's more than a man month -- perhaps > close to a typical six weeks if you count the fact that most > programmers in a company seldom get in more than 5 - 6 hours of actual > work in a day. > > A six week, one man, project can't have careful software engineering?? > Really? Are you the sort who believes that 9 women can make a baby in a month, if they just put their heads together? :) > I would contend that careful software engineering is precisely what > has enabled top teams to acheive so much in many previous contests -- > this is especially shown by the "twist" task last year, where careful > software engineering during the original contest allowed for quite > radical changes in 24 hours later on. Personally, i don't think last year's challenge highlighted careful software engineering at all -- rather, it highlighted the ability to formulate a sensible AI algorithm quickly and effectively. I speak from experience here -- software engineering didn't help my team nearly as much as a more clever AI would have. This is in fact a common criticism of many past years' contests: too often, the winner was decided by some prior knowledge or domain-specific cleverness, rather than skillful programming. This year's contest, in contrast, placed less emphasis on algorithms for solving problems, since each problem was small and self-contained. Rather, it placed more emphasis on the ease of expressing those algorithms in one's language of choice, thus making it a *better* judge of programming language expressiveness, in some sense. Of course, i'm somewhat biased, so i won't press the point any further :) cheers, William From geoffw at cis.upenn.edu Wed Jul 26 13:10:48 2006 From: geoffw at cis.upenn.edu (Geoffrey Alan Washburn) Date: Wed Jul 26 13:40:50 2006 Subject: Legal status; OK to reuse the problems? (was Re: [icfp-discuss] Uploading code & solutions: pointless?) In-Reply-To: <8CF44956-C856-4408-8446-1166DAE689CD@grayproductions.net> References: <20060726093607.GV8431@tux-chan> <20060726162948.GB25276@tux-chan> <8CF44956-C856-4408-8446-1166DAE689CD@grayproductions.net> Message-ID: <44C7A218.30900@cis.upenn.edu> James Edward Gray II wrote: > It would be a lot of fun to ask people to write 2D compilers and the > like, if allowed. ;) Speaking of which, did anyone do this? My team thought about it a few times but decided to go after what seemed to be lowering hanging fruit than writing an ASCII graph layout engine for just the ray tracing problem. -- [Geoff Washburn|geoffw@cis.upenn.edu|http://www.cis.upenn.edu/~geoffw/] -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/6170a1f4/attachment.html From jgerman75 at comcast.net Wed Jul 26 13:49:52 2006 From: jgerman75 at comcast.net (jgerman75@comcast.net) Date: Wed Jul 26 13:49:54 2006 Subject: [icfp-discuss] Grats to the organizers Message-ID: <072620061749.24869.44C7AB4000089310000061252213484373CAC9020E039D0A0906@comcast.net> On 7/27/06, "Bruce Hoult" > wrote: >I disagree most strongly!! >Assuming a four person team, working 16 hours a day, we're looking at >24 person days of effort. That's more than a man month -- perhaps >close to a typical six weeks if you count the fact that most >programmers in a company seldom get in more than 5 - 6 hours of actual >work in a day. >A six week, one man, project can't have careful software engineering?? Really? Well, we're all entitled to our opinions. However, I will note that it's still not 6 weeks, it's 3 days. Does doubling the team to 8 suddenly give you the ability to kick out a product equivalent to one that ordinarily takes 12 weeks? Of course not. In the end the actually time that passes plays a major role in that a) there isn't a rush and b) the more actual time that passes the more the design has time to evolve for the better. In any event we may be working from different definitions of hack. On my end there's a difference between a hack and a kludge. Yes, last year's contest required good design in order to perform well. But IMO it was still a hack. It's unlikely that anyone went through any sort of formal lifecycle when coming up with their solutions. I liked the organizers stance on this. They created a fun programming challenge. Personally I feel that that's what the contest is every year (and they did exceptionally well this year as I said). It just happens to be my opinion that a functional language has a good chance of allowing a team to develop quickly while still maintaining a good design. Which is why I expect functional languages to do well. I'm perfectly willing to agree to disagree though ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/bf605a5e/attachment-0001.html From jjmaes at gmail.com Wed Jul 26 13:57:43 2006 From: jjmaes at gmail.com (James Darwin Maes The First (a javatarian)) Date: Wed Jul 26 13:57:45 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> Message-ID: Pooo! On 7/26/06, Bruce Hoult wrote: > > On 7/27/06, jgerman75@comcast.net wrote: > > As far as the history of the contest goes, imo it has always been about > > hacking. It's only three days and one of the greatest strengths of the > > functional paradigm is the ability to write fast correct programs. > Careful > > software engineering just isn't possible in three days. > > I disagree most strongly!! > > Assuming a four person team, working 16 hours a day, we're looking at > 24 person days of effort. That's more than a man month -- perhaps > close to a typical six weeks if you count the fact that most > programmers in a company seldom get in more than 5 - 6 hours of actual > work in a day. > > A six week, one man, project can't have careful software > engineering?? Really? > > I would contend that careful software engineering is precisely what > has enabled top teams to acheive so much in many previous contests -- > this is especially shown by the "twist" task last year, where careful > software engineering during the original contest allowed for quite > radical changes in 24 hours later on. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/1f9265a9/attachment.html From christophe.poucet at gmail.com Wed Jul 26 14:07:30 2006 From: christophe.poucet at gmail.com (Christophe Poucet) Date: Wed Jul 26 14:07:33 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> Message-ID: <2b0051e00607261107y1665fb3cy5b1d215585cede4a@mail.gmail.com> Personally, I think it's very bad taste to criticize something people put so much effort in. If you didn't like it, you didn't have to participate, it's not like you paid for the work the CMU people clearly put into it. And if you do participate, then you've got no right to criticize, you chose to participate. Additionally, I've always found that destructive criticms helps very little. If you do think there were certain flaws with the contest there are better ways to bring it. For instance by giving constructive feedback instead of just whining it wasn't like last year's. To be honest, last year's had very little to do with software engineering at all. Software engineering is not done in 3 days, at least not more so than one would have done in any other ICFP contest. You can't throw more people and hours at it and call it a manmonth. Just my 2 cents, P.s: I personally enjoyed the contest a lot. Instead of having a single problem to solve where it was a luck based thing of you got it or you didn't, you had a plentitude, making it more interesting as you could shift from one to the other and then back as you saw fit. On 7/26/06, Bruce Hoult wrote: > > On 7/27/06, jgerman75@comcast.net wrote: > > As far as the history of the contest goes, imo it has always been about > > hacking. It's only three days and one of the greatest strengths of the > > functional paradigm is the ability to write fast correct programs. > Careful > > software engineering just isn't possible in three days. > > I disagree most strongly!! > > Assuming a four person team, working 16 hours a day, we're looking at > 24 person days of effort. That's more than a man month -- perhaps > close to a typical six weeks if you count the fact that most > programmers in a company seldom get in more than 5 - 6 hours of actual > work in a day. > > A six week, one man, project can't have careful software > engineering?? Really? > > I would contend that careful software engineering is precisely what > has enabled top teams to acheive so much in many previous contests -- > this is especially shown by the "twist" task last year, where careful > software engineering during the original contest allowed for quite > radical changes in 24 hours later on. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/005f5a06/attachment.html From tom7 at cs.cmu.edu Wed Jul 26 14:09:08 2006 From: tom7 at cs.cmu.edu (Tom Murphy) Date: Wed Jul 26 14:09:09 2006 Subject: [icfp-discuss] Re: Legal status; OK to reuse the problems? In-Reply-To: <20060726162948.GB25276@tux-chan> Message-ID: We plan to release the source code and tools under a permissive free license after ICFP in September. In the meantime you can feel free to reuse the problems for other purposes; we would appreciate credit if you do so. Cheers, Tom > On Wed, Jul 26, 2006 at 08:53:46AM -0500, James Edward Gray II wrote: > > P.S. I learned a lot from your blog post, as I always do, even if > > you did call my team abysmal. ;) (I'm kidding. I know you didn't > > say that.) > > Sure enough, I said the performance was *abyssal* };-) (although I'm not sure > anymore I read Gregory's blog correctly --- maybe he didn't refer to the final > implementation?) > > I seize the occasion to ask the organizers about the legal status of the > problems; would it be OK to reuse some of them (in adapted form)? > > James runs a very successful weekly programming challenge for Ruby > programmers, the Ruby Quiz (http://rubyquiz.com/). I'm sure many of the usual > participants would enjoy working on puzzles derived from this year's ICFP > (they seem more suitable than those from previous years, being smaller and > simpler in general -- a typical Ruby Quiz takes a few minutes to a couple > hours typically). > > -- > Mauricio Fernandez - http://eigenclass.org - singular Ruby > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > [ NEW! : http://tom7.org/ ] [ OLD! : http://fonts.tom7.com/ ] From ij7b3u502 at sneakemail.com Wed Jul 26 14:27:08 2006 From: ij7b3u502 at sneakemail.com (vbzoli) Date: Wed Jul 26 14:27:16 2006 Subject: Legal status; OK to reuse the problems? (was Re: [icfp-discuss] Uploading code & solutions: pointless?) In-Reply-To: <8CF44956-C856-4408-8446-1166DAE689CD@grayproductions.net> References: <20060726093607.GV8431@tux-chan> <20060726162948.GB25276@tux-chan> <8CF44956-C856-4408-8446-1166DAE689CD@grayproductions.net> Message-ID: <23233-68564@sneakemail.com> The parser would be the most interesting part... it would be fun to implement a decent one-box-lookahead recursive descent parser. The syntax would be described using BNF (Box Normal Form) rules. :) | It would be a lot of fun to ask people to write 2D compilers and the | like, if allowed. ;) | | James Edward Gray II From shana.ufie at gmail.com Wed Jul 26 16:11:17 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Wed Jul 26 16:11:21 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <2b0051e00607261107y1665fb3cy5b1d215585cede4a@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> <2b0051e00607261107y1665fb3cy5b1d215585cede4a@mail.gmail.com> Message-ID: <3ec1038d0607261311k7a4c4615ub01b5951168c2cb1@mail.gmail.com> The only thing I can say is, I can't believe the the ingenuity and superior engineering that is glimpsed behind this amazing project. I'm still exploring the codex (and probably will have no life for a while as I play with it, damn you!), and am amazed that the organizers spent (obviously) so much time with this, and coming up with something that reminds me of those russian dolls, you take out a layer and find out another one below it. Ya know, like onions. shana gone crazy, back soon, leave message PS: careful with the criticisms, for the ogres are many-layered, and quick to anger. :D From shana.ufie at gmail.com Wed Jul 26 16:16:19 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Wed Jul 26 16:16:23 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> Message-ID: <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> btw, how can one get 230 points in intro? are there some hidden 30 points I'm not seeing? hints please, not spoilers :) shana gone crazy, back soon, leave message From dankna at gmail.com Wed Jul 26 16:32:57 2006 From: dankna at gmail.com (Dan Knapp) Date: Wed Jul 26 16:33:02 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> Message-ID: <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> There's two five-point items that you probably missed. One of them is found by applying a standard tool in an unexpected and useless way. Another is found by going back in to a particular program that you've already used once. There are also two ten-point items that you'll definitely get if you poke around the system long enough; not all of them are right near the start, despite being classified as "intro". I hope this is helpful... it's hard to come up with hints that don't reveal too much and also don't sound completely inane. On 7/26/06, Andreia Gaita wrote: > > btw, how can one get 230 points in intro? are there some hidden 30 > points I'm not seeing? hints please, not spoilers :) > > shana > gone crazy, back soon, leave message > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Dan Knapp -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/1e1cf6a3/attachment-0001.html From shana.ufie at gmail.com Wed Jul 26 16:42:25 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Wed Jul 26 16:42:29 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> Message-ID: <3ec1038d0607261342h309a0410y97882567fb50a1d7@mail.gmail.com> Cool, nice hints, thanks! Your post reminds me of those hints systems for adventure games... "Have you thought of what you can do with that $item you have in your pocket? You never know..." lol! shana gone crazy, back soon, leave message ----------------------------------------------------- Dev Lead IfThenElse, Lda From dankna at gmail.com Wed Jul 26 16:48:59 2006 From: dankna at gmail.com (Dan Knapp) Date: Wed Jul 26 16:49:03 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: <3ec1038d0607261342h309a0410y97882567fb50a1d7@mail.gmail.com> References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> <3ec1038d0607261342h309a0410y97882567fb50a1d7@mail.gmail.com> Message-ID: <5961bfde0607261348o8fbd731ufebfaa36cfe3a645@mail.gmail.com> Yes, that was my inspiration. :) Glad you liked. On 7/26/06, Andreia Gaita wrote: > > Cool, nice hints, thanks! Your post reminds me of those hints systems > for adventure games... "Have you thought of what you can do with that > $item you have in your pocket? You never know..." lol! > > shana > gone crazy, back soon, leave message > ----------------------------------------------------- > Dev Lead > IfThenElse, Lda > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- Dan Knapp -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060726/78626d28/attachment.html From rokicki at gmail.com Wed Jul 26 18:15:56 2006 From: rokicki at gmail.com (Tom Rokicki) Date: Wed Jul 26 18:52:29 2006 Subject: [icfp-discuss] 2D compiler Message-ID: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> Well, I have a Perl script that does: - 2D layout - Automatic dup insertion for vars that are reused - Automatic geometry insertion (no need to specify any directions) from an assembler-type format (which itself is really ugly); here's a typical input: mul(a,b): a0,a1=case(a) E=send[(Inl())](a0) t2=send[(b)](b,a1) b0,b1=case(t2) E=send[(Inl())](b0) t=use mul(a1,b1) E=send[(Inr t)](t) I was in the midst of writing a compiler from Scheme to this assember format when the contest ended. I knew I should have just written it out by hand, but after writing a few small programs by hand and lining up all the boxes and stuff, I just decided I'd rather have fun and write the layout program than fight with an editor. It turns out to have been the wrong choice points-wise. From nickie at softlab.ntua.gr Wed Jul 26 19:33:57 2006 From: nickie at softlab.ntua.gr (Nikolaos S. Papaspyrou) Date: Wed Jul 26 19:34:06 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> Message-ID: <44C7FBE5.4090903@softlab.ntua.gr> Thanks to the organizers is hardly enough. I've never seen anything like this! I wish Karl and the CMU team could organize the ICFPC more frequently... Nikos. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Nikolaos S. Papaspyrou | Tel: +30-210-7723393 National Technical University of Athens | Home: +30-210-7524801 School of Electrical & Computer Engineering | Fax: +30-210-7722519 Software Engineering Laboratory |-=-=-=-=-=-=-=-=-=-=-=-=-=-= 15780 Zografou, Athens, Greece | Happiness is not a state =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-| to arrive at, but a manner Email: nickie@softlab.ntua.gr | of travelling. URL: http://www.softlab.ntua.gr/~nickie/ | --- Margaret Lee Runbeck =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From bruce.hoult at gmail.com Wed Jul 26 19:47:48 2006 From: bruce.hoult at gmail.com (Bruce Hoult) Date: Wed Jul 26 19:47:52 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <2b0051e00607261107y1665fb3cy5b1d215585cede4a@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> <2b0051e00607261107y1665fb3cy5b1d215585cede4a@mail.gmail.com> Message-ID: <391c06200607261647l7465471dh18999211b3443e4e@mail.gmail.com> On 7/27/06, Christophe Poucet wrote: > Personally, > > I think it's very bad taste to criticize something people put so much effort > in. You misunderstand me. The effort was huge. It was amazing. Incredible job by the organisers. I can't believe what they achieved. I had the best 72 hours I will all year and I'll be back next year for sure. > Additionally, I've always found that destructive criticms > helps very little. If you do think there were certain flaws with the contest > there are better ways to bring it. For instance by giving constructive > feedback instead of just whining it wasn't like last year's. Constructive feedback is precisely what I have been giving. Words have meanings, and "constructive" means saying how you think things should or could be. Specifically, I believe that the features that make for a wonderful ICFP contest and make it unique in the world are: - sufficient time and manpower to work on one really hard problem, comparable to real-world tasks. - submitting a program to the judges, and they test it on input not seen by the competitors for completeness and correct behaviour in the face of various edge cases. Fail and you're out. - the final ranking for the surviving entries is determined by how well they solve the problem, which comes down to some combination of how good the algorithm is and how fast the implementation is. There is a lot of scope within this for variation and unique tasks. > To be honest, last year's had very little to do with software engineering at > all. Software engineering is not done in 3 days, at least not more so than > one would have done in any other ICFP contest. You can't throw more people > and hours at it and call it a manmonth. Asserting things doesn't make them true, and I read Brooks before some of the people in the contest were born. It all depends on whether you can break the task down into several parallel streams of development, with not too much communication overhead. This year's contest was trivially parallelizable, and my experience has been that previous ones were quite parallelizable too, at least to the level of 3 - 4 people. 100 people would be silly though, and 10 usually is too, though this year I think I could have made very good use of around 20 people to get a pretty much guaranteed 2nd place. If you find that a team of four peple doesn't get a man month of work done over ICFP then I suggest that your organisational skills are lacking. > P.s: I personally enjoyed the contest a lot. Instead of having a single > problem to solve where it was a luck based thing of you got it or you > didn't, you had a plentitude, making it more interesting as you could shift > from one to the other and then back as you saw fit. I understand how you may think it's luck, but if you look at previous results many of the same teams do well again and again -- there are teams that have been in in the top 10% of entries almost every time and there are teams that have won three or four prizes in the last five years. They can't possibly be experts in the subject matter of *every* contest. I enjoyed the contest a lot. A great way to spend 72 hours, and I look forward to it every year. I just think it could be *better*, that is all, and I have quite specific ways in which I think it could be better and am enumerating them. That's called being constructive. Your asserting otherwise doesn't make it so. I'm not going to post again. I've made my point and those who are likely to ever understand it already have. From ganesh at earth.li Wed Jul 26 20:02:47 2006 From: ganesh at earth.li (Ganesh Sittampalam) Date: Wed Jul 26 20:02:54 2006 Subject: [icfp-discuss] Grats to the organizers In-Reply-To: <391c06200607261647l7465471dh18999211b3443e4e@mail.gmail.com> References: <072620061425.12160.44C77B740004B78800002F802207003201CAC9020E039D0A0906@comcast.net> <391c06200607260752p5f91735dv6cc72c1da0370a88@mail.gmail.com> <2b0051e00607261107y1665fb3cy5b1d215585cede4a@mail.gmail.com> <391c06200607261647l7465471dh18999211b3443e4e@mail.gmail.com> Message-ID: On Thu, 27 Jul 2006, Bruce Hoult wrote: >> P.s: I personally enjoyed the contest a lot. Instead of having a single >> problem to solve where it was a luck based thing of you got it or you >> didn't, you had a plentitude, making it more interesting as you could shift >> from one to the other and then back as you saw fit. > > I understand how you may think it's luck, but if you look at previous > results many of the same teams do well again and again -- there are > teams that have been in in the top 10% of entries almost every time There generally tends to be a very long tail in ICFP contests. I think almost all teams of three or four good programmers experienced in their (mainstream) language of choice and willing to commit for the entire three days would be in the top 10%. > and there are teams that have won three or four prizes in the last > five years. They can't possibly be experts in the subject matter of > *every* contest. It's not a question of being an expert, but of finding the heuristic or strategy or whatever that works that little bit better than everyone else's. The best teams put themselves within reach of that point time and time again, but it still takes a bit of luck too. Cheers, Ganesh From ganesh at earth.li Wed Jul 26 20:19:25 2006 From: ganesh at earth.li (Ganesh Sittampalam) Date: Wed Jul 26 20:19:29 2006 Subject: [icfp-discuss] some more comments about the contest Message-ID: I'd like to provide a bit more explanation of why I personally thought this was a really good contest. Firstly, as one of the organisers mentioned, it's a programming contest, not a programming language contest. Of course, there's always been an element of competition between languages as well as teams, but there was ample scope for people to use their favourite languages in appropriate places. This brings me on to my main point. I thought the contest was a great example of what, for me, programming is all about, namely a tool for solving problems. And for different kinds of problems, different tools were appropriate; it seems most people (including us) found C/C++ best for the simulator, whereas for problems like BLACK a higher-level language was probably better. And for other problems we had to quickly get to grips with entirely new kinds of languages and understand what we could and couldn't do in them. And in some cases, it turned out that the best way to solve the problem was _not_ to write a program, so we always had to think about whether or not we should do. Normally ICFP contests can't have a problem that is reasonably susceptible to a "perfect" solution, because there's too much risk that several people will get that. By creating so many problems, the organisers neatly avoided that issue - it wasn't all that hard to get a perfect score on any one problem (with the possible exception of the ones where smaller solutions were worth a few more points), but only an extremely good team of 4 would have been able to get perfect scores on _all_ the puzzles in the time available. So, thanks once again to the organisers for all their ingenuity and hard work. I look forward to seeing what next year throws up! Cheers, Ganesh From joshua at reverberate.org Thu Jul 27 00:25:41 2006 From: joshua at reverberate.org (Joshua Haberman) Date: Thu Jul 27 00:29:08 2006 Subject: [icfp-discuss] any way to submit publications now? Message-ID: <4B12AFE6-94E3-4E3E-B413-C25F5BFF5BEB@reverberate.org> I didn't hear about the contest until it was over, but I'm having lots of fun working through it anyway. Even though I can't compete, it would still be fun to submit publications and keep track of how many points I have. Could be a way to submit publications and accumulate a score, in a way that is clearly separate from the people who competed while the contest was actually open? Josh From rokicki at gmail.com Thu Jul 27 00:33:34 2006 From: rokicki at gmail.com (Tom Rokicki) Date: Thu Jul 27 00:33:42 2006 Subject: [icfp-discuss] root account Message-ID: <2b80cd370607262133y14247fc7ld5e646bd33dcc7ad@mail.gmail.com> did anyone else see this file? ICFP Programming Contest 2006 Codename: Homework 7 CAST (in reverse order of disappearance) Cult Leader..............................................Tom Murphy VII Robot Psychologist....................................Daniel Spoonhower Chief Parser...........................................Chris Casinghino Point Cutter.................................................Dan Licata Trapeze Artist..............................................Ruy Leywild Embedded Systems Designer....................................Adam Goode Ant Brain.................................................William Lovas First Reporter..............................................Jake Donham Awkward Programmer......................................Noam Zeilberger Perl Harborer................................................Jason Reed Lead Archaeolinguist.....................................Harry Q. Bovik With Studio Producer..............................................Karl Crary And ;Managing Editor..........................................Robert Harper Special Thanks To Alexander the Great......................................Sridhar Ramesh Knight Errant...........................................Spencer Whitman Alexander the Lesser......................................Susmit Sarkar John Philip Sousa.........................................Akiva Leffert Graduate Student.........................................Zessa Birbaslo Graduate Student (Understudy)..............................Grol Blirtri Computational Archaeolinguist (Understudy)..........................YOU From andy_zyx at yahoo.com Thu Jul 27 00:57:31 2006 From: andy_zyx at yahoo.com (Andy) Date: Thu Jul 27 00:57:33 2006 Subject: [icfp-discuss] root account In-Reply-To: <2b80cd370607262133y14247fc7ld5e646bd33dcc7ad@mail.gmail.com> Message-ID: <20060727045731.93423.qmail@web50711.mail.yahoo.com> I thought probably the cult leader was Karl Crary. :) > Point Cutter : Dan Licata - point cutter ?????????? > Awkward Programmer : Noam Zeilberger - this is fine, being one, I could comprehend. --- Tom Rokicki wrote: > did anyone else see this file? > > > ICFP Programming Contest 2006 > Codename: Homework 7 > > > CAST > > (in reverse order of disappearance) > > Cult Leader..............................................Tom Murphy VII > > Robot Psychologist....................................Daniel Spoonhower > > Chief Parser...........................................Chris Casinghino > > Point Cutter.................................................Dan Licata > > Trapeze Artist..............................................Ruy Leywild > > Embedded Systems Designer....................................Adam Goode > > Ant Brain.................................................William Lovas > > First Reporter..............................................Jake Donham > > Awkward Programmer......................................Noam Zeilberger > > Perl Harborer................................................Jason Reed > > Lead Archaeolinguist.....................................Harry Q. Bovik > > With > Studio Producer..............................................Karl Crary > > And > ;Managing Editor..........................................Robert Harper > > > > Special Thanks To > > Alexander the Great......................................Sridhar Ramesh > > Knight Errant...........................................Spencer Whitman > > Alexander the Lesser......................................Susmit Sarkar > > John Philip Sousa.........................................Akiva Leffert > > Graduate Student.........................................Zessa Birbaslo > > Graduate Student (Understudy)..............................Grol Blirtri > > Computational Archaeolinguist (Understudy)..........................YOU > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From peter.dettman at iinet.net.au Thu Jul 27 03:43:00 2006 From: peter.dettman at iinet.net.au (Peter Dettman) Date: Thu Jul 27 03:43:03 2006 Subject: [icfp-discuss] Re: xml.adv to get more than 163 points ? Message-ID: <44C86E84.7020309@iinet.net.au> Hi Cyril, If you reverse these two lines (so as to exclude Seq/Seq first): Seq ( Tag q x) (R (Tag q y)) => SNF(Tag q (Seq x y)); Seq (Seq x y) (R z) => SNF (Seq x (Seq y z)) ; Then you can contract the "Tag q", since the rules are followed in order i.e. Seq (Seq x y) (R z) => SNF (Seq x (Seq y z)) ; Seq (tq x) (R (tq y)) => SNF(tq (Seq x y)); This gets you down to size 156, but no more points :( Pete. ------------------ Since I posted my solutions for xml.adv and arith.adv, I found some shortcuts in xml.adv and reduced its size from 172 to 164 ... However I still get 163 points... (NB here is my new code form xml.adv " SNF (f x y) => f (SNF x) y; SNF x => R x; Tag q (R (Tag q t)) => R (Tag q t); Tag Maj (R (Tag q d)) => Tag q (SNF (Tag Maj d)); Tag Emph (R (Tag Bold d)) => Tag Bold (SNF (Tag Emph d)); Seq ( Tag q x) (R (Tag q y)) => SNF(Tag q (Seq x y)); Seq (Seq x y) (R z) => SNF (Seq x (Seq y z)) ; f (R t) => R (f t); (R f) y=> f (SNF y); R x => x;. ") -- Cyril Cohen From cyril.cohen at gmail.com Thu Jul 27 04:29:02 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Thu Jul 27 04:29:05 2006 Subject: [icfp-discuss] any way to submit publications now? In-Reply-To: <4B12AFE6-94E3-4E3E-B413-C25F5BFF5BEB@reverberate.org> References: <4B12AFE6-94E3-4E3E-B413-C25F5BFF5BEB@reverberate.org> Message-ID: <710af3c70607270129h62ed9493s673c550ba922afa1@mail.gmail.com> 2006/7/27, Joshua Haberman : > I didn't hear about the contest until it was over, but I'm having > lots of fun working through it anyway. Even though I can't compete, > it would still be fun to submit publications and keep track of how > many points I have. > > Could be a way to submit publications and accumulate a score, in a > way that is clearly separate from the people who competed while the > contest was actually open? > > Josh In the home of user "ftd" there is a program named "icfp.exe" which takes a newline-separated list of publication and returns the sum of points you got. -- Cyril Cohen From cyril.cohen at gmail.com Thu Jul 27 04:33:00 2006 From: cyril.cohen at gmail.com (Cyril Cohen) Date: Thu Jul 27 04:33:04 2006 Subject: [icfp-discuss] Re: xml.adv to get more than 163 points ? In-Reply-To: <44C86E84.7020309@iinet.net.au> References: <44C86E84.7020309@iinet.net.au> Message-ID: <710af3c70607270133pde0af68h40637b20fc6d7e68@mail.gmail.com> 2006/7/27, Peter Dettman : > Hi Cyril, > > If you reverse these two lines (so as to exclude Seq/Seq first): > Seq ( Tag q x) (R (Tag q y)) => SNF(Tag q (Seq x y)); > Seq (Seq x y) (R z) => SNF (Seq x (Seq y z)) ; > > Then you can contract the "Tag q", since the rules are followed in > order i.e. > Seq (Seq x y) (R z) => SNF (Seq x (Seq y z)) ; > Seq (tq x) (R (tq y)) => SNF(tq (Seq x y)); > > This gets you down to size 156, but no more points :( Thanks for the tip ... I spent a lot of time trying to reduce the size of these files juste because I always got the message : "However they would be more interrested if your advice was pittier ..." And now I discover it was useless :-P -- Cyril Cohen From Alain.Frisch at inria.fr Thu Jul 27 07:12:45 2006 From: Alain.Frisch at inria.fr (Alain Frisch) Date: Thu Jul 27 07:13:10 2006 Subject: [icfp-discuss] The CamlNuggets' writeup In-Reply-To: <44C7A218.30900@cis.upenn.edu> References: <20060726093607.GV8431@tux-chan> <20060726162948.GB25276@tux-chan> <8CF44956-C856-4408-8446-1166DAE689CD@grayproductions.net> <44C7A218.30900@cis.upenn.edu> Message-ID: <44C89FAD.6020507@inria.fr> Geoffrey Alan Washburn wrote: > James Edward Gray II wrote: >> It would be a lot of fun to ask people to write 2D compilers and the >> like, if allowed. ;) > > Speaking of which, did anyone do this? My team thought about it a > few times but decided to go after what seemed to be lowering hanging > fruit than writing an ASCII graph layout engine for just the ray tracing > problem. We wrote a compiler from a very limited fragment of ML into 2d. The compiler and the rendering engine are both very naive, though, as we didn't have time to implement any interesting optimization. See our writeup at: http://yquem.inria.fr/~frisch/icfp06_contest/ -- Alain (CamlNuggets teams) From johannes at albapasser.de Thu Jul 27 08:06:37 2006 From: johannes at albapasser.de (Johannes) Date: Thu Jul 27 08:06:44 2006 Subject: [icfp-discuss] plinko Message-ID: <44C8AC4D.4070807@albapasser.de> Well that was a fun contest! Regarding the Plinko puzzle: does anyone have a theory as to exactly *what* plink sequences are realizable (for the identical permutation, i. e. after the bubblesort) Obviously, it is enough to consider blocks of adjacent nonzero entries, and each nonempty such block must have length > 1 and even sum. But that's not all. I looked through TAOCP 4(Fasc. 3) "Generating All Combinations and Partitions" but could not find the problem. (Though it very much looks like it should be in there :-) Any comment from the organizers on this problem's sources? BTW, here are my solutions: http://dfa.imn.htwk-leipzig.de/~waldmann/icfp06/plink/ 100 lines: 157 200 lines: 422 300 lines: 630 400 lines: 708 500 lines: 833 I applied some compression but I see they are not quite optimal. From Alain.Frisch at inria.fr Thu Jul 27 08:39:13 2006 From: Alain.Frisch at inria.fr (Alain Frisch) Date: Thu Jul 27 08:39:39 2006 Subject: [icfp-discuss] plinko In-Reply-To: <44C8AC4D.4070807@albapasser.de> References: <44C8AC4D.4070807@albapasser.de> Message-ID: <44C8B3F1.3070604@inria.fr> Johannes wrote: > Regarding the Plinko puzzle: does anyone have a theory > as to exactly *what* plink sequences are realizable > (for the identical permutation, i. e. after the bubblesort) I guess you know that, be some puzzles do have solutions, but you can't decompose any solution as a sequence of a bubblesort and a solution starting from an identical permutation. E.g. consider the puzzle 0 -> (1,1) 1 -> (2,2) 2 -> (0,1) The bubble sort would give you the sequence of plinks: (1, 0, 1) which has no solution, but the original puzzle can be solved like this: |>< |>< |>< ><| All the puzzles in the contest had a lot of plinks, so this problem did not appear and it was indeed possible to first bubble sort the wires and then start from the identical permutation. That's what our team's solver does. (See http://yquem.inria.fr/~frisch/icfp06_contest.) Another approach is to use the fact that two wires had been made adjacent at some point during the bubblesort, which makes it possible to add plinks to these two wires. That's the technique used by the Caml Riders (http://www.lri.fr/~filliatr/icfp-2006/). Cheers, Alain From windenntw at gmail.com Thu Jul 27 11:25:29 2006 From: windenntw at gmail.com (Antonio Vargas) Date: Thu Jul 27 11:25:37 2006 Subject: [icfp-discuss] 2D compiler In-Reply-To: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> Message-ID: <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> On 7/27/06, Tom Rokicki wrote: > Well, I have a Perl script that does: > > - 2D layout > - Automatic dup insertion for vars that are reused > - Automatic geometry insertion (no need to specify any directions) > > from an assembler-type format (which itself is really ugly); > here's a typical input: > > mul(a,b): > a0,a1=case(a) > E=send[(Inl())](a0) > t2=send[(b)](b,a1) > b0,b1=case(t2) > E=send[(Inl())](b0) > t=use mul(a1,b1) > E=send[(Inr t)](t) > > I was in the midst of writing a compiler from Scheme to this > assember format when the contest ended. > > I knew I should have just written it out by hand, but after > writing a few small programs by hand and lining up all the > boxes and stuff, I just decided I'd rather have fun and write > the layout program than fight with an editor. > > It turns out to have been the wrong choice points-wise. but you did have fun writing it? -- Greetz, Antonio Vargas aka winden of network http://network.amigascne.org/ windNOenSPAMntw@gmail.com thesameasabove@amigascne.org Every day, every year you have to work you have to study you have to scene. From niklas.broberg at gmail.com Thu Jul 27 11:41:06 2006 From: niklas.broberg at gmail.com (Niklas Broberg) Date: Thu Jul 27 11:41:09 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: Decided to run SANDmark with our Haskell implementation. It didn't take more than 3:09:03.49... /Niklas On 7/24/06, Niklas Broberg wrote: > We did have a working (ahem) implementation in Haskell. Where by > working we mean one that does the correct things. Certainly not one > that was fast. We did implement a C interpreter, while waiting for the > Haskell one to decrypt and decompress the UM... ;-) > > But in Haskell's defense, it was great for prototyping. It didn't take > too long, and the C implementation was easy to write afterwards. :-) > > /Niklas > > On 7/24/06, Rob Hunter wrote: > > I'm curious about which high-level languages that teams used to > > successfully implement the UM. We eventually resorted to C after a > > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > > > Thanks for any info on the matter. And thanks organizers, for a > > wonderful contest! > > > > --rob > > _______________________________________________ > > icfpcontest-discuss mailing list > > icfpcontest-discuss@lists.andrew.cmu.edu > > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > From dklein at dmk.dyndns.org Thu Jul 27 11:45:43 2006 From: dklein at dmk.dyndns.org (Daniel M. Klein) Date: Thu Jul 27 11:45:55 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: <44C8DFA7.80703@dmk.dyndns.org> I kinda did the same thing with a Perl implementation... had it running while remembering that realloc gives you a new pointer back instead of just magically fixing up memory (d'oh!). Perl UM works == yes Perl UM works fast enough == not exactly Regards, DMK Niklas Broberg wrote: > Decided to run SANDmark with our Haskell implementation. It didn't > take more than 3:09:03.49... > > /Niklas > > On 7/24/06, Niklas Broberg wrote: >> We did have a working (ahem) implementation in Haskell. Where by >> working we mean one that does the correct things. Certainly not one >> that was fast. We did implement a C interpreter, while waiting for the >> Haskell one to decrypt and decompress the UM... ;-) >> >> But in Haskell's defense, it was great for prototyping. It didn't take >> too long, and the C implementation was easy to write afterwards. :-) >> >> /Niklas >> >> On 7/24/06, Rob Hunter wrote: >> > I'm curious about which high-level languages that teams used to >> > successfully implement the UM. We eventually resorted to C after a >> > very extended attempt with Kawa (a Scheme to Java byte code compiler). >> > >> > Thanks for any info on the matter. And thanks organizers, for a >> > wonderful contest! >> > >> > --rob >> > _______________________________________________ >> > icfpcontest-discuss mailing list >> > icfpcontest-discuss@lists.andrew.cmu.edu >> > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss >> > >> > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss From rokicki at gmail.com Thu Jul 27 12:05:12 2006 From: rokicki at gmail.com (Tom Rokicki) Date: Thu Jul 27 12:05:15 2006 Subject: [icfp-discuss] 2D compiler In-Reply-To: <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> Message-ID: <2b80cd370607270905m4639524fn74b16e3806279fc4@mail.gmail.com> That's a most excellent point. Writing the 2D layout thingie, even though it's incredibly naive, was a tremendous blast. I want to second all the thanks and congratulations to the organizing team. They have been incredibly quiet on the list; I wonder if they are expecting us to figure out all the rest (including the language they wrote all the programs in!) ourselves, based on what we have. There are some very intriguing hints in files in the root account that lead me to think there is a depth here that we have not yet glimpsed, and perhaps they don't want to spoil our fun until the announcement. On 7/27/06, Antonio Vargas wrote: > On 7/27/06, Tom Rokicki wrote: > > Well, I have a Perl script that does: > > > > - 2D layout > > - Automatic dup insertion for vars that are reused > > - Automatic geometry insertion (no need to specify any directions) > > > > from an assembler-type format (which itself is really ugly); > > here's a typical input: > > > > mul(a,b): > > a0,a1=case(a) > > E=send[(Inl())](a0) > > t2=send[(b)](b,a1) > > b0,b1=case(t2) > > E=send[(Inl())](b0) > > t=use mul(a1,b1) > > E=send[(Inr t)](t) > > > > I was in the midst of writing a compiler from Scheme to this > > assember format when the contest ended. > > > > I knew I should have just written it out by hand, but after > > writing a few small programs by hand and lining up all the > > boxes and stuff, I just decided I'd rather have fun and write > > the layout program than fight with an editor. > > > > It turns out to have been the wrong choice points-wise. > > but you did have fun writing it? > > -- > Greetz, Antonio Vargas aka winden of network > > http://network.amigascne.org/ > windNOenSPAMntw@gmail.com > thesameasabove@amigascne.org > > Every day, every year > you have to work > you have to study > you have to scene. > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From marcin.mucha at gmail.com Thu Jul 27 12:09:02 2006 From: marcin.mucha at gmail.com (Marcin Mucha) Date: Thu Jul 27 12:09:06 2006 Subject: [icfp-discuss] Re: icfpcontest-discuss Digest, Vol 1, Issue 89 In-Reply-To: <200607271239.k6RCdu43013181@lists2.andrew.cmu.edu> References: <200607271239.k6RCdu43013181@lists2.andrew.cmu.edu> Message-ID: <8a623fa10607270909u227c7de2p20a08093db5e7c8a@mail.gmail.com> Caml Riders later use brute force which apparently works, but actually what you get is an instance of f-matching problem. You have a bunch of vertices (pipes) connected by edges (if they are ever neighbours in the bubblsort solution) and each of the vertices has a plink demand. Now, you want to select a multiset of edges (meaning you can select any edge how many times you want), so that the number of selected edges neighbouring a given vertex equal its demand. Then you simply perform the double swaps corresponding to selected edges. The f-matching problem can be solved in poly time by reducing to the perfect matching problem (by vertex duplication), which is what we did. However large demands (e.g. >= 100) can kill you cause then you gonna have 500*100 vertices, so we also did some initial swapping to get the demands down to reasonable values (around 30). Marcin (THETeam) > Johannes wrote: > > Regarding the Plinko puzzle: does anyone have a theory > > as to exactly *what* plink sequences are realizable > > (for the identical permutation, i. e. after the bubblesort) > > I guess you know that, be some puzzles do have solutions, but you can't > decompose any solution as a sequence of a bubblesort and a solution > starting from an identical permutation. > > E.g. consider the puzzle > 0 -> (1,1) > 1 -> (2,2) > 2 -> (0,1) > > The bubble sort would give you the sequence of plinks: (1, 0, 1) which > has no solution, but the original puzzle can be solved like this: > > |>< > |>< > |>< > ><| > > All the puzzles in the contest had a lot of plinks, so this problem did > not appear and it was indeed possible to first bubble sort the wires and > then start from the identical permutation. That's what our team's solver > does. (See http://yquem.inria.fr/~frisch/icfp06_contest.) > > Another approach is to use the fact that two wires had been made > adjacent at some point during the bubblesort, which makes it possible > to add plinks to these two wires. That's the technique used by the Caml > Riders (http://www.lri.fr/~filliatr/icfp-2006/). > > > Cheers, > > Alain > > > ------------------------------ > > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > > > End of icfpcontest-discuss Digest, Vol 1, Issue 89 > ************************************************** > From spencerjanssen at gmail.com Thu Jul 27 12:28:44 2006 From: spencerjanssen at gmail.com (Spencer Janssen) Date: Thu Jul 27 12:28:46 2006 Subject: [icfp-discuss] Highest level language with a successful impl of UM? In-Reply-To: References: Message-ID: <3a9962070607270928s60573699se73abed2ab8e4ba5@mail.gmail.com> My UM written in Haskell completes sandmark in about 4 minutes on a 3.20GHz Pentium 4. Still not as fast as C, but not too shabby either. Cheers, Spencer Janssen On 7/24/06, Rob Hunter wrote: > I'm curious about which high-level languages that teams used to > successfully implement the UM. We eventually resorted to C after a > very extended attempt with Kawa (a Scheme to Java byte code compiler). > > Thanks for any info on the matter. And thanks organizers, for a > wonderful contest! > > --rob > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > From henning at makholm.net Thu Jul 27 12:29:11 2006 From: henning at makholm.net (Henning Makholm) Date: Thu Jul 27 12:41:13 2006 Subject: [icfp-discuss] BLACK solvers In-Reply-To: <8a623fa10607270909u227c7de2p20a08093db5e7c8a@mail.gmail.com> (Marcin Mucha's message of "Thu, 27 Jul 2006 18:09:02 +0200") References: <200607271239.k6RCdu43013181@lists2.andrew.cmu.edu> <8a623fa10607270909u227c7de2p20a08093db5e7c8a@mail.gmail.com> Message-ID: <87psfrau5k.fsf_-_@kreon.lan.henning.makholm.net> Scripsit "Marcin Mucha" > Caml Riders later use brute force which apparently works, but actually > what you get is an instance of f-matching problem. You have a bunch of > vertices (pipes) connected by edges (if they are ever neighbours in > the bubblsort solution) and each of the vertices has a plink demand. It works for the problems in the context, but I doubt that their solution can reproduce the behavior of ||||><| |||><|| ||><||| ||><||| |><|||| ><||||| where a naive greedy bubblesort might produce |><|>< ><|><| and the only two pipes with additional plinks are never neighbors. They _can_ be made neighbors by sliding part of the sorting network vertically, but then 1 and 3 would never be neighbours, and your mathing problem would need to deal with sets of mutually exclusive edges. (For the record, my solver would not be able to handle this situation either). It also does not handle problems of the shape |>< ><| ><| |>< where the final permutation is the identity, but double-plinking between immediate neighours is not sufficient. (Our solution does handle this case). -- Henning Makholm "What has it got in its pocketses?" From henning at makholm.net Thu Jul 27 12:32:01 2006 From: henning at makholm.net (Henning Makholm) Date: Thu Jul 27 12:41:13 2006 Subject: [icfp-discuss] How small can the raytracer be? In-Reply-To: <2b80cd370607270905m4639524fn74b16e3806279fc4@mail.gmail.com> (Tom Rokicki's message of "Thu, 27 Jul 2006 09:05:12 -0700") References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> <2b80cd370607270905m4639524fn74b16e3806279fc4@mail.gmail.com> Message-ID: <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> Scripsit "Tom Rokicki" > That's a most excellent point. Writing the 2D layout thingie, > even though it's incredibly naive, was a tremendous blast. Speaking of 2D layout, who has the smallest raytracer? Here is Expansion's - 79 x 66 characters: ,.................|..................,,......................................., :M *=============*| *===============*::I *=============*+--+ *===============*: :+>!case W of E,S!#>!send[(Inl(),E)]!--->!case W of S,E!#--#>!send[(Inr(),E)]!- :| *=============*| *===============*:: *=============*| v *===============*: :+----#-----------+ :: | *=====*| *==================*: : | :: | +>!use I!#>!send[(Inl(N,W),E)]!- : | *=================* :: v ++*=====*| *==================*: --+ +>!send[(W,S),(W,E)]!+ ::*=======*| +--------------------+: : v *=================*v ::!split N!+ *=====* |: :*=============*| *===============*::*=======* +>!use i!-+ |: :!case N of E,S!#-->!send[(Inl(),E)]!-:++*=======* | *=====* v |: :*=============*v *===============*::+>!split W!--+ | *===============*|: : | *=====* *===============*:: *=======* +-----#>!send[((W,N),E)]!+: : +--->!use M!->!send[(Inr W,E)]!-: +---------+ *===============* : : *=====* *===============*:,......................................., ,...................................., ,................, ,...|................................,,.....................,:T : :A | *=================* ::i *=============* :: *=====* : --+ +>!send[(W,S),(W,E)]!+ :-->!case W of E,S!-+ :->!use Q!+ : : v *=================*v :: *=============* v :: *=====*v : :*=============*| *===========* :: |*===============*:: *=======* : :!case N of E,S!#->!send[(N,E)]!------: |!send[(Inl(),E)]!-: !split N!+ : :*=============*v *===========* :: v*===============*:: *=======*v : : | *=====* *===============*::*===================*:: ++*===========*: : +---->!use A!->!send[(Inr W,E)]!-:!send[(Inr Inl(),E)]!-: +>!send[(N,E)]!- : *=====* *===============*::*===================*:: *===========*: ,....................................,,.....................,,................, ,.....|......................................................................., :main | *=====* *=====* *=====* *=====* *=====* *=====* *=====* *=====*: : +>!use I!->!use T!->!use T!->!use T!->!use T!->!use T!->!use Q!->!use F!- : *=====* *=====* *=====* *=====* *=====* *=====* *=====* *=====*: ,............................................................................., ,.....................................|....................................., :S *=======* *=============* | *=================* : -->!split W!----->!case W of E,S!--+ +>!send[(W,S),(W,E)]!+ : : *=======* *=============* v *=================*v +---+: : ++*=================*| *===========* | *=======================*| |: : +>!send[(W,S),(W,E)]!#--->!send[(W,E)]!-#->!send[((N,(W,Inr N)),E)]!#---#- : *=================*| *===========* | *=======================*v |: :+-------------------+ +#------------------#-+ *=====* |: :| *=================* || *=======*+------+ | +----------------->!use A!+ |: :+>!send[(W,S),(W,E)]!-+|+>!split W!#----+ +-#+ *=====*v |: : *=================*+-#+ *=======*v v || *=======================*|: : | *=======* ++ v | *=====* *=====*|+>!send[((N,(W,Inl())),E)]!#- : +>!split W!---+*=====*+>!use M!->!use A!+ *=======================*|: : *=======*+-->!use M!-+*=====* *=====* |: : +----+ *=====* +--------------------------------------------+: ,..........................................................................., ,..|.......................................,,............................., :L | *=================*+----+ +--+::Q *=======================* : : +>!send[(W,S),(W,E)]!+ v | |:: !send[((Inl(),Inr()),E)]!+ : : *=================* *===========* | |:: *=======================*v : : *=============*| +>!send[(N,E)]!-#--#-: *=====*: ->!case W of S,E!#-----+ *===========* v |:---------------------->!use L!- : *=============*| +-----+ *=====* |:: *=====*: : ++*=======* |+#-----#------->!use L!-#-,............................., : +>!split W!----#+| v *=====* |:,.........................., : *=======* v | *==================*|::F *=======* +-----+: : | *=======*|+>!send[(Inl(W,N),S)]!|:-->!split W!-+ v |: : | !split N!+| *==================*|:: *=======* | *=====* |: :+---+ ++*=======* ++ | |:: +--#->!use M!---#- :| v+-+*=======*| v |:: v *=====* |: :| *=====*+>!split W!+ *===============* |::*=======================*|: :+>!use S!+ *=======* +>!send[((W,N),E)]!-+::!send[(Inr Inr Inl(),E)]!+: : *=====* +--+ *===============* ::*=======================* : ,..........................................,,.........................., -- Henning Makholm "... and that Greek, Thucydides" From mfp at acm.org Thu Jul 27 16:41:30 2006 From: mfp at acm.org (Mauricio Fernandez) Date: Thu Jul 27 16:41:35 2006 Subject: [icfp-discuss] Re: Legal status; OK to reuse the problems? In-Reply-To: References: <20060726162948.GB25276@tux-chan> Message-ID: <20060727204130.GE25276@tux-chan> On Wed, Jul 26, 2006 at 02:09:08PM -0400, Tom Murphy wrote: > We plan to release the source code and tools under a permissive free > license after ICFP in September. In the meantime you can feel free to > reuse the problems for other purposes; we would appreciate credit if you > do so. That's great news! The Cult will receive its well deserved praise ;) Thank you again. -- Mauricio Fernandez - http://eigenclass.org - singular Ruby From bookeldor.lists at gmail.com Thu Jul 27 18:49:11 2006 From: bookeldor.lists at gmail.com (Benjamin Canou) Date: Thu Jul 27 18:49:14 2006 Subject: [icfp-discuss] PLOP team writeup Message-ID: if someone is interested in seeing our conclusions, here is the url. http://bookeldor-net.info/plop/ Please note that our UM works only on LE machines but I'll fix that soon. Cheers -- The PLOP Team From icfp at jdev.users.panix.com Thu Jul 27 19:16:37 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Thu Jul 27 19:16:38 2006 Subject: [icfp-discuss] 2D compiler In-Reply-To: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> Message-ID: <20060727231637.GA8613@panix.com> On Wed, Jul 26, 2006 at 03:15:56PM -0700, Tom Rokicki wrote: > > I knew I should have just written it out by hand, but after > writing a few small programs by hand and lining up all the > boxes and stuff, I just decided I'd rather have fun and write > the layout program than fight with an editor. Whereas I decided I'd rather have fun and wire up the boxes by hand in nvi than fight with trying to write a generator. To each their own, and all that. -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From icfp at jdev.users.panix.com Thu Jul 27 19:29:26 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Thu Jul 27 19:29:28 2006 Subject: [icfp-discuss] How small can the raytracer be? In-Reply-To: <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> <2b80cd370607270905m4639524fn74b16e3806279fc4@mail.gmail.com> <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> Message-ID: <20060727232926.GB8613@panix.com> On Thu, Jul 27, 2006 at 06:32:01PM +0200, Henning Makholm wrote: > Scripsit "Tom Rokicki" > > > That's a most excellent point. Writing the 2D layout thingie, > > even though it's incredibly naive, was a tremendous blast. > > Speaking of 2D layout, who has the smallest raytracer? Here is > Expansion's - 79 x 66 characters: > > ,.................|..................,,......................................., > :M *=============*| *===============*::I *=============*+--+ *===============*: [...] Somehow, I managed not to realize that I could put boxes next to each other like that. So, I wound up with 54x157, with everything stacked along the left margin (and my optimization attention focused on the width of the widest and height of the smaller). That, and a couple of my boxes should probably have had their N/W inputs the other way around for more harmonious layout, but by the time I realized that it was too late to go back and change things. -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From aguilar.james at gmail.com Thu Jul 27 19:34:54 2006 From: aguilar.james at gmail.com (James Aguilar) Date: Thu Jul 27 19:34:57 2006 Subject: [icfp-discuss] How small can the raytracer be? In-Reply-To: <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> <2b80cd370607270905m4639524fn74b16e3806279fc4@mail.gmail.com> <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> Message-ID: That's beautiful. On 7/27/06, Henning Makholm wrote: > > Scripsit "Tom Rokicki" > > > That's a most excellent point. Writing the 2D layout thingie, > > even though it's incredibly naive, was a tremendous blast. > > Speaking of 2D layout, who has the smallest raytracer? Here is > Expansion's - 79 x 66 characters: > > > ,.................|..................,,......................................., > :M *=============*| *===============*::I *=============*+--+ > *===============*: > :+>!case W of E,S!#>!send[(Inl(),E)]!--->!case W of > S,E!#--#>!send[(Inr(),E)]!- > :| *=============*| *===============*:: *=============*| v > *===============*: > :+----#-----------+ :: | *=====*| > *==================*: > : | :: | +>!use > I!#>!send[(Inl(N,W),E)]!- > : | *=================* :: v ++*=====*| > *==================*: > --+ +>!send[(W,S),(W,E)]!+ ::*=======*| > +--------------------+: > : v *=================*v ::!split N!+ > *=====* |: > :*=============*| *===============*::*=======* +>!use > i!-+ |: > :!case N of E,S!#-->!send[(Inl(),E)]!-:++*=======* | *=====* > v |: > :*=============*v *===============*::+>!split W!--+ | > *===============*|: > : > | *=====* *===============*:: *=======* +-----#>!send[((W,N),E)]!+: > : +--->!use M!->!send[(Inr W,E)]!-: +---------+ > *===============* : > > : *=====* *===============*:,......................................., > ,...................................., > ,................, > ,...|................................,,.....................,:T > : > :A | *=================* ::i *=============* :: > *=====* : > --+ +>!send[(W,S),(W,E)]!+ :-->!case W of E,S!-+ :->!use > Q!+ : > : v *=================*v :: *=============* v :: > *=====*v : > :*=============*| *===========* :: |*===============*:: > *=======* : > :!case N of E,S!#->!send[(N,E)]!------: |!send[(Inl(),E)]!-: !split > N!+ : > :*=============*v *===========* :: v*===============*:: > *=======*v : > : | *=====* *===============*::*===================*:: > ++*===========*: > : +---->!use A!->!send[(Inr W,E)]!-:!send[(Inr Inl(),E)]!-: > +>!send[(N,E)]!- > : *=====* *===============*::*===================*:: > *===========*: > > ,....................................,,.....................,,................, > > ,.....|......................................................................., > :main | > *=====* *=====* *=====* *=====* *=====* *=====* *=====* *=====*: > : +>!use I!->!use T!->!use T!->!use T!->!use T!->!use T!->!use > Q!->!use F!- > : > *=====* *=====* *=====* *=====* *=====* *=====* *=====* *=====*: > > ,............................................................................., > > ,.....................................|....................................., > :S *=======* *=============* | > *=================* : > -->!split W!----->!case W of > E,S!--+ +>!send[(W,S),(W,E)]!+ : > : *=======* *=============* v *=================*v > +---+: > : ++*=================*| *===========* | *=======================*| > |: > : +>!send[(W,S),(W,E)]!#--->!send[(W,E)]!-#->!send[((N,(W,Inr > N)),E)]!#---#- > : *=================*| *===========* | *=======================*v > |: > :+-------------------+ > +#------------------#-+ *=====* |: > :| *=================* || *=======*+------+ | +----------------->!use A!+ > |: > :+>!send[(W,S),(W,E)]!-+|+>!split W!#----+ +-#+ *=====*v > |: > : *=================*+-#+ *=======*v v || > *=======================*|: > : | *=======* ++ v | > *=====* *=====*|+>!send[((N,(W,Inl())),E)]!#- > : +>!split W!---+*=====*+>!use M!->!use > A!+ *=======================*|: > : *=======*+-->!use > M!-+*=====* *=====* |: > : +----+ *=====* > +--------------------------------------------+: > > ,..........................................................................., > > ,..|.......................................,,............................., > :L | *=================*+----+ +--+::Q > *=======================* : > : +>!send[(W,S),(W,E)]!+ v | |:: !send[((Inl(),Inr()),E)]!+ > : > : *=================* *===========* | |:: *=======================*v > : > : *=============*| > +>!send[(N,E)]!-#--#-: *=====*: > ->!case W of S,E!#-----+ *===========* v |:---------------------->!use > L!- > : *=============*| +-----+ *=====* > |:: *=====*: > : ++*=======* |+#-----#------->!use > L!-#-,............................., > : +>!split W!----#+| v *=====* |:,.........................., > : *=======* v | *==================*|::F *=======* +-----+: > : | *=======*|+>!send[(Inl(W,N),S)]!|:-->!split W!-+ v |: > : | !split N!+| *==================*|:: *=======* | *=====* |: > :+---+ ++*=======* ++ | |:: +--#->!use M!---#- > :| v+-+*=======*| v |:: v *=====* |: > :| *=====*+>!split W!+ *===============* |::*=======================*|: > :+>!use S!+ *=======* +>!send[((W,N),E)]!-+::!send[(Inr Inr Inl(),E)]!+: > : *=====* +--+ *===============* ::*=======================* : > ,..........................................,,.........................., > > -- > Henning Makholm "... and that Greek, > Thucydides" > _______________________________________________ > icfpcontest-discuss mailing list > icfpcontest-discuss@lists.andrew.cmu.edu > https://lists.andrew.cmu.edu/mailman/listinfo/icfpcontest-discuss > -- [?] James Aguilar [@] 18100 NE 95th St. #RR3088 / Redmond, WA 98052 [#] 314 494 0450 [!] In the wind and the rain, my darling, say goodbye -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.andrew.cmu.edu/pipermail/icfpcontest-discuss/attachments/20060727/2bca7275/attachment-0001.html From icfp at jdev.users.panix.com Thu Jul 27 19:46:39 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Thu Jul 27 19:46:41 2006 Subject: [icfp-discuss] BLACK solvers In-Reply-To: <87psfrau5k.fsf_-_@kreon.lan.henning.makholm.net> References: <200607271239.k6RCdu43013181@lists2.andrew.cmu.edu> <8a623fa10607270909u227c7de2p20a08093db5e7c8a@mail.gmail.com> <87psfrau5k.fsf_-_@kreon.lan.henning.makholm.net> Message-ID: <20060727234639.GC8613@panix.com> On Thu, Jul 27, 2006 at 06:29:11PM +0200, Henning Makholm wrote: > > It also does not handle problems of the shape > > |>< > ><| > ><| > |>< > > where the final permutation is the identity, but double-plinking > between immediate neighours is not sufficient. (Our solution does > handle this case). Mine likewise -- it first does the usual selection sort, then figures out what combination of maneuvers like that pictured above (moving a ball N places to one side and then back) need to be placed after the sort to reduce the remaining needed plinks to a form that can be handled by appending only double-swaps. The "figures out" involves taking a sort of cumulative difference of the list of plink counts, which would be the number of double-swaps to apply in each place if that were possible, then searching towards the goal of having no negative numbers in it and zero in the last place (i.e., can't swap the last tube with the one on its right). That "searching towards" was, uh, kind of a hack; but it happened to work, and ran quickly enough. That that cumulative-difference transformation is linear... could be more helpful than I made it. -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From icfp at jdev.users.panix.com Thu Jul 27 19:57:37 2006 From: icfp at jdev.users.panix.com (Jed Davis) Date: Thu Jul 27 19:57:38 2006 Subject: [icfp-discuss] How small can the raytracer be? In-Reply-To: <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> <69304d110607270825g2c7c32d1p4a701154606e015e@mail.gmail.com> <2b80cd370607270905m4639524fn74b16e3806279fc4@mail.gmail.com> <87lkqfau0u.fsf_-_@kreon.lan.henning.makholm.net> Message-ID: <20060727235737.GD8613@panix.com> On Thu, Jul 27, 2006 at 06:32:01PM +0200, Henning Makholm wrote: > ,.....................................|....................................., > :S *=======* *=============* | *=================* : > -->!split W!----->!case W of E,S!--+ +>!send[(W,S),(W,E)]!+ : > : *=======* *=============* v *=================*v +---+: > : ++*=================*| *===========* | *=======================*| |: > : +>!send[(W,S),(W,E)]!#--->!send[(W,E)]!-#->!send[((N,(W,Inr N)),E)]!#---#- > : *=================*| *===========* | *=======================*v |: > :+-------------------+ +#------------------#-+ *=====* |: > :| *=================* || *=======*+------+ | +----------------->!use A!+ |: > :+>!send[(W,S),(W,E)]!-+|+>!split W!#----+ +-#+ *=====*v |: > : *=================*+-#+ *=======*v v || *=======================*|: > : | *=======* ++ v | *=====* *=====*|+>!send[((N,(W,Inl())),E)]!#- > : +>!split W!---+*=====*+>!use M!->!use A!+ *=======================*|: > : *=======*+-->!use M!-+*=====* *=====* |: > : +----+ *=====* +--------------------------------------------+: > ,..........................................................................., And, uh. I also seem to have neither tried nor noticed in the spec the possibility of wires going upward or to the left. Now *that* would have helped. (Did I mention that I did my 2D optimization on Sunday night because I was too fried for anything requiring actual thought?) -- (let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map ((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda (f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l)) (C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline))))) From shana.ufie at gmail.com Thu Jul 27 21:00:01 2006 From: shana.ufie at gmail.com (Andreia Gaita) Date: Thu Jul 27 21:00:04 2006 Subject: [icfp-discuss] 2D compiler In-Reply-To: <20060727231637.GA8613@panix.com> References: <2b80cd370607261515i13f69382q7aa0431e2e7b30cc@mail.gmail.com> <20060727231637.GA8613@panix.com> Message-ID: <3ec1038d0607271800q5c99c6eclf71dfd8d00ad2b1@mail.gmail.com> > On Wed, Jul 26, 2006 at 03:15:56PM -0700, Tom Rokicki wrote: > > > > I knew I should have just written it out by hand, but after > > writing a few small programs by hand and lining up all the > > boxes and stuff, I just decided I'd rather have fun and write > > the layout program than fight with an editor. On 7/28/06, Jed Davis wrote: > Whereas I decided I'd rather have fun and wire up the boxes by hand in > nvi than fight with trying to write a generator. To each their own, and > all that. I, errr, decided I didn't want to build a generator, but didn't want to fight the editor. Then I thought, if the language is 2D, I'd better get something that is good with 2D, boxes and arrows. Out came SmartDraw. Boxes and arrows is it's thing, after all. And the export to image is the kicker. Exported image goes straight to the ASCII generator, et voil?, boxes in = and #. I definitely like programming in 2D :) shana gone crazy, back soon, leave message From johannes at albapasser.de Fri Jul 28 03:38:55 2006 From: johannes at albapasser.de (Johannes) Date: Fri Jul 28 03:39:00 2006 Subject: [icfp-discuss] BLACK solvers In-Reply-To: <20060727234639.GC8613@panix.com> References: <200607271239.k6RCdu43013181@lists2.andrew.cmu.edu> <8a623fa10607270909u227c7de2p20a08093db5e7c8a@mail.gmail.com> <87psfrau5k.fsf_-_@kreon.lan.henning.makholm.net> <20060727234639.GC8613@panix.com> Message-ID: <44C9BF0F.5000909@albapasser.de> > On Thu, Jul 27, 2006 at 06:29:11PM +0200, Henning Makholm wrote: >> where the final permutation is the identity, but double-plinking >> between immediate neighours is not sufficient ... Sibylle Schwarz proved that each plink sequence [ x0, x1, .. xn ] where x0 > 0, .. xn > 0 and x0 = x1 + .. + xn is realizable (for the identical permuation). proof by induction: for n = 1, we have x0 = x1, so we do x0 double-plinks for larger n, do: - (2*x1 - 1) plinks at position 0 (now balls 0 and 1 are swapped) - apply algorithm recursively for the shorter sequence [ x0 - x1, x2, .. xn ] note that the precondition is fulfilled - do one plink at position 0 Example use of this theorem: represent [ 8, 2, 4, 20, 21 .. ] as [ 8, 2 , 4, 2 + 18, 21 .. ] then apply theorem to prefix [ 8,2,4,2 ] giving sequence [ 0, 0, 0, 18, 21 .. ] With that procedure we could reduce all problems to sequences of length one - but these are not realizable so we had to stop at sequence lengths 3 or 4 and solve the resulting (easy) problem "manually". e. g. the 500 problem reduces to [44,171,177] and we do 2*d double plinks at position 1 to reduce it to [ 44, 171 - d, 177 - d ] which can be solved by the above, that is, 44 = 171 - d + 177 - d giving d = 152 hopefully. The nice thing about this solution is that it involves no search at all. The bad thing is that it produces long double plink sequences at the end that resist compression. Of course one could also do this *before* the bubble sort. This might lead to better compression. I did not check. It is not clear whether the above algorithm can reduce *each* realizable (nonzero) plink sequence to some fixed small length. Any ideas? Best regards, Johannes Waldmann, Leipzig, Germany. From wei.hoo at gmail.com Fri Jul 28 04:28:15 2006 From: wei.hoo at gmail.com (Wei Hu) Date: Fri Jul 28 04:28:17 2006 Subject: [icfp-discuss] Another arith.adv answer Message-ID: <71fd12e60607280128p6b8346ebr82848091aaad30e@mail.gmail.com> Hi, I believe this is a correct answer, although I accidently got 169 with a fake answer. The test suite is not complete so sometimes an incorrect answer can pass just because of luck. Could you check its correctness if interested? { It is gauranteed that Compute appears at most once. } { 7 rules. 168 points. } Compute (Add y Z) => y; Compute (Add y (S x)) => S (Add x y); { a*0 = 0 and a*Sb = (a*b) + a. } Compute (Mult y Z) => Z; Compute (Mult y (S x)) => Add y (Mult x y); { cleverly written so that this can compute S, Add, or Mult. for Add and Mult, force the evaluation order when coflict occurs. the second operand is evaluated first, because the first is grouped in op. } Compute (op x) => op (Compute x); { we're stuck, so eval again from the outermost level } op x y => Compute (op x y); { x must be in normal form } Compute x => x; . { end of rules } From henning at makholm.net Fri Jul 28 05:09:51 2006 From: henning at makholm.net (Henning Makholm) Date: Fri Jul 28 05:09:55 2006 Subject: [icfp-discuss] BLACK solvers In-Reply-To: <44C9BF0F.5000909@albapasser.de> (johannes@albapasser.de's message of "Fri, 28 Jul 2006 09:38:55 +0200") References: <200607271239.k6RCdu43013181@lists2.andrew.cmu.edu> <8a623fa10607270909u227c7de2p20a08093db5e7c8a@mail.gmail.com> <87psfrau5k.fsf_-_@kreon.lan.henning.makholm.net> <20060727234639.GC8613@panix.com> <44C9BF0F.5000909@albapasser.de> Message-ID: <87irli859c.fsf@kreon.lan.henning.makholm.net> Scripsit Johannes > Sibylle Schwarz proved that each plink sequence [ x0, x1, .. xn ] > where x0 > 0, .. xn > 0 and x0 = x1 + .. + xn > is realizable (for the identical permuation). [...] > With that procedure we could reduce all problems > to sequences of length one - but these are not realizable > so we had to stop at sequence lengths 3 or 4 > and solve the resulting (easy) problem "manually". That's how we did it, too. > It is not clear whether the above algorithm > can reduce *each* realizable (nonzero) plink sequence > to some fixed small length. Any ideas? At the least, you'd have to be smart about changing the direction of your primitive elements as you go. Consider for example: 1 1 1 1 ... 1 2n 1 1 1 1 ... 1 1 1 1 2k 1 1 1 1 ... 1 `-- n ones -' `---- n+k ones ---' `-- k ones -' -- Henning Makholm "Nej, hvor er vi alts? heldige! L?nge leve vor Buxg?rer Sansibar Bastelvel!" From markv at pixar.com Fri Jul 28 22:32:45 2006 From: markv at pixar.com (Mark VandeWettering) Date: Sat Jul 29 12:01:11 2006 Subject: [icfp-discuss] Hellomark Message-ID: <44CAC8CD.6030609@pixar.com> At Tom Duff's urging, I implemented my own Universal machine, but somewhat startlingly, it executes the HelloMark in almost exactly the same amount of time: 53.497 seconds. 53.497u 0.136s 0:53.66 99.9% 0+0k 0+0io 0pf+0w Perhaps it isn't that surprising, given that we have the same machine. :-) Main memory size: 3946.63 Mbytes 2 GenuineIntel Intel(R) Xeon(TM) CPU 3.40GHz processors From finnw at sucs.org Sat Jul 29 16:44:47 2006 From: finnw at sucs.org (Finn Wilcox) Date: Sat Jul 29 16:45:00 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> Message-ID: > There's two five-point items that you probably missed. One of them is found > by applying a standard tool in an unexpected and useless way. Another is > found by going back in to a particular program that you've already used > once. > > There are also two ten-point items that you'll definitely get if you poke > around the system long enough; not all of them are right near the start, > despite being classified as "intro". I got 230 and I'm pretty sure I didn't do all those things (apart from the going back into a program). Could there be more than 230 available for intro? Some of those items are unavoidable (those you get the first time you successfully run umodem and qbasic, and logging in in the first place) so I assume you are not referring to those. From henning at makholm.net Sat Jul 29 19:18:48 2006 From: henning at makholm.net (Henning Makholm) Date: Sat Jul 29 19:18:51 2006 Subject: [icfp-discuss] For future solving enjoyment In-Reply-To: (Finn Wilcox's message of "Sat, 29 Jul 2006 21:44:47 +0100 (BST)") References: <1898.192.168.1.1.1153882863.squirrel@192.168.1.1> <391c06200607252034k6e0474f0q2480f1d1c55cc8fb@mail.gmail.com> <3ec1038d0607261316h1e88b20ax647cf5fc2577be35@mail.gmail.com> <5961bfde0607261332o598b0033j2a2331ce3a0ca915@mail.gmail.com> Message-ID: <87r7046luv.fsf@kreon.lan.henning.makholm.net> Scripsit Finn Wilcox >> There's two five-point items that you probably missed. One of them is found >> by applying a standard tool in an unexpected and useless way. Another is >> found by going back in to a particular program that you've already used >> once. > I got 230 and I'm pretty sure I didn't do all those things (apart from the > going back into a program). Could there be more than 230 available for > intro? I don't think so. But if you remember how you did INTRO.OUT, would you say that what you did (to see the actual publication) is a normal or useful command to use on a file with that name, produced in that way? -- Henning Makholm "De kan rejse hid og did i verden nok s? flot Og er helt fortrolig med alverdens milit?r"