00:02:10 -!- Corun has changed nick to NotAFly. 00:02:43 -!- NotAFly has changed nick to Corun^NAF. 00:07:38 -!- cmeme has quit ("Client terminated by server"). 00:07:49 -!- cmeme has joined. 00:12:22 oklopol! 00:12:28 where can i find your muzak 00:12:30 tell me!! 00:16:22 -!- Slereah__ has joined. 00:21:03 oklopol! :| 00:21:18 -!- Corun^NAF has changed nick to SteveWobs. 00:21:52 -!- SteveWobs has changed nick to Corun. 00:22:01 psygnisfive: www.vjn.fi/oklopol 00:34:16 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 00:36:15 -!- tusho has quit. 00:53:29 -!- Slereah_ has joined. 01:06:32 -!- calamari has joined. 01:12:37 -!- Slereah__ has quit (Read error: 110 (Connection timed out)). 01:28:38 hello :) 01:29:38 god my back hurts 01:30:06 * psygnisfive massages oklopols back 01:46:08 -!- RodgerTheGreat has quit (Read error: 60 (Operation timed out)). 02:00:25 thanks 02:09:30 -!- Slereah__ has joined. 02:16:03 -!- cherez has joined. 02:28:28 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 03:06:45 -!- CakeProphet_ has joined. 03:07:19 -!- CakeProphet has quit (Nick collision from services.). 03:07:25 -!- CakeProphet_ has changed nick to CakeProphet. 04:22:16 -!- RodgerTheGreat has joined. 04:27:42 -!- Corun has quit ("This computer has gone to sleep"). 05:01:20 -!- pikhq has quit ("leaving"). 05:17:31 tusho, you there? 06:05:16 -!- GreaseMonkey has joined. 06:33:54 -!- cmeme has quit ("Client terminated by server"). 06:34:05 -!- cmeme has joined. 07:10:10 -!- augur has joined. 07:10:10 -!- psygnisfive has quit (Read error: 54 (Connection reset by peer)). 07:10:42 -!- augur has changed nick to Guest76788. 07:55:05 -!- calamari has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:20:39 -!- CakeProphet has quit ("lolwhut?"). 09:23:57 -!- CakeProphet has joined. 09:26:09 -!- olsner has quit ("Leaving"). 10:26:54 Some days, I hate Gentoo. 10:26:54 "No disk space available". . . 10:26:54 When the partition in question is only 70% used. . . 10:26:54 If I get that error again, now that the disk is only 56% used, I'm kicking someone in the shin. 10:26:56 that is easy 10:27:00 it is a ext3 feature 10:27:02 not gentoo feature 10:27:12 ext2/3 reserves some space for root 10:27:15 iirc 5% 10:27:49 can be changed using tune2fs or whatever it is called 10:28:59 -!- tusho has joined. 10:29:11 tusho, about case insensitive 10:29:15 that is really hard to do 10:29:18 it depends on locale 10:29:28 ... 10:29:33 tusho, yes it does 10:29:35 AnMaster: You need to support locales in a modern OS already. 10:29:40 And Unicode. 10:29:45 So no. It's not. 10:29:45 tusho, yes but it will differ between locales 10:29:50 so on some it should be the same 10:29:54 on other it shouldn't 10:30:02 AnMaster: no not really 10:33:23 -!- Judofyr has joined. 10:35:22 -!- GreaseMonkey has quit ("HydraIRC -> http://google.com <- Go find something better"). 10:36:59 wtf, this valgrind error makes no sense 10:37:19 I did realloc the block to a size to cover this memset, and yet it says that: 10:37:21 memset(newblock+oldlen, 0, newlen-oldlen); 10:37:30 the address "newblock+oldlen" is invalid 10:37:44 but a "VALGRIND_CHECK_MEM_IS_ADDRESSABLE(newblock, newlen);" before says it is ok 10:37:53 and yes newlen is larger than oldlen 10:37:56 I checked that 10:57:39 -!- Judofyr has quit. 11:05:57 hi jud 11:05:58 oh 11:06:00 he left 12:01:57 -!- oklopol has quit (Read error: 113 (No route to host)). 12:09:32 my optimizer seem to work well btw 12:09:38 -!- oklopol has joined. 12:10:15 tusho, there? 12:10:22 maybe 12:10:26 is it worth optimizing [[...]] where ... is any code 12:10:37 because that would be the same as [...] 12:10:42 optimize everything 12:10:54 tusho, there is an issue with this 12:10:57 pointers 12:11:07 AnMaster: optimize all you can 12:11:12 you can no longer jump into the middle of a pointer 12:11:17 ah 12:11:18 then no 12:11:19 in Def-BF 12:11:20 don't do that 12:11:29 tusho, any optimizing breaks in fact 12:11:35 AnMaster: then don't 12:11:56 * AnMaster ponders 12:12:26 I have written a good brainfuck optimizer. I guess I will make it a stand-alone program 12:12:59 yet... 12:13:31 in fact you can't optimize Def-BF at all when it comes to +++ or --- 12:13:36 then don't 12:13:36 due to the jumps 12:13:46 hm 12:13:52 maybe generate alternative code versions? 12:13:58 depending on where into that you jump 12:14:13 tusho, what do you think of that? 12:14:19 why not both optimize and make jumps correct? 12:14:26 oklopol: impossible 12:14:31 or at least 12:14:32 very ahrd 12:14:32 uhhuh? 12:14:36 oklopol, if you have +++++, you could jump into the middle of that 12:14:38 that is the issue 12:14:39 oklopol: you can jump to an arbitary pointer location 12:14:41 with Def-BF 12:14:44 i know 12:14:52 so you need something like: 12:14:55 i don't see what's hard about keeping both versions 12:14:55 oklopol: so if you compact it into 5+ 12:14:58 you can't jump into the middle 12:14:59 add(4) goto +3; 12:15:01 duh 12:15:04 add(3) goto +2; 12:15:06 and so on 12:15:13 and then a lot of labels 12:15:29 but yes keeping both versions could work 12:15:33 but would be quite complex 12:15:36 anyway, just have both versions, and when entering a loop from the start, use the optimized one, when jumping, use the original 12:15:43 ouch, oklopol 12:15:47 no. 12:15:51 why not? 12:15:59 and it isn't just loop 12:16:05 it would not be complex 12:16:08 just faster 12:16:20 oklopol, the generated code would be even messier 12:16:26 but ok 12:16:28 and hueg liek xbox 12:16:30 don't do it AnMaster 12:16:45 err, just do what i said earlier 12:16:50 that's like 4 lines of code 12:16:51 no 12:16:54 it's not 12:17:02 how is that just 4 lines of code 12:17:04 that's a stupid idea 12:17:11 doesn't work? 12:17:11 oklopol, what about ++<-+>-- 12:17:18 that would be optimized into a NOP 12:17:19 but... 12:17:25 keeping the other version too 12:17:29 that would be painful 12:17:39 for a sample of the generated code: http://rafb.net/p/5ncCMZ55.html 12:17:42 well i guess if you don't do exactly what i just said there 12:17:46 it can be complex 12:17:50 input was the test code: 12:17:52 +++++-->>><<[-]---+++<>++---<-+>-[->+><-<] 12:18:18 as you see you can easily optimize [->+><-<] into load constant 0 12:18:36 AnMaster: you should explicitly decopyright the generated code 12:18:42 tusho, I should indeed 12:18:50 thanks tusho 12:19:01 tusho: what's the problem with my approach? 12:19:01 :) 12:19:07 oklopol: it's hard to implement in c 12:19:12 and results in hueg bloat of the generated code 12:19:29 tusho, what do you think about the rest of the generated code? 12:19:37 err, you'd have at most twice the amount of code loaded 12:19:38 AnMaster: it's nice 12:19:41 apart from the CamelCase ;) 12:19:42 how is that a huge? 12:19:45 tusho, haha ok 12:19:52 *that huge 12:19:54 AnMaster: 12:19:54 /* ] */ case 41: ; } 12:19:56 i love the wink 12:19:58 ; } 12:20:01 tusho, it isn't a wink 12:20:03 you need the ; 12:20:04 shut up 12:20:06 it is a wink 12:20:07 ; } 12:20:07 to not get a compiler error 12:20:13 shut up ; } 12:20:19 tusho, you need the ; to not get a compiler error :P 12:20:24 shut up ; } 12:20:32 I will insert a newline there then 12:20:36 just to shut you up 12:20:38 heh, fun switch behavior 12:20:45 AnMaster: nooo 12:20:46 don't 12:20:47 I like it 12:20:49 haha 12:20:50 ok 12:21:00 but yeah, switch being like that is awesome. 12:21:03 tusho, unusual for you to like something I coded 12:21:09 anyway just have two versions of all functions and you could trivially implement what i said 12:21:24 AnMaster: that generated code is good. 12:21:28 hm 12:21:36 tusho, with optimizer it gets just a few line 12:21:42 but of course breaks jumps 12:21:46 AnMaster: i would just omit the optimizer 12:21:51 better to have a 'proper' implementation 12:21:58 tusho, posix_fallocate? ;P 12:22:03 * AnMaster runs 12:22:22 * tusho commits seppeku 12:22:26 tusho, really, how would it be hard :D 12:22:32 seppeku? 12:22:44 AnMaster: http://en.wikipedia.org/wiki/Seppuku 12:22:54 Seppuku (切腹, Seppuku? "stomach-cutting") is a form of Japanese ritual suicide by disembowelment. Seppuku was originally reserved only for samurai. Part of the samurai honor code, seppuku has been used voluntarily by samurai to die with honor rather than fall into the hands of their enemies, as a form of capital punishment for samurai who have committed serious offenses, and for reasons that shamed them. Seppuku is performed by plunging a sword into the a 12:22:57 anyway parser, optimizer and emitter are all recursive 12:23:40 you have two versions of each func, the optimized and non-optimized ones, the non-optimized version just runs one loop, then calls the optimized one, all jumps would be to the non-optimizing ones 12:23:53 func per loop 12:24:19 um 12:24:24 non-optimized just runs one cycle, rather 12:24:27 oklopol, these are not in loops 12:24:42 oklopol, these are stuff like merging +++ into "add 3" *anywhere* 12:25:03 or >>>> into "go left 4 steps" 12:25:08 the program is just a loop that's executed once, for our purposes 12:25:22 anyway 12:25:38 you couldn't do that case:while(){ case:oper case:} thing 12:26:27 but i wouldn't say that'd be a loss 12:26:59 um 12:27:00 he has to oklopol 12:27:01 for jumps 12:27:18 i doubt that 12:27:26 oklopol, def bf got a "call" and a "return" 12:27:29 so yes I need it 12:27:38 I have a callstack 12:28:18 w/e, do what you want, all i'm saying is it's trivial to have optimization and still have jumps correct 12:28:28 hm 12:28:37 trivial but a stupid way of doing it 12:28:41 tusho, http://rafb.net/p/ywcGVz68.html is the (wrongly) optimized way 12:28:43 why stupid? 12:28:46 AnMaster: i say just KISS and don't optimize 12:28:56 at least you'll have your mind at the end 12:29:02 you said it'd be huge earlier, but that's total bullshit 12:29:39 i'm not saying he should optimize, i'm just asking what's wrong about my way of doing it 12:29:54 tusho, I can see how to do it properly, it means emit unoptimized, but jumps to the first in an optimized set instead cause the single instruction followed by a jump to the end of it 12:29:55 not that hard 12:30:04 AnMaster: it's inelegant though 12:30:06 and not that much larger 12:30:11 tusho, it is not huge however 12:30:11 and the speed you get from your optimization isn't worth the inelegance 12:30:14 just keep it simple 12:30:19 rip out the optimizer 12:30:24 tusho, optimize needs -O option anyway 12:30:33 AnMaster: so yeah, just don't bother optimizing 12:30:50 tusho, I think I will try to do it, and do it properly 12:30:59 this will include the keep alt way thing 12:31:08 heh. enjoy your pain. 12:31:11 I will need to rewrite the optimizer a bit of course 12:31:16 currently it is just node merging 12:31:28 AnMaster: good choice 12:31:30 I will need node insert now 12:35:21 AnMaster: good choice <-- what is? 12:36:03 oklopol, oh btw I do it in two passes 12:36:08 implementing some form of optimization 12:36:12 yes 12:36:21 want to see the optimizer code? 12:36:29 it's quite uggly 12:36:51 http://rafb.net/p/lQlzyr62.html 12:38:39 tusho, what do you think about that? 12:38:45 trash it 12:38:47 you'll feel better 12:38:47 :) 12:39:02 tusho, nah rewrite it 12:39:10 tusho, but is it good for plain bf? 12:39:17 shrug 12:51:43 -!- Sgeo has joined. 12:58:55 http://www.simplynoise.com/ <-- pink noise @8% = nice for coding 13:21:26 Whee. 13:21:42 I just wrote a tiny, but very useful, personal wiki in 78 lines of code. 13:21:49 And it hooks in with git, so I can just 'git commit', f5. 13:22:48 -!- Corun has joined. 13:35:56 heh 13:36:01 tusho, what language? 13:36:08 ruby 13:36:11 using the 'rake' tool 13:36:16 which is like a souped-up make for ruby 13:36:24 ok 13:36:41 i can use Erb templates to embed ruby in my pages, there's a full template that handles every page, and it'll copy a stylesheet to the generated pages if you have one 13:36:44 so, really, I can do anything 13:36:53 if I ever wrote a make tool, I would call it demolish 13:36:57 heh 13:37:00 just to confuse everyone 13:37:03 rake is less typing though 13:37:04 :) 13:37:08 kind of like version control systems 13:37:13 your number one problem - get a two letter name 13:37:15 :P 13:37:21 however it has to be easy to type 13:37:28 'git' wins over 'hg' because hg is too close together 13:37:33 bzr, git, svn, cvs, hg, darcs!?, monotone!? 13:37:38 monotone=mtn 13:37:45 darcs is totally fail on that aspect :) 13:38:10 AnMaster: oh and the wiki markup language is Markdown 13:38:15 with one extra hack 13:38:17 markstraneg 13:38:19 err 13:38:21 margestrange 13:38:27 as in up, down, strange... 13:38:27 if you do a local link 13:38:29 quarks 13:38:33 that is, no protocol 13:38:37 it'll add .html to the end 13:38:42 k 13:38:51 so: [page of ideas](ideas) 13:38:53 links to ideas.html 13:39:01 to mimic wiki links 13:39:46 I think... I will have to parse the tree backwards 13:39:49 to optimize it now 13:39:56 but that seems totally strange 13:40:00 AnMaster: oh and you'll hate this- 13:40:09 the only thing it recognizes for no protocol right now 13:40:10 or I will have to double-back all the time 13:40:14 is "doesn't start with http[s]://" 13:40:23 gopher gopher gopher!? 13:40:28 but then it's trivial to code that and I'm not linking to gopher or nntp any time soon 13:40:28 ;P 13:40:28 :P 13:40:32 I might add a provision for mailto 13:40:38 tusho, and gopher 13:40:45 AnMaster: heh, fine 13:40:59 tusho, I have been thinking about gophers. as in gopher + ssl ;) 13:41:04 just kidding 13:41:06 haha 13:41:10 don't get a heart attack 13:41:10 gophers://lots.of.them/ 13:41:15 haha 13:41:24 well with ICANN doing that to the domainnames... 13:41:25 GET gophers://pray/ 13:41:31 wouldn't supprise me 13:41:38 USE gophers://pray/ ON gophers://lots.of.them/ 13:41:41 tusho, didn't get that reference 13:41:46 AnMaster: 'gopherspray' 13:41:50 ah... 13:41:50 'gopher spray' 13:41:55 right 13:42:02 which is a reference to monkey island 13:42:02 and gopher spray is? 13:42:09 in which it was like fly spray 13:42:14 in that it got rid of gophers 13:42:20 odd 13:42:31 odd game where such an item exists 13:43:05 anyway I can see how to generate the code now anyway 13:43:05 AnMaster: Monkey Island is pretty odd... 13:43:15 an optional jump field 13:43:17 at the end 13:43:39 if it isn't 0, then add a jump right after the rest of instruction code 13:43:45 without generating a new instruction 13:43:51 now... how to write optimizer 13:44:18 hmph 13:44:20 my rakefile has a bug 13:44:25 it seems rake isn't picking up on changes to pages 13:44:26 I kind of need to parse it backwards 13:44:35 but that would be impossible for loops 13:44:44 unless I add a loop end pointer too 13:45:10 + a metadata header instead of just a root node 13:47:43 yay 13:47:44 i got it working 13:48:04 AnMaster: my wiki thing even has a server task 13:48:13 so you can do 'rake serve 1>/dev/null 2>&1 &' 13:48:18 and edit, git commit, refresh, etc 13:48:31 then 'rake deploy' to push the pages to a webserver 13:48:35 oh god 13:49:14 AnMaster: what 13:49:20 i didn't write my own http server 13:49:26 i just used the one in the ruby stdlib :p 13:49:33 oh god 13:49:38 what 13:49:40 it's not for production use 13:49:41 tusho, maybe httpd() should be in libc too :P 13:49:44 it's just a little server for developing web apps 13:49:50 AnMaster: ruby's stdlib is modular 13:49:52 and large 13:49:53 so. 13:50:01 oh right 13:50:03 i don't see a problem with it it's minimal and slow 13:50:10 make that: tusho, maybe httpd() should be in libstdc++ too :P 13:50:11 so just the ticket for this :P 13:50:14 :P 13:50:22 AnMaster: well no, ruby's stdlib has just about everything 13:50:25 it's more like perl's stdlib 13:50:45 but it's fine 13:50:48 if you want something, you 'require' it 13:50:49 import cure.cancer; 13:50:50 ? 13:50:54 AnMaster: not quite. 13:51:01 right 13:51:10 require cure.cancer; 13:51:13 but, zlib, ftp/http/imap/pop/smtp/telnet clients, option parser, mini http server... 13:51:20 cgi lib 13:51:25 hash functions 13:51:34 just useful stuff that you use almost every day 13:51:37 tusho, low level stuff too? 13:51:43 AnMaster: in what sense 13:51:45 for FFIing 13:51:52 like constructing structs for FFI 13:51:55 to C 13:52:02 require 'ffi' 13:52:03 I believe 13:52:04 iirc python and perl got it 13:52:10 ah, wait, no 13:52:25 bbiab food is ready 13:52:27 AnMaster: an ffi isn't built in but there's a very rich library that's readily available 13:52:31 and it has a nice extension mechanism 13:52:39 outside of the build-ffi-from-inside 13:53:49 * tusho figured out how to add an 'Edit' link 13:55:26 -!- Corun has quit ("This computer has gone to sleep"). 14:19:52 -!- pikhq has joined. 14:20:38 -!- pikhq has left (?). 14:20:44 -!- pikhq has joined. 14:23:04 -!- lilja has quit (Read error: 110 (Connection timed out)). 14:57:13 -!- sebbu2 has joined. 15:04:17 /* + */ case 0: ADD(3); 15:04:17 /* > */ case 7: NEXT(1); 15:04:17 /* ? */ case 12: CONST(0); 15:04:17 /* - */ case 27: SUB(2); 15:04:17 /* ? */ case 33: CONST(0); 15:04:22 it's getting better at least 15:04:25 * AnMaster was afk eating 15:04:34 pikhq, hi there 15:04:41 pikhq, it is very hard to optimize Def-BF 15:04:55 as you need to be able to jump into the middle of a ---- 15:04:55 or so 15:05:04 so you need to emit several code versions 15:05:49 +++++-->>><<[-]---+++<>++---<-+>-[->+><-<] 15:05:51 take that 15:06:03 you need to be able to jump into the middle of each instruction 15:06:46 Yeah, Def-BF *is* a tiny bit of a bitch to optimize. . . 15:06:55 pikhq, I got an idea though 15:07:01 -!- sebbu has quit (Read error: 113 (No route to host)). 15:07:01 -!- sebbu2 has changed nick to sebbu. 15:07:05 Oh? 15:07:07 case 0: ADD(3) goto x; 15:07:13 case 1: ADD(2) goto x; 15:07:15 and so on 15:07:20 so you emit each code version 15:07:37 that is how I will do it 15:07:55 pikhq, it can already optimize it well based on brainfuck rules 15:08:06 no instruction reordering yet 15:08:14 but can't see how I could do that 15:08:21 need to be done at higher level 15:08:43 pikhq, is the ? instruction valid in high level code? I mean can it jump freely at that level? 15:08:49 Yes. 15:08:52 damn 15:09:00 High level code is a superset of low level coded. 15:09:04 s/coded/code/ 15:09:13 pikhq, yet you can't know location of your code 15:09:19 or how can you get address of a function? 15:09:27 However. . . RodgerTheGreat: How do you feel about adding a function attribute setup? 15:09:36 WHAT!? 15:09:43 pikhq, what do you mean? 15:09:50 like __attribute__? 15:09:53 for Def-BF?! 15:09:57 Ding ding ding. 15:09:59 pikhq, I refuse to implement that 15:10:17 pikhq, my code can properly emit unoptimized low level code 15:10:23 It'd make optimising a bit more efficient. . . 15:10:24 and got a good brainfuck optimizer 15:10:39 that doesn't yet handle the jump stuff 15:10:41 If you can mark a function as, say, never being jumped into. 15:10:53 that have to happen at high level 15:11:03 I'm doing it as preprocessor + low level remember 15:11:09 Ah, yes. 15:11:17 Well, that's no use to you. 15:11:29 pikhq, I will push my low level stuff somewhere 15:11:33 you got bzr? 15:11:56 Hrm. Jebus. For a second time, I'm thinking "Hmm. Maybe I could just let GCC's optimization code do its magic?" 15:11:58 Nope. 15:12:08 pikhq, install it then 15:12:13 1.0 or later 15:12:32 pikhq, feel free to reuse my code. it is GPL3 15:12:32 At work ATM. . . 15:12:38 ah ok 15:12:44 pikhq, when you get home do it then 15:12:52 Mmkay. 15:12:58 Simple enough to emerge. 15:13:03 bzr branch http://rage.kuonet.org/~anmaster/bzr/defc 15:13:05 pikhq, ^ 15:13:36 pikhq, in return I want the needed flex/bison stuff ;P 15:13:56 The Bison stuff is by no means done ATM. 15:14:06 pikhq, right 15:14:09 Namely: it has about 60 shift/reduce conflicts. 15:14:14 (I wrote it late at night) 15:14:22 what is a shift/reduce conflict? 15:14:32 pikhq, and couldn't you pastebin the flex part of it then? 15:14:35 Ambiguity in the syntax as written. 15:14:38 ah 15:14:50 oh well 15:14:53 I don't have the Flex part on me, but I could hand you it with ease. 15:15:02 Well, when I get back home. 15:15:09 pikhq, how long will that take? 15:15:17 it is afternoon now 15:15:24 tis jul 22 16:15:24 CEST 2008 15:15:28 7 hours. 15:15:39 pikhq, I will be sleeping then 15:15:42 10:15 here. 15:16:02 just so you know 15:16:08 Mmkay. 15:16:10 so better fix the bison as well 15:16:17 and pastebin when you go to bed or whatever 15:16:21 and post links 15:16:29 I make no promises on fixing the Bison; I'm addicted to HL2 and Portal ATM. ;p 15:16:37 blergh 15:16:52 pikhq, pastebin the non fixed version if it isn't fixed 15:17:00 Mmkay. 15:21:08 cool, I added a blog display to my personal wiki without touching the actual code 15:21:19 oh god 15:21:19 since it can embed ruby I just wrote 16 lines of index page 15:21:34 AnMaster: don't worry, it wasn't through an xml configuration language 15:21:35 ;) 15:21:40 I know how to solve it! I write the optimzier in bash 15:21:44 and run system() 15:21:46 oh 15:21:47 just kidding 15:21:49 christ 15:21:50 :D 15:21:52 I'm not stupid 15:22:01 tusho, I do have one system() call 15:22:03 gcc 15:22:14 * tusho also added, to the development server, a thing that makes /edit/pagename open up the page in my editor 15:22:23 and the template always links to the local /edit/ never on the server (where it won't exist) 15:22:23 oh 15:22:27 chrust 15:22:27 so i can edit stuff super-trivially 15:22:30 christ* 15:22:37 AnMaster: nothing wrong with that... 15:22:49 just "editor filename" in a handler :P 15:22:59 brb 15:23:04 oh 15:23:07 jesus 15:24:09 tusho, you are off your chump (to quote the OpenBSD release song) 15:46:11 pikhq, here is an example of unoptimized code: 15:46:13 http://rafb.net/p/d6e1bD56.html 15:47:16 pikhq, about "don't jump into" attribute, it could indeed help 15:47:28 pikhq, because I could optimize some stuff at higher level 15:47:38 + have an extended syntax to pass some of that onwards 15:54:30 tusho, aren't you going to download the code? 15:54:58 anyway I know how do pass the "may optimize bit" 15:55:05 two things: 15:55:13 pikhq: hm. what did you have in mind? 15:55:26 1) marker in code for begin/end may optimize bit 15:55:47 2) place all such functions at the end 15:55:51 Something a bit like GCC's __attribute__. 15:56:01 anyway I got an error in jump 15:56:11 I'm uncertain what you mean by a function that's never jumped into. 15:56:43 You have a jump instruction inside of Def-BF. . . 15:57:01 In theory, one could be doing long jumps all over the place. 15:59:21 -!- Slereah_ has joined. 15:59:53 this is true 16:00:14 however, in the high-level language you can disallow inter-function jumps 16:00:21 Oh? 16:00:29 Well, that is handy. 16:00:38 why not? It'd just enforce good form 16:00:51 solves a lot of the really nasty stack-smashing you could get otherwise 16:01:03 I guess if someone *really* wants longjmp, then they'd have to call out to the C library. 16:01:18 and I can't imagine a reason a well-formed high level program would need one 16:01:35 It's actually used in C from time to time. 16:01:47 Though I'm convinced that most people do it just to piss me off. :p 16:01:50 yeah, maybe for a function-pointer type purpose 16:01:59 there you are then 16:02:16 but yes- just make it impossible from the high-level language. It's nasty and we don't need it 16:02:17 so mark a function as "don't jump into this" 16:02:26 RodgerTheGreat, we want function pointers 16:03:03 yeah, and function pointers are a bit different 16:03:31 really? 16:03:41 well until I got good specs on high level language I can't implement it 16:03:52 because making a call on a function pointer is a real function call, while a longjump just goes straight to a chunk of code without doing any stack housekeeping 16:04:31 the original spec isn't very detailed, but pikhq and I have made great strides toward hammering out a complete spec 16:04:32 So, basically, you say 'fuck longjmps?' 16:04:39 I think I agree with that. ;) 16:04:43 pikhq: basically, yeah 16:04:49 RodgerTheGreat, I have implemented the low level part 16:04:52 except in very rare and obscure circumstances 16:04:56 bzr branch http://rage.kuonet.org/~anmaster/bzr/defc 16:04:57 to get it 16:04:59 RodgerTheGreat, ^ 16:05:04 we shouldn't design a major feature of the language around an obscure case 16:05:04 it's in C and compiles to C 16:05:07 In which case, libc should be used, I gather? 16:05:35 RodgerTheGreat, what if you want to implement a POSIX OS in it 16:05:38 that can run C code 16:05:43 then you need longjmps 16:05:51 not that i think anyone will do this... 16:06:52 that's the entire point of allowing people to call C functions- if there are extremely obscure, nasty things they need to do, they can make a little C wrapper for it. 16:09:59 hm true 16:10:05 RodgerTheGreat, well calling C function would be possible 16:10:12 but there is nothing in the API about it 16:10:19 RodgerTheGreat, still what do you think of my code? 16:11:25 I'm trying to locate it 16:11:47 bzr branch http://rage.kuonet.org/~anmaster/bzr/defc 16:11:48 RodgerTheGreat, ^ 16:12:03 yes. where the fuck is the actual code? 16:12:09 RodgerTheGreat, it is there 16:12:10 -!- Corun has joined. 16:12:17 RodgerTheGreat, it is a version control system 16:12:19 you check it out 16:12:21 using that commanbd 16:12:26 it's like svn 16:12:26 or got 16:12:27 git* 16:12:32 or cvs or whatever 16:12:35 fantastic, another thing I need to install 16:12:41 bzr is small 16:12:42 couldn't you just pastebin it? 16:12:43 in python 16:12:49 RodgerTheGreat, it's multiple files 16:12:51 the code isn't visible without a bzr client, hmh 16:12:53 I split my code into modules 16:13:00 Deewiant, yeah webui is broken 16:13:06 can't get that to work with last python 16:13:13 need to install loggerhead 16:13:17 just too lazy to do so 16:13:37 Deewiant, the server doesn't know anything about bzr 16:13:42 it is just a lighttpd setup 16:13:47 well, I'm too lazy to install this program. Fix your web frontend or upload a tar of your code somewhere 16:14:08 back 16:15:08 a sec 16:15:17 I just spotted a bug 16:17:17 http://omploader.org/vbWhq 16:17:20 it's a tar.bz2 16:17:34 RodgerTheGreat, you need cmake to compile it 16:17:42 cmake . 16:17:43 make 16:17:54 current it is low level code only 16:17:58 as I fail at flex/bison 16:19:42 interesting 16:20:18 -!- Slereah__ has quit (Read error: 110 (Connection timed out)). 16:20:32 why, praytell, do you store a NULL in the last element of your string arrays? 16:21:01 RodgerTheGreat, in emitter.c? 16:21:05 yes 16:21:06 RodgerTheGreat, that is to mark the end 16:21:11 RodgerTheGreat: c strings end with a null byte,. 16:21:11 for (size_t i = 0; helpermacros[i]; i++) { 16:21:11 fprintf(f, "%s\n", helpermacros[i]); 16:21:11 } 16:21:14 \0 16:21:16 that will end with a NULL 16:21:34 tusho, well here it was NULL to mark end of "static const char* helpermacros[]" 16:21:42 AnMaster: well OK yeah 16:21:50 but same principle 16:21:52 if you have something that you wanna traverse in c with size that might change 16:21:55 terminate it with NULL, basically 16:22:03 tusho, yes indeed it may change a lot here :) 16:22:05 as I edit the code 16:22:21 RodgerTheGreat: Learn C. :p 16:22:33 it's just as easy to store the size of an array. 16:22:42 it'll optimize better anyway 16:22:43 or to use sizeof and calculate it without having to store anything. 16:22:49 bam 16:23:15 RodgerTheGreat: if it doesn't change at runtime, yeah 16:23:41 static const arrays don't generally change at runtime 16:23:54 good point 16:23:59 it doesn't change at runtime indeed... but I edit it a lot 16:24:09 and this was coded at late night 16:24:09 AnMaster: so use sizeof 16:24:11 If it's a global, there's no sense in NULL termination. If it's not a global, there's *probably* no sense in NULL termination. 16:24:12 sizeof(helpermacros) 16:24:16 tusho, see other reason ^ 16:24:28 AnMaster: i don't see another reason 16:24:31 why not use sizeof? 16:24:36 tusho, coded at late night :P 16:24:42 ok, good point :P 16:24:57 And if you're going to have the array change size at runtime, you'll have the array size stored somewhere, anyways. 16:25:04 Well, unless you like memory leaks. 16:25:12 or n-order traversals 16:25:13 and 1) it works 2) is 4 or 8 (depending on arch) bytes worth this argument? 16:25:15 pikhq: memory leaks YAY 16:25:22 And it rights no memory leaks or else it gets the hose again. 16:25:32 Yes. 16:25:59 if I didn't bitch about at least one part of your code, you would accuse me of not looking at it 16:26:21 (I'm mister 'write assembly programs smaller than the smallest legal ELF header' :p) 16:26:48 'legal' != 'valid' as we all know 16:26:56 Agreed. 16:27:03 pikhq: You didn't write that article. :P 16:27:26 tusho: No, I just went through it, discovered that his code didn't work on my kernel, and wrote my own. 16:27:36 Hah. 16:27:50 pikhq, there are no memory leaks 16:27:53 check with valgrind 16:28:00 no memory leaks in any place 16:28:10 AnMaster: "If you're going to have the array change size at runtime". 16:28:15 pikhq, ah yes 16:28:30 http://pikhq.nonlogic.org/hello.asm My version. 16:28:45 anyway I'm trying to work out how to do the optimizer the right way 16:28:46 Though I might have a better one around; lemme check. 16:28:50 the theory is easy 16:28:59 the actual optimizer... not so 16:29:27 I wonder if I still have that 412-byte pong game I wrote a while back... 16:29:44 pikhq, I can't read that 16:29:50 pikhq, give me AT&T syntax! 16:30:03 Alright. 16:30:09 to be your code looks like nasm syntax 16:30:12 which I can't read 16:30:18 I can partly read AT&T syntax 16:30:18 There's my better version. :) 16:30:27 where? 16:30:29 I'm going for AT&T; just give me a sec. 16:30:33 ah 16:34:45 Hrm; I seem to have forgotten the details of gas's constant syntax. 16:35:16 http://pikhq.nonlogic.org/hello-2.asm This is my better one, though it's in nasm syntax still. 16:35:54 pikhq, and that is a syntax I can't read at all 16:36:01 I can read gas syntax 16:36:03 but not write it 16:36:06 Argh. And that one doesn't seem to run correctly. 16:36:16 pikhq, as in: I can understand gcc -S output 16:36:21 It was a while ago. 16:54:36 hm 16:55:02 I think I got the new optimize working, except the translation of [-] into ?0x0 16:55:12 Whoo. 16:55:15 as I emit while loops 16:55:23 pikhq, it doesn't work correctly yet 16:55:28 but I'm on the right track 16:55:31 and it partly works 16:55:42 the tree store the old stuff too now 16:55:45 as an alt node 16:58:13 pikhq: i don't get it, where's the loop? 16:58:24 or does 80 print a null-terminated string? 16:58:41 It calls a syscall. Will describe in more detail when I get back. 16:58:56 not that there's a null-terminated string there, actually 17:00:24 I thought SYSCALL/SYSRET was used these days 17:00:27 not int 80 17:04:42 wait.. what is going on here 17:04:50 code is generated backwards in parts 17:04:55 * AnMaster debugs 17:05:21 "xce, xae vom" 17:05:25 no... 17:05:26 I mean 17:05:27 like: 17:05:34 case 123: foo 17:05:37 case 122: bar 17:05:41 case 121: quux 17:05:46 case 124: xyzz 17:05:50 parts are reversed 17:05:57 oh wait I think I see what I do 17:09:36 -!- Corun has quit ("This computer has gone to sleep"). 17:14:30 -!- oerjan has joined. 17:20:51 * pikhq returns from lunch 17:22:14 pikhq, RodgerTheGreat: is it valid to extend the low level code with additional instructions that would be generated by the preprocessor 17:22:21 for example I'm thinking about a marker: 17:22:28 toggle optimize allowed 17:22:38 I would probably use "o" for it 17:23:25 you can add stuff for your post-optimizer, but it shouldn't be anything that affects execution, i.e. if they're interpreted as comments the program should still run just fine 17:23:59 oklopol: I call the 'write' syscall. 17:24:19 Write doesn't take a null-terminated string, it takes a file descriptor, a string, and a string size. 17:24:21 RodgerTheGreat, here it would be "allow jump breaking optimizing" and "don't allow" 17:24:24 as a toggle marker 17:24:41 I think my previous statements are clear 17:25:09 RodgerTheGreat, there would be another for "function call to compiler provided standard library function" 17:25:21 AnMaster: In most cases, one should use Linux's syscall call gate, which is an address in memory containing code that does the most efficient syscall method for the CPU in question. . . 17:25:29 On all Linux systems, however, int 0x80 is valid. 17:25:36 Well, all Linux x86 systems. 17:25:37 pikhq, depends on arch 17:25:40 yeah 17:25:47 RodgerTheGreat, after all the code is just the internal representation used between preprocessor and compiler 17:26:11 it will probably be written to a temp file simply 17:26:21 currently I can't use a pipe as I mmap() the file 17:31:39 actually if literal # is forbidden in high level code, I could just insert special target marker dumb opcodes 17:31:42 that won't be emitted 17:31:50 err 17:31:52 % I mean 17:32:05 but they would stop any optimizing across the border 17:32:10 pikhq, RodgerTheGreat does that wound sane? 17:32:23 yargh 17:33:00 who is this Guest76788 ? 17:33:03 literal % is not forbidden in high level code 17:33:04 damnit 17:33:08 -!- Guest76788 has changed nick to augur. 17:33:16 -!- augur has changed nick to psygnisfive. 17:33:22 RodgerTheGreat, you said it would be? 17:33:35 I was suggesting you place some restrictions on what it can do 17:33:56 someone else apparently has the "augur" username and it keeps kicking me off it 17:34:02 AnMaster: as you can see by the number, it's just a clone 17:34:07 and yet "augur" is never online unless i'm on! >_< 17:34:42 psygnisfive: it's their nickname. 17:34:44 you can't use it 17:34:46 RodgerTheGreat, well got details for it? 17:34:54 only they don't exist on freenode 17:35:02 and only sometimes does nickserv actually kick me off 17:35:11 AnMaster: I'm busy atm. I'll work on it later. 17:35:26 psygnisfive: yes they do exist 17:35:35 nickserv: Information on augur (account knotty): 17:35:35 [17:34] nickserv: Registered : Feb 23 05:35:37 2005 (3 years, 21 weeks, 3 days, 10:58:53 ago) 17:35:36 [17:34] nickserv: User reg. : Jul 31 21:07:04 2004 (3 years, 50 weeks, 6 days, 19:27:26 ago) 17:35:36 [17:34] nickserv: Last seen : (about 0 weeks ago) 17:35:36 [17:34] nickserv: User seen : now 17:35:48 they've had it for 3 years and they're still using it. don't think you have a claim to it 17:35:50 tusho, thats because i changed my nick to it. :P 17:36:03 psygnisfive: no 17:36:05 try messaging this person 17:36:06 that only updates if they identify 17:36:07 no such nick 17:36:10 that only updates if they identify 17:36:14 ok 17:36:18 tusho is correct 17:36:20 so they have identified it in the past week 17:36:46 psygnisfive, just don't use that nick then 17:36:50 as someone else owns it 17:36:55 it says "account knotty" maybe that is online? 17:37:05 oerjan, indeed likely 17:37:13 yep 17:37:52 (online but away, according to whois) 17:38:28 anyway, on to more interesting things 17:38:52 RodgerTheGreat, so when will % be allowed in high level code? 17:39:19 I said I'm busy 17:39:23 ah right 17:39:43 well I'm leaving at 11 (UTC+2 or CEST) 17:39:52 tis jul 22 18:39:52 CEST 2008 17:43:02 -!- tusho_ has joined. 17:43:03 4 1/4 more hours. PING. 17:45:02 tusho_, I added a marker that toggles "can optimize away instructions freely" "can't do it" 17:45:11 I may get the full optimizing working later 17:45:13 not sure 17:46:27 o 17:47:53 oklopol, the problem is that walking the tree is much harder now 17:47:58 node merging is easy 17:48:06 but now I can't remove the nodes 17:48:10 the theory is easy 17:48:13 the practise... not so 17:49:06 oklopol :D 17:54:35 AnMaster: i'm a pythonist, theory = practise for me 17:54:45 also my o had nothing to do with your prob :P 17:56:56 * oerjan assumed it was an oko seed, but wasn't in the mood 17:57:07 oko seed XD 17:57:14 :P 17:57:25 o 17:57:39 thats disgusting, oklopol wouldn't leave cum in the chatroom like that 17:57:48 -!- tusho has quit (Connection timed out). 17:59:02 not sure if it counts as cum - are okos animal, vegetable or mineral? 17:59:26 animals. 17:59:30 oerjan: mineral 17:59:32 big sexy finnish beasts. 17:59:37 hey, maybe they're all three 17:59:38 psygnisfive: big sexy finnish minerals 17:59:52 photo-synthesizing silicon-based 4-legged creatures 17:59:53 :o 18:01:06 -!- oerjan has quit (Remote closed the connection). 18:01:15 -!- oerjan has joined. 18:01:27 gah 18:02:32 Hmm? 18:02:53 pikhq: he cycled 18:02:55 presumably by mistake 18:03:17 Ah. 18:03:18 no, there was a network error 18:04:38 the network here seems slow today, so there was a timeout 18:06:53 network made a mistake 18:23:32 wow 18:23:45 tried to compile lostking... 18:23:58 "Out of memory" 18:23:59 aborted 18:24:22 in the write part I think 18:25:18 $ du -bsh out.c 18:25:19 71M out.c 18:25:24 I managed to get it to run that far 18:25:41 71mb of compiler output? 18:25:42 with optimizing 18:25:43 Your compiler sucks :P 18:25:44 $ du -bsh out.c 18:25:44 38M out.c 18:25:50 tusho_, look... it is the lostking 18:25:52 you know about it? 18:25:56 yes 18:25:57 huge brainfuck program 18:25:58 of course i do 18:26:03 i've written BF compilers 18:26:05 with optimizing the output is "just" 38 MB 18:26:07 they compile lostkng trivially 18:26:23 tusho_, too much indention and nice code 18:26:23 pikhq's pfuck compiles it in under a second 18:26:46 tusho_, and the code generation took about 2 seconds 18:26:48 but gcc... 18:27:12 It also does it in a fairly small amount of space. 18:27:19 Lemme just check how much. ;) 18:27:25 tusho_: you haven't happened to learn python bytecode? you said you might :P 18:27:30 pikhq, mine generates readable C code 18:27:30 oklopol: nop 18:27:31 e 18:27:32 :( 18:27:35 as I needed that when debugging 18:27:43 i wanna make my own dis module 18:27:45 :--) 18:27:57 for the noest of reasons. 18:28:09 1.2M LostKng.0.c 18:28:11 :D 18:32:20 Of course, it takes for-fucking-ever to compile with GCC. . . 18:33:07 i'm going to go waste some serious time now -> 18:33:08 -!- oklopol has quit (Client Quit). 18:34:22 tusho_, by removing indention and such I got it down to 25 MB output 18:34:26 from 38 18:34:30 when optimizing 18:37:50 What's it like when compiled? 18:38:04 (don't use -O unless you want to wait a year) 18:39:47 -!- Hiato has joined. 18:40:05 tusho_, 18:40:06 $ du -bsh out.c 18:40:07 4.3M out.c 18:40:12 thanks to a small bug in the optimizer 18:40:24 pikhq: I once made gcc hang on -O3. 18:40:25 it sometimes forgot to optimize more than 3 instructions together 18:40:26 Literally. 18:40:55 2.2M a.out 18:41:08 well I'm waiting for gcc to compile this 18:41:11 at -O0 18:41:20 tusho_: It's easy with LostKng. 18:41:28 could take a bit 18:41:31 :P 18:41:51 sorry can't compile it 18:41:56 hit ulimit too quick 18:42:14 Hah. 18:42:40 God, I love PEBBLE and PFUCK. . . 18:45:32 pikhq: this reminds me of something- remember when we were playing around with variable allocation to attempt to create shorter programs by eliminating some < and >'s? 18:45:39 case 86: while (cells[dataptr] != 0) { 18:45:39 case 87: SUB(1); 18:45:39 case 88: ; } 18:45:40 wtf 18:45:42 Oh, yes. . . :) 18:45:44 why wasn't that optimized 18:46:11 our heuristics failed, but we never tried bruteforcing or doing a genetic algorithm with resultant program length as a fitness value 18:46:38 RodgerTheGreat, eh? 18:46:40 Great. Now you might have me back in on PEBBLE instead of Def-BF. 18:46:55 oklopol 18:46:58 pikhq, stop that 18:47:00 this can be applied within Def-BF to a limited extent 18:47:06 in Hereford - Reflection 18:47:07 thanks RodgerTheGreat 18:47:11 is that you growl singing? 18:47:25 and normal singing? 18:48:06 AnMaster: Don't worry; I'm in a Brainfucking mood right now. 18:48:15 pikhq, Def-brainfucking? 18:48:29 Though I might end up writing a Def-BF backend for PEBBLE, that's about the extent of what I'll do to PEBBLE today. 18:48:36 pikhq: bruteforcing would cost about n!, where n is the number of variables in a program. This can get rather expensive, but arrays cost no more than any other variable type and there are a few ways we can reduce the scope of bruteforcing 18:49:09 -!- olsner has joined. 18:49:38 RodgerTheGreat: Heuristics might be better with a proper compiler. If you will recall, my attempts at sticking heuristics in PEBBLE were fairly hacky, due to PEBBLE's design. 18:49:46 hm 18:50:27 well, the heuristics we came up with certainly *seemed* like they would produce good results... 18:56:10 3.8 MB now 18:58:33 (ulimit -m 1075200 ;gcc -O0 -std=c99 -o lostking out.c; ) 18:58:35 lets see 18:58:40 this will be over 1 GB 18:58:46 lets see if it manages it 18:58:52 I'm not optimistic 19:00:22 12 mb left on quota 19:00:32 wait I think it did it 19:00:43 maybe 19:21:20 btw 19:21:26 pikhq, RodgerTheGreat: gcc is still compiling 19:21:29 after half an hour 19:21:39 haven't passed the ulimit 19:21:43 but still compiling 19:21:54 Hrm. I guess that's what you get for having something resembling Duff's device in there. ;) 19:22:09 pikhq, why would that cause it? 19:22:26 pikhq, anyway it is the only sane way to compile it when you do jumps 19:22:36 no jumps in lostkingdom though 19:22:41 so I could sed that away 19:22:45 if you think that is the cause? 19:23:08 pikhq, ? 19:23:17 LostKng.b is a freaking gigantic program. . . And Duff's device-esque things will take for-fucking-ever to compile on that scale. 19:23:31 pikhq, why will it slow down though? 19:23:42 Keep in mind that the compiler is probably composing the world's largest jump table. 19:23:49 pikhq, hah' 19:24:16 That is going to be a fucking huge binary. 19:24:21 so if I strip all the case: that won't be needed for lostkingdom anyway... 19:24:21 I feel sorry for the linker. 19:24:29 you think it will work then? 19:24:34 It might. 19:24:38 Though it will still take a while. 19:25:12 aww 19:25:14 let it go AnMaster 19:25:18 tusho_, what? 19:25:18 i wanna see the hugefuckingjumptable 19:25:21 I aborted it 19:25:24 I will try now 19:25:28 as pikhq suggested 19:25:41 bah 19:25:45 that won't give a huge jump table AnMaster 19:25:50 tusho_: You're welcome to try. 19:25:57 tusho_, true 19:26:07 pikhq: I am actually using this box 19:26:07 :P 19:26:38 Hrm. I kinda half-wonder if AnMaster was using leibniz for that. 19:26:42 tusho_, you can try it out using my last version of the compile 19:26:45 compiler* 19:26:51 leibniz? 19:26:53 wtf is that 19:26:56 pikhq, ?? 19:27:00 -!- Hiato has quit ("Leaving."). 19:27:03 leibniz? 19:27:09 That would be a 'no'. 19:27:11 out of context attack 19:27:20 well 19:27:24 I don't get it.. 19:27:25 i assume AnMaster knows who the mathematician is 19:27:25 Leibniz is the main server of Nonlogic. 19:27:34 ah... 19:27:34 no 19:27:39 I use my desktop 19:27:40 You fail. 19:27:43 AnMaster: you know who http://en.wikipedia.org/wiki/Gottfried_Leibniz is right 19:27:47 and yes I heard the name 19:27:55 just it made no sense here 19:28:23 wow 19:28:26 without the cases 19:28:27 it finished 19:28:51 I think, that computed goto, though gcc specific, may work better 19:28:58 $ du -bsh lostking 19:28:58 8.5K lostking 19:29:08 err 19:29:10 something is wrong 19:30:38 ah yes 19:30:40 no case 19:30:42 but switch 19:30:46 result: no generated code 19:31:31 computed goto kind of sucks though. 19:31:41 you won't get fun duff device things. 19:31:45 Computed goto is probably better. 19:31:52 pikhq, yes, but gcc specific 19:31:53 hrrm 19:32:00 Your point being? 19:32:06 no, goto blows. it's come from that sucks. 19:32:58 -!- Sgeo has quit (Connection timed out). 19:33:28 oerjan: :D 19:33:55 Hmm. Computed come from, anyone? 19:34:21 i think CLC-INTERCAL has it, or perhaps both 19:34:26 these days 19:35:50 everything has it 19:35:53 even J-INTERCAL 19:35:54 oerjan, in generated code... 19:36:07 computed come from is, like, intercal's hallmark 19:37:16 tusho_: 19:37:31 psygnisfive: 19:37:32 goto 19:37:33 what was that thing you suggested i get to go along with musicbrainz 19:37:34 not comefrom 19:38:13 psygnisfive: musicbrainz picard 19:38:15 it tags things(TM) 19:38:21 it's the one thing 19:38:28 it's picard, which is musicbrainz's tagger 19:38:30 right, but didnt you suggest some other thing to go with it? a plugin or something 19:38:32 ? 19:38:44 oh 19:38:46 i said 19:38:47 if that didn't work 19:38:50 try the foosic tagger 19:38:54 ok 19:38:54 but really, i'd just use picard 19:38:57 foosic's tags suck 19:39:01 well im on a mac so no picard 19:39:12 uh 19:39:14 i did get the mac version tho 19:39:15 picard runs on os x 19:39:19 of musicbrainz 19:39:22 dude 19:39:23 but its called ieatbrainz 19:39:24 musicbrainz isn't a program 19:39:24 anyway 19:39:33 psygnisfive: 19:39:34 http://musicbrainz.org/ftpmirror/pub/musicbrainz/users/robert/picard-0.9.0beta1-build2.dmg 19:39:35 the distinction is irrelevant, tusho. :P 19:39:40 anyway 19:39:40 no it's not 19:39:42 the point is 19:39:42 http://musicbrainz.org/ftpmirror/pub/musicbrainz/users/robert/picard-0.9.0beta1-build2.dmg 19:39:44 picard for os x 19:39:45 use it 19:39:51 i have a tagger that uses music brainz 19:39:54 no 19:39:56 not all taggers are equal 19:39:59 ok. 19:40:11 well the musicbrainz db doesnt have all my songs 19:40:12 :( 19:40:16 it does. 19:40:17 infact it doesnt have most of them 19:40:22 you're just using your tagger wrong 19:40:28 which brings me back to my previous point 19:40:29 use picard 19:40:30 lol right 19:40:40 musicbrainz has everything, more or less. 19:40:45 not hardly 19:40:47 because theres so much you can do wrong when theres only one button: "find tags" 19:41:04 but im going to try picard anyway 19:41:26 I had to add a couple of artists and a record label a few weeks back just to add one CD 19:41:39 Deewiant: ok, well i've never seen a track that musicbrainz didn't have 19:41:42 anyway 19:41:43 I accept that 19:41:48 you just listen to too mainstream music ;-) 19:41:52 but I don't accept that it can't find over 50% of psygnisfive's tracks 19:41:54 and no i don't :q 19:42:11 depends on what he means by 'tracks', I guess 19:42:11 well, granted, it seems that the majority of the tracks are actually partials 19:42:18 so im getting rid of those and trying again 19:42:30 musicbrainz has probably less than 10% of all of my music 19:42:49 but when it comes to stuff that's actually been released and in stores, it certainly has most. 19:44:30 most of my music is not store stuff :p 19:44:54 I usually don't tag non-store stuff 19:44:57 my musical tastes are.. well.. esoteric :D 19:45:40 stuff like game soundtracks that have been ripped from the original data files, free stuff people release on the 'Net... I just go with the tags they have, they're canonical as that's the original format 19:46:29 hell, most of my music is in file formats that Picard doesn't support :-P 19:46:34 i just tag my stuff manually 19:46:42 using wikipedia + other stuff as a reference 19:46:46 i'm picky 19:46:57 Deewiant: Any musepack in there? 19:46:59 I first apply the Musicbrainz tags and then sometimes correct them 19:47:01 tusho_: sure 19:47:03 heh 19:47:07 tusho_: i'd tag it manually too 19:47:10 if not remotely, then locally 19:47:12 if i knew the information 19:47:19 psygnisfive: well yeah exactly 19:47:21 and if there were over a thousand items that i need to tag 19:47:29 ooh, i have an idea 19:47:36 tag the names by what the song sounds like 19:47:43 like if it says 'hello' a lot 19:47:47 set the title to 'hello' 19:47:49 bad idea. :-P 19:47:55 name the albums after what the whole album feels like 19:47:55 luckilly for me it seems that about half the files, if not more, are only file fragments (god only knows how that happens...) 19:47:59 and invent a name for the group 19:48:02 then draw album art for it 19:48:03 repeat 19:48:05 "good" "good" "bad" "ok" 19:48:14 Deewiant: well, multiple words 19:48:19 anyway 19:48:22 then get another copy 19:48:23 with the real tags 19:48:28 and put it on the web so we can compare 19:48:28 "almost good" "very good" "quite bad" "a-ok" 19:48:36 Deewiant: i said words that are in the song 19:48:45 I was talking about albums 19:48:45 unless you have songs whose lyrics consist of "almost good" 19:48:46 do you know if MP3's have some tag-based garbage that lets them start and stop in subsections of the song? 19:48:47 over and over again 19:48:47 oh 19:48:49 "what the whole album feels like" 19:48:50 and I kind of meant like 19:48:53 or do they necessarily play from beginning to end 19:48:54 "death metal piggy slaughter" 19:49:09 beginning to end. 19:49:13 because i dont see how its possible that half of a song could've been lost or deleted 19:49:16 it's just a compressed stream with tags. 19:49:30 neither do I but it does happen. :-P 19:49:46 or rather, I've never seen it happen, but partial files exist. 19:50:56 :\ 19:51:46 $ du -bsh ./lostking out.c 19:51:46 4.2M ./lostking 19:51:46 1.6M out.c 19:51:47 heh 19:51:49 at -O0 19:51:53 however 19:51:56 there seem to be a bug 19:52:00 something doesn't work 19:52:26 great 19:54:14 however no way I will try to debug lostking 19:54:24 I will simply try to debug easier cases 19:56:18 guys guys guys 19:56:21 bela fleck and the fleck tones 19:56:23 check em out 19:56:50 psygnisfive, eh? 19:56:54 psygnisfive, these are esolangs? 19:56:58 no lol 19:57:03 its a band 19:57:16 as in music? 19:57:19 yes 19:57:25 k. 19:57:28 classical music? 19:57:34 if not, I'm not interested 19:57:36 uh.. funky jazz stuff 19:57:40 not my style 19:57:45 ok 20:04:30 i wish i could play an instrument 20:05:06 maybe i should try to learn piano. :O 20:05:09 the harmonica is quite easy to pick up 20:05:13 it's also cheap and portable 20:05:19 :P 20:07:01 -!- oerjan has quit ("ZZZZZZZZZZZZ"). 20:15:50 pikhq, ok I will do two things: 1) add attribute to mark function as "no jumps into this" 2) I will add support for not generating labels in that area 20:19:01 pikhq, RodgerTheGreat: about the instruction pointers... are they machine pointers... or code pointers 20:19:17 as in does every brainfuck instruction take one cell 20:19:33 this is the interpretation I originally had 20:20:01 so ?0xXXXXXXXX takes two cells 20:20:40 and +[->+<] takes seven cells 20:20:55 um 20:21:01 how can ?0x take two cells 20:21:08 that is just a parameter for ? 20:21:15 that is a parameter for > 20:21:18 *? 20:21:27 yes and? 20:21:41 RodgerTheGreat, if you generate ASM each instruction will likely take more than one actual CPU address 20:21:55 at least some will 20:22:16 there is no 1-to-1 mapping between source code size and generated code size 20:22:24 correct 20:23:06 which is why adding metadata for a low-level def-bf -> ASM converter will probably make a lot of sense 20:23:20 RodgerTheGreat, and you want ?0xXXXXXXXXXXXXXXXX to take two cells?! 20:23:53 no, in my above example I had 8 X's- 32bits 20:24:02 well mine is 64-bit 20:24:04 so :) 20:24:10 or rather 20:24:14 you can select at compile time 20:24:15 so one cell for ? and one cell for the parameter 20:24:20 of the compiler 20:24:25 RodgerTheGreat: Perhaps, say, a jump table? :p 20:24:30 RodgerTheGreat, however it isn't stored like that 20:24:37 internally I mean 20:25:02 RodgerTheGreat, I see it as a parameter that can be embedded in the same byte 20:25:05 kind of ;P 20:26:43 but fine with me 20:27:24 RodgerTheGreat, an issue 20:27:27 with ?0x... 20:27:39 this makes it possible to jump to the 0x... part 20:27:46 RodgerTheGreat, did you intend that? 20:27:54 and what the heck would the result be? 20:28:12 it's possible to do a lot of screwy things with a jump instruction 20:28:30 RodgerTheGreat, well what would the result be? 20:28:42 ideally a NOP 20:28:43 Undefined behavior. 20:28:48 mine won't allow jump to it, or if it did I would make it cause a exit simply 20:28:49 but strictly speaking, undefined 20:28:54 undefined. right, exit then 20:29:06 or maybe error 20:30:23 RodgerTheGreat: Hmm. I wonder. . . You think maybe I can get away with trying to make each instruction use the same amount of space? :p 20:30:36 play around with it 20:30:39 pikhq, I don't that is possible on x86 20:30:42 without adding nops 20:30:46 to make some longer 20:30:49 AnMaster: With adding nops. 20:30:56 pikhq, that will be slow 20:31:23 If I can get each individual Def-BF instruction to fit in 4 bytes, then I am t3h awesome. :p 20:31:36 (definitely impossible) 20:31:38 pikhq, oh god 20:31:47 pikhq, well maybe if you do CALL for some 20:31:55 to jump to some compiler provided functions 20:31:56 for some of them 20:32:06 but that would be very slow 20:32:11 Still impossible. 20:32:14 A pointer is 4 bytes. 20:32:19 ah true 20:32:28 pikhq, so nop is a bad and space wasting idea 20:32:34 pikhq: whatever you come up with will most likely be nonportable to other architectures, so it will ultimately have limited value 20:32:38 pikhq, relative jump... 20:32:43 that's shorter pointer isn't it? 20:32:48 Jump table is a possibility. 20:32:51 I really want to support MIPS and PPC eventually 20:32:59 Except that it would be fucking insane. 20:32:59 pikhq, well jump tables every x bits 20:33:03 not a good idea 20:33:10 eugh 20:33:24 RodgerTheGreat, I agree 20:33:33 RodgerTheGreat: It gets hard as hell when you start thinking about actually *doing* it. 20:33:37 Hmm. 20:33:39 RodgerTheGreat, my implementation is portable 20:33:47 like so many things in esoteric programming 20:33:56 You *know*, if we assume a virtual machine, instead of real hardware, this is trivial. 20:33:56 ;p 20:34:09 pikhq, yes right 20:34:26 pikhq, still it is good to have several implementations 20:34:32 anyway mine isn't virtual machine 20:34:36 mine is compiled to C code 20:34:42 insane C code... but C code... 20:35:21 I plan to write a VM that runs low-level Def-BF as bytecode 20:35:32 very easy to do, actually 20:35:55 giving it a good debugger will likely be a very useful tool 20:40:37 RodgerTheGreat, yes makes sense 20:40:58 RodgerTheGreat, make sure to make the license for the flex/bison files you use GPL compatible 20:41:26 after all, I don't think speed or memory usage will be of concern for quite a while 20:41:37 anyway I got the first working (not saying bug free) implementation of the low level def-bf 20:41:45 I don't plan on using flex or bison and I don't use the GPL when I license software 20:41:55 RodgerTheGreat, but GPL compatible? 20:41:59 as in BSD or something like that 20:42:11 no? 20:42:42 the WTFPL is a perfectly valid free software license: http://sam.zoy.org/wtfpl/ 20:43:05 RodgerTheGreat, is it GPL compatible? 20:43:10 well I guess it is 20:43:21 and honestly I wouldn't care if it wasn't 20:43:27 sure I get it 20:44:13 anyway it is good to have many implementations to compare with 20:44:22 helps finding bugs or unclear part of the standard 20:45:27 I would strongly urge anyone wishing their code to be part of the Def-BF reference implementation, when it's complete, to use either the WTFPL or the BSD public license. 20:49:27 well mine is GPL3+ 20:49:33 no need to reuse if you don't want to 20:49:53 by all means, license your own work as you see fit 20:50:18 but GPL3 isn't going to cut it for a standardized distribution 20:50:22 however I could dual license parts under BSD if you wish to reuse something 20:50:29 cool with me 21:01:50 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 21:05:20 -!- Hiato has joined. 21:05:42 -!- Hiato has quit (Client Quit). 21:11:10 -!- Sgeo has joined. 21:13:40 -!- pikhq has left (?). 21:30:09 -!- Slereah_ has joined. 21:56:16 tusho_, Deewiant: another thought about case sensitivity.... 21:56:25 the thing about "only makes a difference in names" 21:56:38 well in German any noun got upper case first letter 21:56:48 fuck german though. 21:56:49 :D 21:56:54 anyway 21:56:56 that's OK 21:57:02 tusho_, no idea if there are any verbs spelled like nouns 21:57:03 because 'foobar' and 'Foobar' are both the same thing in german 21:57:03 straight up now baby do you really wanna love me forever oh oh oh 21:57:06 that is there's no ambiguity 21:57:06 in German, all nouns can be considered as names for the object they represent 21:57:08 :P 21:57:13 tusho_, there could be 21:57:14 so case-preserving is OK 21:57:17 or that's how I've always seen it. But then, I'm not German. :-P 21:57:17 but not sure 21:57:22 AnMaster: it's rare enough for it not to matter 21:57:34 and this is what I meant by everybody caring only about English ;-) 21:57:37 well no idea as I don't speak German 21:57:41 are you kids talking about language 21:57:43 beyond a few words 21:58:07 Deewiant, we still got locales 21:58:17 what about ä and Ä 21:58:21 you need to special case a lot 21:58:26 listen, im eating bratwurst and sauerkraut, therefore i can answer any questions you have on german 21:58:26 outside the a-z 21:58:31 special case? 21:58:44 Deewiant, as in "not easy to code" 21:58:54 a-z are a range in ASCII and unicode 21:58:54 well, uh :-P 21:58:57 other chars aren't 21:59:03 anmaster: what are you coding? 21:59:09 psygnisfive, not me 21:59:13 this is general discussion 21:59:13 whats who coding 21:59:15 ok 21:59:15 fortunately unicode generally provides the information 21:59:16 since yesterday 21:59:23 whats the theoretical thing being coded 21:59:39 Deewiant, one language could have ä as lowercase of Ä 21:59:41 so it boils down to reading data and then x = uppercase[x], unless you have a memory constraint (TBH I don't know how big such tables would be) 21:59:46 but another could have it as separate char 21:59:50 no idea if such stuff happens 21:59:52 but it could 22:00:00 and how would you solve it? 22:00:04 well sure, it's not a fully solved problem 22:00:09 what are you coding?! 22:00:19 I didn't really understand your point just now, but yes, it's not entirely trivial 22:00:20 psygnisfive, no one is coding atm 22:00:24 psygnisfive, and night 22:00:25 all 22:00:27 right but hypothetically 22:00:44 we're not 22:00:45 coding 22:00:48 hypothetically or no 22:00:48 t 22:00:57 ok whats the problem you're trying to solve 22:00:58 -_- 22:01:01 none 22:01:02 jesus 22:01:10 then wtf are they talking about 22:01:17 "and how would you solve it?" 22:01:18 file systems 22:01:23 and case insensitivety 22:01:27 *insensitivity 22:01:36 oh. for non-ascii characters? 22:01:41 yes 22:01:45 and locales 22:01:56 unicode fs? 22:02:02 no 22:02:04 just fs 22:02:08 "non-ascii" should really be the default these days, it's "only ascii" that should be the special case :-P 22:02:11 no i mean couldnt the fs use unicode 22:02:15 psygnisfive: yes. 22:02:17 but it depends on the locale 22:02:18 ok. 22:02:20 what is case-equivilent 22:02:21 and what's not 22:02:25 we're tryign to resolve that issue 22:02:30 oh i see yes. 22:02:45 ask apple? im sure they've got that junk figured out. :P 22:02:53 they haven't, really 22:02:57 unfortunately 22:02:57 oh? 22:03:00 its flawed 22:03:03 ^^^^^^^^^ read up and see why 22:03:03 :p 22:03:07 meh. 22:03:12 unicode is flawed. 22:03:15 but thats another discussion. 22:03:19 not terribly flawed. 22:03:21 it's pretty freakin' good 22:03:23 it is 22:03:33 but for certain character sets its just.. idiotic. 22:03:34 anyway 22:03:42 how's that 22:03:43 hey i saw Star Trek 5 last night 22:03:50 what a silly movie that was 22:04:00 i mean, REALLY silly 22:04:06 now who wants to buy me tusho.org so I can deploy this awesome software :> 22:04:32 i'd like to deploy MY software on your domain, if you know what I mean 22:04:32 ;O 22:04:37 XD 22:05:05 that 22:05:06 is really 22:05:09 stretched. 22:05:19 oh it'll be stretched alright 22:05:24 .. 22:05:32 -!- Slereah__ has joined. 22:05:37 * psygnisfive is a horrible, horrible person 22:05:45 agreed 22:07:26 http://uuner.doslash.org/forfun/sedtris.sed 22:07:28 tetris in sed 22:07:34 http://samhuri.net/sedtris.png 22:10:00 wow, nice 22:10:32 did you make that tusho? 22:10:37 no. 22:10:41 ok. 22:10:44 # Julia Jomantaite 22:10:47 honestly. 22:11:21 -!- bwr has quit (Connection timed out). 22:22:36 beh. stupid domains and their 'costing money' 22:23:28 =-[p0-=-09--io-[][-][-ikjmkoplom,,l., ,.==, ;., 22:23:35 er.. whoops 22:23:47 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 22:24:12 Cat, psygnisfive? 22:24:20 mustard. 22:24:44 tho we should make a programming language where that's the cat program 22:24:50 haha 22:24:54 -!- Judofyr has joined. 22:25:04 hi Judofyr 22:25:23 hi 22:25:38 omg theres this french mustard 22:25:41 maille or something like that 22:25:43 its so good :O 22:29:50 woohoo 22:29:53 my site is up! 22:30:00 not on tusho.org, but, heck, that's a detail :p 22:30:02 http://tusho.eso-std.org/ 22:30:26 powered by about 100 lines of ruby and for the blog index a mash of markdown and erubis. 22:30:30 yay. 22:30:47 http://tusho.eso-std.org/blog/json_in_html.html <-- the only even mildly interesting bit of content, to save you the trouble 22:31:09 tusho_: gratz! 22:31:18 heh 22:31:18 :p 22:31:24 have you bought tusho.org? 22:31:29 no, but i will soon 22:31:39 anyway, I just wrote this mishmash of software today as a spur of the moment thing 22:31:41 I'm pretty pleased with DreamHost (for domains) 22:31:48 got 6 years for $10 22:31:58 i was getting too bogged down in writing the most awesomest software evarr instead of just actually getting something i can put content on 22:32:04 which is why, e.g. the css file is only one line... 22:32:14 less is more 22:32:30 anyway, I use slicehost for hosting 22:32:33 and I think mydomain for domains 22:32:35 used to use yahoo 22:32:38 then they put up the price 300% 22:32:40 -!- oklopol has joined. 22:33:17 Judofyr: http://github.com/tusho/wit/tree/master here's the code powering it if you're interested 22:33:23 the readme has the blog code 22:33:39 you're a ruby guy :O 22:33:44 tusho, you better get tusho.org soon 22:33:46 otherwise i will 22:33:51 psygnisfive: :| don't. 22:33:55 or if you do give it to me. 22:33:58 ::does:: 22:33:58 -!- ihope has joined. 22:34:01 agh. 22:34:07 come on psygnisfive :\ 22:34:09 Judofyr: i'm ehird 22:34:10 :p 22:34:23 ah :P 22:34:35 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 22:35:00 oklopol, are you following me? 22:35:12 -!- Judofyr has joined. 22:35:56 Perhaps we should make 'v' a standard scheme name for vjn.cc addresses, so we can replace the link in the topic with v:x. 22:35:59 all those names! 22:36:01 oh, and fuck wi-fi 22:36:03 and I'm pretty pleased with Webby: http://judofyr.net/posts/building-a-website-with-webby.html 22:36:05 :) 22:36:47 Judofyr: how on earth could I use something i didn't write 22:36:48 psht 22:37:07 Judofyr: the neat thing about my site is you see that 'Edit locally' link? 22:37:15 it points to http://localhost:8080/edit/pagename 22:37:19 which opens textmate on the right file 22:37:22 then redirects back 22:37:30 so as long as I keep the development version up, I can just edit it directly there 22:37:37 and a git post-commit hook automatically regenerates the html, so: 22:37:56 click edit link --> edit --> ctrl-shift-g 2 --> rake deploy 22:38:20 oh and re: that article about webby 22:38:20 All you have to do is require 'rss/rss' and Time#iso8601 is at 22:38:26 you don't need to require anything for that 22:38:48 sure? 22:39:03 yes 22:39:04 ruby -e"Time.now.iso8601" 22:39:15 "undefined method `iso8601' for Tue Jul 22 23:39:00 +0200 2008:Time (NoMethodError)" 22:39:26 Judofyr: huh 22:39:27 well 22:39:29 it's not rss/rss 22:39:32 it's something that requires 22:39:49 something that erubis, rdiscount or webrick depend on i guess 22:39:52 since I use it 22:39:57 and that's all the rakefile requires 22:40:23 -!- CakeProphet_ has joined. 22:40:55 you're right! 22:40:59 require 'time' is all you need! 22:41:05 right then 22:41:05 :) 22:41:16 * ihope hugs CakeProphet_ 22:41:25 ...hello 22:41:35 -!- CakeProphet has quit (Nick collision from services.). 22:41:36 -!- CakeProphet_ has changed nick to CakeProphet. 22:43:17 Ello. 22:45:22 tusho_: what happened to gordon? 22:45:53 Judofyr: the flash implementation for Rack? 22:46:00 turns out it's pretty hard 22:46:06 oh? 22:46:16 why? 22:46:30 basically it's hard to hook into the place in rack 22:46:39 -!- Slereah__ has quit (Read error: 110 (Connection timed out)). 22:46:51 middleware? 22:47:00 yeah that's what I was going for 22:47:01 still 22:47:03 I'll do it sometime 22:47:28 -!- Slereah__ has joined. 22:47:44 -!- atsampson has quit (Read error: 113 (No route to host)). 22:51:25 http://youtube.com/watch?v=SV3R5vdxnMk 22:59:17 -!- Slereah_ has joined. 23:06:46 -!- atsampson has joined. 23:08:27 psygnisfive: weird 23:08:44 more like german 23:09:46 -!- Sgeo has quit (Connection timed out). 23:10:12 is everything german like that!? 23:11:18 what was it the name meant btw? einsturzende neubauten? 23:12:24 *stürzende 23:21:45 dunno 23:21:47 its german 23:21:49 who the hell knows 23:23:06 olsner: collapsing new buildings or something i think 23:23:16 found through wikisurfing, naturally 23:23:32 collapsing being an adjective 23:23:39 'new buildings that are collapsing' 23:23:55 ah, I recognize that... but was unsure if that was what it meant or what it *didn't* mean :P 23:24:30 -!- Slereah__ has quit (Read error: 110 (Connection timed out)). 23:24:55 on another note 23:24:56 http://tusho.eso-std.org/blog/universal_edit_button.html 23:25:08 ^ why Universal Edit Button is nice in practice but incredibly flawed in implementation 23:25:09 -!- Slereah_ has quit (Read error: 110 (Connection timed out)). 23:25:13 yeah that's what my german intuition says as well 23:25:58 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 23:26:23 -!- Judofyr has joined. 23:30:23 -!- Corun has joined. 23:32:48 -!- bwr has joined. 23:43:48 does anyone want to upmod http://www.reddit.com/comments/6szns/ two assholes have downmodded it because they're assholes :P 23:47:17 "there doesn't seem to be anything here" 23:47:18 tusho_: you should link to the new URL! http://www.reddit.com/r/programming/comments/6szns/Universal_Edit_Button_great_idea_in_theory_very/ 23:47:30 Judofyr: i just looooooooooooove bloated urls 23:47:36 I remember when reddit didn't force www. 23:47:42 http://reddit.com/comments/6szns 23:47:42 good days! 23:47:44 THAT is a good url. 23:48:08 you can still link to that URL, though 23:48:14 yes 23:48:15 "there doesn't seem to be anything here" 23:48:21 psygnisfive: that's the comments. 23:48:25 it's the article above that. 23:48:28 :P 23:48:28 ok. 23:48:43 im not part of reddit 23:48:45 so it doesnt matter 23:48:46 :D 23:48:59 psygnisfive: it only requires a username and password and automatically registers and logs you in 23:49:08 and when you click the up arrow it pops up the registration automatically 23:49:11 i dont' see how thats a barrier :P 23:49:36 it requires that i type something :O 23:49:42 its at 0 points now, 1 more point would push it on to the main page I believe due to the mover algorithm stuff 23:49:48 if you do it i'll wub you 4eva 23:49:53 tusho_: in related news, I just passed 200 karma :D 23:49:58 done 23:50:06 ::is loved forever:: 23:50:08 Judofyr: in related news, I have just 14 karma from one submission :D 23:50:15 gah 23:50:17 someone else downvoted it 23:50:20 hahahah 23:50:31 I got 25 for translating it to norwegian :) 23:50:38 and a t-shirt! 23:50:45 heh 23:50:47 i don't actually see why the article warrants downvoting :| 23:51:06 (I only have 807 comment karma too. People just can't accept someone who's INFALLABLY RIGHT) 23:51:07 I usually never downvote... 23:51:35 245 comment karma here.... 23:51:41 heh, from a comment on a submission you just made 23:51:42 {And ... don't forget about RAA. Many projects don't register at RAA. IMHO RAA should be the central catalog for software written in ruby no matter how and where it is hosted.} 23:51:52 raa, jeez 23:51:59 i completely forgot about that thing because it's dead and useless. 23:52:08 yeah 23:52:41 Don't Forget About MUDs! 23:52:50 i liked thato ne 23:52:59 that was .... funny? 23:54:03 yes 23:54:19 I'm too young :/ 23:55:02 as am I 23:55:05 but i still know what a MUD is 23:55:06 so :P 23:55:29 I know what a MUD is, but I've never played one :P 23:55:35 i'm so old i'd already forgotten what a mud is. 23:55:41 oklopol: ha 23:55:47 "BBS? You kids today."