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