00:48:24 -!- tusho has quit. 01:14:42 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 01:15:42 -!- puzzlet has joined. 01:21:15 -!- puzzlet_ has joined. 01:31:58 -!- psygnisfive has joined. 01:32:03 woo 01:32:04 barbecue 01:32:05 :D 01:32:16 ::gives everyone barbecue good:: 01:32:18 .. 01:32:18 food 01:34:31 -!- puzzlet has quit (Connection timed out). 02:31:54 -!- boily has joined. 02:39:21 -!- calamari has joined. 03:14:15 -!- boily has quit ("leaving"). 03:45:39 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | The talk page is made of gold. 03:55:54 -!- calamari has quit ("Leaving"). 05:06:32 -!- psygnisfive has quit ("http://www.mibbit.com ajax IRC Client"). 05:23:19 -!- GreaseMonkey has joined. 05:25:12 * oerjan spots a kiwi and runs after it 05:49:29 -!- oerjan has quit ("leaving"). 05:52:31 -!- bsmntbombdood has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:36:24 hi GreaseMonkey 08:36:35 'lo 08:54:32 -!- fungot has joined. 08:55:01 I'm not completely certain that bot works correctly. This is what I got when I tried to test it via privmsg: 08:55:12 10:54:16 Hey, fungot, does your nonsense generation work? 08:55:12 10:54:16 fizzie: i think not. 08:55:12 fizzie: heh. i don't think 08:55:13 fizzie: 30min sounds like a plural 08:55:41 fungot: Oh! So you said "i think not" because you actually do not think at all. Now I get it. 08:55:42 fizzie: i was wishing we could use only 1-ary functions and currying really mutually exclusive? 09:04:18 where was the source again? 09:04:45 http://zem.fi/~fis/fungot.b98.txt is most of it. 09:04:46 fungot: in what language? 09:04:47 oklopol: take the last three days or so 09:05:18 i like the love triangle there 09:05:30 It's not the most current version, I think I got rid of NULL fingerprint usage at least. 09:05:38 seems it's some kind of tokenizer? 09:05:49 hmm 09:05:53 or not, actually 09:06:03 The triangle is the token-to-punctuation code of the nonsense generator. 09:06:34 you should add some more triangles 09:06:38 The first 16 or so tokens are handled by going to that 'j' and then letting that pick one of the 'v's there. 09:06:40 triangles are awesome 09:07:53 There's another jump table -like structure around line 264, for the brainfuck bytecode thing, but it's significantly less triangley. 09:07:54 -!- olsner has quit ("Leaving"). 09:11:16 I don't really know why I bothered writing 200000 as "2aaaaa*****" when I could've gotten the reasonably close 2^18 with something like "8:*::**", a lot shorter. 09:29:49 -!- oklobol has joined. 09:31:04 -!- oklopol has quit (Read error: 113 (No route to host)). 09:45:39 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | PSOX is centered around brainfuck. Stating anything to the contrary is just a lie. 09:48:32 -!- sebbu2 has joined. 09:58:07 so, how about that mips in wireworld 10:05:33 -!- oklobol has changed nick to oklopol. 10:07:11 -!- sebbu has quit (Read error: 110 (Connection timed out)). 10:31:02 The first 16 or so tokens are handled by going to that 'j' and then letting that pick one of the 'v's there. 10:31:03 hm 10:31:10 that would be a jump table :D 10:31:15 literally 10:31:23 in funge 10:31:28 who would have tought 10:32:12 There's another (a vertically oriented one) in the brainfuck bytecode interpreter. 10:32:47 ah I see it 10:32:59 fizzie, why do you use a triangle btw? 10:33:03 it seems pointless 10:33:20 you could just write the code paths vertically 10:33:40 and you seem to go right up again 10:33:43 It's pretty that way, and there was empty space. :p 10:34:03 fizzie, you know that you are probably the only person who can read the code? 10:34:22 fizzie, and you got a lot of trailing whitespaces on the line below "looptest" 10:34:23 I'm not sure I can read it all that well, since I haven't worked with it in a week or so. 10:34:47 Yes, there was probably something on that line and I erased only the visible parts. 10:34:56 fizzie, you should document the code structure, I mean a diagram showing "brainfuck region" and so on 10:37:13 I probably would've documented it better if I had an editor which could attach comments to arbitrary regions of a text file. 10:38:15 fizzie, I meant somewhat like the image on http://www.quinapalus.com/wires11.html 10:39:27 I guess I could do something like that, although it really isn't large enough to create a really impressive picture, and it's just tall and thin, not very square-like at all. 10:39:39 hm ok 10:40:42 The "no more than 80 columns" rule I've followed has maybe made it easier to edit, but it's disappointingly linear code now. 10:47:47 fizzie, and maintainable 10:50:49 GNIP GNOP 10:50:50 hehehe 10:50:52 :D 10:51:39 fizzie, want to see one of my own boringly linear test suites? 10:51:49 http://rafb.net/p/VQGDpf66.html 10:53:09 "detroppus ton" i first thought this was latin or something 10:53:11 :D 10:53:26 not supported 10:53:28 :D 10:54:04 oklopol, you clearly aren't seasoned in reading funge 10:54:04 i want to project that wireworld program on my wall 10:54:11 DAB and DOOG 10:54:15 err 10:54:18 in mycology 10:54:29 took like a second to realize it's a gnirts 10:54:34 ah right 10:54:41 there is also 10:54:42 g 10:54:42 n 10:54:43 i 10:54:44 r 10:54:44 t 10:54:44 s 10:54:47 but no i'm not seasoned to reading it 10:54:51 though not in that program 10:55:06 oklopol, ever looked at mycology source? 10:55:12 yeah 10:55:25 mycology is way less readable 10:55:28 that's really the only funge program i've read parts of 11:00:39 -!- GreaseMonkey has quit ("Jesus loves you"). 11:27:56 Deewiant, ah cause of infinite loop was u popping from TOSS to SOSS when positive instead of the other way 11:28:08 still weird loop it ended up in 11:28:20 BAD: 101-{} doesn't leave stack top as 0 and next as 1 11:28:20 BAD: fedcba0{05-} doesn't leave 15 on stack 11:28:27 -!- tusho has joined. 11:28:27 and I still don't understand that 11:28:43 would be useful to print what happened instead 11:39:44 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )"). 11:42:46 -!- kar8nga has joined. 11:48:43 -!- sebbu2 has changed nick to sebbu. 12:02:04 -!- ais523 has joined. 12:06:09 "# Any "if" statement requires at least 14,000 subconditions. " 12:06:22 Silly Emplosions looks a little too silly. 12:06:38 Silly Emplosions seems to have the same attitude as INTERCAL 12:06:44 just without the need to be practical too 12:07:51 oh, hi ais523 12:07:54 hi tusho 12:08:06 ais523: I am going to write that autogreeter now, because I want to, and you have inspired me. 12:08:06 * ais523 is reading about the whole Firefox 3 EULA thing 12:08:27 it seems the EULA is there to protect their trademarks, among other things 12:08:34 and Canonical and Mozilla have got into a row about it 12:09:18 ais523: i've decided that i really don't like mozilla 12:09:23 their attitude really sucks 12:09:38 yes, it's annoying me quickly too 12:09:48 ais523: i have maintained for a while that they're no more a free software group than Sun or IBM or Apple 12:09:56 but people just tended to ignore those kind of remarks 12:10:00 now it seems more are listening... 12:10:02 http://nukees.com/comics/nukees20080915.gif 12:10:03 heh. 12:12:07 ais523: MWAHAHA! I HAVE CONQUERED APPLESCRIPT AND "hi ais523.scpt" VERILY EXISTS 12:12:08 We've got CS class again this year I think D: 12:12:08 now to install it 12:12:23 here's the cringeworthy code: [[using terms from application "Colloquy" 12:12:23 on member joined m in room 12:12:23 if m's name is "ais523" then 12:12:23 tell room to send message "hi ais523" 12:12:24 end if 12:12:24 end member joined 12:12:26 end using terms from]] 12:12:42 that is so AppleScript 12:12:53 it's one of those languages which is instantly recognisable 12:14:59 -!- tusho has quit. 12:15:14 -!- tusho has joined. 12:15:25 tusho: do you want me to /cycle to test? 12:15:34 ais523: in a sec 12:15:52 ais523: ok, try 12:16:00 -!- ais523 has left (?). 12:16:00 -!- ais523 has joined. 12:16:06 butts. 12:16:42 ugh, where IS the scripts menu 12:17:05 hmmm 12:17:52 AHA 12:18:00 -!- tusho has quit (Client Quit). 12:18:12 -!- tusho has joined. 12:18:26 ais523: gogogogo 12:18:32 -!- ais523 has left (?). 12:18:32 -!- ais523 has joined. 12:18:32 hi ais523 12:18:37 ^.^ 12:18:39 ah, it works 12:18:44 mwahaha 12:18:45 excellent 12:19:01 ais523: any gcc-bf news? 12:19:04 pikhq was asking yesterday 12:19:15 tusho: I've done all the easy parts, just a few hard parts left 12:19:18 and haven't really tested anything 12:19:30 (pretty eventful day actually: Figs from circa 2007 was here and I got a submission to #1 place on reddit :P) 12:19:40 * ais523 laughs at the topic 12:19:45 ah, I remember Figs 12:19:50 also, what submission? 12:19:57 http://www.reddit.com/r/programming/comments/71e5c/sketchpad_an_advanced_painting_program_from_1963/ 12:20:07 the CAD-ish program that invented OOP, 12:20:09 non-functional languages, 12:20:18 and a metric fuckton of other stuff 12:20:29 the first comment there (a quote from the video) is nice: ""How could you do [all this] in one year?" "I didn't know it was hard."" 12:38:45 -!- Sgeo has joined. 12:50:38 -!- kar8nga has quit (Read error: 110 (Connection timed out)). 12:55:52 http://www.webfoundation.org/news/2008/09/welcome-to-the-world-wide-web-foundation.html Neat. What does it do. 12:57:10 the w3f 12:57:12 ? 12:57:38 ais523: Yeah. 12:57:46 tusho: site times out for me 12:57:50 They say: 12:57:51 "The World Wide Web Foundation seeks to advance One Web that is free and open, to expand the Web's capability and robustness, and to extend the Web's benefits to all people on the planet. The Web Foundation brings together business leaders, technology innovators, academia, government, NGOs, and experts in many fields to tackle challenges that, like the Web, are global in scale." 12:57:58 I guess that's good. A bit vague, but sure, whatever. 12:58:07 (Tim Berners Lee is a co-foundery thingy) 12:58:23 sorry, it's just the name reminded me of the OpenDocument Foundation 12:58:29 heh 12:58:32 who were a few guys who came up out of nowhere 12:58:41 and then decided they weren't supporting ODF any more 12:59:27 'Steve became CEO of the World Wide Web Foundation in September 2008.' 12:59:29 it was just founded you idiots 12:59:35 you can't 'become' it 13:00:17 ais523: From the site for Helvetica the film 13:00:19 p.body { font-family: Verdana, Helvetica, Arial, sans; } 13:01:50 -!- kar8nga has joined. 13:03:22 -!- kar8nga has left (?). 13:14:13 yay efunge almost pass mycology now, just a few details about y left 13:14:19 basically, command line and env 13:16:07 http://rafb.net/p/Qj6DvB92.html 13:16:53 the indention got some issue with y, it is different if I run efunge freestanding instead of under the erlang shell 13:20:37 and hi ais523 13:20:43 hi AnMaster 13:23:02 ais523, how goes bf-gcc? 13:23:12 or was it gcc-bf? 13:23:21 AnMaster: all the easy bits are finished, there are several hard bits left 13:23:33 and it isn't really called anything stable atm 13:24:11 http://www.djangopony.com/ Django (python web framework) pony. 13:24:17 Django. 13:24:18 Pony. 13:24:53 yeragh 13:24:54 (Follow up: http://hackety.org/2008/09/15/documentsRevealDjangoPonyTailOfLies.html) 13:25:54 hah 13:26:32 obviously sketchpadded though 13:26:46 nah I'd say hand drawn 13:27:27 AnMaster: no. sketchpadded 13:27:37 you can tell from the parallel lines 13:27:41 haha 13:36:21 AnMaster: why is known for his bizzare hand-drawn stuff, though, yes 13:36:43 his old site had "code in images" like: 13:36:53 http://redhanded.hobix.com/bits/gem_mirror_only.html, http://redhanded.hobix.com/cult/ahaNoticeTheExpandoWhichPrecludes.html, http://redhanded.hobix.com/bits/theHeartOfTryRuby.html 13:46:01 -!- cmeme has quit (zelazny.freenode.net irc.freenode.net). 13:49:38 -!- cmeme has joined. 13:55:28 wb cmeme 13:57:25 -!- SirDayBat has joined. 13:57:37 -!- oklobol has joined. 14:03:21 tusho: someone /msged me in NetHack, thinking it was about hacking 14:03:25 I told them it wasn't 14:03:35 so they asked me if I knew anything about hacking 14:03:39 I said not that I'd tell anyone over IRC 14:03:47 so they said they had Messenger too... 14:03:51 hahah 14:04:05 ais523: aw, you should have pretended you thought he meant hacking as in the non-cracking sense 14:04:46 ais523, how do you make plural of gnirts? 14:04:52 as in funge strings 14:04:54 gnirtss? 14:04:57 AnMaster: gnirtses is about the best you can get 14:05:01 ah 14:05:06 within normal English pluralising rules 14:09:47 "Gnirtsies." 14:10:47 fizzie: that would be the plural of gnirtsy 14:10:59 on the other hand, it's not the sort of word which pluralises very well at all 14:14:18 aoidajsiojasiodhaiusdhuadjs 14:21:20 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 14:22:47 what's gnirtses' plural 14:23:04 actually didn't work that well because no third s was added 14:23:20 funny how i thought there would be one but didn't put it there 14:35:03 well I just needed a name for a function to push a list of gnirts in efunge 14:36:05 pushGnirtses work 14:39:11 bzr branch http://rage.kuonet.org/~anmaster/bzr/efunge/b98 efunge98 14:39:14 if anyone is interested 14:39:23 you need erlang installed 14:39:25 AnMaster: for 101-{} and the others, the whole point of printing the problematic code is that you can do "echo '101-{}@' > foo.b98 && run-interpreter foo.b98" 14:39:34 Deewiant, hm ok true 14:40:04 Deewiant, and the u got direction messed up -> infinite loop issue? 14:40:12 and before you ask me about it again, yes there is no corresponding GOOD for that and the next test :-P 14:40:22 AnMaster: probably fixed in the update I did this morning? 14:40:33 AnMaster: a 'v' going to nowhere, right? 14:40:45 well I can't test it 14:40:51 not going to mess with u code again 14:41:04 heh 14:41:08 stackstack and y are the ugliest bits of code I have 14:41:28 you haven't done fingerprints then yet, I suppose? ;-) 14:41:38 indeed not 14:41:42 nor am I sure how I would do it 14:42:00 hmm... I'm going to have to write asmfunge at this rate 14:42:05 but not right now 14:42:06 some time later 14:42:15 but see the bzr link I posted a few lines above if you are interested! 14:42:26 Deewiant, it doesn't implement tio= either 14:42:48 and I'm not going to work more on it today 14:43:14 Deewiant, an odd bug is that indention for mycology's y output differ between freestanding and running inside the erlang shell 14:43:18 can't figure out the cause of that 14:43:32 AnMaster: s/indention/indentation/ btw 14:43:36 right 14:43:52 I've seen you make that mistake a couple of times so I figured I'd correct you :-) 14:43:57 Deewiant: does Mycology indent with tabs? 14:44:04 if so that might be the reason 14:44:12 yes, it does 14:44:30 ais523, I use io:format in both cases, so I don't see why it would mangle tabs with erl -no_shell and not mangle them when starting from inside shell 14:44:36 that would be seriously weird 14:44:58 AnMaster: it's possible that the tabstops are different in the two situations 14:45:11 hm 14:45:27 of course it tabstops differ the indentation doesn't, it's still 1 or 2 tabs :-P 14:47:33 ais523, Deewiant the two ways of running below each other: http://rafb.net/p/GSynYV92.html 14:48:26 rafb eats tabs so that's not very informational 14:48:33 it seems that you have a tabstop at 1 the second way of running 14:48:36 no idea why though 14:48:42 Deewiant, well so does my terminal when I copy paste with select 14:48:54 I don't think the erlang interactive shell even works if you redirect it 14:48:57 meh, that sucks 14:49:19 AnMaster: does it work over ssh? 14:49:30 if so, ssh into your own computer and redirect that via tee 14:49:34 ais523, hm? 14:49:47 I assume it works over ssh 14:49:49 ssh localhost | tee 14:49:54 ssh localhost | tee filename 14:49:55 but ssh simulates a terminal afaik 14:49:59 (sorry, corrected version) 14:50:08 would mean that you'd get the output in filename as well as onscreen 14:50:09 well I used erlang over ssh even 14:50:18 ais523, doesn't tee buffer output? 14:50:19 so that's one way to capture the output 14:50:28 AnMaster: only to the file, not to stdout I think 14:50:42 at least not if stdout's a terminal 14:50:53 OTOH the /input/ to tee might be buffered, which could be a problem 14:50:57 when I redirected the freestanding output to a file, it contained tab chars 14:51:03 so I guess weird tabstops 14:51:14 though cfunge in same terminal give normal tabs 14:51:38 hm wait no it doesn't 14:51:40 wtf :) 14:51:54 I guess my terminal settings have got fucked up somehow 14:52:00 let me check another terminal 14:52:32 well yes was just that terminal 14:52:36 no problem then 14:52:49 although I still have no idea how you managed to set a tabstop in column 1 14:52:58 Deewiant, btw apart from getting env vars the program is fully portable I think 14:53:14 I need to use os:get_env() for environment vars 14:53:20 so that may or may not work on other OS 14:53:31 ais523, catting a binary file or something like that I bet 14:53:47 do you often cat binary files? 14:53:54 reset fixes it 14:53:55 if so, the "reset" command is very useful to know 14:53:56 ais523, no 14:54:07 but as I said, reset fixed the tab stop 14:54:13 but I probably did cat one by mistake 14:54:21 before I learnt about reset I used to cat /dev/random to reset the terminal 14:54:31 if you did it often enough the terminal normally ended up sane by chance eventually 14:54:34 ais523, that is likely to mess it up even more 14:54:40 well, yes 14:54:44 but I didn't know that at the time 14:55:00 and mostly it was about getting the terminal out of high-bit-set mode 14:55:09 the resulting terminals often gave curses a field day, though 14:55:14 and messed up ls output from time to time 14:55:28 Deewiant, anyway I think efunge qualifies for mycology results page, though a release will have to wait a bit 14:55:39 Deewiant, and it's the first bignum one 14:57:20 wait I will change fingerprint to make use of bignum, I think that is valid 14:57:49 heh, there should be a bignum fingerprint with a name like "BIGNUM" 14:57:56 so you need 48-bit or better ints to use it... 14:58:07 ais523, no need, since all cells are bignum here 14:58:08 so lets see 14:58:19 AnMaster: I was speaking in general 14:58:30 "efunge - A bignum funge interpreter in Erlang" for fingerprint 14:58:34 what would that end up as 14:58:43 err 14:58:46 as handprint 14:58:47 I mean 14:58:51 Deewiant, :D 14:58:52 some ridiculously large number 14:58:57 agreed 14:59:23 "efunge - A BIGNUM Befunge-98 interpreter in Erlang" 14:59:24 even 14:59:44 -!- jix has joined. 15:03:28 13> io:format("~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~.16B~n", "efunge - A BIGNUM Befunge-98 interpreter in Erlang"). 15:03:28 6566756E6765202D2041204249474E554D20426566756E67652D393820696E74657270726574657220696E2045726C616E67 15:03:28 ok 15:03:33 ok wow 15:03:57 so 16#6566756E6765202D2041204249474E554D20426566756E67652D393820696E74657270726574657220696E2045726C616E67 15:04:05 Deewiant, what do you think about that for handprint? 15:04:57 That the interpreter's handprint is 1022815351171939080750602515080902596655856329413174779991860562785344354620645109770120275823379669394014875628110704231 15:05:06 :D 15:05:38 gah, you beat me to it 15:05:46 ais523, to what? 15:05:53 calculating that handprint 15:06:04 ah yes 15:06:06 thanks to erlang 15:06:11 I was just looking up how to get a character code in Haskell... 15:06:34 ais523, I generated the format 15:06:54 using lists:seq() and then lists:map() 15:06:59 then lists:flattern() 15:07:07 since in erlang a string is just a list of integers 15:07:10 :) 15:07:34 ais523, wonderful idea eh? :D 15:07:47 it makes a lot of funge stuff a lot simpler 15:07:47 AnMaster: I sort of think that handprints should be as small as possible so that you can test for them portably 15:07:51 AnMaster: a string is a list of char in Haskell 15:07:57 and I can't remember the function to convert a char to an integer 15:08:02 Deewiant, hehe ok, but it would be fun 15:08:03 ais523: ord 15:08:08 Deewiant: thanks 15:08:10 Google wasn't helping 15:08:18 Hoogle is better for such 15:08:29 Deewiant, still the long handprint is much much more fun! 15:08:31 http://haskell.org/hoogle/?hoogle=Char+-%3E+Int 15:08:41 AnMaster: :-P 15:08:52 Deewiant: how do you cast an Int to an Integer in Haskell, then? 15:09:08 Deewiant, and you could test for it, if you overflow you know it can't be it! 15:09:24 anyway is funge cell integer overflow well defined? 15:09:26 ais523: fromIntegral 15:09:31 since they are signed 15:09:41 ais523: http://haskell.org/hoogle/?q=Int%20-%3E%20Integer again :-) 15:09:48 Deewiant: thanks, I know much of the structure of Haskell but am useless with its stdlib 15:09:52 and I was looking there too 15:09:55 Deewiant, ? 15:10:34 AnMaster: that handprint overflows to some 32-bit value which could theoretically be in use by another interpreter 15:10:49 and no, overflow is not discussed in the specs 15:10:53 Deewiant, hm true, so EFUN it is 15:11:09 but that is booooooooooring 15:11:12 oh well 15:11:20 -!- oerjan has joined. 15:11:51 hi oerjan, do you think 0x6566756E6765202D2041204249474E554D20426566756E67652D393820696E74657270726574657220696E2045726C616E67 is a sane number to use for a unique ID of an interpreter? 15:12:13 quite likely 15:12:20 really? Deewiant doesn't agree 15:12:21 hm 15:12:35 assuming it was picked at random 15:12:40 it wasn't 15:12:45 it is a FUNGE handprint 15:12:51 so it is ASCII encoded really 15:12:53 "efunge - A BIGNUM Befunge-98 interpreter in Erlang" 15:12:55 in this case 15:13:15 normally they are like CFUN, CCBI, RCSU (iirc) and so on 15:13:24 to fit in 32 bit interpreters 15:13:57 anyway I guess I shall go with EFUN instead 15:13:59 oh well 15:15:14 ok assuming you wanted to call that from another interpreter, it would seem rather useful if that didn't have to be a bignum one 15:15:27 oh well true 15:15:39 oerjan, but agree the long one is more fun :D 15:15:44 yeah 15:16:00 That the interpreter's handprint is 1022815351171939080750602515080902596655856329413174779991860562785344354620645109770120275823379669394014875628110704231 15:16:05 compared to 15:16:13 That the interpreter's handprint is 1162237262 15:16:23 the latter is EFUN as a 32-bit integer 15:16:51 hm really I should make it a prime number :/ 15:16:55 clearly there needs to be a handprint for requesting unlimited length handprints 15:17:02 $ factor 1162237261 15:17:02 1162237261: 1162237261 15:17:04 OOOOOOH 15:17:14 one char difference and it is a prime 15:17:19 that would be... EFUM? 15:17:32 nah 15:17:44 * AnMaster curses ASCII mapping 15:17:48 what about EFGE 15:18:46 or EFNG 15:18:51 EFGE is 0x45464745 15:18:55 AnMaster: that wraps around to "lang" btw, heh 15:19:06 EFNG 0x45464E47 15:19:08 at least if I got it correct 15:19:09 Deewiant, hm where? 15:19:19 i mean are any of those primes 15:19:20 Deewiant, oh you mean in 32-bit 15:19:22 well my Haskell program makes it 1022815351171939080750602515080902596655856329413174779991860562785344354620645109770120275823379669394014875628110704231 15:19:23 AnMaster: your too-long handprint, in 32-bit it's "lang" 15:19:27 oerjan, ah let me check 15:19:27 which is the same result you got 15:19:30 so probably corrrect 15:19:39 yeah, that's what I got too 15:19:53 oerjan, nop 15:19:59 it's a three-liner the way I wrote it, I was just a little rusty at Haskell so it took me a while 15:20:11 Deewiant, anyway lang is a cool 32-bit handprint 15:20:11 :D 15:20:20 concatMap (flip showHex "" . ord) $ string 15:20:23 I mean it is even relevant 15:20:33 1818324583? 15:20:36 what's special about that? 15:20:42 it's "lang" 15:20:52 but in retrospect I guess that's obvious 15:20:57 since it's the last 4 chars of the string >_< 15:21:00 no, I created lang from that 15:21:07 *that from lang 15:21:13 ais523: it's that integer when truncated to 32 bits 15:21:18 oh, that's obvious 15:21:19 Deewiant, that depends on how signed wrapping works 15:21:24 which is UD in C at least 15:21:26 I thought there was something interesting about the number 15:21:37 nah 15:21:49 AnMaster: gcc's definition is interesting, it assumes signed wraps like unsigned except sometimes in the control expression of a loop 15:22:02 ais523, well it is UD in C 15:22:06 or other comparison-like situations 15:22:15 AnMaster: gcc's taking advantage of that fact, obviously, as its definition is weird 15:22:22 ah 15:22:24 somehow I'm not surprised :-P 15:22:42 find me a prime fingerprint in 32-bit that works for the name "efunge" 15:22:49 otherwise I may just use the long one 15:23:05 it shall be either prime and the name fitting 15:23:16 or bignum 15:23:18 EF seems necessary 15:23:28 yes I'd say so 15:23:36 but EFUM (which is prime) makes no sense 15:23:57 EMUS? 15:24:03 meaning? 15:24:09 e-mushroom 15:24:15 heh 15:24:22 well that *is* prime 15:24:29 but I totally fail to see how it is related 15:24:30 :/ 15:24:35 fungus 15:24:38 AnMaster: fungus = mushroom 15:24:40 oh right 15:24:41 hm 15:24:44 that could work 15:24:53 ERMS - erlang mushroom 15:25:07 Deewiant, not prime 15:25:12 darn 15:25:25 ERFN, ERFU, ERFG 15:25:29 * ais523 likes the concept of e-mushrooms anyway 15:25:31 let me check 15:25:32 AnMaster: what's so good about primality? 15:25:46 have a fingerprint that's the sum of two cubes in two different ways 15:25:54 it doesn't have to be 1729, make it much bigger 15:25:58 then you can annoy people with ti 15:26:01 *it 15:26:06 oerjan, none of them prime 15:26:33 ERFN is even and factors into "1163019854: 2 581509927" 15:26:34 well the first cannot be since it's even 15:27:01 EMUS seems good actually 15:27:06 hm 15:27:39 * oerjan wonders what the perfect number fingerprints are 15:27:40 ais523, huh what do you mean with cube here? 15:27:49 AnMaster: x^3 15:27:55 ah 15:27:59 well yeah 15:27:59 AnMaster: a number that's some integer to the power 3 15:28:15 two different cubes in two different ways? 15:28:25 AnMaster: a^3 + b^3 and c^3 + d^3 15:28:26 ?? 15:28:27 ah 15:28:29 right 15:28:33 that is four different 15:28:34 not two 15:28:40 AnMaster: two cubes, in two ways. 15:28:43 ah ok 15:28:45 a number is the sum of two cubes if it's a^3+b^3 15:29:00 and the sum of two cubes in two different ways if there are two possibilities for (a,b) that work 15:29:07 anyway I got no idea if 1022815351171939080750602515080902596655856329413174779991860562785344354620645109770120275823379669394014875628110704231 is prime or not 15:29:12 factor says it is too big 15:29:25 how many bits is that number hm? 15:29:43 could do the 3 and 11 tests at least 15:29:54 actually haskell should handle those fine 15:30:04 AnMaster: 398.66391710537613 15:30:13 AnMaster: it's divisible by 3 15:30:15 ah hm 15:30:17 right 15:30:19 :/ 15:30:30 well that is ok 15:30:33 since it is BIGNUM 15:30:43 but EMUS may work yes 15:30:45 6, 28, 496, 8128, 33550336, 8589869056, 137438691328 15:31:11 oerjan: perfect numbers? 15:31:14 yes 15:31:15 oerjan, err hm some of those are not primes, so what are the prime factors of 1022815351171939080750602515080902596655856329413174779991860562785344354620645109770120275823379669394014875628110704231 15:31:17 oh ok 15:31:24 AnMaster: working on it 15:31:25 right 15:31:26 wow, that 33550336 struck me in the face 15:31:32 I've spent all week staring at numbers that start 3355 15:31:36 that's a tough one, 45 seconds already :-P 15:31:37 ais523, that's odd 15:32:08 0x02000000 is 33554432 15:32:08 well that's a perfect synchronicity 15:32:15 10> io:format("~.16B~n", [33550336]). 15:32:15 1FFF000 15:32:19 now that is interesting 15:32:19 and it's the lowest memory address on the heap in gccbf 15:32:33 11> io:format("~.16B~n", [8589869056]). 15:32:33 1FFFF0000 15:32:35 huh 15:32:35 AnMaster: not really, all perfect numbers are the product of a power of 2 and 1 less than a power of 2 15:32:39 ah right 15:32:45 all even perfect numbers anyway 15:32:46 i thought we were doing byte encoding not hex 15:33:06 that's bad as it means that any even perfect handprint will end with lots of NULs 15:33:11 is it so that all are 0x1F...0... with equal count of F and 0? 15:33:20 or is that just true for those two? 15:33:20 oh right 15:33:26 AnMaster: yes, I think so, past the first few 15:33:29 12> io:format("~.16B~n", [137438691328]). 15:33:29 1FFFFC0000 15:33:30 ah 15:33:30 6 is 0x6 for instance 15:33:34 oh well 15:33:44 AnMaster: that C is half an F and half a 0 15:33:50 hm right 15:33:57 still an interesting pattern 15:34:10 it's true in binary 15:34:14 1111...0000 15:34:14 AnMaster: {{3, 1}, {233, 1}, {463, 1}, {7309, 1}, {79843, 1}, {1196959691, 1}, {11426407403, 1}, {1516849785751, 1}, {77863659174921299, 1}, {3508614362114968649, 1}, {955524906494690973199465859798407059913, 1}} 15:34:21 13> io:format("~.2B~n", [137438691328]). 15:34:21 1111111111111111111000000000000000000 15:34:22 right 15:34:31 Deewiant, hm ok 15:34:40 Deewiant, how long did it take? 15:34:40 2 minutes and 45 seconds 15:34:43 ah 15:35:13 I should select an 4096 bit number as fingerprint as a tribute to gpg key sizes 15:35:17 or something 15:35:25 AnMaster: why not... EFUN 15:35:27 or EFNG 15:35:31 tusho, not prime 15:35:35 AnMaster: so fucking what?! 15:35:44 either prime or larger than 32 bits 15:35:47 AnMaster: WHY 15:35:54 tusho, because it is esoteric! 15:36:12 AnMaster: it's pointless and not very funny either 15:36:21 no one said funny 15:36:27 it's not esoteric 15:38:11 i'd say it's a prime example of esotericness 15:38:20 heh 15:39:08 esotericity 15:39:16 possibly 15:39:40 or not 15:39:41 i was trying not to say that 15:39:47 evidently there's no noun for it 15:39:50 or I can't find one 15:40:01 heh, I noticed an Unlambda interp on hackage, checked the .cabal file and it seems that Oerjan here is at least partially responsible 15:40:05 I should have guessed, really 15:40:22 we should call esotericy peoples perpetrators 15:40:36 tusho: that term is reserved for people who perpetrate INTERCAL compilers 15:40:43 and they're "responsible" for languages and interps 15:40:44 there are several unlambda interpreters in haskell i think 15:40:44 ais523: aww 15:40:51 ais523: but going by my system, what would esolangs and implementations be? 15:40:57 plans and crimes? 15:41:16 quite possibly 15:41:57 Deewiant, hm would it be possible to implement MVRS without implementing concurrency I wonder? 15:42:21 so perpetrators are responsible for plans and crimes 15:42:24 great 15:42:33 hm esoteri(ci)sm means something slightly different 15:43:31 Deewiant, anyway are you going to test efunge at some point? That project will go dormant now until Friday at least 15:43:35 AnMaster: yes it would be 15:43:44 and possibly at some point, yes 15:44:20 Deewiant, adding it would be simple, since it don't implement anything like TERM or NCRS or any other fingerprint that may need manual checking 15:44:22 esotericity and esotericness both give about 500 google hits 15:45:39 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Hi.. 15:45:49 hello optbot 15:45:50 oerjan: because the mind isn't barraged by things like - say, physical constants? 15:46:18 oh i'd say G lays heavily on me 15:47:25 optbot: except i'm not sure that's the right idiom 15:47:25 oerjan: now for ~ps 15:47:35 <= food 15:51:51 what what coming from all them directions graaaa how can i find it in that small a heap 15:52:06 oklobol: ? 15:52:43 i mean, absolutely nothing 15:52:46 -!- oklobol has changed nick to oklopol. 15:59:32 -!- Ilari has quit ("Won't be back for a while..."). 16:10:44 bye ilari 16:11:17 ..forever 16:12:32 http://en.wiktionary.org/wiki/ilari 16:12:34 -!- Hiato has joined. 16:12:44 Man. 16:12:50 If you love to program dudes 16:12:54 Don't do physics. 16:12:56 http://en.wiktionary.org/wiki/hiato 16:13:03 Once again, they're making us program on fucking paper. 16:13:04 oerjan: bet it doesn't have an entry for ais523 16:13:43 Also in C. 16:13:47 Fucking C >:| 16:13:58 http://en.wiktionary.org/wiki/User:Ais523 16:14:01 what's wrong with programming in c on paper 16:14:04 oerjan: that's cheating 16:14:10 How do you compile? :o 16:14:19 Slereah_: origami 16:14:19 neener neener 16:14:20 You can't really correct yourself 16:14:26 does the search suggest tush for tusho? 16:14:36 tusho: Tusho is a placename 16:14:37 I'd rather program in pseudo code on paper 16:14:46 ais523: is it? cool. where 16:15:00 heh, oerjan, where'd you pull this out from? 16:15:17 tusho: Ethiopia, apparently 16:15:27 http://www.maplandia.com/ethiopia/oromiya/east-harerghe/tusho/ 16:15:48 cool 16:15:53 Hiato: google and wiktionary 16:17:20 oerjan: heh :P 16:19:08 Hiato: does your nick mean something else? 16:19:30 Deewiant, hm why haven't I seen Mike for some time 16:20:32 AnMaster: mike was actually another secret identity of Radovan Karadzic 16:20:40 oerjan: nope, I actually stole it from a similar one in worms (the original, it was Hialto) 16:20:49 ah 16:21:14 Hiato: the game worms? :P 16:22:13 Hialto seems to be a figure from Norse legends 16:22:27 yeppers :) 16:22:36 Hiato: which one? 16:22:55 1, dc, 2, wp, wa, 3d, 4, (haven't kept up with the ones after) 16:23:02 one of the random names "generated" 16:23:28 i mean, which game? 16:23:37 i think wa was the first with random names 16:24:00 http://www.urbandictionary.com/define.php?term=Hiato 16:24:05 i've only really played wp, but it was awesome 16:24:19 oklopol: W:A is a lot better than WWP with the recent patch 16:24:34 it's WWP-crap-bugs+smoother+features 16:24:41 nice 16:26:14 Deewiant, I sent off a question to Mike asking about tagged tuples for FPDP 16:26:46 AnMaster: FPDP seems reasonably simple to me, clearly it should just use 128-bit float on a 64-bit system 16:26:50 Deewiant, it could even be written using g/p, but not printed out using o 16:26:59 ais523, I can't do a union of int and double in erlang! 16:27:11 so I need to use something like {double,1.345} 16:27:17 on the stack to represent them 16:27:18 AnMaster: you could copy the bits by hand, I suppose? 16:27:27 AnMaster: erlang is dynamically typed isn't it 16:27:33 oerjan, indeed 16:27:44 but point is following FPDP specs is an issue here 16:27:50 so can't you type check? 16:28:10 oerjan, well yes I could use is_float() 16:28:17 but read the FPDP specs 16:28:20 to see the issue 16:28:39 ais523, yes erlang can do that kind of, but it is messy and I'd rather avoid it 16:28:50 and also what if a float was a trap value 16:28:52 and so on 16:28:56 that could get messy 16:29:07 efunge is aimed to be 99.9% percent portable 16:29:11 AnMaster: what if someone runs FPDP, then stores the values in the playfield, then runs into them as a command? 16:29:19 only non-portable erlang function I use so far is os:get_env() 16:29:20 for y 16:29:35 and as far as I can see in the docs os:get_env() works on both windows and linux 16:30:20 AnMaster: you can store them however you like as long as they transparently behave like normal funge-space cells 16:31:25 Deewiant, btw for efunge / is correct path separator on windows I think, since erlang use forward slash on windows and convert it internally 16:31:32 AnMaster: and Mike is very active in e-mail, he just isn't here anymore 16:31:34 as far as I can tell 16:31:41 Deewiant, I did email him about it 16:31:51 Deewiant, and no they won't be able to be written out using o 16:31:54 that just won't work 16:31:58 AnMaster: / is not correct on Windows IMO, no matter what. 16:32:03 AnMaster: sure it can work 16:32:08 Deewiant, well using \ in efunge would fail on windows 16:32:13 that is how it is simply 16:32:28 since I use the erlang API 16:32:56 have you tried it? 16:33:06 Deewiant, no but the docs seem to indicate it 16:33:23 I don't have a windows install around 16:33:30 I do :-P 16:33:37 Deewiant, do you have erlang on it? 16:33:40 what do I have to type, I have Eshell V5.5.5 open 16:33:47 a sec 16:34:30 file:open("C:\\SomeFileOfYours", [read]) 16:34:31 and 16:34:34 file:open("C:/SomeFileOfYours", [read]) 16:34:39 Deewiant, err add a . after each 16:34:42 so 16:34:47 gotcha 16:35:01 -!- Slereah_ has quit (Read error: 54 (Connection reset by peer)). 16:35:04 -!- Slereah2 has joined. 16:35:14 AnMaster: both give {ok,<0.number.0>} where number was 32 with / and 34 with \\ 16:35:23 right hm both works then 16:35:26 -!- jix has quit ("This computer has gone to sleep"). 16:35:28 Deewiant, q(). to quit erlang shell 16:35:37 yes or alt-f4 :-P 16:35:42 heh 16:36:16 Deewiant, well there is the filename module to *convert* to native paths, meant for interacting with external tools 16:36:24 but I can't find path separator in there 16:36:31 only more higher level functions 16:36:32 brb phone 16:36:41 -!- jix has joined. 16:36:54 back 16:37:05 AnMaster: can't you do something manually to detect OS? 16:37:16 there is the os module but it is unportable 16:37:17 system("uname"), if it fails you're on Windows 16:37:24 and erlang will always translate paths 16:37:36 Deewiant, I prefer it to work on other OS like OS9 iirc 16:37:41 ais523: unless it prints CYGWIN_NT- like it does here :-) 16:37:43 and every other OS 16:38:09 Note: 16:38:09 Think twice before using this function. Use the filename module if you want to inspect or build file names in a porta- 16:38:09 ble way. Avoid matching on the Osname atom. 16:38:27 so well I say that / is native in *erlang* 16:38:41 and I define ERTS (Erlang RunTime System) to be my OS 16:38:41 :D 16:38:44 problem solved 16:38:50 I'm beginning to be a bit inspired to write perfectly portable float -> int and int -> float convertors 16:38:54 which copy the bit pattern using arithmetic 16:39:00 ais523, err erlang only got double 16:39:03 not float 16:39:10 well, same thing 16:39:14 not the same thing 16:39:16 but the same idea I mean 16:39:35 and I *think* the format of it is IEEE 7xx (whatever, can't remember the number) but not sure if implementation/OS defined 16:39:36 or not 16:39:47 AnMaster: 754 16:39:52 Deewiant, ah yes 16:40:00 -!- oerjan has quit ("leaving"). 16:40:10 AnMaster: everything uses IEEE-format floating point in practice nowadays 16:40:13 even gcc-bf 16:40:22 it was the easiest format to get hold of soft-float libraries for 16:40:25 ais523, well something could use x87 ones 16:40:31 or "system native" 16:41:09 Deewiant, no I can't find out native path separator in any way it seems 16:41:48 AnMaster: how would I convert a path to native 16:42:00 not without building a fake filename, translating to native format, and then looking at some specific index in the string, and that would be error-prone since some OS use a totally different format 16:42:02 in erlang 16:42:24 Deewiant, filename:nativename("string"). 16:42:37 Converts Path to a form accepted by the command shell and native applications on the current platform. On Win- 16:42:37 dows, forward slashes is converted to backward slashes. On all platforms, the name is normalized as done by 16:42:37 join/1. 16:42:38 but 16:42:41 what about OS 9? 16:42:45 it uses stuff like: 16:42:58 AnMaster: can you push / on OS 9? 16:43:04 Macintosh HD:Folder:SubFolder:file 16:43:18 Deewiant, point is in all cases erlang will handle it transparently from my point of view 16:43:35 AnMaster: slashes would work on OS 9? O_o 16:43:58 Deewiant, nop 16:44:12 now I don't know if there is still any erlang implementation for OS 9 16:44:15 AnMaster: so you can't push / 16:44:18 with y 16:44:19 on OS 9 16:44:20 I'm pretty sure one existed at some point 16:44:27 Deewiant, no but erlang would convert it 16:44:28 internally 16:44:35 as it did with / on windows 16:44:38 http://erlang.org/doc/man/filename.html 16:44:42 AnMaster: yes, so "slashes would work on OS_9? O_o" is true 16:44:51 http://erlang.org/doc/man/file.html 16:44:57 Deewiant, yes in erlang 16:45:05 AnMaster: what about if you have a file called / in OS 9 16:45:13 (is that possible?) 16:45:20 or a file containing / in its name 16:45:44 Deewiant, hm don't remember, iirc it wasn't legal 16:45:49 but it was ages ago 16:46:45 "Mac allows all except a colon (though a forward slash, /, can cause issues for POSIX paths)." 16:46:48 Says the Internet. 16:47:02 hm didn't they change it in OS 9.1 or so 16:47:07 And the Internet also says that with some C compilers/runtimes on OS 9, /s work in fopen/friends. 16:47:11 for forward compatiblity with OS X 16:47:14 iirc they did 16:47:18 It would make sense. 16:47:36 wow it was years ago I used macs 16:48:07 Deewiant, anyway as far as I can tell, letting erlang handle what path separator is actually used is more portable 16:48:17 that is the point of erlang runtime 16:49:12 Deewiant, but I guess efunge works under windows or? 16:50:13 I don't know? 16:50:15 Deewiant, to give it arguments from the shell you could use efunge:start("foo.b98", ["a", "b"]). 16:50:21 Deewiant, oh you had erlang installed anyway? 16:50:24 heh 16:50:27 yes 16:51:58 "In Windows, all functions return file names with forward slashes only, even if the arguments contain back slashes. Use join/1 to normalize a file name by removing redundant directory separators." 16:52:00 interesting 16:52:05 from the filename module man page 16:52:42 except nativename() I assume 16:52:55 Deewiant, or what did filename:nativename() return for you? 16:53:15 AnMaster: nativename("/") was "\\" 16:53:45 Deewiant, and it is meant for when you want to send off the path to an external tool, as far as I can tell 16:54:14 as the other functions return with forward slashes even on windows I assume that is what erlang prefer internally 16:55:27 AnMaster: what I'd do is nativename(join("foo", "bar")) and get what's between foo and bar :-P 16:55:59 Deewiant, I define my OS to be Erlang, I will make = evaluate erlang, won't use os:system() 16:56:14 just because I don't think you could claim it was invalid :P 16:56:26 not really, no 16:56:30 unless I can manage to break it ;-) 16:56:53 Deewiant, well of course you use any = for breaking commands 16:57:01 rm -rf /path/to/interpreter 16:57:02 or whatever 16:57:14 what I meant was finding a case where \ would work and / doesn't 16:57:30 0"ibcc 9- llallik"= 16:57:34 killall -9 ccbi 16:57:47 AnMaster: and why would you want to do that? 16:57:47 Deewiant, in erlang 16:57:54 ais523, hm? do what? 16:58:00 killall -9 ccbi 16:58:09 ais523, " unless I can manage to break it ;-)" " Deewiant, well of course you use any = for breaking commands" 16:58:13 surely ccbi shouldn't need the -9 to kill? 16:58:13 just an example 16:58:19 AnMaster: 2008-09-15 18:57:14 ( Deewiant) what I meant was finding a case where \ would work and / doesn't 16:58:23 right 16:58:33 Deewiant, tell me if you do 16:58:44 I don't really care enough to bother trying :-P 16:58:47 anyway as efunge doesn't currently implement i or o 17:01:17 hm 17:03:23 hm eval in erlang looks tricky 17:04:35 seems you have to call several functions on the string: erl_scan functions to tokenise it, then erl_parse functions to get a parse tree, finally erl_eval functions 17:07:14 -!- ais523_ has joined. 17:07:44 -!- ais523 has quit (Read error: 104 (Connection reset by peer)). 17:08:01 -!- ais523_ has changed nick to ais523. 17:39:36 i can't say i believe that anyone can actually create computers. 17:39:42 they most likely always were 17:40:30 how do you mean? 17:40:47 just think about it, no one can make anything that small 17:40:55 it's impossible 17:40:57 yes you can 17:41:04 using tools 17:41:13 and the original computers were huge 17:41:25 tools must be made as well. 17:41:57 i believe you can make huge computers, yes 17:42:28 anyway, i wish there was a book about how a computer is actually made, from scratch, but not for dummies, a book that actually explains each and every detail 17:43:02 currently i have a massive body of knowledge about circuit design and digital logic, but i have no idea how the fuck these things are actually made 17:43:29 oklopol: are you wondering about how things like ICs are made? 17:43:33 not that i care, now that i think about it 17:43:39 mostly it's done using chemistry and light 17:44:03 hmm 17:44:12 i want details 18:16:31 I have a feeling the details are going to be somewhat complicated when the line width goes below 100 nm. Lithography itself is reasonably understandable, though. 18:17:57 basically there are various light-sensitive chemicals 18:18:11 which can be washed away in a particular acid if they've been exposed to light, but not otherwise 18:18:33 in order to make a chip all you need is to be able to place p-type and n-type silicon in arbitrary positions in 3D 18:18:41 -!- Hiato has quit ("Leaving."). 18:19:22 so you start out with a block of p-type (for instance), then protect it with a light-sensitive chemical, use optics to expose it to light in a certain pattern, wash away the exposed chemical, then fill the atmosphere with something that turns p-type into n-type 18:19:54 to get a 3d pattern rather than just 2d, you continue this alternating between p-type and n-type, and doing it faster each time so the p-type/n-type flip doesn't go as deep each time 18:21:15 wot wot 18:21:30 Slereah2: I was replying, very late, to oklopol 18:21:35 oh, and btw hi optbot, hi fungot 18:21:36 ais523: it was evoli whom you introduced to begin, i think 18:21:36 ais523: i'm blaming the world 18:43:47 :D 18:47:19 -!- olsner has joined. 19:22:48 i guess i could believe it if it's done with light 19:23:03 since i can imagine ways to make light patterns smaller 19:24:02 probably not visible wavelengths though 19:24:16 I think they normally use ultraviolet, not too sure about that though 19:24:25 would make sense 19:25:27 I imagine they have something like a reverse microscope, to scale the pattern down to chip size 19:26:29 now it all seems trivial 19:26:31 thank you 19:26:53 now i'd like to know details out of interest, not out of doubting the existance of computers 19:27:17 would be fun to have built a computer from scratch 19:27:48 wonder how many manhours that would take if you know exactly what to do 19:31:11 ais523, is wikipedia down? en.wikipedia.org times out for me 19:31:21 AnMaster: let me check 19:31:33 ah well google cache will work for now 19:31:58 yes, it's up, just slow 19:47:22 tusho: anyone else who cares: I found a brilliantly appropriate format in which to distribute C-INTERCAL 19:47:26 compressed .pax 19:47:26 oh? 19:47:29 wut? 19:47:38 never heard of it? 19:47:38 ais523: wut 19:47:39 no 19:47:42 heh 19:47:49 so it's probably perfect 19:47:51 they removed tar from the POSIX standard 19:47:54 and put in pax in its place 19:47:58 ais523: what? when? 19:48:00 2001 19:48:03 ais523: why 19:48:06 http://en.wikipedia.org/wiki/Pax_(Unix) 19:48:12 to address some of the deficiencies with tar 19:48:21 it's forward-compatible so it can be read with a tar reader 19:48:36 so nobody will actually have any trouble decoding the paxball once they know that method works 19:48:55 the only practical difference is that the files' ctimes are recorded, in the case of C-INTERCAL 19:49:26 although pax is a lot more versatile than that 19:49:29 what is wrong with tar 19:49:32 also it allows unlimited-length filenames 19:50:11 tusho: filenames limited to 99 characters, some information about the file not recorded, GNU tar not actually conforming to the standard? 19:50:20 ais523: meh 19:50:21 good enough 19:50:24 at least, not by default 19:50:31 AnMaster: I guess you should be using pax too, right? 19:50:32 it can generate pax though, nowadays 19:50:42 Deewiant: ooh, i don't think he can respond to that one 19:50:47 Deewiant: that's the great part, everyone /ought/ to be using pax, nobody does though 19:50:47 it fits him perfectly 19:50:52 Deewiant, ? 19:51:05 thus it's totally unusual, and fits the spirit of INTERCAL very nicelt 19:51:07 s/t$/y/ 19:51:21 AnMaster: see above discussion 19:51:31 Deewiant, is it important? I'm kind of busy 19:51:33 Deewiant: had you heard of pax before today? 19:51:37 AnMaster: very 19:51:38 ais523: everybody /ought/ to be using INTERCAL, nobody does though? ;-) 19:51:41 AnMaster: not really 19:51:46 no, ais523 19:51:50 i think it's very important 19:51:57 Deewiant: INTERCAL isn't a POSIX standard, neither is tar, pax is 19:52:04 ais523: I think I had, hadn't paid much attention to it though if I had 19:52:17 I'm fairly sure I had but I couldn't remember without a wikipedia lookup 19:52:17 probably most people don't go around reading man 5 tar in their spare time 19:52:40 ais523: just poking fun at the way it fits in the spirit of INTERCAL :-) 19:53:04 Automake have heard of it, although it isn't the default; unfortunately they put .tar.gz/.tar.bz2/tar.lzma extensions on so as not to confuse people, but I'll fix that 19:53:15 Deewiant: by being unlike all other programming languages is the original spirit 19:53:29 ais523: loads of languages use automake 19:53:33 you should write your own build system in c 19:53:34 the modern spirit is "by being unlike all other programming languages in a way that the other programming languages can reasonably be claimed to be incorrect" 19:53:38 that uses setjmp 19:53:43 ooh 19:53:44 no setjmp 19:53:45 just longjmp 19:53:47 tusho: why not in INTERCAL? 19:53:47 tusho: it's a custom tweaked automake 19:53:58 Deewiant: that would be quite thoroughly difficult 19:54:02 ais523: yes, but that's more intercally 19:54:03 Deewiant: INTERCAL needs special extensions to be able to do file handling and invoke other programs 19:54:19 basically the whole thing would be written in extensions, which is not the point 19:54:22 longjmp without setjmp <3 19:54:29 olsner <3 19:54:32 LOVE AT FIRST SIGHT 19:54:59 love at first "The program has executed a very large jump." popup 19:55:30 the worrying thing is that under gcc it's possible to fake a jmp_buf in a way that will work to some extent on a lot of systems 19:56:18 it goes something like {auto char c; jb[0]=__builtin_frame_pointer(0); jb[1]=(&c)-1; jb[2]=&&label; label: ;} 19:56:28 of course you'd be mad to try anything of the sort in production code 19:56:29 ais523: my word 19:56:34 ais523: that is brilliant 19:56:38 ais523: put that into c intercal 19:56:54 tusho: this is the sort of knowledge you get after playing around with the internals of gcc for several weeks 19:56:58 ais523: actually, set that as your quit message 19:57:06 really, though, I wouldn't give it more than a 50/50 chance of working 19:57:33 especially as I've probably messed up somewhere 19:57:39 hmm... that -1 should be +1 on x86, I think 19:57:48 or possibly +4, depending on alignment 19:57:57 I should probably make c a long long to avoid problems with that 20:04:17 hmm, segfaults for me :P 20:04:37 and the function is apparently called __builtin_frame_address rather than pointer 20:04:41 ah, yes 20:04:48 and I'm not at all surprised at that segfault 20:05:06 for all I know I got the elements of that in the wrong order 20:05:14 try swapping 1 and 2, I'm pretty sure about 0 20:05:41 also, I'm on x86_64 :P 20:05:50 but it does do the same when compiled with -m32 20:06:15 hmm... maybe I'll research a corrected version that at least works on x86 20:09:58 ais523, I'm also on x86_64 20:10:15 and it is horribly implementation defined, or undefined 20:10:18 well that was meant to be portable to a whole range of processors, most likely I messed it up somewhere 20:10:21 and yes I know it is 20:10:24 that was kind-of the point 20:10:36 normally you'd just use setjmp 20:11:03 ais523, normally I wouldn't mess with either setjmp or longjmp 20:11:06 I think every single statement of that, apart from the auto char c and the null statement at the end, is undefined 20:11:17 i love it when AnMaster nitpicks about portability, readable & maintainable code, etc. when we're messing around with stuff in #esoteric 20:11:36 tusho, maybe it is some sort of meta-esotericness? 20:11:36 well, I think it's useful to nitpick about that normally, but my code was intentionally awful 20:11:47 ais523: of course - normally 20:11:50 but we're in #esoteric 20:11:58 and yes I see it is something you shouldn't do 20:12:04 not even with lots of doxygen comments. 20:12:05 unreadable, unmaintainable and unportable code is a holy grail 20:12:16 see! now he's ranting about decent documentation 20:12:18 jesus christ 20:12:29 tusho, you need a new sarcasm detector 20:12:34 your must be worn out 20:13:10 AnMaster: your breed of sarcasm is neither funny, has any hint of sarcasm being in it at all (seeing as most of the time it's your actual opinion backed up from previous times) and is merely annoying 20:14:08 are you talking to yourself? 20:14:34 no. 20:14:44 'AnMaster:' <- this is a magical little thing that lets you know who I'm talking to 20:14:57 please you two, calm down 20:15:01 tusho, yes I assumed it was some weird mistab 20:15:08 I may have to research a fixed setjmp-by-hand 20:15:15 to quell this argument somewhat 20:15:25 ais523: no, i've dealt with anmaster's annoyance for many months now and it's just pissing me off 20:15:33 also if you think I like readable code, how do you explain this then: 20:15:35 set(Fungespace, #fip{offX = OffX, offY = OffY}, {X,Y}, V) -> 20:15:35 set(Fungespace, {X+OffX, Y+OffY}, V). 20:15:46 I wouldn't call that readable, yet I wrote it and I'm happy with it 20:15:47 AnMaster: that is readable compared to half the stuff I write 20:15:50 AnMaster: except i have seen people actually find my sarcasm funny, always is exaggerated so you can tell it is sarcasm 20:15:55 and is not generally annoying 20:16:00 also, that code is perfectly readable 20:16:04 it's just not imperative code. 20:16:31 agreed it isn't 20:17:23 i wouldn't have a problem with this if it wasn't completely impossible to /ignore AnMaster properly seeing as there is regularly discussion with him of which at least one side is interesting 20:17:39 I say the same about tusho 20:17:40 really 20:17:54 you two seem to get into different sorts of discussions really 20:18:02 maybe we need to split #esoteric into two 20:18:12 it's hilarious that I was actually the one who invited AnMaster to #esoteic 20:18:15 *esoteric 20:18:30 tusho: you're both credits to #esoteric; at least, /I/ enjoy both sorts of discussion 20:18:32 may have been 20:18:37 AnMaster: is definitely 20:18:38 i recall it 20:18:44 you were in #bash asking about your brainfuck impl 20:18:58 but tusho gets annoyed when I have long interesting discussions with AnMaster and considers my half interesting but infuriating due to the lack of context and AnMaster's half annoying 20:18:58 I asked some stuff about it and helped a bit in /msg, invited you to #esoteric, and then a few months later you just started being incredibly annoying 20:19:02 tusho, what nick were you using then? 20:19:07 AnMaster: ehird`. 20:19:09 or ehird 20:19:11 hm 20:19:27 ais523, heh? 20:20:05 AnMaster: I'm trying to remember when it was 20:20:17 probably it was about some Befunge implementation, most likely cfunge 20:21:17 ais523, which you like right? it seems tusho hates it though 20:21:26 AnMaster: yes, I like it 20:22:20 ccbi has a nicer name 20:22:23 and I actually timed it on life.bf (befunge93 game of life) and cfunge is way faster than any other funge98 I found so far, I guess a dedicated befunge93 with a static 80*25 array would be faster 20:22:51 all built with -march=k8 -msse3 -O2 20:23:04 ccbi I had to use Deewiant's build for though 20:23:15 brb 20:28:45 haha 20:28:49 odd troll in #erlang 20:28:53 he/she just says 20:28:54 erlang 20:28:58 every few minutes 20:29:02 bot? 20:29:11 ais523, no responded with "trolls live in Norway" 20:29:12 and such 20:29:52 ais523, no timestamps but see "potar" in http://rafb.net/p/RJkQJY27.html 20:32:04 http://hasthelargehadroncolliderdestroyedtheworldyet.com/ <-- why? 20:32:19 he goes on like that 20:32:24 *me is xxxx. -> why are you xxxx? is actually not that improbable 20:32:41 oklopol: ELIZA, IRC version? 20:32:41 ais523, that got some java script... 20:32:46 with "YUP" in it 20:32:47 not sure 20:32:53 noscript blocked it 20:32:56 AnMaster: same here 20:33:02 you can look at the source if you really want to 20:33:09 it checks a variable to see if the world's ended 20:33:17 :) 20:33:35 but I don't see why anyone would go to the trouble of registering the domain in the first place 20:33:45 as a joke? 20:33:50 also, www.vjn.fi/domains 20:33:56 I see the fun of it 20:34:15 * potar has quit (K-lined) 20:34:15 hah 20:34:31 what exactly is K-lining? 20:34:42 i have a friend who got a k-line on freenode by explicitly asking for one for about a week 20:34:57 being killed by the server admins as opposed to being kickbanned from a channel? 20:35:08 oklopol: why? 20:35:14 ais523, same as g-line 20:35:25 ais523, like a ban from the whole network 20:35:27 AnMaster: that isn't very helpful as I don't know what either is 20:35:29 based on ip 20:35:29 ah 20:35:37 k-line on freenode is whole network 20:35:46 on traditional networks k-line was server-local 20:35:50 and g-line global 20:35:57 must do something pretty bad to annoy the opers like that 20:36:22 in quakenet, you just have to connect 5 times from the same ip 20:36:31 ais523, a staffer joined just before, I guess he (yes I know that staffer is a he) banned after he saw the spamming 20:36:43 ah, ok 20:36:52 I thought channel kickbans were more common than server k-lines though 20:37:05 probably on multiple channels spamming the channel name 20:37:12 esoteric 20:37:18 esoteric 20:37:19 * AnMaster slaps ais523 20:37:23 sorry... 20:37:41 anyway 20:37:41 * ais523 wonders how long an ELIZAbot would last in a high-traffic channel if it tried to reply to everyone 20:37:45 probably that 20:38:07 heh, i just realized the domains page says "volimo's homepage", i smell copy paste 20:38:15 ais523, sendq or recvq exceeded? or if it rate limited itself, would lag several hours 20:38:52 AnMaster: I seriously doubt it would overflow the sendq, if it did then the same would happen to everyone else in the channel 20:38:57 as they're all receiving the same things 20:39:24 ais523, err I just didn't remember if it was send/recv from client or server point of view they were named after 20:39:47 server point of view 20:39:58 I know, I did /who on Freenode once by mistake 20:40:14 it managed several screenfuls of channels before killing me, though 20:41:23 talking about excess floods? 20:41:28 oklopol: yes 20:41:43 in particular, what would happen if you put an ELIZAbot in, say, #ubuntu, which replied to every message 20:42:01 well 20:42:08 with the current traffic, probably nothing 20:42:21 ok, say it's the release day of Intrepid 20:42:26 to guarantee high traffic 20:42:33 my stack layout seems quite insane here, &c isn't even *near* the stack pointer 20:42:35 in quakenet, a full message can be sent every 7 seconds without excess flood 20:42:41 *6 seconds 20:42:49 olsner: that could explain why it isn't working, to some extent 20:43:00 5 second delay gives may get you killed. 20:43:21 freenode lets you send a bit faster, since this is a relatively small network 20:43:28 well, that's no reason, more like a heuristic 20:44:23 you could send at least 3 responses to everything on #ubuntu without getting excess flood killed 20:44:36 ok, so not a floodkill 20:44:49 how long do you think it would take for the people there to get annoyed and find a chanop and kill the bot? 20:44:56 about a minute :) 20:45:39 "Are you a bot?" "Would you like me to be a bot?2 20:45:43 s/2$/"/ 20:45:51 that would make it obvious pretty quickly, I imagine 20:46:03 when i asked for a mips expert, where you here, ais523 20:46:14 I don't think so, but I'm not a mips expert 20:46:19 okay 20:46:22 if I was I would have said GregorR was and I wasn't 20:46:34 at least GregorR reimplemented mips in JS, which has got to be worth something 20:46:35 yeah that's the redirection i was given 20:46:55 but GregorR is not active, so i had to recheck. 20:48:02 i do know mips quite well now, read the most of computer organization and design last week, and it introduces mips pretty thoroughly 20:48:07 hmm, even with the use of the proper register offsets into the jmp_buf (which are 3, 4 and 5 for bp, sp, ip), and adding an arbitrary offset to &c, it still seems to go haywire 20:48:30 so i don't actually need any help, i guess i'm just asking out of interest 20:48:38 ais523: 20:48:44 it's a parody of isitchristmas.com 20:48:50 ah, I didn't know that 20:48:51 which has parodies such as isxkcdshittytoday.com 20:49:00 and isbarackobamaamuslim.com 20:49:01 etc 20:49:04 but why is a website needed to tell people if it's christmas? 20:49:08 ais523: it's funny 20:49:10 it's a joke 20:49:24 ais523: it's absurd, yet funny because it's so overblown 20:49:27 ais523: all these have rss feeds 20:49:29 if you look 20:49:44 tusho: how often do they get new entries? Once a year? 20:49:48 ais523: no 20:49:48 every day 20:50:00 for isitchristmas, NO or YES 20:50:02 isxkcdshittytoday says yes :o 20:50:02 well, twice a year for isitchristmas 20:50:05 for isxkcdshittytoday.com always YES 20:50:05 that's just wrong 20:50:14 http://hasthelargehadroncolliderdestroyedtheworldyet.com/ - well you can guess 20:50:25 http://hasthelhcdestroyedtheworld.com/ <-- someone else got the idea 20:50:32 er 20:50:34 wrong one 20:50:39 here 20:50:40 http://www.hasthelhcdestroyedtheearth.com/ 20:50:52 two of them... 20:51:03 * ais523 almost faints in horror at the idiocy of the Internet 20:51:07 ais523: idiocy? 20:51:09 hilarity 20:51:09 actually, I genuinely feel a bit sick now 20:51:22 :) 20:51:26 what's wrong with you, generally you love pointless ideas carried out to a huge maximum 20:51:29 that is, er, intercal 20:51:41 tusho: they have to be interesting pointless ideas carried out to a huge maximum 20:51:50 ais523: an rss feed is a pretty huge maximum 20:52:03 I also like http://notalwaysblue.com/ (javascript required). 20:52:07 It is not always blue. 20:52:08 also, doing it more than once is not funny 20:52:14 ais523: it's not one person 20:52:16 the original is possibly a good idea 20:52:17 ais523, why exactly is INTERCAL not LR(N)? 20:52:20 they're all different people 20:52:25 AnMaster: I wrote an essay about it 20:52:27 let me link you to it 20:53:07 ais523, thanks 20:53:16 http://code.eso-std.org/c-intercal/pit/tests/arrtest.doc 20:53:20 that's actually a text file 20:53:26 the extension is misleading the web server for some reason 20:53:27 i wanna register http://alwaysblue.com/ 20:53:29 but its squatted 20:53:37 ais523: you know exactly the reason 20:53:38 :P 20:54:18 tusho: that site is not even usually blue 20:54:21 IMO it ought to be 20:54:27 ais523: no, that's the joke 20:54:30 it focuses on the blue for no reason 20:54:33 everything has a chance 20:54:40 but it is 'not always blue' 20:54:49 is it ever blue? 20:54:58 I didn't check the list of colours quickly enough 20:54:58 yes 20:55:02 yes 20:55:28 AnMaster: anyway, quick summary: 20:55:35 DO .1 <- ,3SUB",2SUB.1".2 (reduce required) 20:55:41 DO .1 <- ,3SUB",2SUB.1".2~.3"".4 (shift required)) 20:55:59 and it's possible to put an arbitrary expression in place of .3 20:56:04 ah I see 20:56:13 however, doing this sort of thing is actually against the spec 20:56:21 it is? 20:56:24 which basically says "you mustn't do anything which makes the language not LR(1)" 20:56:36 that amused me when I read it... 20:56:59 DO .1 <- ,3SUB",2SUB.1".2~.3"".4 (shift required)) 20:57:01 um 20:57:03 two )? 20:57:09 oh wait 20:57:11 now I see 20:57:15 AnMaster: bad copy-and-paste, sorry 20:57:19 ais523, not at all 20:57:25 there is an ( the line above 20:57:28 which it matches 20:57:33 yes, but I didn't copy the line above 20:57:34 (It could be the start of this statement: 20:57:34 20:57:34 DO .1 <- ,3SUB",2SUB.1".2~.3"".4 (shift required)) 20:57:38 they match 20:57:52 it matches in the orginal but not my paste here, which is why I said "bad copy and paste" 20:58:10 ais523, I meant the original 20:58:17 ah, ok 20:58:17 which I misread 20:58:41 ais523, apart from this, what prevents it from being LALR(1)? 20:58:53 nothing, it's just the array syntax 20:58:56 everything else is fin 20:58:59 s/$/e/ 20:59:13 which basically says "you mustn't do anything which makes the language not LR(1)" <-- didn't that mean LALR then? 20:59:24 could mean either really 20:59:32 they express the restriction in very vague terms 20:59:34 well iirc LALR is simpler 20:59:43 hmm, LALR is a subset of LR, right? 20:59:48 it's pretty much impossible to know what it means until you try to implement INTERCAL yourself, or have someone explain it to you... 21:00:30 ais523, how can " be both "sparks" and "ears"? 21:00:39 err spark* and ears 21:00:53 " is ears, ' is spark 21:00:59 er 21:01:05 there is no requirement to use one or the other except in the case of array indexing 21:01:18 so how is there a conflict if ' is spark 21:01:22 when you have to alternate to avoid that little bit of parsing trickiness 21:01:24 then you could just see if it was ' or " 21:01:38 AnMaster: the point is that you have to choose either ' or " to avoid the conflict 21:01:46 whereas in most expressions you can just use " everywhere 21:01:59 they have the same meaning? 21:02:00 ".1~".2~".3~.4""" is a perfectly legal INTERCAL expression 21:02:02 AnMaster: yep 21:02:06 and that is? 21:02:16 I assume it isn't quote 21:02:20 AnMaster: it's parens 21:02:27 hm ok 21:02:33 (.1~(.2~(.3~.4))) 21:02:41 and . and ~ are? 21:02:44 INTERCAL parens are nondirectional, thus causing the current notational confusion 21:02:55 . is a sigil to denote a 16-bit variable, like $ in Perl 21:03:02 and ~ is the select operator, which is a pain to explain 21:03:17 nondirectional? ( and ) are interchangeable? 21:03:28 Deewiant: they're both " in INTERCAL, or alternatively ' 21:03:30 ".1~".2~".3~.4""" <-- if they are like ( and ), there is no way you can handle that with one symbol lookahead 21:03:33 " can only match " an ' can only match ' 21:03:34 heh, amusing 21:03:46 AnMaster: there is, the trick is to see whether there's an operator or number immediately before them 21:03:47 because you wouldn't know if it was a closing on a opening one on a new level 21:03:57 ais523, oh? 21:04:02 can't you close then? 21:04:02 that doesn't work in arrays though because they can have multiple expressions in a row 21:04:11 AnMaster: 3( is invalid and +) is invalid, I guess 21:04:16 ah 21:04:21 that's what I was referring to 21:04:31 Deewiant, except intercal doesn't have addition iirc 21:04:36 not like we define it 21:04:39 yep, five operators 21:04:42 -!- Corun has joined. 21:04:44 none of which are particularly standard 21:04:47 whatever, you know what I meant 21:04:53 ais523, select being the worst one? 21:05:01 AnMaster: select is probably the hardest to explain 21:05:04 it's one of the most useful though 21:05:06 and the other ones are? 21:05:11 and the only one known to have been invented independently 21:05:20 well, $ is mingle, that alternates bits in its arguments 21:05:44 ais523, iirc I read that select matched some operator on some other existing system though it was unknown by the intercal inventors 21:05:53 sounds familiar 21:06:02 e.g. #5$#2 is 101$10 which is 100110 which is 38 21:06:10 AnMaster: yes, that's from the Wikipedia article 21:06:13 ais523, err,,, bitwise not? 21:06:21 or what are you saying? 21:06:33 AnMaster: no, it takes two arguments 21:06:42 bitwise xor? 21:06:50 it takes the first bit of the first, then the first bit of the second, then the second bit of the first, then the second bit of the second, and so on 21:06:58 until all the bits have been copied into a new number 21:07:00 oh I see 21:07:05 interleave them 21:07:07 ais523: is that all? 21:07:07 right 21:07:08 that's trivial 21:07:20 tusho: that's what $ does, and it isn't all that powerful 21:07:35 and the other operators? 21:07:36 then there are unary AND, OR, and XOR, which work on alternate bits of their arguments 21:07:41 s/alternate/consecutive/ 21:07:46 ah 21:07:58 so it's the first bit AND the second, the second AND the third, and so on 21:08:02 ouch 21:08:13 except that you have the last AND the first filling in the very top bit 21:08:26 they're written & V ? in C-INTERCAL 21:08:29 respectively 21:08:37 I'll try to explain select anyway, it's probably the most useful 21:08:45 ais523: wait, isn't $ select 21:08:47 oh 21:08:48 mingle 21:08:49 tusho: $ is mingle 21:08:52 ~ is select 21:08:57 ah, so select is the complex useful one 21:09:02 well, I'll implement $ 21:09:11 tusho, haha 21:09:23 ais523, well I seen a diagram which wasn't useful at all 21:09:33 AnMaster: that diagram's a joke AFAICT 21:10:02 anyway, to calculate .1 ~ .2, you work out the bitwise-and of .1 and .2, then stable-sort the bits of the result by the bits of .2 21:10:02 "The program arrtest.i will not actually run, but it will compile as far as degenerating C code" <-- "degenerating"? 21:10:24 AnMaster: INTERCALese for "generate", they tend to mess around with words like that if it doesn't cost too many extra characters 21:10:48 stable-sort the bits of the result by the bits of the second operand.... um wait what? 21:10:58 you mean all 0 first, then all 1? 21:11:01 that's it 21:11:06 ais523: hmm, you can't implement mingle without knowing how many bits in an int, right? 21:11:16 tusho: correct, but it's always 16 in INTERCAL 21:11:23 tusho, sizeof(int) * CHAT_BIT in C 21:11:24 well, 16 before the mingle, 32 afterwards 21:11:25 alright, i'll just require that then 21:11:38 tusho, what are you writing this for? 21:11:41 AnMaster: c 21:11:48 INTERCAL has both 16- and 32-bit datatypes but you aren't allowed to mingle 32-bit values 21:11:53 hm 21:11:59 tusho, what program I mean 21:12:02 why do you need it 21:12:13 AnMaster: i don't 21:12:43 ais523, what sorting algorithm does ick use for select? 21:13:02 I assume some custom one would actually be fastest here 21:13:13 AnMaster: I think it's custom 21:13:26 I can look it up, the implementation of the forward operators is one of the bits I never touched though 21:13:38 could be O(n) with O(2n) for memory 21:13:52 wait maybe not 21:14:02 could be if one was reversed stable sort 21:14:10 so you filled in from each end 21:14:24 AnMaster: well the only possible digits in binary are 0 and 1 21:14:28 that makes the sorting a lot faster 21:14:32 also, 0 AND anything is 0 21:14:36 yep 21:14:37 so that can also be used to optimise the result 21:15:33 is the source for the original intercal compiler around any more? 21:15:50 AnMaster: OK, I checked, basically it just scans the second argument looking for 1s, and copies corresponding values from the first argument to the result 21:15:54 pretty simple, really 21:16:10 oh, except it saves time by bitshifting the arguments around on occasion 21:16:19 AnMaster: not as far as I know 21:16:23 ais523, ah so O(n) and O(2n) for memory? 21:16:32 however, there was an interview with the original creator 21:16:32 O(n) for complexity I mean 21:16:36 where n is number of bits 21:16:42 AnMaster: yes 21:16:52 anyway it turned out that they didn't implement integers as integers at all 21:17:02 they implemented them as strings holding the binary representation of the number 21:17:06 and manipulated them with regexen 21:17:07 yeargh 21:17:13 AnMaster: it was in SNOBOL, iirc 21:17:16 so that would have been natural 21:17:18 ah hm 21:17:20 ok 21:17:24 tusho: SPITBOL, a dialect of SNOBOL, but yes 21:17:36 still that would have been slow, and very very slow on those old computers 21:17:42 it was 21:17:58 AnMaster: duh 21:18:01 why does it matter 21:18:48 tusho, why do you care? 21:19:00 AnMaster: because i really don't get why you're bothered by stuff like that 21:19:06 who cares if intercal programs run fast? 21:19:09 why is it an issue? 21:19:14 I didn't say it was an issue 21:19:24 tusho: actually part of the charm of C-INTERCAL is trying to get INTERCAL to run fast 21:19:36 there you go 21:19:44 ais523: but nobody would fault it if it failed 21:19:52 well, it does fail to some extent 21:20:00 but it's a lot faster than CLC-INTERCAL 21:20:04 and probably a bit faster than J-INTERCAL 21:21:06 ais523, does ick use SSA internally or? 21:21:19 AnMaster: no, it maps each INTERCAL variable to a C variable 21:21:28 bbl, emerg 21:27:47 back 21:28:17 ais523, what about other stuff, common sub-expression elimination and such? 21:28:23 AnMaster: when you find out how bad INTERCAL control flow is normally, you'll see why 21:28:33 ais523, oh hm? 21:28:44 anyway, the sort of optimisations C-INTERCAL do are mostly manipulating the INTERCAL to make it more C-like 21:28:50 ah 21:28:57 there's some CSE involved, but normally that can be left to the C compiler when the code's C-like enough 21:29:33 CSE meaning? 21:29:40 common subexpression elimination 21:29:43 ah right 21:29:55 -!- comexk has joined. 21:30:06 ais523, ever thought about compiling to native code? 21:30:19 AnMaster: a bit, if I did I'd do it as a gcc frontend 21:30:26 but it works well compiling to C 21:30:28 ais523, not llvm frontend? 21:31:06 AnMaster: the intermediate formats used by C-INTERCAL and by GCC are pretty similar 21:31:50 ais523: i may have killed you 21:31:55 [[ You should have received a copy of the GNU General Public License 21:31:55 along with this program; if not, write to the Free Software 21:31:55 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21:31:55 ]] 21:31:56 Thought: 21:31:58 oklopol: how? 21:32:01 What if the FSF move offices? 21:32:07 Won't they be violating the GPL or something? 21:32:16 ais523: was watching death note, and decided to try out whether notepad has the same power 21:32:25 tusho, didn't they at some point? 21:32:30 tusho: it would certainly make for a good Slashdot story 21:32:36 you were the only one on #esoteric the name and face of whose i could immediately recall 21:32:41 the GPL is no-derivs so we couldn't even change it 21:32:49 oklopol: I'm still alive I think 21:32:54 40 seconds \o/ 21:32:59 i believe death note has a time limit thing 21:33:01 hmm 21:33:02 24 hours or something? 21:33:04 haven't actually watched it 21:33:07 you should've died already 21:33:08 oaky 21:33:08 30 seconds IIRC 21:33:10 *okay 21:33:17 I haven't watched it either, read it though 21:33:17 i guess the microsoft dudes didn't add tat feature 21:33:19 creepy that oklopol knows ais523's face by heart, though 21:33:19 *that 21:33:19 death note is? 21:33:20 :D 21:33:26 40 seconds in the tv series 21:33:26 AnMaster: manga/anime thing. 21:33:28 AnMaster: manga/anime/live-action movie 21:33:32 ais523, tusho: I seen another address in older copies of GPL with different address 21:33:36 *anime yeah 21:33:37 ah ok 21:33:44 AnMaster: oh dear 21:33:46 * ais523 is amused 21:33:50 oklopol: I wonder why they always change stuff like that 21:33:51 ais523, forwarding I assume 21:33:54 like "over 9000" 21:33:57 tusho: i know yours too, but ais523's nick was the one i saw first 21:33:57 it's 8000 in the manga 21:34:04 Deewiant: it's OVER 8000 21:34:06 or sorry 21:34:06 haha 21:34:07 i like that 21:34:09 it's 8000 in the japanese 21:34:12 oklopol: creepier 21:34:12 :D 21:34:13 it's 9000 in the english dub 21:34:14 well 21:34:15 Deewiant: in an anime the time actually *matters* 21:34:18 in the manga it's not even said 21:34:24 in the full version of even the english, he says "it's over 8000... over nine" to himself 21:34:25 hmm. i bet apple added death note functionality to TextEdit, since they rock so much 21:34:30 oklopol: it's not like it's accurate anyway 21:34:33 anyway you are making no sense 21:34:34 true 21:34:43 there are a lot of inconsistencies 21:34:44 I guess that is due to not watching manga or anime 21:34:48 not my style 21:34:50 oklopol: you may die in 30 seconds of choking on your computer 21:34:57 tusho: TextEdit is one of the few applications that can actually open OOXML 21:35:05 however it does so by just extracting the text, I think 21:35:16 don't you just have to unzip it like odt 21:35:21 also, textmate 21:35:30 death note is the only anime i've watched 21:35:31 comexk: i use textmate :p 21:35:39 I don't 21:35:41 I cracked it once though 21:35:43 but it costs money 21:35:46 i've tried to watch a few other, but it's impossible 21:35:48 but, i assume the death notey code kind of has high licensing fees. 21:35:50 *oters 21:35:50 * 21:35:53 *others 21:35:56 so i doubt the textmate dev would have it 21:35:57 but it's nice to know how to use a disassembler and be able to crack your own software 21:36:03 apple probably do which is why i tried textedit 21:36:08 oklopol: impossible? :-P 21:36:11 oklopol is actually dead now 21:36:16 if he says anything its just what he said before death 21:36:19 he has like a 5 year lag 21:36:37 that's fine as long as the responses are topical 21:36:42 just so that when he is talking about his death 21:36:45 and pleading for help 21:36:54 and we all call up the emergency services 21:36:58 we learn that he has been dead for 5 years 21:37:02 DUN DUN DUNNNNNNNNNNNN 21:37:22 Deewiant: impossible, they simply tend to suck 21:37:41 well okay, lucky star was awesome :) 21:37:47 but i haven't dl'd that yet 21:37:57 oklopol: how are you talking about things from the future? 21:38:14 it is late 2003 right now for your messages that we are getting 21:38:14 tusho: i'm a pythonist 21:38:26 oklopol: from __future__ import anime? 21:38:30 import("__future__").socket 21:38:49 fail 21:39:02 does it? 21:39:03 oklopol: meh, you're just watching the wrong ones 21:39:05 * oklopol tests 21:39:34 comexk: true, sorry 21:39:37 __import__ of course 21:39:50 they both had __'s, so i naturally got confused 21:41:43 wait a second 21:41:47 comex in here? 21:41:49 that's new 21:42:34 old 21:42:35 iirc 21:42:53 I joined so I could see your mingle thingy 21:43:04 comexk: e pasted it to me in a PM 21:43:10 tusho: paste it in-channel! 21:43:18 ah 21:43:19 ok 21:43:23 http://pastebin.ca/1203677 21:43:28 is bugged, the last two expressions are messed 21:43:33 need moar nummers in the * 21:43:36 but yeah that's the basic idea 21:43:43 slower than c-intercal's, but easy to understand 21:43:54 tusho, nice one, and unreadable 21:44:01 no, readable 21:44:06 you just have to know what it's trying to do 21:44:12 tusho, not on a 80 char wide terminal no 21:44:15 it is unreadable then 21:44:16 duh 21:44:21 i could wrap it but i generated that code 21:44:29 and that's not the point 21:44:36 tusho: C-INTERCAL's mingle is beautifully readable 21:44:41 if a bit non-obvious how it works 21:45:08 well, that's the thing 21:45:14 ais523, do you agree tusho' unrolled one is unreadable? 21:45:14 mine is less readable structurally wise 21:45:17 but is more obvious how it works 21:45:24 AnMaster: c-intercal's is more unrolled 21:45:24 AnMaster: yes, I agree with you 21:45:34 if you just read the first few expressions 21:45:34 he is obviously speed crazy since he unrolled the loop 21:45:38 you get the idea of how it works 21:45:39 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | more ideas are swimming through my head than I can clearly keep track of; that generally means its night time for me. I'll have some more glypho fluff tomorrow though, to be sure!. 21:45:44 AnMaster: no, that's stupid 21:45:58 the point is you can look at the first few expressions and see the algorithm 21:46:04 and C-INTERCAL's is a common-subexpression-eliminated version of mingle, which stores parts of the expressions in parts of the word 21:47:13 tusho, if I had done that you would have said it was speed crazy and unreadable 21:47:18 AnMaster: no i wouldn't have 21:47:26 you are a hypocrite 21:47:27 really 21:47:29 no, i am not 21:47:35 i do not judge code based on who wrote it 21:47:42 it just so happens that yours is pretty consistent in its ugh-ness 21:47:43 you do 21:48:02 no, readable ais523, do you agree tusho' unrolled one is unreadable? AnMaster: yes, I agree with you 21:48:04 *shrug* 21:48:06 two against one 21:48:12 ot 21:48:15 *it's not a fucking battle 21:48:25 you seem to treat it that way normally 21:48:26 i don't give a shit how many people think my code is readable, because it is and I am prepared to justify that 21:48:53 and no, i don't know where you are getting the delusions but I have never cared what people think of your code, i attack it purely by myself and if other people agree that is irrelevant 21:48:55 tusho: it's too wide for the screen and therefore can't be justified without word-wrapping, left-aligned is more useful for code anyway 21:49:09 ais523: when I was hand-writing I aligned the two b and a expressions 21:49:15 by putting the + at the end of the return on the first line 21:49:30 tusho: I was avoiding the argument for the sake of a bad pun, sorry 21:49:39 ah 21:49:41 didn't see that pun 21:49:42 ha 21:50:15 hah indeed 21:57:40 http://public.web.cern.ch/public/en/Science/Antimatter-en.html <-- *groan* at the pun at the end of that 22:23:47 -!- jix has quit (Nick collision from services.). 22:23:57 -!- jix has joined. 23:37:08 -!- ais523 has quit ("9").