←2009-01-10 2009-01-11 2009-01-12→ ↑2009 ↑all
00:00:39 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
00:00:51 -!- moozilla has joined.
00:08:47 -!- Corun has quit ("This computer has gone to sleep").
00:12:04 -!- Corun has joined.
00:12:18 -!- metazilla has joined.
00:12:19 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
00:12:29 -!- metazilla has changed nick to moozilla.
00:14:27 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
00:14:32 -!- moozilla has joined.
00:28:16 -!- moozilla has quit (Read error: 54 (Connection reset by peer)).
00:28:16 -!- metazilla has joined.
00:28:26 -!- metazilla has changed nick to moozilla.
00:30:23 -!- pikhq has quit (Read error: 60 (Operation timed out)).
00:30:43 -!- metazilla has joined.
00:30:50 -!- moozilla has quit (Nick collision from services.).
00:30:52 -!- metazilla has changed nick to moozilla.
00:45:58 -!- ehird has quit ("Caught sigterm, terminating...").
00:46:03 -!- ehird has joined.
00:46:42 -!- metazilla has joined.
00:46:50 -!- moozilla has quit (Nick collision from services.).
00:46:52 -!- metazilla has changed nick to moozilla.
00:47:53 -!- ehird has quit (Client Quit).
00:47:58 -!- ehird has joined.
00:49:05 -!- ehird has quit (Client Quit).
00:49:11 -!- ehird has joined.
00:49:14 -!- moozilla has quit (Connection reset by peer).
00:49:19 -!- metazilla has joined.
01:19:27 -!- alex89ru has quit ("Verlassend").
01:22:00 -!- oerjan has joined.
01:27:51 <oerjan> <ehird> AnMaster: do you like the composition "Leck mich im Arsch" by Mozart? (http://en.wikipedia.org/wiki/Leck_mich_im_Arsch)
01:27:55 <oerjan> O_O
01:27:59 <oerjan> MY INNOCENCE!
01:36:17 <oerjan> <oklopol> ehird: good point, i guess i should've mentioned that in my explanation
01:36:26 <oerjan> yes. those swedes can be a little dense.
01:37:57 <oerjan> ouch, so that's the new google favicon you were talking about
01:39:17 <oerjan> i think it is time to resurrect the old term "sildesalat", used by norwegians to dis the mashup in the corner of the norwegian/swedish union flag
01:40:02 <oerjan> (means "herring salad")
01:57:21 <Asztal> "Leck mir den Arsch fein recht schön sauber" ("Lick my arse nice and clean", K233; K382d in the revised numbering)
01:57:34 <Asztal> mozart++
01:58:06 <lament> mozart is the weirdest great composer
01:59:30 <lament> not only he was a clown and a jackass
01:59:34 <lament> but his music often sucks
02:03:36 -!- GreaseMonkey has joined.
02:05:24 <FireFly> I'm not the only one hating googles new favicon?
02:07:10 <oerjan> "hating" may be a bit strong
02:07:27 <oerjan> but it looks like something that belongs in a kindergarten, not a search engine
02:07:37 <FireFly> Well, to me it looks like the old blue one, but inverted and with odd colors
02:07:44 <FireFly> At first I didn't spot the g :\
02:07:56 <FireFly> Looked like a jigsaw puzzle to me
02:18:06 <Asztal> I liked the old one because it wasn't terribly different from the blank tab icon
02:46:02 -!- Corun has quit (Remote closed the connection).
02:46:17 -!- Corun has joined.
02:50:36 -!- BeholdMyGlory has left (?).
02:50:48 -!- FireFly has quit ("Later").
03:25:50 -!- sebbu2 has joined.
03:33:05 -!- Corun has quit ("This computer has gone to sleep").
03:43:16 -!- sebbu has quit (Read error: 110 (Connection timed out)).
03:54:13 -!- oerjan has quit ("leaving").
05:38:17 -!- pikhq has joined.
07:15:42 -!- dbc has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:18:50 <AnMaster> <oerjan> but it looks like something that belongs in a kindergarten, not a search engine <-- perfect summary
08:19:18 <Slereah> Heh.
08:23:31 <bsmntbombdood> i want the original back:(
08:23:37 <bsmntbombdood> i dunno wtf they think they are doing
08:23:44 <bsmntbombdood> the are completely ruining their image
08:24:51 <Slereah> Yeah, that will totally stop you from using it
08:38:49 -!- GreaseMonkey has quit ("e disasterous.").
08:38:57 <psygnisfive> <B-rat> what are crampons
08:38:57 <psygnisfive> <B-rat> the spikes ?
08:38:59 <psygnisfive> <B-rat>i wonder what the slovene word is
08:39:01 <psygnisfive> <NoorulIslaam> They are vaginal inserts that help female and transsexual mountaineers gain an additional foothold while climbing in tricky spots.
08:40:17 <Slereah> psygnisfive.
08:40:22 <Slereah> "Transsexual"
08:40:27 <Slereah> Are you on a tranny chat?
08:40:40 <Slereah> I'm pretty sure no one else would bother to make the addition.
08:40:55 <Slereah> It's like how only hackers differentiate hacker from cracker.
08:41:14 <psygnisfive> actually
08:41:18 <psygnisfive> that was in #linguistics
08:41:18 <psygnisfive> XD
09:08:09 <AnMaster> ehird, I committed the more portable fuzz testing script, it is in last trunk.
09:08:18 <AnMaster> ehird, hopefully it should work on OS X too
09:25:37 <oklopol> o
09:29:02 <oklopol> fungot: o
09:29:02 <fungot> oklopol: ut austin too, not surprisingly though. ;p fnord/ fnord/ posse/ fnord/ esoteric not found
09:50:14 -!- metazilla has changed nick to moozilla.
10:01:25 -!- Mony has joined.
10:16:29 <psygnisfive> guys
10:16:32 <psygnisfive> we should totally do that
10:17:00 <Slereah> Your mom?
10:17:16 <psygnisfive> no no
10:17:31 <psygnisfive> a Miranda-family language with deep pattern matching/unification
10:17:47 <psygnisfive> consider the fuctional palindrome function:
10:18:31 <psygnisfive> palindrome [] = True
10:18:31 <psygnisfive> palindrome [x] = True
10:18:33 <psygnisfive> palindrome [x] ++ xs ++ [x] = palindrome xs
10:18:35 <psygnisfive> palindrome _ = False
10:31:07 -!- metazilla has joined.
10:31:07 -!- moozilla has quit (Connection reset by peer).
10:31:14 -!- metazilla has changed nick to moozilla.
10:32:04 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
10:32:11 -!- moozilla has joined.
10:59:30 <psygnisfive> only instead of doing it like haskell does it
10:59:33 <psygnisfive> do it more like thue
11:20:54 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
11:20:57 -!- moozilla has joined.
11:30:59 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
11:31:02 -!- moozilla has joined.
11:31:40 -!- moozilla has quit (Read error: 54 (Connection reset by peer)).
11:31:41 -!- metazilla has joined.
11:41:57 -!- metazilla has quit (Read error: 104 (Connection reset by peer)).
11:42:01 -!- moozilla has joined.
11:47:51 <AnMaster> psygnisfive, "Miranda-family"?
11:57:40 <AnMaster> psygnisfive, can't find it on the esolang wiki
11:58:10 <Slereah> http://en.wikipedia.org/wiki/Miranda_(programming_language)
11:58:21 <AnMaster> ah not an esolang?
11:59:11 -!- sebbu2 has changed nick to sebbu.
11:59:31 <AnMaster> anyone know if it is possible to get the esolang wiki in the search box in firefox? Like you can get wikipedia there
11:59:55 * AnMaster don't know how those plugin things for search actually work
12:00:47 -!- Slereah has set topic: eat your face | man | http://tunes.org/~nef/logs/esoteric/.
12:01:06 <AnMaster> Slereah, what was the old topic?
12:01:19 <Slereah> AnMaster : Click on the icon of the search box while you're on the esowiki
12:01:26 <Slereah> Click on "add esowiki" something
12:01:53 <AnMaster> huh ok
12:02:00 <AnMaster> so how does it know how to search on it?
12:02:29 <AnMaster> I mean, there must be some tag in the html code or something
12:02:31 * AnMaster looks
12:02:39 <AnMaster> well mediawiki code is messy
12:02:56 <AnMaster> <link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Esolang (English)" />
12:02:58 <AnMaster> hm probably that
12:03:39 <Slereah> A winner is you
12:40:20 -!- Hiato has joined.
12:41:05 * Hiato wonders if anyone knows any NASM
12:44:52 -!- metazilla has joined.
12:44:57 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
12:45:01 -!- metazilla has changed nick to moozilla.
12:47:20 <Hiato> yug, okay, let me be more straight forwards: I'm struggling with an int to str routine for my kernel in nasm, can anyone possibly lend a hand
13:09:44 <Deewiant> write one in C, compile it with gcc -S, and copy it over? :-P
13:12:40 <flexo> Hiato: yes!
13:12:53 <flexo> i wrote a very neat algorithm for that a while ago
13:13:02 <flexo> cbw
13:13:02 <flexo> sahf
13:13:02 <flexo> aaa
13:13:02 <flexo> aad 0x31
13:13:02 <flexo> adc al, 0x30
13:13:10 <flexo> have fun figuring it out
13:13:31 <flexo> (that "aad 0x31" is that undefined opcode thingie, but it works fine)
13:14:10 <flexo> this routine (obviously) converts the low nibble in AL to an ascii character in AL, hexadecimal
13:14:44 <flexo> the #asm people told me that was the worst abuse of the x86 ISA they'd ever seen
13:14:49 <flexo> i'm rather proud of it
13:14:56 <flexo> it's 1 byte shorter than the trivial version too
13:15:45 <flexo> oh and i rely on some undocumented flag behaviour too
13:15:53 <flexo> but i tested it on a couple of different cpus
13:15:59 <flexo> so no problem
13:16:45 <flexo> note that in 32bit code you'll need to 32bit-prefix that cbw, which results in more one byte - no gain there, but it still works
13:17:21 <flexo> unless you can ensure that AH is zeroed out - in that case you'll even be two (yes, TWO!) bytes shorter than the trivial algorithm
13:17:54 <flexo> if you know that AF is geing to be cleared on entry you can also leave the SAHF
13:18:25 <flexo> which makes this a 3-opcode algorithm, containing all mnemonics starting with an "a"
13:18:29 <flexo> personally, i like that
13:19:00 <flexo> it's even alphabetically sorted
13:19:11 <flexo> this is so beautiful code
13:19:14 <flexo> i could cry
13:20:40 <flexo> the mnemonics also contain only hexadecimal digits
13:20:51 <flexo> which kinda documents the purpose of that code
13:21:02 <flexo> oh my god. i'm so good.
13:23:12 <Hiato> er
13:23:17 <Hiato> okay, where were we
13:23:33 <flexo> i just answered your question
13:23:55 <Hiato> I have a sort of algorithm, I just have no idea how to continually add to a string/pointer thingy
13:24:11 <flexo> oh
13:24:14 <Hiato> Well, thing is, this is in 16bit (for starters)
13:24:18 <flexo> can't help you there
13:24:29 <flexo> i only know how to convert a nibble to hexadecimal
13:24:44 <Hiato> hrmm..
13:25:21 <flexo> alright
13:25:27 <flexo> i've a suggestion to make
13:25:30 <flexo> i stop trolling
13:25:35 <flexo> and you describe your problem?
13:25:43 <Hiato> Sounds fair
13:25:44 <Hiato> deal
13:26:09 <Hiato> Okay, I can (like any fool) divide and mod a number by ten to receive it's digits in reverse order.
13:26:21 <Hiato> I can easily reverse them with push and pop
13:26:29 <Hiato> But, the thing is, I can only handle them one at a time
13:26:32 <Hiato> http://rafb.net/p/5kF2ie38.html
13:26:40 <Hiato> here is the procedure to print an int
13:27:07 <flexo> well.. what's the problem with that?
13:27:15 <Hiato> the idea would be to mees with mov [.variable],dx so as to store them
13:27:28 <Hiato> In summary, how does one work a running buffer
13:27:34 <Hiato> like s=s+'asd'
13:27:47 <flexo> by.. dereferencing?
13:28:05 <flexo> by keeping a counter of the length?
13:28:05 <Hiato> er? I am, regrettably, totally self taught here
13:28:10 <Hiato> Well, that
13:28:15 <flexo> i'm not sure what you mean..
13:28:24 <flexo> unless you are talking about where you get the actual memory for the buffer
13:28:26 <Hiato> would work, but the thing is, I have no idea how. Okay, let me show you what I had
13:29:04 <Hiato> http://rafb.net/p/rlJpoG44.html
13:29:27 <Hiato> it's ok(ish) until 25
13:29:37 <Hiato> where I would normally print it, I try to somehow store it
13:29:45 <flexo> what is this .t?
13:29:52 <flexo> ah
13:29:54 <flexo> it's down there
13:30:04 <flexo> yea well
13:30:07 <flexo> ofcourse this doesn't work
13:30:12 <Hiato> :P
13:30:34 <flexo> you only reserved 4 bytes of memory - even if the code would work, where would you store the digits?
13:30:46 <Hiato> Well, I have no idea
13:30:56 <Hiato> Thing is, I work in psuedo-code, and then try and translate
13:30:59 <flexo> ".t" becomes the address of that word
13:31:02 <Hiato> please, forgive my ignorance
13:31:18 <flexo> mov [.t], ... stores something at that address - in that word
13:31:33 <Hiato> yeah, that's the idea there. So at least the concept is right
13:31:36 <flexo> and "inc .t" should really not assemble, because .t is a constant. can't increment that.
13:31:46 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
13:31:48 <Hiato> yaeh, it doesn't :P
13:31:49 -!- metazilla has joined.
13:31:58 <flexo> just use a register
13:32:07 <Hiato> I figured that if I had a pointer, say .t, I could then increase it and store bytes along that addres chain
13:32:11 <flexo> mov edi, .t
13:32:17 -!- moozilla has joined.
13:32:18 <flexo> .l1: mov [edi], whatw
13:32:20 <flexo> *whatever
13:32:23 -!- metazilla has quit (Read error: 104 (Connection reset by peer)).
13:32:24 <flexo> inc edi
13:32:25 -!- moozilla has changed nick to metazilla.
13:32:26 <flexo> jmp .l1
13:32:38 <Hiato> okay, lets see :P
13:33:18 <flexo> ofcourse your buffer needs to be larger
13:33:25 <Hiato> yeah, using db now
13:33:27 <flexo> because a 32-bit integer can span more than 4 digits
13:33:39 <flexo> uhm.. using db won't make a difference..
13:34:03 <Hiato> oh? Well, there we are, another of my consiparcy theories out the window. Double word vs Double byte, no?
13:34:16 <flexo> uhm no
13:34:22 <flexo> define word, define byte
13:34:29 <Hiato> aaah
13:34:32 <Hiato> ok, thanks
13:34:39 <flexo> dec cx
13:34:39 <flexo> cmp cx,0
13:34:39 <flexo> jg .pop
13:34:50 <flexo> cmp is unnecessary, dec sets ZF
13:34:56 <flexo> cmpax,0 ;is quotient zero?
13:34:56 <flexo> jnz.push ;if not, get one more number
13:35:03 <flexo> do "test ax, ax" instead of the cmp. it's more cool.
13:35:09 <flexo> als shorter
13:35:16 <flexo> mov cx,0
13:35:17 <Hiato> Ok, thanks, and lol, will do :P
13:35:21 <flexo> that'd be xor cx, cx ofcourse
13:35:33 <Hiato> yaeh, it started that way, but I got worried (don't know why)
13:35:34 <flexo> (watch out, you need to reorder the cmpm)
13:35:41 <flexo> no need to worry
13:36:00 <flexo> jmp .push
13:36:00 <flexo> .push:
13:36:02 <flexo> this is a nop..
13:36:24 <flexo> no need for the jmp
13:36:32 -!- puzzlet has quit (Remote closed the connection).
13:36:39 -!- puzzlet has joined.
13:36:56 <flexo> jl .neg
13:36:57 <flexo> .neg:
13:37:01 <flexo> same here ofcourse
13:37:30 <Hiato> Hrmm, okay, thanks
13:37:35 <flexo> uhm
13:37:36 <flexo> also
13:37:40 <Hiato> let's press the big button now :P
13:37:42 <flexo> i'm not so sure that cmp works even, the way you do it
13:37:43 <Hiato> yeah?
13:37:58 <flexo> ah well. nevermind. should work. still it's...
13:38:02 <flexo> cmpax,0 ;is quotient zero?
13:38:02 <flexo> jnz.push ;if not, get one more number
13:38:25 <flexo> you do "if (ax - 0 == 0)"
13:38:25 <flexo> that's kinda redundant
13:38:26 <flexo> just do test ax, ax
13:38:32 <Hiato> yeah, roger that
13:39:00 <Hiato> http://rafb.net/p/Fb3MGr38.html
13:39:09 <Hiato> I think that covered all of what you suggested
13:39:20 <flexo> that mov edi,.t
13:39:34 <flexo> should move out of the loop bode
13:39:35 <flexo> body
13:39:42 <flexo> you don't want to reset your pointer each iteration
13:39:48 <flexo> also "db 0" will give you just 1 byte
13:39:49 <Hiato> aha, ok, so to prepop
13:40:00 <Hiato> okay, so what should I set?
13:40:03 <flexo> jge .push
13:40:03 <flexo> .neg:
13:40:07 <flexo> erx
13:40:08 <flexo> nevermind
13:40:09 <flexo> :)
13:40:11 <flexo> 14:32 < Hiato> okay, so what should I set?
13:40:19 <flexo> i don't know, how many digits can a 32bit integer have?
13:40:40 <Hiato> :P
13:40:49 <flexo> times 64 db 0
13:40:58 <flexo> replace 64 by.. some number
13:41:50 <Hiato> well, signed, it can only have 2^63/3.xx I think (log10/log2)
13:42:14 <Hiato> er, log2
13:42:20 <Hiato> blag
13:42:31 <flexo> uhm.
13:42:33 * Hiato blushes
13:42:37 <MizardX> 2^64-1 = 18446744073709552000 ... 10
13:42:44 <flexo> wait
13:42:47 <flexo> this is 16 bit code
13:42:50 <Hiato> yeah
13:42:58 <flexo> that means 5 digits.
13:43:34 <Hiato> okay ... and so in asm we write?
13:43:46 <flexo> times 5 db 0
13:44:01 <Hiato> ok, awesome
13:44:20 <Hiato> Oh yeah :D, it compiled :D
13:44:29 <flexo> assembled, actually
13:44:38 <Hiato> no idea if it's going to do the right thing, but let's see
13:45:39 <flexo> dec cx
13:45:39 <flexo> jg .pop
13:45:41 <flexo> thats wrong
13:45:47 <flexo> should be jnz
13:45:57 <Hiato> hrmm.. well spotted
13:46:25 <Hiato> http://rafb.net/p/B80qat21.html
13:46:33 <Hiato> is this what I'm looking for then?
13:46:51 <Hiato> (hell, I really need to learn some asm)
13:47:16 <flexo> cmp dx,0
13:47:16 <flexo> jge .push
13:47:40 <flexo> test dx, dx
13:47:58 <flexo> jns
13:47:59 <Hiato> okay
13:48:09 <flexo> should work. i think :)
13:48:34 <flexo> again, it's somewhat shorter
13:48:39 <flexo> because there is no "0" immediate to encode
13:49:29 <flexo> push 2Dh ;- in ASCII
13:49:36 <flexo> ^ you also need to increment the counter there
13:49:47 -!- Corun has joined.
13:49:56 <flexo> or it won't print/store the sign
13:50:00 <flexo> and mess up your stack
13:51:07 <Hiato> Okay, well, thank you very much so far, been a great help (this would have taken me days if not weeks)
13:51:26 <flexo> hey hey.. does it work? ;)
13:51:32 <Hiato> THing is, I have no idea what it's now returning, seems to assemble just fine, and runs, but I don't print anything
13:51:47 <Hiato> I've confused myself, what's this: mov word bx,[.t]
13:52:04 <flexo> i don't know
13:52:04 <Hiato> it's moving the address of .t to bx, right?
13:52:07 <flexo> no
13:52:08 <Hiato> lol
13:52:19 <flexo> it moves the first word stores there
13:52:26 <Hiato> hrmm
13:52:32 <flexo> also you should really (really) use ax to return values
13:52:45 <flexo> so that'd be mov ax, .t
13:52:47 <flexo> *and*
13:52:52 <flexo> you need to nul-terminate that string
13:52:57 <flexo> unless you won't know where it ends
13:53:00 <flexo> *otherwise
13:53:11 <Hiato> aha, thank you, probably why he print proc doesn't like it
13:53:43 <flexo> that "mov word" looks strange too
13:53:47 <flexo> (besides being wrong)
13:53:51 <Hiato> http://rafb.net/p/IOuNyM17.html
13:53:51 <flexo> mov word bx,[.t]
13:53:58 <flexo> this "word" there is redundant
13:54:04 <Hiato> okay, this should be alright, right?
13:54:05 <flexo> nasm always defaults to the register size
13:54:09 <Hiato> okay, noted, thanks :)
13:54:14 <flexo> you only need to specify the type if you do something like
13:54:20 <flexo> mov ax, byte [bp]
13:54:29 <flexo> in which case you'd put it on the right side
13:54:31 <Hiato> ooooh, I see I see
13:55:03 <flexo> push 2Dh ;- in ASCII
13:55:03 <flexo> inc edi
13:55:04 <flexo> ^ no
13:55:05 <flexo> the counter
13:55:08 <flexo> cx
13:55:16 <Hiato> arg blarg, ok, thanks
13:55:19 <flexo> *and*
13:55:27 <flexo> it won't work that way
13:55:27 <flexo> :)
13:55:33 <flexo> because the order is reversedf
13:55:34 <flexo> -f
13:55:54 <flexo> so actually
13:55:59 <flexo> you *should* increase edi
13:56:02 <flexo> put don't push
13:56:14 <flexo> mov byte [.t], 0x2d
13:56:23 <Hiato> oh, ok
13:56:26 <flexo> also you can just specify '-' instead of 0x2d
13:56:28 <flexo> easier to read
13:56:52 <Hiato> done and done
13:57:00 <flexo> so
13:57:09 <flexo> now build a small loop going over the characters and print
13:57:12 <flexo> i wanna know if it works too ;)
13:57:38 <Hiato> Unfortunately, no, it didn't.. Oh, wait, still haven't zero terminated it
13:58:01 <flexo> well, in that case you should get some messed up output after the number
13:58:05 <flexo> it should still work though
13:58:40 <Hiato> nope, no output at all
13:58:52 <flexo> how unfortunate
13:58:57 <flexo> okay
13:58:59 <flexo> let's see. give it me.
13:58:59 <Hiato> anything wrong here? mov dx,123
13:58:59 <Hiato> call k_int_tostr
13:58:59 <Hiato> mov si,ax
13:58:59 <Hiato> call k_scr_sprint
13:59:18 <flexo> i don't know?
13:59:26 <flexo> i don't know if k_scr_sprint works? ;)
13:59:31 <flexo> but show me that int_tostr again
14:00:30 <Hiato> http://rafb.net/p/w7PgD996.html
14:00:42 <Hiato> that's all of the relevant code
14:00:54 <flexo> int 10h
14:00:56 <flexo> whats that?
14:01:02 <flexo> oh
14:01:03 <flexo> nevermind
14:01:03 <flexo> heh
14:01:07 <Hiato> interrupt for printing :)
14:01:21 <flexo> okay, give me a minute
14:01:27 <Hiato> sure thing
14:01:38 <flexo> mov ax,[.t]
14:01:40 <flexo> that should be
14:01:42 <flexo> mov ax, .t
14:01:49 <flexo> because you need to return the address
14:01:58 <Hiato> oh, not the byte itself... aha
14:02:10 <flexo> the word, actually
14:02:12 <flexo> and i don't see you zero-terminating the string?
14:02:23 <flexo> add dl,30h ;Make it ASCII
14:02:31 <flexo> using '0' instead of the comment would be more useful :)
14:02:43 <flexo> mov dx,0
14:02:46 <Hiato> roger that
14:02:50 <flexo> that's .. no. it's not. nevermind.
14:02:59 <flexo> is it?
14:03:00 <flexo> hmh
14:03:12 <flexo> Unsigned divide DX:AX by r/m
14:03:15 <flexo> ah yes. nevermind.
14:03:17 <flexo> okay. try again.
14:03:19 <Hiato> could do xor dx,dx
14:03:21 <flexo> yes
14:03:25 <flexo> you should, too
14:03:31 <flexo> it's a very common idiom
14:03:35 <flexo> everyone does it
14:03:42 <flexo> and cpus are optimized for it
14:03:43 <Hiato> roger wilko
14:04:14 <flexo> something unrelated: you are aware of the fact that you are writing 16bit code there, yes?
14:04:14 <Hiato> meh, still no output
14:04:17 <flexo> damnit
14:04:20 <Hiato> yes
14:05:15 <flexo> okay. let's see.
14:05:29 <flexo> test dx,dx
14:05:29 <flexo> jns .push
14:05:29 <flexo> mov edi,.t
14:05:34 <flexo> there's your problem.
14:05:45 <Hiato> oh?
14:05:57 <flexo> yes.
14:06:21 <Hiato> er, edi mov thingy before the jump
14:06:23 <Hiato> right?
14:06:35 <flexo> i'd put it before the test to make things more clear, but yes
14:07:05 <Hiato> I believe it's actually hanging
14:07:07 <flexo> mov [edi],dx
14:07:09 <flexo> that's wrong
14:07:10 <flexo> should be
14:07:15 <flexo> mov [edi], byte dl
14:07:26 <flexo> well err
14:07:29 <flexo> you can leave the byte
14:07:35 <flexo> nasm knows that dl is a byte ofcourse
14:08:02 <flexo> and no, without that fix it won't work
14:08:11 <flexo> dh will be zero, you get a zero-terminated string, no output
14:08:15 <flexo> er
14:08:18 <Hiato> Ok, well, it still appeas to be hanging
14:08:18 <flexo> an empty string i mean
14:08:30 <flexo> hm.
14:08:33 <flexo> you fixed that too?
14:09:03 <Hiato> the zero termination? no
14:09:09 <flexo> well do it then ;)
14:09:17 <flexo> er.
14:09:19 <flexo> no i mean
14:09:21 <flexo> 14:59 < flexo> mov [edi],dx
14:09:24 <flexo> should be dl
14:09:26 <flexo> you fixed that?
14:09:30 <Hiato> ah, righ, yeah, fixed that
14:09:35 <Hiato> add dl,'0'
14:09:36 <Hiato> mov [edi],dl
14:09:46 <flexo> okay
14:09:47 <Hiato> (seeing as we are in 16bit mode, and dl is a byte)
14:09:49 <flexo> let's see the new version
14:09:57 <flexo> way
14:09:58 <flexo> wait
14:10:01 <flexo> what's all that edi mess
14:10:06 <flexo> you are in 16 bit code
14:10:12 <flexo> it should be "di" and "si" everywhere
14:10:24 <flexo> do a quick replace, but that's not a problem. it should still work.
14:10:47 <Hiato> http://rafb.net/p/fZ53Oc16.html
14:10:57 <Hiato> oh, ok
14:11:19 <flexo> i really think this should work now.
14:11:21 <flexo> give me a minute.
14:12:03 <flexo> uhm
14:12:14 <flexo> dx is your input register?
14:12:18 <flexo> you clear it before the divide..
14:12:43 <Hiato> damn it
14:12:51 <Hiato> should have been dh, methinks
14:12:58 <flexo> no
14:13:10 <flexo> the dividend is stored in dx:ax
14:13:16 <flexo> so just put the number in ax
14:13:33 <Hiato> roger
14:13:53 <flexo> i still think this is not the last problem as you should still have gotten *some* output..
14:14:04 <flexo> anyway. let's see the new version
14:14:50 <Hiato> http://rafb.net/p/ivrpE876.html
14:15:18 <Hiato> I LOVE YOU
14:15:20 <Hiato> :D
14:15:23 <Hiato> it works
14:15:39 <Hiato> Wow, that was hell, damn, thank you so very very very very very much
14:15:55 <flexo> it does?
14:15:59 <Hiato> (note: I don't actually *love* you, but for the lack of a better word, I appreciate your help)
14:16:07 <Hiato> lol, why, shouldn't it?
14:16:24 <flexo> didn't really expect it to. had given up hope
14:16:45 <flexo> this is embarassing
14:16:50 <flexo> i'm supposed to be good in this
14:17:00 <Hiato> :P
14:17:06 <Hiato> You are though, fixed it
14:17:07 <flexo> anyway
14:17:10 <flexo> you are writing 16-bit code
14:17:11 <flexo> why?
14:17:18 <Hiato> Simplest OS I could do
14:17:25 <Hiato> 32bit is.. well, I don't know
14:17:28 <Hiato> never tried
14:17:30 <flexo> hm
14:17:31 <flexo> okay
14:17:43 <flexo> wanna see my puts/putc/putn routines?
14:17:50 <Hiato> yes please
14:17:57 <Hiato> and perhaps I could steal them too
14:19:19 <flexo> http://rafb.net/p/RjhxBx56.html
14:19:28 <flexo> no decimal stuff though
14:20:12 <Hiato> yeah, but, it helps either way, gonna save a copy for future 'reference'
14:20:14 <Hiato> hanks :)
14:20:33 <flexo> well
14:20:36 <flexo> you may want the version
14:20:37 -!- FireFly has joined.
14:20:39 <flexo> which is 1 byte longer
14:20:41 <flexo> instead of the
14:20:44 <flexo> cbw
14:20:44 <flexo> sahf
14:20:44 <flexo> aaa
14:20:44 <flexo> aad 0x31
14:20:46 <flexo> adc al, 0x30
14:20:48 <flexo> just do
14:20:53 <flexo> add al, '0'
14:20:53 <flexo> cmp al, '9'
14:20:53 <flexo> jng putc
14:20:53 <flexo> add al, 'a' - '0' - 10
14:21:00 <flexo> does the same thing - in a clean way ;)
14:21:47 <Hiato> roger that, thanks
14:21:53 <flexo> ofcourse this code is... you know
14:21:56 <flexo> "really sexy"
14:22:03 <flexo> size-optimized to the last byte
14:22:13 <flexo> i don't think it's possible to trim anything more
14:22:24 <FireFly> I gotta learn assembler
14:22:25 <flexo> wrote it for a 512-byte bootloader
14:22:41 <Hiato> do you follow osdev.org forums?
14:22:42 <flexo> which loads the linux kernel in high memory along with a ramdisk
14:22:47 <flexo> provides a commandline
14:22:52 <flexo> does keyboard mapping
14:22:59 <flexo> and prints error messages
14:23:04 <Hiato> wait, in 512 bytes?
14:23:07 <flexo> yea
14:23:14 <Hiato> damn....
14:23:19 <Hiato> well, I've got a way to go
14:23:28 <flexo> http://flexotec.eu/~flexo/p2/tinyldr.asm
14:23:34 <flexo> it's more like 450 or so
14:23:39 <Hiato> hopefully I'll learn asm at some point
14:23:40 <flexo> still have 50 bytes to spend :)
14:24:35 <Hiato> heh, I cheated to 512: times 510-($-$$) db 0
14:24:54 <flexo> this was fun
14:25:00 <flexo> and the reason for doing it
14:25:02 <flexo> was even better
14:25:10 <Hiato> Indeed, though, it seems inevitable, fix one thing, break another
14:25:14 <Hiato> as has just happened
14:25:19 <flexo> wanted to play doom with a couple of guys
14:25:25 <flexo> we were really drunk at the time
14:25:36 <flexo> and we were missing a third pc
14:25:39 <Hiato> lol, as only drunk people play that game :P
14:25:49 <flexo> so i dug up a really old box
14:25:58 <flexo> some 486 i think
14:26:07 <flexo> turned out the pci controller on the motherboard was fried
14:26:13 <flexo> so.. no ide controller
14:26:15 <flexo> means no harddrive
14:26:22 <flexo> but that's not a problem, right?
14:26:32 <flexo> no pci slots too, but the board had two isa slots
14:26:39 <Hiato> heh
14:26:42 <Hiato> you're brave
14:26:45 <flexo> i had a isa vga adapter
14:26:50 <flexo> and some 10mbit ethernet adapter too
14:27:02 <flexo> now the problem was, how to get doom to run on it
14:27:15 <flexo> as it needs much more space than fits on a floppy
14:27:22 <Hiato> god's truth, most people throw away "garbage"
14:27:23 <flexo> ... and i only had exactly one floppy drive
14:27:27 <flexo> and exactly one floppy
14:27:48 <Hiato> right, so what did you do? PAQ8?
14:27:54 <flexo> so i figured, i needed a very small linux kernel
14:28:01 <flexo> downloaded some 2.6 kernel
14:28:08 <flexo> stripped it of all drivers i didn't need
14:28:16 <flexo> ended up with 1.1mb, which was fine
14:28:21 <Hiato> (all while being drunk)
14:28:29 <flexo> yea, took me a couple of hours :)
14:28:37 <flexo> i remembered that you don't need a boatloder, dd'ed it on the disk, tried to boot it but no go
14:28:50 <flexo> they removed the bootloader from the linux kernel in the 2.6 version
14:28:59 <flexo> so instead of doing the smart thing and using a 2.4 kernel
14:29:03 <flexo> i wrote that tinyldr
14:29:09 <flexo> ofcourse at the time it wasn't as sexy
14:29:21 <flexo> lots of hardcoded stuff, no command prompt
14:29:25 <Hiato> lol, genius :P
14:29:44 <flexo> put together busybox
14:29:48 <flexo> nfs-mounted a directory
14:29:53 <flexo> played doom for 10 minutes or so
14:29:54 <flexo> it was fun
14:29:55 <flexo> :)
14:30:07 * Hiato wonders whether flexo deserves to be shot or idoloized, or both
14:30:22 <flexo> hehe
14:30:50 <Hiato> talk about disproportionate effort. Why didn't you just write doom from scratch, in binary? Would've been way more worth those then minutes
14:31:19 <flexo> i'm just no the graphics guy
14:31:21 <flexo> *not
14:31:29 <flexo> ;)
14:31:39 <Hiato> no rules about using pre-made .wad's :P
14:32:01 <flexo> actually i started redoing wolf3d once
14:32:17 <flexo> (with a software renderer. the old-fashioned way. no opengl-crap)
14:32:37 <flexo> i think i was 15 at the time
14:32:41 -!- comex has quit (Read error: 60 (Operation timed out)).
14:32:50 <flexo> was my first "real" project
14:33:10 <flexo> it could load the levels, you could run around
14:33:21 <flexo> never got to implement sprites though
14:34:24 <Hiato> damn
14:34:42 <Hiato> hell, I struggled to put together a simple ray-caster in the easiest of all languages
14:34:58 <flexo> did you manage?
14:35:05 <Hiato> sort of
14:35:07 <flexo> otherwise i suggest the pxdtut .. tutorials :)
14:35:29 <Hiato> except the way I worked it, it could only draw one wall
14:35:37 <flexo> TELEMACHOS proudly presents : |
14:35:37 <flexo> | |
14:35:37 <flexo> | Part 7 of the PXD trainers - |
14:35:37 <flexo> | |
14:35:37 <flexo> | RAYCASTING - WOLFENSTEIN |
14:35:39 <flexo> | STYLE
14:35:42 <flexo> those were the days..
14:35:48 -!- comex has joined.
14:36:05 <Hiato> I didn't use a gird, rather objects with coords etc
14:36:12 <Hiato> heh
14:36:54 <oklopol> i've made a 2d raytracer once
14:37:09 <flexo> oklopol: have you seen my "al-nibble-to-hex" sequence..?
14:37:10 <Hiato> Ok, now is discouragement time. There is so much left to do, even comparing my kernel to MikeOS v2...
14:37:38 <Hiato> oklopol, not the so called '2.5D'?
14:37:45 <oklopol> Hiato: what's that?
14:37:55 <flexo> oklopol: as your nickname starts with an 'o' you should be able to appriciate it
14:38:01 <flexo> *appreciate
14:38:29 <Hiato> Well, it's what we'd like to call three dimensional, as in wolfenstien, duke3d etc, but things can only be rotated in two dimensions, hence 2.5d
14:38:30 <oklopol> well color was also given as width in the result, and it wasn't really raytracing, i don't know the term, follow rays from eyes to objects.
14:38:38 <oklopol> Hiato: umm no. less than that
14:38:41 <oklopol> more like 2.1D
14:38:45 <Hiato> heh
14:38:53 <flexo> but things can only be rotated in two dimensions, hence 2.5d
14:38:56 <oklopol> i mean it was a 2d arcade flying game.
14:39:07 <flexo> wait. right.
14:39:10 <flexo> 2d rotation.
14:39:12 <oklopol> just eyecam view
14:39:13 <flexo> duke3d does that
14:39:34 <Hiato> oh, I see
14:41:21 <Hiato> okay, I need a break. Thanks flexo for all the advice/work, I'm that much closer to something or other.
14:41:59 <flexo> yea, you're welcome
14:43:54 <flexo> i really want to get back into the fun area of coding :(
14:44:09 <flexo> no more crappy win32 c++ or irix c
14:44:34 <flexo> this is not fun. not really anyway.
15:01:17 -!- Corun has quit ("This computer has gone to sleep").
15:14:00 -!- Arcanis` has joined.
15:20:06 -!- nono212 has joined.
15:20:08 <nono212> hi !
15:20:17 <Arcanis`> hi !
15:20:21 <nono212> how are you ?
15:20:26 <Arcanis`> fine, thank you
15:20:31 <nono212> me too
15:20:36 <Arcanis`> that's cool
15:20:42 <nono212> yea
15:20:46 <nono212> more than cool
15:20:56 <Arcanis`> incredible
15:21:01 <nono212> ...
15:21:48 <nono212> i like SPL
15:22:42 <nono212> ...
15:26:13 <oklopol> super porn language?
15:26:21 <Mony> LOL
15:26:22 <nono212> yes
15:26:24 <nono212> :)
15:26:25 <nono212> no
15:26:28 <oklopol> yeah that's pretty awesome
15:26:31 <oklopol> oh
15:26:31 <nono212> ^^
15:26:35 <oklopol> what then
15:26:41 <nono212> shakespear i think
15:26:43 <nono212> super porn xD
15:26:52 <Mony> huge
15:27:15 <nono212> KPL, you write with kamasutra positions...
15:27:26 <nono212> if i create it i will be famous :)
15:27:28 <nono212> haha
15:27:36 -!- puzzlet has quit (Remote closed the connection).
15:27:43 -!- puzzlet has joined.
15:27:53 <Mony> BSL, you write with boobs sizes
15:28:00 <nono212> :)
15:32:40 -!- nono212 has quit ("Bon chat sur Uni-IRC").
15:37:54 -!- Arcanis` has left (?).
15:44:21 -!- Corun has joined.
16:02:01 <MizardX> BSL: A..L, could mean either statements or values depending on context. "AAGAAIFAJAAJAAJDACIAHDAJDAJGAJAAIEAAA" could be read as "print 'Hello World'" :)
16:02:41 <Hiato> flexo, still there?
16:03:04 <MizardX> 'A' begins print statement (or a string?), and then each group of thee characters is a base-12 encoding of ascii-codes, null-terminated.
16:03:09 <flexo> Hiato: sure
16:03:27 <Hiato> Another brief mystery? (Though this one probably has an obvious solution)
16:03:33 <flexo> go ahead
16:04:20 <Hiato> http://rafb.net/p/I5Tzfa77.html
16:04:49 <Hiato> Why does this insist of giving me 0FFFF when I call it with 65535, but with 255, it correctly gives 00FF
16:05:54 <Hiato> erk, 3->4, but still same problem
16:05:59 <Hiato> that was a mistake of mine earlier
16:06:13 <flexo> curious, what do you get with 0xffff-1?
16:06:19 <Hiato> (I know it's vastly unoptimised etc)
16:06:23 <Hiato> let's see
16:06:50 <MizardX> It always gives at least one zero
16:06:51 <Hiato> 0FFFE
16:06:58 <Hiato> oh?
16:07:10 <Hiato> Why so, MizardX?
16:07:26 <MizardX> line 34 jumps to format
16:07:34 <flexo> oh.
16:07:39 <flexo> yea. didnt see that.
16:08:03 <Hiato> only if cx<4
16:08:07 <Hiato> (note 3->4)
16:08:07 <flexo> Hiato: you *really* dont wanna do it that way.
16:08:19 <flexo> in hexadecimal each byte always corresponds to two digits
16:08:19 <Hiato> But I like cheap hacks :P
16:08:25 <flexo> it's not a cheap hack
16:08:32 <flexo> it's way more complicated than it should be
16:08:33 <flexo> longer too
16:08:36 <Hiato> oh?
16:08:52 <flexo> just go through the number, output the nibble and shift?
16:09:04 <Hiato> meh, you're right..
16:09:05 <Hiato> heh
16:09:09 <flexo> see my code
16:09:19 <Hiato> I like to overcomplicate things :P
16:09:27 <flexo> http://rafb.net/p/RjhxBx56.html
16:09:36 <flexo> at the bottom there is a putw
16:09:48 <flexo> which outputs a 16bit word in hexadecimal - 4 digits
16:10:09 <flexo> you know, that snippet includes routines for everything
16:10:23 <flexo> putchar(), puts(), and stuff to output a nibble, a byte, and a word in hex
16:10:56 <Hiato> yeah, I suppose. Thing was, I was going to modify this routine to output in any base (one routine for base 10,16,8,2 etc)
16:11:04 <oklopol> flexo: oklopol: have you seen my "al-nibble-to-hex" sequence..? <<< no, is it worth seeing?
16:11:09 <flexo> oklopol: yes!
16:11:16 <flexo> cbw
16:11:16 <flexo> sahf
16:11:16 <flexo> aaa
16:11:16 <flexo> aad 0x31
16:11:16 <flexo> adc al, 0x30
16:11:22 <flexo> beautiful, isn't it?
16:11:29 <oklopol> :D
16:11:33 <flexo> now
16:11:35 <flexo> the best thing is
16:11:42 <flexo> if you happen to know that AF=0 and AH=0
16:11:46 <flexo> you can skip the first two instructions
16:11:46 <oklopol> err
16:11:48 <flexo> so you just have
16:11:50 <flexo> aaa
16:11:50 <flexo> aad 0x31
16:11:50 <flexo> adc al, 0x30
16:12:05 <flexo> note that the mnemonics are alphabetically sorted :)
16:12:12 <oklopol> heh
16:12:17 <flexo> and contain only hexadecimal digits
16:12:19 <flexo> it's just beautiful
16:12:32 <flexo> and in 3 instructions, which i all abuse
16:12:37 <oklopol> umm
16:12:40 <flexo> i manage to use both an undefined opcode and undefined flag behaviour
16:12:53 <flexo> this is just great
16:12:54 <oklopol> are those used for... what's it umm bdc?
16:13:00 <oklopol> binary.. decimal... something
16:13:03 <flexo> yes
16:13:15 <flexo> but you don't have to use them for that
16:13:16 <flexo> the trick is
16:13:24 <oklopol> yeah they need to have nibble stuff
16:13:25 <flexo> when converting a nibble to hex you usually need to branch
16:13:29 <flexo> based on a comparision with 10
16:13:34 <flexo> that's where i got the BCD idea
16:13:52 <flexo> the first AAA does that (well, it doesn't branch, but internally it does stuff differently when the number is >=10)
16:14:01 <flexo> and "aad 0x31" is the undefined opcode
16:14:10 <flexo> it's defined for "aad 10", i use "base 0x31" there
16:14:36 <flexo> because 0x30 is '0'
16:14:38 <oklopol> well, that looks pretty awesome.
16:14:42 <flexo> and 0x30+0x31 is 'a'
16:14:44 <flexo> :)
16:15:00 <oklopol> i understand the general idea
16:15:02 <flexo> it's really short too
16:15:19 <oklopol> but i don't know what a[ad][dc] do.
16:15:24 <oklopol> or don't remember
16:15:45 <flexo> http://www.ecsl.cs.sunysb.edu/~srikant/386/AAA.htm
16:15:52 <flexo> there is a pascal-like description
16:15:59 <flexo> http://www.ecsl.cs.sunysb.edu/~srikant/386/AAD.htm
16:16:02 <flexo> it's really simple
16:16:10 <flexo> in the AAD just replace the 10 for my 0x31
16:16:45 <flexo> AAA is 1 byte, AAD and ADC both 2 bytes. that's 5 bytes. :)
16:19:57 <flexo> (and ADC is just add with carry ofcrouse)
16:20:19 <oklopol> oooo
16:20:24 <fizzie> Abusing those BCD arithmetic instructions like that is very nice.
16:20:33 <flexo> thanks :)
16:20:58 <fizzie> Although I'm not sure I like the "ascii adjust" names of the instructions; there's not really that much "ascii" about them.
16:21:19 <oklopol> for me the initial A means 10, as in bcd.
16:21:20 <flexo> in my code there isd
16:21:37 <flexo> i suppose i figured out the true purpose
16:21:44 <fizzie> Z80 instruction set calls it "DAA" (decimal adjust accumulator) which makes more sensity.
16:21:45 <flexo> the x86 isa is an esolang after all
16:23:15 <flexo> unfortunatly x86_64 dropped the AAD instruction i think :(
16:23:36 <flexo> or AAA? one of the two..
16:24:12 <oklopol> o
16:25:03 <flexo> i need to publish this crap for the world to see and USE (mwuahaha)
16:27:11 <Hiato> http://rafb.net/p/JLwZz179.html Fixed. It may not be as compact as your solution, but it is elegant in the sense that I can print however much I need
16:29:30 <Hiato> break time
16:31:05 <flexo> yea
16:31:06 <flexo> well
16:31:11 <flexo> you don't have a 512 byte restriction
16:32:58 <fizzie> Random bit of trivia: the TI-86 calculator uses 9-byte BCD floats, with a seven-byte mantissa (14 decimal digits of precision) and two bytes for the exponent.
16:33:29 <oklopol> ...
16:33:43 <oklopol> fizzie: what the fuck? :D
16:33:54 <oklopol> ah well
16:34:05 <FireFly> Hrm, maybe I should learn asm some day
16:34:21 <fizzie> I got into an argument about this in one of our university courses, because the lecturer refused to believe me.
16:34:46 <oklopol> well i wonder why...
16:36:16 <fizzie> She was all "no, no, it might be converted to decimal for displaying, but internally all computatators that do floating-point maths use a binary format". I had to provide proof in the format of some TI-86 databook.
16:38:13 <flexo> i think the next POWER arch will feature native decimal FP
16:40:17 -!- KingOfKarlsruhe has joined.
17:01:29 <flexo> http://en.wikipedia.org/wiki/Blind_spot_(vision)
17:01:34 <flexo> fun!
17:29:44 -!- landeguy has joined.
17:30:12 -!- landeguy has quit (Client Quit).
17:31:11 -!- Corun has quit ("This computer has gone to sleep").
17:34:11 -!- Corun has joined.
17:35:55 <Hiato> flexo: is a word signed, by default?
17:37:03 <Hiato> rather, how, if possible, can one debug nasm code?
17:38:44 <olsner> but BCD *is* a binary format, right?
17:40:25 <flexo> uhm..
17:45:58 <flexo> Hiato: you don't really know what you are talking about
17:47:07 <Hiato> nope, I can safely say
17:47:38 <Hiato> which is why I figured stuff it and let's just make it for unsigned
17:48:02 <flexo> there is such thing as signed words.
17:48:06 <flexo> there are just words
17:48:20 <flexo> add/sub work the same for signed and unsigned numbers
17:48:41 <flexo> and fr division and multiplicaation there is div/idiv and mul/imul
17:49:20 <flexo> the signflag tells you if a signed number is negative, but if it is a signed number at all (and if you choose to interpret the signflat) is your choice
17:49:35 <flexo> and about debugging...
17:49:43 <flexo> "nasm code". what's that?
17:49:47 <flexo> nasm is just an assembler
17:49:58 -!- kar8nga has joined.
17:50:43 <Hiato> Okay, thanks for clearing that up. What I meant was is there a NASM-IDE type thing that will let you trace asm?
17:51:16 <flexo> uhm. no.
17:51:31 <flexo> but any debugger lets you step on the instruction level.
17:51:35 <flexo> you should know that
17:52:06 <AnMaster> <flexo> (that "aad 0x31" is that undefined opcode thingie, but it works fine) <-- huh? I don't know x86 asm well enough to know what you are talking about there
17:52:44 <flexo> AnMaster: the mnemonic AAD really has no operand
17:52:53 <flexo> it's binary encoding is 0xd5 0x0a
17:53:06 <flexo> but people figured out that that 0x0a is actually an operand after all
17:53:14 <flexo> and you can put in different bases instead of 10
17:53:39 <flexo> didn't work on certain 8086 clones (notably the nec v20 and v30) but has been silently (undocumented) supported ever since
17:54:33 <AnMaster> hm
17:55:22 <AnMaster> flexo, Isn't AAD for BCD?
17:55:30 <flexo> yes :)
17:55:47 <AnMaster> flexo, it is invalid in long mode
17:55:50 <flexo> i know :(
17:55:51 <AnMaster> that is on x86_64
17:56:07 <flexo> i've already written that in the dialog above
17:56:11 <AnMaster> ah
17:56:13 <AnMaster> missed that
17:56:59 <flexo> but protected mode (or long mode for that matter) assembler is boring anyway
17:57:27 <flexo> well
17:57:28 <flexo> what i mean is
17:57:44 <flexo> if you do 32bit/64bit assembly you are usually using a proper operating system
17:57:50 <flexo> using boring system services
17:58:00 <AnMaster> also I wouldn't write much asm manually in a kernel, I would only write what is needed in asm, the rest in C, and only if there were performance issues, I would rewrite parts in asm if that would help. I would profile before of course
17:58:05 <flexo> using elaborate sane APIs
17:58:23 <flexo> assembler isn't much fun these days
17:58:27 <flexo> RISC took it all away
17:58:27 <AnMaster> flexo, yes I'm the type of person who end up writing sane APIs if there are none
17:58:38 <AnMaster> also, x86 is CSIC
17:58:52 <oklopol> flexo: http://en.wikipedia.org/wiki/Blind_spot_(vision) <<< you haven't noticed that yourself?
17:58:59 <AnMaster> it is the most bloated CISCy I ever seen
17:59:04 <flexo> yea.. but if you want to write performant code you have to reduce the instruction set.
17:59:09 <flexo> (on modern cpus that is)
17:59:37 <flexo> writing speedy application-level 32bit x86 assembly isn't so much different from handcrafting RISC assembly
17:59:56 <flexo> except the fact that you don't always have to explicitly load/store
18:00:03 <flexo> still, it's boring
18:00:33 <AnMaster> flexo, you need to calculate on instruction cycle count on x86
18:00:39 <AnMaster> on RISC that is much less of an issue
18:00:44 <flexo> not really
18:01:11 <AnMaster> I mean, usually most n cycles, with a few, maybe call and similar, takes more
18:01:15 <AnMaster> but on x86 it varies a lot
18:01:19 <flexo> not anymore
18:01:29 <flexo> the only exception being mul/div
18:01:56 <AnMaster> flexo, really? It varies a lot according to the AMD64 optimising guide.
18:01:57 <flexo> besides that all instructions you *should* be using execute in n "cycles" (where n is constant)
18:02:27 <AnMaster> flexo, depends, what about SYSENTER/SYSEXIT
18:02:27 <flexo> okay, i admin, i've been out of the loop for a while
18:02:35 <AnMaster> iirc they vary a bit
18:03:06 <flexo> but up until the athlon XP AMD (and intel too) tried to bring the compiler generated instructions all down to n cycles
18:03:15 <flexo> where n was 1/3 fr the athlon xp
18:03:17 <AnMaster> yep, but that may be because that is the Intel one and this is AMD docs
18:03:27 <olsner> optimizing code is about so much more than fiddling with the cycle counts
18:03:39 <flexo> yea
18:03:41 <AnMaster> flexo, well most take integer cycles
18:03:41 <flexo> it's inserting nops
18:03:49 <AnMaster> if you check latency table
18:03:52 <flexo> so your instructions are aligned with a cacheline
18:04:14 <flexo> AnMaster: seriously, what about those instructions?
18:04:22 <AnMaster> flexo, what about which ones?
18:04:29 <flexo> if you wanna multiple, you have to use the multiply instruction (except for those shift cases, yes)
18:04:39 <flexo> even the LEA tricks are not really worthwhile anymore
18:04:52 <flexo> sometimes they are faster, usually they just clog address generation
18:04:58 <AnMaster> flexo, I read about reducing that too, it was quite an interesting research paper
18:05:13 <AnMaster> about strength reducing modulo by using addition and shift
18:05:19 <AnMaster> to work for "not power of 2 cases"
18:05:21 <flexo> yes
18:05:24 <flexo> been there
18:05:25 <AnMaster> it talked about division and so on too
18:05:26 <flexo> done that
18:05:35 <flexo> for multiplication it's *slightly* faster
18:05:40 <ehird> yo.
18:05:48 <flexo> but only very slightly
18:05:59 <AnMaster> flexo, personally I write C and watches happily, and *without* a headache while it does that strength reduction for me :P
18:06:05 <AnMaster> s/it/gcc/
18:06:06 <flexo> yea
18:06:11 <flexo> my brainfuck compiler actually does that
18:06:13 <flexo> actually
18:06:24 <flexo> a large part of the compiler consists of that multiplication-optimization
18:06:25 <flexo> because it was fun
18:06:26 <flexo> ;)
18:07:15 <flexo> i suppose not as sophisticated as your research paper though :)
18:07:17 <AnMaster> flexo, hm my bf compiler compiles to C (with some optimising of course, like converting balanced loops with no IO to polynoms and such)
18:07:36 <flexo> AnMaster: you should try outputting assembler instead
18:07:38 <AnMaster> flexo, anyway I'm looking for the link to that paper
18:07:51 <AnMaster> flexo, well, sure, but I use several different arches daily
18:07:55 <flexo> when i make my compiler output c and use gcc -O3 to compile the resulting binary is actually slower
18:08:03 <AnMaster> I have no interest in writing ppc, x86 and x86_64 versions
18:08:08 <AnMaster> of an user space program
18:08:09 <flexo> (and takes like 100 times more time)
18:08:23 <AnMaster> flexo, what I might do in that case would be output LLVM code
18:08:45 <flexo> (with some optimising
18:08:45 <flexo> of course, like converting balanced loops with no IO to
18:08:45 <flexo> polynoms and such)
18:09:01 <flexo> ^ was that erlang thingie yours?
18:09:41 <AnMaster> flexo, er? I use Erlang sometimes, but what has that got to do with a compiler to C?
18:09:50 <flexo> no wait
18:09:51 <flexo> haskell
18:09:57 <AnMaster> anyway the bf compiler was written in C too
18:10:04 <flexo> oh okay
18:10:06 <AnMaster> flexo, found it: http://www.cag.lcs.mit.edu/commit/papers/99/mdopt-TM.ps
18:10:10 <flexo> there is a haskell bf2c compiler floating around
18:10:25 <AnMaster> flexo, and I said I was *learning* haskell, but maybe you were drunk then, don't know
18:10:27 <flexo> does some good optimization. not as good as mine though ;)
18:10:42 <AnMaster> flexo, link to source code of yours?
18:10:44 <flexo> no, the one i got really is written in haskell
18:10:47 <flexo> well
18:10:52 <flexo> i could upload it
18:10:54 <flexo> but i warn you
18:10:56 <AnMaster> flexo, I'm afraid my optimiser and constant propagator is rather a mess
18:10:58 <flexo> it's unmaintainble mess
18:11:04 <AnMaster> oh you too?
18:11:04 <flexo> and needs a complete rewrite
18:11:04 <AnMaster> :)
18:11:15 <flexo> it produces *very* efficient code though
18:11:33 <flexo> give me a second, i'll upload it
18:12:02 <AnMaster> flexo, same goes for mine, constant propagation (after a [-] it tries to track that memory cell so [-] -> "set 0" (special cased), [-]++ -> "set 3")
18:12:12 <flexo> yes
18:12:13 <flexo> mine too
18:12:16 <AnMaster> (and it reorders when possible)
18:12:20 <flexo> i also do "while" => "if" optimization
18:12:22 <flexo> reordering
18:12:26 <flexo> "mac" => "mul"
18:12:35 <AnMaster> flexo, what about turning +++[>++++<-] into a single polynom?
18:12:37 <AnMaster> did you do that
18:12:44 <flexo> sure?
18:12:48 <AnMaster> ok
18:12:50 <flexo> well actually
18:12:54 <AnMaster> <flexo> "mac" => "mul" <-- what would that be?
18:12:55 <flexo> that one will become a single add
18:12:56 <flexo> ;)
18:13:01 <flexo> well
18:13:02 <AnMaster> flexo, yes it would in the end
18:13:17 <flexo> "multiply and accumulate" becomes just "multiply" when adding to a zero ofcourse
18:13:33 <flexo> strips out more dependencies, often leads to other optimization passes further striping out code
18:14:08 <AnMaster> flexo, but point is you can turn any balanced loop (even nested ones, though that is messy) with no IO into a polynom
18:14:18 <flexo> i do
18:14:24 <flexo> no wait
18:14:25 <flexo> i don't
18:14:32 <flexo> not nested ones
18:14:35 <flexo> but yea, ofcourse you can
18:14:38 <AnMaster> flexo, hm I'm not sure about this "multiply and accumulate", example bf code?
18:14:47 <flexo> your example is an example
18:15:01 <flexo> it's multiplication and adding the result to a cell
18:15:07 <flexo> that's MAC in assembler
18:15:32 <AnMaster> flexo, only issue is GCC bails out with ICE when compiling the generated file for lostkingdom... Since I put all the generated code in main()
18:15:43 <flexo> lostkingdom, whats that?
18:16:08 <AnMaster> I guess I should split the tree up
18:16:08 <AnMaster> flexo, a huge text adventure in bf
18:16:13 <AnMaster> flexo, considered somewhat like "acid test for bf implementations"
18:16:21 <AnMaster> http://jonripley.com/i-fiction/games/LostKingdomBF.html
18:16:34 <AnMaster> 2.08 MB bf file :D
18:16:34 <flexo> http://flexotec.eu/~flexo/pinky.tar.gz
18:16:37 <flexo> thats my implementation
18:16:38 <flexo> beware
18:16:45 <flexo> just copied my dev directory
18:16:48 <flexo> might be seriously broken
18:16:53 <flexo> seems to be working though
18:17:01 <AnMaster> "beware of the brainfuck interpreter", nice idea
18:17:08 <AnMaster> instead of "beware of the dog"
18:17:36 <AnMaster> flexo, is it 64-bit clean :D
18:17:38 <AnMaster> ;P
18:17:39 <flexo> (linux / x86 "ofcourse")
18:17:42 <flexo> no idea
18:17:52 <flexo> give it a try. curious. otherwise do -m32
18:17:56 <flexo> oh, and you'll need nasm
18:18:04 <flexo> oh. and it will definitly generate 32bit code
18:18:08 <AnMaster> flexo, I don't have nasm, I have yasm though
18:18:18 <flexo> won't do i think
18:18:23 <AnMaster> flexo, personally I prefer AT&T syntax
18:18:29 <flexo> i hate at&t
18:18:40 <ehird> at&t syntax is what gnu as uses right?
18:18:43 <AnMaster> flexo, well everyone arch except x86 seems to use it
18:18:46 <flexo> yea so?
18:18:48 <ehird> if so, AnMaster, you suck even more
18:18:48 <flexo> it still sucks
18:18:56 <AnMaster> flexo, I'm used to it
18:19:03 <flexo> AnMaster: yes, you can get used to it
18:19:03 <AnMaster> from ppc and so on
18:19:07 <flexo> i used it too for a while
18:19:12 <flexo> i just don't like it ;)
18:19:17 <ehird> you're wasting your time flexo
18:19:36 <AnMaster> flexo, well someone used to vi will find emacs hard and someone used to emacs will find vi hard
18:19:43 <flexo> so
18:19:44 <flexo> lets see
18:19:48 <flexo> how many cells does LK need?
18:19:56 <AnMaster> flexo, no clue
18:19:58 <AnMaster> a lot iirc
18:20:16 <flexo> is it okay with 32bit cells?=
18:20:22 <flexo> looks so
18:20:31 <flexo> You can see: some matches (2)
18:20:31 <flexo> >get matches
18:20:31 <flexo> I didn't understand that.
18:20:31 <flexo> >
18:20:32 <flexo> !?
18:20:41 <flexo> perfectly fast
18:20:43 <AnMaster> flexo, I get lots of warnings
18:20:45 <flexo> feels like a normal c program
18:20:49 <flexo> and compiled in 3 seconds
18:20:52 <AnMaster> from compiling pinky
18:21:04 <AnMaster> flexo, want me to pastebin?
18:21:11 <ehird> stop being such a compiler warning nazi
18:21:12 <flexo> sure
18:21:13 <ehird> :|
18:21:13 <AnMaster> I did make clean before
18:21:18 <AnMaster> ehird, standard cflags...
18:21:23 <flexo> it shouldn't do that
18:21:31 <AnMaster> http://rafb.net/p/ECxMtZ83.html
18:21:31 <AnMaster> there
18:21:31 <flexo> oh wait
18:21:37 <ehird> i'm not exactly sure what "standard cflags" are to AnMaster but I'm worried
18:21:50 <AnMaster> ehird, CFLAGS='-pipe -march=k8'
18:21:53 <AnMaster> no warings
18:21:55 <AnMaster> warnings*
18:21:57 <AnMaster> no -O
18:22:02 <flexo> AnMaster: yea, it's cool
18:22:06 <ehird> are you going through rehabilitation or something
18:22:06 <AnMaster> anyway it ignored my cflags
18:22:09 <flexo> i get most of them too
18:22:10 <ehird> src/opnode.c:222: warning: format ‘%p’ expects type ‘void *’, but argument 3 has type ‘struct OpNode *’
18:22:15 <ehird> well that's idiotic.
18:22:20 <flexo> indeed
18:22:21 <AnMaster> ehird, no I just use -Wall and so on for my own projects
18:22:23 <AnMaster> and I still do
18:22:58 <flexo> anyway, it should work.
18:23:09 <flexo> don't know about these warnings
18:23:15 <flexo> i think most of them creeped in by a gcc update
18:23:15 <AnMaster> ld: i386 architecture of input file `LostKng.o' is incompatible with i386:x86-64 output
18:23:17 <AnMaster> hah
18:23:27 <AnMaster> $ file LostKng.o
18:23:27 <AnMaster> LostKng.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV)
18:23:36 <flexo> yea well
18:23:37 <AnMaster> flexo, well apart from your call to ld not working
18:23:43 <flexo> what did you expect
18:23:59 <ehird> that's what you get for using 64bit :p
18:24:00 <AnMaster> ld -m elf_i386 LostKng.o
18:24:01 <AnMaster> that works
18:24:11 <flexo> >t matches
18:24:11 <flexo> You need to specify an item.
18:24:11 <flexo> >t some matches
18:24:11 <flexo> You need to specify an item.
18:24:11 <flexo> >t2
18:24:13 <flexo> Taken.
18:24:15 <flexo> >
18:24:18 <flexo> lame
18:24:22 <AnMaster> flexo, eh?
18:24:22 <flexo> AnMaster: i compiled with -f1000000
18:24:33 <AnMaster> flexo, and what does -f1000000 do
18:24:33 <AnMaster> ?
18:24:38 <flexo> fieldsize 1000000
18:24:42 <AnMaster> ah
18:24:45 <ehird> flexo: of course it's lame
18:24:47 <ehird> it's brainfuck :P
18:24:50 <ehird> well, highly retarded basic
18:24:51 <AnMaster> flexo, well
18:24:52 <ehird> compiled to brainfuck
18:24:52 <AnMaster> $ ./pinky
18:24:52 <AnMaster> Usage: pinky FILE
18:24:59 <flexo> default is 66553... well... actually it's 665530 because i messed around with the hardcoded stuff
18:25:15 <AnMaster> flexo, don't you grow on demand?
18:25:18 <flexo> AnMaster: yea.. see pinky.c
18:25:20 <AnMaster> mine does
18:25:21 <flexo> nope
18:25:28 <flexo> would be easily doable though ofcourse
18:25:28 <ehird> flexo: why not just use the main RAM
18:25:31 <AnMaster> which means it is slower but more robust
18:25:34 <flexo> no
18:25:35 <flexo> not slower
18:25:41 <ehird> and trap segfaults
18:25:41 <flexo> just mmap and mprotect a page at the end
18:25:44 <flexo> trap the signal
18:25:46 <ehird> :DD
18:25:47 <AnMaster> flexo, well since I need to check for out of bounds in mine
18:25:48 <ehird> flexo: WE THINK ALIKE.
18:25:52 <AnMaster> I don't trap segfault
18:25:54 <AnMaster> but you could
18:25:59 <ehird> out of bounds checking is for losers
18:26:04 <flexo> AnMaster: interesting option is -d
18:26:10 <flexo> which dumps the optimized IL
18:26:16 <AnMaster> flexo, you found mine?
18:26:24 <flexo> mine? yours? what?
18:26:38 <ehird> he's talking about his.
18:26:42 <AnMaster> flexo, iirc mine dumps optimised parser tree with -d too...
18:26:46 <AnMaster> so you confused me there
18:26:48 <flexo> oh.
18:26:54 <AnMaster> flexo, iirc fizzie traps segfault in jitfunge
18:26:54 <flexo> no. talking about mine.
18:27:13 <AnMaster> anyway about trapping segfaults and messing with stuff in the registers, is this even documented?
18:27:21 <AnMaster> I mean, of course it isn't portable
18:27:29 <AnMaster> between different cpus
18:27:34 <flexo> ofcourse it's documented
18:27:41 <AnMaster> flexo, what man page?
18:27:43 <flexo> should even be portable
18:27:49 <flexo> man mmap, man mprotect, man signal
18:27:51 <AnMaster> flexo, to freebsd and so on?
18:28:00 <flexo> i think so
18:28:03 <flexo> should be POSIX
18:28:20 <AnMaster> flexo, I mean about trapping segfaults, what if you segfault for something else
18:28:23 <AnMaster> like a bug
18:28:31 <ehird> sigh
18:28:42 <ehird> SBCL traps segfault to handle allocation.
18:28:46 <ehird> I'm pretty sure it's not an issue.
18:28:55 <AnMaster> ehird, SBCL uses an 8 GB static array
18:28:56 <flexo> AnMaster: you enter non-portable areas there
18:29:05 <flexo> you can check the instruction pointer and check what instructions caused the sefault
18:29:05 <ehird> AnMaster: ...
18:29:06 <ehird> you have no idea what you're talkinga bout
18:29:09 <flexo> but that's obviousl not portable
18:29:27 <AnMaster> ehird, well I know it uses a huge static array and depends on linux overcommiting memory
18:29:32 <flexo> er
18:29:34 <AnMaster> on x86_64 it is 8 GB, on x86 less
18:29:36 <flexo> actually it's sigaction()
18:29:37 <ehird> sbcl works on non-linux.
18:29:38 <flexo> not signal(), sorry
18:30:05 <flexo> CONFORMING TO POSIX.1-2001, SVr4.
18:31:20 <flexo> AnMaster: so. the compiled program worked?
18:31:25 <AnMaster> flexo, yes
18:31:39 <AnMaster> ehird, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474402
18:31:55 <ehird> yes
18:32:02 <ehird> but sbcl _does_ trap segfault
18:32:05 <AnMaster> ok not static, it was mmap()
18:32:10 <ehird> that's a fact
18:32:10 <AnMaster> ehird, why would it need to do that?
18:32:17 -!- kar8nga has quit (Connection timed out).
18:32:22 <AnMaster> if it uses a huge area that it depends on is allocated as needed
18:32:23 <ehird> AnMaster: ask the sbcl devs.
18:33:05 <flexo> uhm.
18:33:13 <AnMaster> mhm
18:33:34 <ehird> muhm
18:33:35 <flexo> if you want to implement an on-demand growing blob of memory
18:33:39 <flexo> you have to use mmap()?
18:33:47 <ehird> well yeah
18:33:48 <AnMaster> flexo, is there any -h or --help for pinky?
18:33:50 <ehird> then trap segfault
18:33:55 <ehird> AnMaster: can't you read c?
18:34:03 <flexo> AnMaster: yes, it's $ vi src/pinky.c
18:34:11 <flexo> see main()
18:34:17 <AnMaster> bash: vi: command not found
18:34:17 <AnMaster> Did you mean: emacs?
18:34:17 <ehird> flexo: careful
18:34:19 <AnMaster> ;P
18:34:20 <flexo> no
18:34:20 <ehird> AnMaster is about to start
18:34:21 <ehird> yeah.
18:34:22 <flexo> i meant vi
18:34:30 <flexo> as it's guaranteed to be there
18:34:36 <flexo> as specified by the single unix spefication
18:34:47 <ehird> AnMaster probably uninstalled it manually because he hates vi and everyone who uses it and is objectively right and wants to prove a point.
18:34:48 <flexo> (yea, not exactly true, but close enough)
18:34:56 <AnMaster> flexo, well, many linux distros use nano by default these days
18:35:05 <ehird> not when you run vi(1).
18:35:06 <AnMaster> vi was not default, nor was emacs
18:35:09 <AnMaster> only nano was
18:35:14 <ehird> that is utterly irrelevant
18:35:18 <AnMaster> which is an interesting way around the editor war
18:35:20 <flexo> AnMaster: didn't you just babble about portability?
18:35:36 <AnMaster> flexo, yes, and in practise vi isn't portable
18:35:42 <flexo> yes it is.
18:36:14 <ehird> flexo: you're asking for consistency out of AnMaster
18:36:23 <flexo> ehird: yea, i'm slowly getting it
18:36:34 <ehird> yes, until he dodges the question with a bad joke
18:36:46 <flexo> yea
18:36:51 <AnMaster> also what I asked was: is this documented, and well defined, to trap sigsegv and then jump back to continue exection after calling mmap()
18:36:55 <flexo> yes.
18:37:00 <ehird> why don't you read the standard
18:37:04 <ehird> instead of getting everyone else to.
18:37:26 <AnMaster> ehird, iirc some standard, C or POSIX say it is undefined to touch anything but volatile variables in signal handlers
18:37:29 <flexo> i know that's what you asked, and that's why i already had given you an answer to that question
18:37:43 <flexo> i doubt posix says that
18:37:54 <AnMaster> flexo, I'm quite sure C99 does
18:37:58 <ehird> perhaps you could declare the mmaped stuff volatile then
18:37:58 <flexo> so?
18:38:01 <flexo> your point being...?
18:38:02 <ehird> OMG CRAZY
18:38:58 <flexo> According to POSIX, the behavior of a process is undefined after it
18:38:58 <flexo> ignores a SIGFPE, SIGILL, or SIGSEGV signal that was not generated by
18:38:59 <flexo> kill(2) or raise(3).
18:39:00 <flexo> oh well
18:39:11 <AnMaster> see?
18:39:14 <AnMaster> I was right :P
18:39:22 <ehird> you're right only going by a tedious, broken standard
18:39:30 <ehird> here's a challenge: find a system it breakso n
18:39:35 <AnMaster> ehird, one which you suggested I should read just above
18:39:36 <ehird> that more than 3 people use
18:39:37 <ehird> I'll wait here
18:39:39 <AnMaster> <ehird> why don't you read the standard
18:39:43 <ehird> AnMaster: yes, because you were the one asking about it./
18:39:44 <AnMaster> you referred to it as well
18:39:50 <flexo> ...
18:40:23 <ehird> flexo: link to pinky?
18:40:26 <AnMaster> ehird, that you can never admit that you lost in a discussion...
18:40:31 <flexo> http://flexotec.eu/~flexo/pinky.tar.gz
18:40:31 <AnMaster> a character flaw
18:40:36 <flexo> again
18:40:38 <flexo> beware
18:40:40 <ehird> AnMaster: umm, that's because I didn't
18:40:42 <ehird> moron
18:40:43 <flexo> this is ugly unmaintanble code
18:40:45 <Badger> none of you can, I imagine
18:41:02 <ehird> Badger: unlike AnMaster i don't react with a joke in that situation, at least
18:41:04 <flexo> complex, ugly, unmaintanble code
18:41:07 <AnMaster> ehird, yes, but you then pretend you said something else all the time, even when the scrollback shows you didn't
18:41:12 <ehird> what
18:41:21 <flexo> (this happens when people who don't finish highschool end up writing compilers)
18:41:22 <ehird> you're an idiot. I told you to read the standard because YOU ASKED IF IT WAS STANDARD
18:41:36 <ehird> that is ABSOLUTELY not inconsistent with calling the standard stupid
18:41:36 <AnMaster> ehird, and I said I was pretty sure it wasn't
18:41:40 <AnMaster> then you said it was
18:41:41 <ehird> that is also irrelveant
18:42:02 <flexo> but i plan on doing a new pinky
18:42:09 <Badger> what's pinky?
18:42:14 <flexo> along with a proper CFG and SSA optimization
18:42:18 <flexo> Badger: http://flexotec.eu/~flexo/pinky.tar.gz
18:42:26 <flexo> my highly optimizing brainfuck compiler
18:42:31 <flexo> (x86, linux)
18:42:32 <Badger> o_O
18:42:38 <ehird> oh, linux only
18:42:38 <ehird> :<
18:42:44 <flexo> ehird: should be
18:42:46 <Badger> you wrote a bf compiler
18:42:47 <ehird> oh wells
18:42:48 <flexo> very easy to port
18:42:51 <flexo> bsd?
18:42:57 <AnMaster> ehird, also I was waiting for the pdf with POSIX to load, for some reason it hasn't yet finished opening
18:42:57 <ehird> flexo: err, you could say bsd :-)
18:43:00 <flexo> darwin?
18:43:03 <ehird> :x
18:43:03 * Badger shudders
18:43:04 <ehird> maybe
18:43:05 <ehird> :-)
18:43:13 <flexo> alright
18:43:25 <AnMaster> Badger, I agree
18:43:30 <flexo> just look into x86.c
18:43:33 <AnMaster> about the shudder for darwin
18:43:39 <Badger> hah
18:43:44 <flexo> see the GETC/SETC case
18:43:44 <Badger> I meant for a brainfuck compiler :P
18:43:52 <ehird> Badger: ssh, don't ruin his ideological associations
18:43:58 <flexo> and replace by a syscall on your system
18:43:59 <AnMaster> Badger, well what is so odd with that? Many people have written that
18:44:08 <AnMaster> Badger, some to asm, some to machine code, some to C
18:44:12 <AnMaster> and so on
18:44:44 <Badger> esoteric languages are inherently evil :P
18:44:46 <flexo> ehird: i could also give you a ruby script which converts the IL to C
18:44:55 <AnMaster> Badger, what on earth are you doing here then? :P
18:45:02 <flexo> but as i said, gcc -O3 produces worse code than pinky directly
18:45:06 <AnMaster> flexo, cool
18:45:11 * ehird peeks at x86
18:45:17 <flexo> and takes ages to compile
18:45:20 <ehird> #ifdef __STRICT_ANSI__
18:45:20 <ehird> # undef __STRICT_ANSI__
18:45:21 <ehird> #endif
18:45:23 <ehird> :D
18:45:25 <flexo> hehe
18:45:39 <ehird> #if defined(DJGPP)
18:45:39 <ehird> #error djgpp
18:45:41 <ehird> #include <unistd.h>
18:45:43 <ehird> #error posix
18:45:45 <ehird> #elif defined(POSIX)
18:45:47 <ehird> is that meant to make sense?
18:45:55 <flexo> nope
18:45:57 <flexo> don't remember
18:45:59 <ehird> ha
18:46:01 <flexo> i did a djgpp port
18:46:11 <flexo> but i suppose this "branch" doesnt include that code
18:46:14 <flexo> lost it :)
18:46:50 <AnMaster> Hm
18:47:19 <flexo> the compiler actually gets faster with more optimization passes
18:47:27 <flexo> because the real bottleneck is all the sprintf() outputting the assembler
18:48:15 <flexo> ehird: oh, and you need to adjust the program epilogue too at the end of the file
18:48:19 <flexo> to terminate the process
18:48:22 <flexo> but on the other hand
18:48:26 <flexo> it will die anyway
18:48:33 <ehird> hehe
18:48:43 <ehird> 18:43 <Bouncer> CTCP-query VERSION from flexo
18:48:44 <ehird> oh sneaky
18:49:34 <flexo> just spotted a buf
18:49:35 <flexo> bug
18:49:39 <flexo> if(curr->type == MUL && curr->val == -1)
18:49:46 <flexo> i'm fairly certain that should be val < 0
18:49:47 <ehird> i spot bufs all the time
18:50:51 <AnMaster> I noticed quite a few open source projects with a section titled "Executive Summary" recently on their websites, in their README or such. One example is the README of valgrind. Hm, maybe I should add one to cfunge ;)
18:50:54 <AnMaster> ~
18:50:57 -!- Corun has quit ("This computer has gone to sleep").
18:51:07 <flexo> ehird: oh, and see pinky.h
18:51:15 <flexo> you should probably add a new target
18:51:17 <olsner> "Executive summary: this program has no use whatsoever."
18:51:23 <flexo> feel free to do it and send me a patch ;)
18:51:29 <ehird> :)
18:51:50 -!- Corun has joined.
18:52:05 <AnMaster> olsner, well it would end up very strange for a esolang interpreter
18:52:21 * AnMaster wonders if Java2K has one... It would fit perfectly with it
18:53:38 <flexo> pinky needs a register allocator too
18:55:27 <flexo> and i'm not optimizing nested ifs to compare less/greater
18:56:17 <AnMaster> flexo, in the optimiser are you working on the program in the form of a tree or?
18:56:23 <flexo> yes
18:56:36 <AnMaster> flexo, which file is the optimiser in?
18:56:39 <flexo> pinky.c
18:56:52 <flexo> optimize()
18:57:34 * AnMaster looks for how the OPTIMIZATION macro is defined
18:57:38 <olsner> omg my leg is numb
18:57:43 <flexo> evil preprocessor magic
18:58:01 <flexo> it's just for debugging purposes
18:58:11 <AnMaster> flexo, so what parameter is relevant then?
18:58:19 <flexo> what do you mean?
18:58:32 <AnMaster> oh wait
18:58:35 <flexo> just ignore the OPTIMIZATION() itself
18:58:37 <AnMaster> it is just a debug macro?
18:58:38 <AnMaster> ah ok
18:59:11 <flexo> it dumps the cell contents on entry along with the performed optimization (code line) when done
18:59:17 <flexo> err
18:59:25 <flexo> the opnode, not the cell
18:59:26 <AnMaster> OPTIMIZATION(curr) {\n ... \n} <-- to me that looks like a macro that does something stupid, like a condition with nothing after, since there was a { on the same line
18:59:30 <AnMaster> and no ; after
19:00:46 <AnMaster> OpNode *scope; ?
19:00:54 <AnMaster> what is the scope?
19:01:01 <ehird> read the code
19:01:11 <AnMaster> ehird, what do you think I am doing?
19:01:18 <ehird> asking flexo to read the code for you
19:01:19 <AnMaster> I'm reading the data structure definition
19:01:36 <AnMaster> there is no documentation, thus the data structure is undocumented
19:01:41 <ehird> so?
19:01:42 <ehird> there's code.
19:01:43 <ehird> read the code.
19:01:49 <ehird> that's surprisingly common in programming.
19:02:01 <flexo> so
19:02:29 <flexo> OPTIMIZATION() turns to a for() loop
19:02:47 <flexo> 19:53 < AnMaster> what is the scope? <= the parent node in the tree ofcourse
19:03:04 <AnMaster> flexo, then why is there a OpNode *parent; member as well
19:03:05 <flexo> (my internet connection is somewhat fleky right now)
19:03:32 <flexo> i don't know, what line are you talking about?
19:03:50 <AnMaster> opnode.h
19:03:54 <AnMaster> struct OpNode
19:04:00 <AnMaster> I'm talking about it's members
19:04:08 -!- Corun has quit ("This computer has gone to sleep").
19:04:15 <flexo> ah
19:04:40 <flexo> you know
19:04:43 <AnMaster> yes?
19:04:45 <flexo> that's a good question
19:05:00 <flexo> i think i remember
19:05:18 <flexo> i added that for the LOAD/MUL
19:05:29 <flexo> a MUL is inside a LOAD in the tree
19:05:38 <flexo> but it's scope is actually the LOAD's parent
19:05:48 <AnMaster> LOAD() is "set constant"?
19:06:06 <flexo> well.. LOAD loads a bf cell into the accumulator
19:06:22 <AnMaster> hm ok
19:06:41 <flexo> MUL multiplies it with a constant and stors the result in a cell
19:06:50 <flexo> MAC adds the result
19:07:12 <flexo> copying is done by MUL 1
19:07:19 <flexo> my internet connection is really breaking down here
19:07:23 <flexo> i need my own line
19:07:33 <flexo> WEP WLANs just don't do the job
19:08:15 <flexo> i spent the last 10 minutes shifting my laptop over the table
19:08:33 <AnMaster> flexo, hm how would you optimise this +++[>++<<--<[-]+>>-]
19:08:42 <AnMaster> I assume to a few set constants
19:09:00 <AnMaster> at least if it was know the "iterator" cell was 0 before +++
19:09:24 <flexo> trying to find the optimal position to get in reach of the house on the other side of the street
19:09:35 <flexo> yes
19:09:41 <ehird> ssh, AnMaster will rant to you about how that's illegal
19:09:47 <ehird> in case you weren't aware or something
19:09:56 <AnMaster> ehird, why would I do that?
19:10:00 <ehird> you always do
19:10:22 <AnMaster> ehird, when did I "rant" about using wlan without permission?
19:10:24 <flexo> hm.
19:10:27 <AnMaster> I don't remember ever doing it
19:10:29 <flexo> actually i kinda fail to optimize that.
19:10:30 <flexo> oh well.
19:10:33 <ehird> you rant about X for all X where illegal(X)
19:10:56 <flexo> no, it's cool
19:11:01 <flexo> i do MAC spoofing and all
19:11:14 -!- asiekierk has joined.
19:11:23 <AnMaster> ehird, well I want a specific example of this please for WLAN. Otherwise it is just spreading lies
19:11:31 <asiekierk> http://www.youtube.com/watch?v=9ymGAujZAaY - ...wtf
19:11:35 <flexo> all traffic is routed to a server in the netherlands
19:11:36 <ehird> no, it's based on past behaviour
19:11:52 <flexo> encrypted with XTEA
19:12:01 <flexo> i'm kinda paranoid when it comes to WEP
19:12:03 <flexo> for obvious reasons
19:12:04 <AnMaster> flexo, hm?
19:12:05 <flexo> :)
19:12:16 <flexo> hm hm?
19:12:18 <AnMaster> "<flexo> all traffic is routed to a server in the netherlands" <-- what?
19:12:27 <asiekierk> ...is anyone watching my animation!?
19:12:29 <AnMaster> sounds like an China...
19:12:36 <AnMaster> if they route everything to a server
19:12:53 <flexo> yea.. when i break in other peoples WLANs i never just use their router
19:12:59 <flexo> hacked together a simple VPN
19:13:05 <flexo> well, not really a VPN
19:13:09 <flexo> it's very specific for my purposes
19:13:11 <AnMaster> flexo, also I never heard of such stuff in the Netherlands, I thought they were democratic and didn't reroute peoples traffic
19:13:29 <flexo> also, it sends all packets 5 times
19:13:39 <flexo> because my wireless links tend to be somewhat.. unstable
19:13:44 <AnMaster> oh you mean you route through a server in the netherlands
19:13:44 <flexo> AnMaster: huh?
19:13:47 <flexo> yes
19:13:58 <flexo> signal-to-noise ratio: +6 dB
19:13:59 <AnMaster> not that the gov in netherlands route traffic strangely
19:14:04 <flexo> typing via ssh is kinda hard right now
19:14:06 <AnMaster> right
19:14:16 <oklopol> asiekierk: that was awesome
19:14:26 <asiekierk> ...seriously?
19:14:41 <asiekierk> Do I have such a talent to make puppet toons?
19:14:45 <ehird> no
19:14:45 <oklopol> ;)
19:14:46 <ehird> :D
19:14:51 <asiekierk> hopefully!
19:14:53 <oklopol> well it was... unexpected.
19:14:58 <asiekierk> I thought that was really awesome :/
19:14:58 <flexo> i have no own internet connection for 2 years now
19:15:00 <flexo> but i just moved
19:15:07 <flexo> and the WLANs here just suck
19:15:11 <flexo> getting ADSL again..
19:15:16 <AnMaster> asiekierk, question, since I don't often use youtube, how do you rate 0 stars?
19:15:17 <ehird> flexo i have a wlan you could use.
19:15:24 <flexo> thanks very much
19:15:24 <ehird> AnMaster: don't be a jerk
19:15:26 <AnMaster> I mean the lowest possible seems to be 1 star
19:15:28 <asiekierk> AnMaster: You can't.
19:15:35 <asiekierk> You can rate 0 stars by not voting at all though
19:15:38 <asiekierk> :D
19:15:38 <AnMaster> ehird, no I was wondering in general
19:15:48 <ehird> if the lowest you can rate is 1 star
19:15:52 <ehird> then maybe you can't rate 0 stars
19:15:54 <AnMaster> ehird, because if he posts to youtube he must obviously know it
19:15:56 <ehird> omfgbbq
19:16:14 <AnMaster> ehird, I thought it was a case of PEBKAC
19:16:15 <AnMaster> ...
19:17:18 <flexo> boring!
19:18:10 <asiekierk> Wait, did anyone really watch my movie, cuz i see 3 views
19:18:19 -!- ehird has quit ("Caught sigterm, terminating...").
19:18:23 -!- ehird has joined.
19:18:23 <asiekierk> and 2 people other than you watched it
19:18:24 <flexo> i didn't
19:18:29 <oklopol> asiekierk: just assume no one cares about anything anyone else does. desperately wanting people to give an opinion when they aren't interested, that is, pretty much every time you don't get a spontaneous answer from anyone, just forces them to try to find a nice way to tell you they don't care.
19:18:29 <flexo> because i can't
19:18:35 <flexo> i get only like 30 kb/s..
19:18:43 <AnMaster> asiekierk, I did, but not using youtube, I don't have flash
19:18:56 <AnMaster> I use another way to use mplayer directly on the video
19:18:56 <asiekierk> AnMaster: what happened at the end?
19:19:12 <AnMaster> asiekierk, I'm still waiting for the cache to fill
19:19:12 <asiekierk> if you watched it, you should know
19:19:22 <asiekierk> oh-kay
19:19:25 <asiekierk> Going to wait
19:19:28 <AnMaster> it is 2 seconds in and report "speed: 0.0"
19:19:33 * AnMaster think connection broke
19:19:37 <ehird> and asiekierk's infinite patience shows again
19:20:06 <asiekierk> you mean n'tfinite
19:20:12 <asiekierk> i mean
19:20:12 <asiekierk> finite
19:20:19 <asiekierk> :)
19:21:11 <AnMaster> well now it worked, but I aborted after half a minute, can't stand that high pitched voice when I have a headache
19:21:35 <asiekierk> :P
19:21:39 <asiekierk> Low it down
19:21:42 <asiekierk> the volume
19:21:52 <AnMaster> asiekierk, well that doesn't help for the high pitched sound
19:21:58 <oklopol> or maybe you could use audacity or something to lower the pitch
19:22:01 <AnMaster> unless I go to 0
19:22:08 <asiekierk> go to 0 then
19:23:52 <oklopol> ^bool
19:23:52 <fungot> No.
19:23:57 <oklopol> another ep?
19:23:58 <oklopol> ^bool
19:23:58 <fungot> No.
19:24:01 <AnMaster> asiekierk, well at the end the screen goes black
19:24:02 <oklopol> sure?
19:24:04 <oklopol> ^bool
19:24:04 <fungot> No.
19:24:05 <AnMaster> there is the answer
19:24:06 <oklopol> k
19:24:14 <oklopol> then reanswer, another ep?
19:24:16 <oklopol> ^bool
19:24:16 <fungot> Yes.
19:24:17 <oklopol> k
19:24:20 <asiekierk> AnMaster: What is the puppet playing during ~1:15 - ~1:30
19:24:25 <asiekierk> is it doing anything
19:24:34 <asiekierk> ^help
19:24:34 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
19:24:35 <AnMaster> asiekierk, something behind a logo saying asie 09
19:24:38 <asiekierk> ^show bool
19:24:45 <asiekierk> Oh, the volume is 0 :/
19:24:46 <AnMaster> asiekierk, it seems to be using a ciggarette in some strange way,
19:24:50 <AnMaster> and then falls down
19:24:54 <asiekierk> AnMaster: It's a Stylophone
19:24:57 <AnMaster> could be a pen?
19:24:59 <asiekierk> a stylus-based instrument
19:25:03 <AnMaster> ok
19:25:06 <asiekierk> ^show bf bool
19:25:07 <ehird> stylophones are awesome
19:25:18 <asiekierk> ehird: Don't tell me you like have one
19:25:19 <flexo> you people are weird
19:25:21 -!- nice has joined.
19:25:25 <ehird> asiekierk: yes, I do.
19:25:31 <asiekierk> woohoo!
19:25:44 -!- nice has changed nick to nice_ka.
19:27:53 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
19:28:21 -!- KingOfKarlsruhe has quit (Nick collision from services.).
19:28:26 -!- nice_ka has changed nick to KingOfKarlsruhe.
19:28:38 -!- bsmntbombdood has joined.
19:29:00 <AnMaster> asiekierk, well I don't really like electronic sounding music
19:29:06 <AnMaster> no offence meant
19:29:13 <AnMaster> it's just a matter of taste
19:29:29 <asiekierk> ok
19:29:35 <asiekierk> I finally got white socks
19:29:43 <AnMaster> mhm?
19:29:46 <asiekierk> So I can start my Sock Puppet Video Blog!
19:29:48 <ehird> about as much as a matter of taste as when AnMaster spend ages whining about how much 'rock' sucked
19:29:55 <asiekierk> [.....]
19:30:01 <AnMaster> ehird, I said that I disliked it
19:30:05 <oklopol> asiekierk: could you have more violence, obscure jokes, swearing and sex in your next vid?
19:30:07 <flexo> no you didn't
19:30:07 <AnMaster> I didn't say this was true for everyone
19:30:15 <asiekierk> oklopol: I'm only a kid
19:30:15 <oklopol> you know. sox park
19:30:17 <AnMaster> obviously taste differs
19:30:21 <AnMaster> oklopol, hehe
19:30:27 <asiekierk> more like The Sockshit Stream
19:30:34 <ehird> asiekierk: i'm barely older than you and i support oklopol's suggestion
19:30:39 <asiekierk> i do not
19:30:50 <asiekierk> I want to make it a vlog, and a game-reviewing series
19:30:50 <asiekierk> :)
19:30:55 <AnMaster> sox park would be an awesome name
19:30:55 <ehird> then you suck. :|
19:31:09 <ehird> southocks park
19:31:11 <asiekierk> you too
19:31:19 <flexo> how old are you?
19:31:21 <AnMaster> ehird, well I'm not sure what that would *mean*
19:31:26 <ehird> flexo: asiekierk is like 12.
19:31:29 <ehird> i'm 13.
19:31:29 <oklopol> asiekierk: make a programming show
19:31:41 <asiekierk> oklopol: C64 programming show
19:31:44 <AnMaster> ehird, and yes there is a large difference there, you have gotten much better since then
19:31:49 <ehird> Lol
19:31:54 <ehird> moron
19:31:56 <ehird> :)
19:32:22 <ehird> it's actually just that I try to be nice to you occasionally just in case, always end up remembering you're an idiot th
19:32:23 <ehird> tho
19:32:24 <flexo> ehird: if that's an obscure joke you have to tell me, because, you know, no reason not to believe it
19:32:32 <AnMaster> ehird, also maturity(sp?) it is individual, so not only that
19:32:34 <ehird> flexo: maybe it's a joke _and_ serious
19:32:45 <flexo> maybe
19:33:08 <AnMaster> ehird, err, I thought it was the reverse :P
19:33:11 <ehird> flexo: you'd get on with oklopol
19:33:15 <oklopol> or maybe it's all three
19:33:26 <AnMaster> oklopol, which is the third option?
19:33:30 <oklopol> AnMaster: both
19:33:49 -!- seveninchbread has joined.
19:34:55 <flexo> maybe i should get me a cuba libre
19:35:08 <flexo> opinions?
19:35:24 <oklopol> yes
19:35:26 <oklopol> do it
19:35:30 <flexo> alright
19:35:55 <oklopol> ".eu", what does that mean
19:36:09 <flexo> europe, i suppose
19:37:03 <oklopol> i see i see. which city?
19:37:46 <ehird> what XD
19:37:59 <oklopol> ehird: exactly
19:40:40 <flexo> munich
19:41:13 -!- CakeProphet has quit (Read error: 145 (Connection timed out)).
19:41:43 <oklopol> flexo: ah. i live in the slums.
19:42:01 <flexo> what slums?
19:42:34 <oklopol> northern europe, you know, at the docks.
19:42:51 <flexo> i see
19:44:09 <flexo> this cuba libre tastes a little much to .. rummy
19:44:44 <flexo> i'm always too greedy
19:51:18 -!- kar8nga has joined.
19:54:11 <Mony> later
19:54:33 -!- Mony has quit ("Quit").
20:09:48 -!- CakeProphet has joined.
20:22:16 -!- Slereah_ has joined.
20:24:44 -!- seveninchbread has quit (Read error: 104 (Connection reset by peer)).
20:29:07 -!- Slereah has quit (Read error: 60 (Operation timed out)).
20:34:54 -!- KingOfKarlsruhe has quit (Remote closed the connection).
20:37:56 -!- asiekierk has quit (Read error: 60 (Operation timed out)).
20:43:11 -!- Hiato has quit ("Leaving.").
20:53:59 <psygnisfive> anmaster
20:54:09 <AnMaster> psygnisfive, ?
20:54:28 <psygnisfive> hey
20:54:39 <psygnisfive> miranda family languages arent eso.. as such
20:54:47 <psygnisfive> haskell is pretty esoteric
20:54:55 <psygnisfive> but its not the same kind of eso i guess
20:54:57 <AnMaster> psygnisfive, as someone else already answered
20:54:58 <AnMaster> ...
20:55:02 <AnMaster> afk
20:55:04 <psygnisfive> slereah did i know
20:55:17 <psygnisfive> im just explaining more what _i_ was thinking :P
21:02:42 <ehird> im bored, so im going to code a boring but fun thing
21:04:24 -!- kar8nga has quit (Read error: 104 (Connection reset by peer)).
21:24:09 <FireFly> Which does what?
21:24:32 <ehird> guess
21:30:42 <oklopol> ooooooooooo
21:53:49 -!- seveninchbread has joined.
21:55:32 -!- CakeProphet has quit (Nick collision from services.).
21:55:34 -!- seveninchbread has changed nick to CakeProphet.
21:59:32 <FireFly> " boring but fun"
21:59:34 <FireFly> Wait, what?
22:00:56 <ehird> yes
22:09:30 * ehird plays with paren-less lisp
22:27:56 -!- BeholdMyGlory has joined.
22:45:59 <ehird> BeholdMyGlory: Hello AnMaster.
22:46:42 <AnMaster> eh
22:46:51 <AnMaster> ehird, whoever that is he isn't me
22:46:54 <BeholdMyGlory> wut?
22:46:59 <ehird> AnMaster: arvid, .se
22:47:02 <oklopol> yeah right. that's what i said about hotidlerchick.
22:47:03 <ehird> an
22:47:04 <AnMaster> ehird, yes I agree
22:47:04 <ehird> d
22:47:05 <ehird> in #archlinux
22:47:10 <ehird> yeah rite
22:47:19 <FireFly> Um
22:47:25 <flexo> so weird
22:47:25 <FireFly> It's just the same top domain
22:47:30 <FireFly> I.e. same country
22:47:34 <AnMaster> except IP doesn't match
22:47:36 <AnMaster> indeed
22:47:49 <AnMaster> I'm on d90-130-2-10.cust.tele2.se atm
22:47:56 <AnMaster> dynamic ip though
22:48:12 <FireFly> I'm also .se
22:48:16 <FireFly> But I'm not AnMaster
22:48:18 <FireFly> (For the record)
22:48:20 <AnMaster> FireFly, another thing, same name "* BeholdMyGlory (n=arvid@d83-183-183-70.cust.tele2.se) has joined #esoteric" <-- my real name is Arvid
22:48:21 <BeholdMyGlory> and I'm on d83-183-183-70.cust.tele2.se
22:48:22 <AnMaster> ...
22:48:25 <oklopol> BeholdMyGlory doesn't really sound all that AnMastery.
22:48:29 <BeholdMyGlory> hah
22:48:32 <AnMaster> which is really strange
22:48:42 <BeholdMyGlory> great to see another swede named arvid :P
22:48:42 <ehird> also #archlinux too
22:48:50 <ehird> BeholdMyGlory: you probably suck as much as him.
22:48:59 <ehird> yw
22:49:02 <BeholdMyGlory> ehird: how come?
22:49:04 <AnMaster> I don't suck, you just hate me ;P
22:49:20 <flexo> hate you? you? no. how can that be?
22:50:01 <AnMaster> ehird, the channel list differs quite a bit too
22:50:30 <flexo> ah
22:50:33 <flexo> dbc is here
22:51:17 <flexo> which, you know, is the main reason i'm hanging out here. the other reason being that i joined.
22:51:57 <AnMaster> hah
22:51:57 <ehird> :D
22:52:00 <AnMaster> BeholdMyGlory, so now that we got person confusion sorted out, why did you come here?
22:53:09 <BeholdMyGlory> AnMaster: hm. because esoteric languages are wierd. O.o
22:53:45 <ehird> wierd is a specific esolang :P
22:53:49 <AnMaster> well yes
22:54:06 <BeholdMyGlory> ehird: why aren't I suprised? :P
22:54:29 <BeholdMyGlory> hm. anyone interested in seeing "Hello World!" in my very own language?
22:54:43 <BeholdMyGlory> ah. I'm just gonna post it anyway :P
22:55:02 <AnMaster> well, what language is this?
22:55:04 <BeholdMyGlory> <_+|+,,^..::>>___h>a^.-:*>*<__|,,^...e!a<_+|,!,^..:::l*o-a+||-o_a-:*>*<<+|,!!!s|a*><_+|+,,^^--**<<+++w<o,r+a:-_r^a_+|,!,^..:***d-s<u*a,!!*u,h!e^l.l-o:s*w>o<r_l+d|u
22:55:12 <BeholdMyGlory> that's hello world
22:55:20 <BeholdMyGlory> makes a lot of sense, doesn't it?
22:55:21 <ehird> wow.
22:55:25 <ehird> that's neat
22:55:29 <ehird> how does it work?
22:55:41 <AnMaster> interesting
22:55:47 <BeholdMyGlory> every character is an operator
22:55:49 * AnMaster wonders the same
22:55:53 <BeholdMyGlory> exept for letters
22:55:58 <BeholdMyGlory> they are variables
22:56:01 <AnMaster> BeholdMyGlory, what paradigm is this?
22:56:21 <BeholdMyGlory> what the operators do, depend on what position they're at
22:56:29 <BeholdMyGlory> :P
22:56:30 <AnMaster> also it is pretty verbose for a single-char-per-command language
22:56:42 <AnMaster> BeholdMyGlory, ouch ok
22:56:55 <AnMaster> BeholdMyGlory, can you pastebin a spec or such
22:56:55 <AnMaster> ?
22:57:08 <BeholdMyGlory> AnMaster: uhm. not really
22:57:18 <BeholdMyGlory> AnMaster: haven' gotten it all figured out yet
22:57:23 <BeholdMyGlory> *haven't
22:57:46 <AnMaster> BeholdMyGlory, ok, well, what about a preliminary spec? I mean it looks very interesting
22:57:54 <AnMaster> but also impossible to guess without having a spec
22:58:16 <flexo> BeholdMyGlory: do you have a way to loop or recurse?
22:58:27 <BeholdMyGlory> AnMaster: i'm gonna create a page at esolangs when it's done
22:58:31 <AnMaster> ah yes, lets check tc-ness
22:58:45 <BeholdMyGlory> flexo: not yet, but it will
22:58:49 <flexo> ...
23:00:12 <flexo> any native english speakers here?
23:00:48 <ehird> yes
23:00:49 <ehird> me
23:01:04 <flexo> tell me then.. there is some song or something, i don't know
23:01:09 <flexo> the question just came up in another channel
23:01:14 <AnMaster> BeholdMyGlory, You need (theoretical, as in the spec, not in any actual implementations) infinite memory, so if you have a limited number of variables and no way to store data in stacks, arrays, lambdas or whatever you aren't TC 3) a way to loop or recurse
23:01:19 <AnMaster> for tc
23:01:24 <AnMaster> of course it may still not be TC
23:01:26 <flexo> a part of it goes like "she got her own"
23:01:33 <AnMaster> but those are easy checks
23:01:47 <FireFly> Actually, BeholdMyGlory has a Java program which can run the above Hello World code..
23:01:51 <flexo> does that mean anything? how much slang is it?
23:01:55 -!- Corun has joined.
23:02:06 <flexo> (not referencing some object ofcourse)
23:02:07 <AnMaster> to actually prove something TC you need to prove it able to interpreter some "known TC" language
23:02:20 <ehird> flexo: not enough context
23:02:26 <ehird> FireFly: oh, you're in cahoots with him.
23:02:27 <flexo> "i love her cause she got her own"
23:02:28 <ehird> bloody swedes.
23:02:36 <FireFly> ;D
23:02:58 <BeholdMyGlory> what've got against us? -.-
23:03:01 <AnMaster> ah didn't know you were Swedish too FireFly :)
23:03:03 <flexo> ehird: .. so?
23:03:09 <FireFly> Well now you do
23:03:15 <AnMaster> hm
23:03:25 <flexo> ehird: people are saying it means that "she's independent"
23:03:32 <ehird> prolly
23:03:34 <flexo> but i've never heard that phrase before
23:03:44 <ehird> BeholdMyGlory: swedes are finns, except fake. and dirty
23:03:48 <flexo> what do you mean by "probably"? don't guess from context, i can do that too :)
23:03:50 <AnMaster> how many Finnish people are there now again. Lets see... oklo, fizzie, deewiant, and some more iirc?
23:03:54 <AnMaster> hm
23:04:15 <ehird> dewi
23:04:21 <ehird> ilari
23:04:22 <AnMaster> ah
23:04:30 <AnMaster> 5?
23:04:36 <oklopol> dewi is australian
23:04:39 <ehird> oh.
23:04:40 <ehird> okay.
23:04:44 <AnMaster> 4 then?
23:04:46 <flexo> ehird: answer!
23:04:54 <oklopol> (i thinks.)
23:04:57 -!- olsner has quit ("Leaving").
23:05:00 <ehird> flexo: i dunno
23:05:06 <flexo> thanks
23:05:07 <flexo> :)
23:05:28 <AnMaster> 4 Swedes I think, me, firefly, behold..., and that person on who who isn't oklo or oerjan and who's name I temporarily forgot
23:05:37 <ehird> olsner
23:05:41 <AnMaster> ah thanks
23:05:42 <AnMaster> that is it
23:05:50 <AnMaster> ehird, how many from UK?
23:05:57 <AnMaster> you and ais I know, but that is it or?
23:06:45 <ehird> Asztal:
23:06:55 <ehird> but thats it
23:08:32 <AnMaster> hah
23:08:43 <AnMaster> ehird, what about comex?
23:08:50 <ehird> US.
23:08:53 <AnMaster> ah
23:10:33 <ehird> grr, there aren't enough good .cx registrars
23:11:01 <AnMaster> ehird, may I ask why you want .cx?
23:11:09 <ehird> it's complicated
23:11:23 <AnMaster> ehird, oh? a shocksite with pics of yourself?
23:11:24 <AnMaster> fine
23:11:26 <AnMaster> :P
23:11:28 <ehird> lol.
23:11:28 <AnMaster> ~
23:11:28 <ehird> no.
23:11:39 <ehird> specifically, I'm searching for the shortest domain I can get
23:11:49 <AnMaster> ehird, a.cx?
23:11:52 <ehird> t.cx
23:11:58 <ehird> the other letters are taken.
23:12:07 <AnMaster> ehird, and so for all other tlds?
23:12:15 <ehird> i don't want to check all of them
23:12:19 <AnMaster> ehird, ok
23:12:19 <ehird> (yes, I could automate a whois...)
23:12:35 <FireFly> isn't one-letter domains usually more expensive than longer?
23:12:40 <ehird> yes.
23:12:46 <ehird> and .cx is expensive enough as-is
23:13:01 <AnMaster> ehird, well, if you get t.cx it should be made into either a pastebin or an url shorterner
23:13:09 <ehird> no :P
23:13:14 <AnMaster> ehird, what!?
23:13:24 <oklopol> vjn.pb is quite short, and it's still not all that famous.
23:13:27 <ehird> i don't like url shorteners, and pastebin URIs don't have to be short
23:13:30 <oklopol> ...
23:13:39 <oklopol> yeah, exactly. vjn.pb, that's it.
23:13:48 <ehird> moar like vjn.fi/pb
23:14:07 <oklopol> no no we bought the tld pb for that.
23:14:13 <FireFly> Well
23:14:31 <AnMaster> oklopol, what country is .pb?
23:14:34 <ehird> none.
23:14:35 <ehird> he's bullshitting
23:14:40 <AnMaster> ah
23:15:02 <oklopol> :|
23:15:20 * oklopol leaves
23:15:21 <ehird> what would be cooler is a number on some tld, that parses better
23:15:22 <ehird> like
23:15:24 <oklopol> ~>
23:15:25 <ehird> eh@t.cx
23:15:25 <ehird> vs
23:15:27 <ehird> eh@2.cc
23:25:08 <AnMaster> ehird, hm, valid?
23:25:16 <ehird> yeah.
23:25:45 <AnMaster> ehird, and all used?
23:25:54 <ehird> 2.cc is available I think
23:26:00 <AnMaster> ehird, also, why "eh", why not "e"?
23:26:05 <ehird> its a bit awkward to type though
23:26:08 <ehird> AnMaster: shrug
23:26:14 <ehird> wait, no
23:26:16 <ehird> 2.cc is taken
23:34:22 <ehird> darn, cc.tv isn't available
23:41:35 <FireFly> 'night
23:41:45 -!- FireFly has quit ("Later").
←2009-01-10 2009-01-11 2009-01-12→ ↑2009 ↑all