←2008-06-23 2008-06-24 2008-06-25→ ↑2008 ↑all
00:06:00 <tusho> AnMaster: e said .bs
00:06:18 -!- ihope has quit (Read error: 110 (Connection timed out)).
00:06:53 <AnMaster> tusho, well maybe, but funge93 specs say .bf
00:07:48 <Slereah> Ah, found it
00:10:12 <AnMaster> Slereah, found what?
00:10:42 <Slereah> There's your fox : http://membres.lycos.fr/bewulf/Russell/Fox%20Math.jpg
00:11:48 <Slereah> (is it loaded? My connection is too low to check)
00:13:01 <tusho> Slereah: it is loaded.
00:13:39 <Slereah> So Mathematica has a fox. But no bunny.
00:13:45 <Slereah> He probably ate it :o
00:14:01 <lament> :(
00:14:48 <Slereah> If I was a mathematician!
00:15:08 <Slereah> I'd invent a bunch of stupid symbols, just to bother font makers.
00:15:42 <augur> stephen wolfram is a furry?
00:16:00 <lament> doesn't that explain _everything_?
00:16:06 <tusho> yes
00:16:09 <Slereah> I have no idea.
00:16:33 <tusho> wolfram acts exactly like furries always do
00:16:35 <tusho> without the furry part
00:16:41 <Slereah> I don't remember seeing that symbol anywhere in Mathematica.
00:16:56 <Slereah> I found it because I checked the whole character set.
00:19:22 -!- pikhq has quit ("leaving").
00:20:21 -!- pikhq has joined.
00:25:04 <tusho> pikhq: pikhq
00:25:30 <Slereah> tusho: tusho
00:25:35 <tusho> Slereah: Slereah
00:25:56 <Slereah> The following statement is true: The previous statement is false
00:26:17 <AnMaster> ARGH PARADOX
00:26:29 <lament> *head explodes*
00:26:31 <Slereah> OH NOES!
00:26:40 <Slereah> DOES NOT COMPUTE, DOES NOT COMPUTE!
00:26:45 <lament> WHAT SHALL WE DO
00:26:49 <lament> i know i know
00:26:58 <lament> let's limit our discourse only to non-paradoxical statements
00:27:07 <lament> by using a simple axiomatic foundation
00:27:35 <lament> such as: say a paradox = BANNED
00:27:37 <Slereah> But, what if we find a way to express auto-referential statements within that axiomatic base!
00:28:02 <lament> Slereah: not for long!
00:29:07 -!- spaz has joined.
00:29:09 <spaz> eh
00:29:14 * spaz is forced to join
00:29:18 <AnMaster> hah
00:29:29 <AnMaster> lament, why not for long?
00:29:39 <spaz> agh no
00:29:41 <spaz> not bsmntbombdood
00:29:51 <lament> AnMaster: because of the ban axiom
00:29:54 <spaz> AnMaster, his presence almost guarantees i won't stay for long
00:30:06 <tusho> spaz: who are you
00:30:06 <Slereah> But is the ban axiom effectively computable? :o
00:30:08 <tusho> where did you come from
00:30:12 <spaz> tusho, i came from my mother
00:30:12 <AnMaster> ah right
00:30:15 <tusho> and why don't you like bsmntbombdood
00:30:20 <tusho> spaz: who told you to come here
00:30:22 <spaz> tusho, long story
00:30:27 <AnMaster> tusho, spaz is a friend of mine
00:30:28 <tusho> spaz: i'm listening
00:30:33 <lament> Slereah: it's a lot like playing a nomic
00:30:33 <spaz> tusho, what AnMaster said
00:30:36 <tusho> okay
00:30:41 <tusho> spaz: so what's up with bsmntbombdood
00:30:44 <tusho> i like him
00:30:44 <AnMaster> tusho, I said he would like the channel
00:30:46 <lament> Slereah: you demonstrate that a paradox has been introduced = you win
00:30:53 <spaz> tusho, it's a rather long story
00:30:56 <AnMaster> and I got no idea what is the thing about bsmntbombdood
00:30:57 <lament> except, you get banned instead of winning
00:30:57 <spaz> really i don't have time to explain it
00:30:59 <AnMaster> I got no clue at all
00:31:17 <Slereah> But, what if the negation of that axiom produces another paradox :o
00:31:19 <spaz> AnMaster, it was from ##socialites
00:31:23 <spaz> AnMaster, and other chans i've seen him
00:31:26 <tusho> spaz: explain it
00:31:32 <spaz> tusho, do i have to...
00:31:33 <tusho> or i'll bug you endlessly until you do
00:31:35 * spaz whines
00:31:40 <AnMaster> Slereah, interesting
00:31:52 <tusho> spaz: ENDLESSLY
00:31:54 <spaz> AnMaster, anyways i'll try not to be too much of a degenerate
00:32:01 <tusho> spaz: ENDLESSLY!!!!!!!
00:32:16 <AnMaster> tusho, calm down!
00:32:25 <tusho> AnMaster: !!!!!!!!1111111!!!!!!
00:32:42 <AnMaster> anway if it is ##socialites related I think I know. but I have no intentions of talking of that here. it is NOT related to this channel
00:32:53 <tusho> oh come on
00:32:57 <AnMaster> it is something that happend before
00:32:59 <tusho> i must know
00:33:06 <spaz> AnMaster, may i please perform the spaz maneuver on tusho
00:33:12 <AnMaster> spaz, what is that?
00:33:13 <AnMaster> !?
00:33:14 <tusho> no
00:33:17 <AnMaster> NO NOT THAT!
00:33:17 <spaz> AnMaster, hint: RapeX
00:33:22 <AnMaster> NOT THAT
00:33:23 <AnMaster> in here
00:33:26 <AnMaster> really not
00:33:27 <spaz> fine
00:33:28 <tusho> lol wut
00:33:29 <spaz> :p
00:33:34 <AnMaster> tusho, I got no idea!
00:33:40 * spaz looks innocent as hell
00:33:42 <tusho> spaz: now tell me darnit
00:33:52 <AnMaster> tusho, he is from a much rouger style of channel
00:34:01 <spaz> tusho, the spaz maneuver is where i take you roughly from behind...there i said it. :P
00:34:07 <spaz> and yeah
00:34:08 <spaz> i am
00:34:11 <tusho> spaz: i was talking about bsmntbombdood
00:34:21 <tusho> and I do think that AnMaster has been missing all the kinky gay sex going on in here
00:34:27 <AnMaster> tusho, as for ##socialites, well he insulted ops, trolled, was trying to mob some ppl in the channel and so on
00:34:34 -!- pikhq has quit ("leaving").
00:34:37 <tusho> sounds like bsmntbombdood
00:34:38 <tusho> :)
00:34:43 <spaz> AnMaster, that is precisely why i hate him
00:34:47 <spaz> he's a dumbass
00:34:50 <tusho> no he's not
00:34:51 <tusho> :|
00:34:51 <spaz> tusho, ^ question answered
00:34:53 <AnMaster> tusho, kick + ban for a several weeks
00:35:03 <AnMaster> and he tried to *insult ops to get shorter ban time*
00:35:05 -!- Supricky06 has joined.
00:35:08 <spaz> ...
00:35:09 <lament> ##socialites sounds like a fun channel
00:35:09 <AnMaster> which just resulted in reverse of course
00:35:20 <AnMaster> lament, well I'm an op there so...
00:35:30 <spaz> Supricky06, i doubt you would find this place interesting
00:35:40 <spaz> Supricky06, from what i know it's about programming...so NERD ALERT :P
00:35:52 * spaz knows Supricky06 from another...type....of channel
00:35:54 <AnMaster> oh no, why did I *mention it in the channel over there*
00:35:59 <AnMaster> why not just in /msg?
00:36:02 -!- pikhq has joined.
00:36:06 <AnMaster> hi pikhq
00:36:07 <Supricky06> yeah, i tought it was something else
00:36:18 <Supricky06> anyways, sayounara
00:36:20 <tusho> oh no I'm bsmntbombdood!
00:36:23 -!- Supricky06 has left (?).
00:36:25 <AnMaster> tusho, you are not
00:36:28 <AnMaster> you are ehird
00:36:29 <AnMaster> :P
00:36:35 <tusho> yes but i insulted the ops and trolled
00:36:40 <spaz> ...
00:36:47 <spaz> AnMaster, can i goooooooooo?
00:36:50 <AnMaster> tusho, well he did it pretty much worse than you did
00:36:51 * spaz whines like a 3 year old
00:36:55 <AnMaster> lol
00:37:03 <tusho> spaz: you're the one raping people in the ass
00:37:11 <spaz> tusho, like bsmntbombdood?
00:37:13 <AnMaster> tusho, anyway do you know some good hash library for C?
00:37:17 * pikhq waves
00:37:21 <tusho> gperf AnMaster
00:37:34 <tusho> pikhq: GET BACK TO AGORA YOU
00:37:35 <tusho> <.<
00:37:36 <pikhq> GregorR[Prague]: T3h Gregor is in Prague?
00:37:38 * spaz waves too...goodbye
00:37:39 <pikhq> tusho: NEVER!!!
00:37:40 -!- spaz has left (?).
00:37:40 <AnMaster> tusho, yes but that doesn't seem to work here. gperf need a predefined set
00:37:48 <AnMaster> int,int doesn't work
00:37:54 <AnMaster> I would need to write out all possible values
00:37:59 <tusho> pikhq: but i just made a web version of the notary report, and a proposal that messed up the automation because it used a number too big for a fixnum
00:38:01 <tusho> isn't that awesome enough
00:38:03 <tusho> ;'(
00:38:06 <AnMaster> tusho, !?
00:38:18 <tusho> AnMaster: meh
00:38:42 <AnMaster> tusho, and int64*int64 is really really huge
00:40:06 <tusho> pikhq: http://eso-std.org/~ais523/notary-report if this doesn't set off an innate urge to return to agora I don't know what will!
00:40:06 <tusho> :p
00:41:07 <AnMaster> tusho, what happened to canada?
00:41:47 <tusho> AnMaster: died; it's going to be revived soon
00:41:51 <tusho> with a huge initial ruleset
00:41:54 <pikhq> tusho: I don't have a web browser ATM.
00:42:02 <tusho> including scam stuff
00:42:02 <tusho> like
00:42:08 <tusho> if you exploit a scam you have to fix it at the same time
00:42:17 <pikhq> Gentooing.
00:42:17 <tusho> also, facilities for invading other nomics
00:42:47 <pikhq> And the bit about scams? That's just formalising what is, honestly, common ettiquete.
00:42:59 <pikhq> You're liable to get lynched for violating that, actually.
00:44:22 <tusho> pikhq: Yes, but this actually makes it so that if you exploit a scam, it actually doesn't happen unless you fix it or propose to fix it in the same message
00:44:48 <tusho> Not illegal - just impossible
00:45:06 <pikhq> If you can make that rule unscammable, then you win. ;)
00:45:23 <AnMaster> pikhq, Gentoo++
00:45:32 <tusho> pikhq: It requires a rule that takes priority&precedence over all others
00:45:37 <tusho> And yes, it'll require some heavy work
00:45:58 <pikhq> Worth it, though.
00:46:27 <tusho> pikhq: As for the invasion stuff, the first one we'll do is pretty clever (I'll /msg it so that it doesn't leak any more)
00:46:39 * pikhq is intrigued
00:59:51 <tusho> bye for today
00:59:52 <tusho> :)
00:59:59 -!- tusho has quit.
01:04:36 -!- ihope___ has joined.
01:04:57 -!- ihope___ has changed nick to ihope.
01:25:26 -!- oerjan has quit ("Eep").
01:38:19 -!- Corun has quit ("Leaving").
01:38:37 -!- Corun has joined.
02:08:44 -!- RodgerTheGreat has quit.
02:36:13 -!- RodgerTheGreat has joined.
03:33:52 -!- calamari has joined.
03:49:58 <Slereah> I'M C++
03:49:58 <Slereah> SON OF A BITCH JAVA
03:49:58 <Slereah> JAVA IS PIG
03:49:58 <Slereah> DO YOU WANT OBJECT ORIENTED?
03:49:58 <Slereah> DO YOU WANT SHORT CIRCUIT?
03:49:59 <Slereah> JAVA IS PIG DISGUSTING
03:50:01 <Slereah> SUN MICROSYSTEMS IS A MURDERER
03:50:03 <Slereah> FUCKING JAVA.
03:50:05 <Slereah> heh.
03:51:41 <pikhq> And, of course, Gregor is D.
03:51:50 <pikhq> Too busy taking over the world to bother with an argument.
03:51:53 <pikhq> ;)
04:11:09 <Phenax> Slereah: I'M CONFEDERATE
04:11:12 <Phenax> SON OF BITCH NORTHERNER
04:11:19 <Phenax> 2lazy2continue
04:13:07 * pikhq throws Phenax in the Boston harbor; hope you enjoy the tea.
04:13:32 <Phenax> SON OF BITCH
04:13:37 <Phenax> SON OF LIBERTY
04:13:39 <Phenax> SON OF FAGGOt
04:14:13 -!- jix has quit ("CommandQ").
04:21:03 <ihope> I'm Haskell. I'm really wonderful. Can you please give me a hug?
04:24:48 * lament gives ihope a hug
04:25:01 <ihope> Thank you.
04:26:00 <ihope> Monads really aren't that bad, you know... and you really don't have to use them, if you don't want to...
04:26:58 <ihope> I mean, except the IO monad, which isn't that bad, I promise! And you can use recursion!
04:32:19 <Slereah> MOOOOOONADS!
04:32:27 <Slereah> MY NADS
04:32:49 * ihope sighs
04:33:22 <ihope> I'll... just be going now, then. Tag along, if you care to...
04:33:22 <Slereah> Monads are evil, ihope
04:35:03 <ihope> There. Did I do a good imitation of Haskell? :-)
04:35:45 <Slereah> You need more evil laughs and shouts.
04:37:34 <ihope> "*BLAMMO!* Um, see you around, then, guys... maybe..."
04:38:26 <Slereah> Now do INTERCAL!
04:40:16 <ihope> !uoy evol I !LACRETNI ma I !olleH
04:40:40 <Slereah> Ixnay on the INTERCALhay!
04:40:56 <ihope> ?gnineve yadnoM enif siht gniod uoy era tahW
04:41:06 <ihope> I LOVE YOU TOO!
04:42:34 <ihope> ...hmm, not the best I LOVE YOU TOO placement, is it?
04:43:48 <Slereah> I LOVE YOU TOO SON!
04:44:30 <ihope> No soot.
04:56:50 -!- pikhq has quit ("leaving").
05:09:04 -!- ihope has quit (Read error: 110 (Connection timed out)).
06:25:28 -!- Slereah2 has joined.
06:25:28 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
06:50:36 -!- Slereah2 has quit (Read error: 104 (Connection reset by peer)).
06:50:47 -!- Slereah2 has joined.
06:59:53 -!- olsner has joined.
07:14:06 -!- Slereah has joined.
07:14:55 -!- Slereah2 has quit (Read error: 104 (Connection reset by peer)).
07:16:50 -!- kaanu has joined.
07:18:10 -!- kaanu has left (?).
07:28:53 -!- calamari has quit ("Leaving").
07:29:02 -!- olsner has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:41 -!- Corun has quit ("This computer has gone to sleep").
08:33:40 -!- Slereah2 has joined.
08:33:45 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
08:46:27 -!- Slereah2 has quit (Read error: 104 (Connection reset by peer)).
08:46:28 -!- Slereah has joined.
10:08:04 -!- GreaseMonkey has joined.
11:06:52 -!- Slereah has quit (Read error: 110 (Connection timed out)).
11:23:20 -!- GreaseMonkey has quit ("Remote closed the previous member app").
11:24:33 <AnMaster> damn where is tusho when you need him
11:24:38 <AnMaster> anyway I got an idea
11:24:47 <AnMaster> memory mapped CPU registers
11:24:48 <AnMaster> XD
11:25:03 <AnMaster> this allow one version of some opcodes
11:25:08 <AnMaster> like JMP and such
11:25:13 <AnMaster> err
11:25:16 <AnMaster> like MOV and such
11:25:35 <AnMaster> I reserve the top x bytes of the address space to mean the registers
11:25:41 <AnMaster> does this sound sane?
11:54:14 <Ilari> AnMaster: How you do indirect addressing?
11:54:40 <AnMaster> Ilari, with special instructions currently
11:54:52 <AnMaster> for jumping and call
11:55:00 <AnMaster> and for MOV*
11:55:26 <Ilari> AnMaster: I mean equivalents to X86 'MOV EAX, [EBX]' and that sort of stuff...
11:55:50 <AnMaster> Ilari, hm. not that familiar with that syntax? can you do it in AT&T syntax?
11:56:29 <Ilari> AnMaster: Well, it loads value of EBX, reads 32-bit quantity from that address and writes the read value into EAX.
11:56:38 <AnMaster> aha
11:56:55 <AnMaster> well that would be IMOVMR
11:57:10 <Ilari> AnMaster: reg_eax = *((unsigned*)reg_ebx); (in pseudo-C).
11:57:42 <AnMaster> Ilari, in my ASM that would be IMOVMR, I = indirect, MR = memory to register
12:02:17 <AnMaster> Ilari, however mine isn't reg_eax, mine is something like register_file.gregs[1]
12:02:22 <AnMaster> as I got numbered registers
12:03:11 <Ilari> I haven't heard of any real architecture having memory-mapped registers (but I have heard about some whacky architectures: http://www.archivum.info/comp.std.c++/2005-11/msg00024.html).
12:03:26 <AnMaster> Ilari, and that was just a wild idea anyway
12:04:27 <AnMaster> Ilari, oh wow
12:04:30 <Ilari> Oh, that one described there had no (impicitly or explicitly seperated) load or store instructions.
12:04:49 <AnMaster> indeed
12:05:00 <AnMaster> well mine is semi-like x86/x86_64
12:05:31 <Ilari> X86 has implicitly seperated ones. 'MOV EAX, EBX' and 'MOV, EAX, [EBX]' are not the same opcode, although mnemonic is the same.
12:05:48 <AnMaster> yes I plan to make the mnemonic in the assembler the same
12:05:52 <AnMaster> so it is easier to use
12:06:00 <AnMaster> or actually IMOV and MOV
12:06:12 <AnMaster> it would look like:
12:06:29 <AnMaster> IMOV $reg1,$reg2
12:06:38 <AnMaster> actually that won't work
12:06:43 <AnMaster> because IMOV could be either way
12:06:52 <AnMaster> I need to make it clear what one is indirect
12:06:56 * AnMaster ponders
12:07:24 <AnMaster> ok what about:
12:08:04 <AnMaster> have IMOVMR/RM different for "move from reg to memory" and "move to reg from memory"
12:08:14 <AnMaster> but for MOV it is easy to see difference
12:08:31 <AnMaster> I want to keep my asm simple
12:08:32 <AnMaster> :)
12:08:38 <AnMaster> as in: simple to implement
12:09:32 <Ilari> IIRC, doesn't AT&T x86 syntax have something like 'movl ($ebx), $eax'?
12:09:50 <AnMaster> iirc yes, but was some time ago I coded in it
12:12:28 <Ilari> I like Intel syntax more than AT&T. Although Intel syntax has some pitfalls like 'MOV [EAX], 0x01' (what's the width of that field pointed by EAX)?
12:12:50 <AnMaster> can't answer that question!
12:13:13 <AnMaster> btw there is a FDIV for floating point division, but does there need to be floating point modulo too?
12:13:20 <Ilari> Typing something like that to NASM in fact causes error when assembling.
12:14:04 <AnMaster> Ilari, well I'm on x86_64 :)
12:16:40 <Ilari> nasm(1) mentions 'BITS 64' for me...
12:16:50 <Ilari> Hmm... X64?
12:18:57 <AnMaster> hm
12:19:05 <AnMaster> Ilari, iirc nasm can't do it, but that is just iirs
12:19:06 <AnMaster> iirc*
12:19:11 <AnMaster> yasm can do x86_64
12:19:55 <AnMaster> is it safe to assume for all common platforms that you can access a n-byte value at an address for which addr % n = 0?
12:20:10 <AnMaster> Ilari, ?
12:20:38 <Ilari> For fundamental types that should be safe. But IIRC, there are some stuff that behaves as 16 byte fundamental type.
12:21:00 <AnMaster> well I just need 1/2/4/8 byte integers
12:21:07 <AnMaster> Ilari, ok what about floating point?
12:21:11 <AnMaster> single/double
12:21:44 <AnMaster> Ilari, also do I need a modulo for floating point?
12:21:53 <Ilari> Also, X86 has long double. 10 bytes. I don't know what's the canonical alignment.
12:22:28 <AnMaster> Ilari, well long double is not standard really, and I'm going for standard IEEE types for floating point
12:22:41 <Ilari> AnMaster: Could be nice, since FP modulo is bit nasty to implement with just FP division.
12:23:12 <AnMaster> ok
12:23:42 <Ilari> There is one nasty alignment requirement for X86: SSE regs behave as 16 byte fundamental types in load/store (altough subfields are smaller).
12:23:52 <AnMaster> hrrm
12:25:02 <Ilari> AnMaster: Nasm assembles 'MOV RAX, [RBX]' (which is undoubtedly X64 instruction) successfully into '48 8B 03' (64 bit mode).
12:25:10 <AnMaster> hm
12:25:18 <AnMaster> maybe they added that nowdays then
12:25:28 <AnMaster> a few years ago it didn't have it I knowe
12:25:31 <AnMaster> know*
12:25:55 <Ilari> AnMaster: Nasm version 2.03.01 (Jun 18 2008).
12:26:00 <AnMaster> Ilari, what will happen on x86 if a read is misaligned?
12:26:07 <AnMaster> read/write
12:27:36 <Ilari> AnMaster: If it all is within same page, just performance loss (or maybe an exception). If it spans multiple pages, I really don't know what will happen on write if one of pages is not writable.
12:27:41 <AnMaster> Ilari, btw the registers are 64-bit wide but the address space is just 32-bits, XD
12:27:45 <AnMaster> unusual I think
12:28:05 <AnMaster> Ilari, hm I see
12:28:29 <Ilari> Even if that exception happens, I don't know if it will be propagated to userspace...
12:28:58 <Ilari> Like majority of page faults are not propagated to userspace.
12:29:23 <AnMaster> indeed
12:30:02 <AnMaster> Ilari, here GCC aligns doubles on 8-byte boundaries
12:30:10 <AnMaster> I tested in a struct
12:30:28 <AnMaster> and on x86_64 floating point is SSE by default
12:30:32 <AnMaster> rather than x87
12:33:30 <Ilari> Wow... I did test program for unaligned interpage write. Nothing conclusive because GDB segfaults trying to load it.
12:33:38 <AnMaster> eh
12:33:41 <AnMaster> gdb segfaults?
12:33:52 <AnMaster> Ilari, what happen when run outside gdb?
12:34:47 <Ilari> Sig11 (but that doesn't tell anything new).
12:35:08 <AnMaster> so segfault in other words for that too
12:35:15 <AnMaster> but gdb segfaulting heh
12:35:23 <AnMaster> that should be reported as a bug?
12:36:06 <AnMaster> Ilari, anyway if you try to do it in C I guess the compiler will spilt up the read in two parts or something?
12:40:31 <Ilari> I tested that interpage write: If either page is not writable, the whole write doesn't happen.
12:41:54 <AnMaster> hm
12:43:32 <AnMaster> Ilari, and cause a segfault?
12:43:38 <Ilari> Which makes bit of sense: It is going to fault in the TLB entries first, and that would fail.
12:43:51 <Ilari> Yes, the write segfaults of course.
12:50:47 <AnMaster> Ilari, what happens if both pages are writable?
12:51:24 <Ilari> Normal write (although it can't be atomic).
12:52:13 <Ilari> Apparently some SSE instructions do require 16-byte alignment (MOVAP*).
12:52:50 <AnMaster> so what if you add the LOCK prefix?
12:52:54 <AnMaster> will it be atomic then?
12:53:28 <Ilari> AnMaster: AFAIK, it won't be atomic even with that LOCK prefix...
12:53:37 <AnMaster> Ilari, interesting
12:53:45 <AnMaster> what would happed if you tried LOCK
12:54:56 <Ilari> Ah, trying to put LOCK there doesn't work at all (SIGILL).
12:55:34 <AnMaster> oh not valid
12:55:42 <Ilari> ILLegal instruction
12:56:18 <AnMaster> indeed
12:56:22 <AnMaster> I know what SIGILL is
12:57:04 <AnMaster> Ilari, did you write this in asm or in C?
12:57:07 <Ilari> Unaligned intrapage LOCKed MOVe does indeed complete (presumably atomically).
12:57:12 <Ilari> ASM.
12:57:44 <AnMaster> you can't have aligned intrapage MOV afaik?
12:58:27 <Ilari> Aligned interpage MOV is logically impossible. All aligned MOVes are intrapage.
12:59:54 <Ilari> Some architectures are not as lenient as x86 with unaligned access. In those, one always gets SIGBUS for unaligned access.
13:00:08 <AnMaster> yes indeed
13:00:47 <AnMaster> is SIGBUS ONLY for unaligned access?
13:01:07 <Ilari> Nope. You also get it if you seriously fsck up with mmap.
13:01:14 <AnMaster> oh?
13:01:20 <Ilari> I have seen SIGBUS on x86.
13:02:08 <Ilari> As task-directed hardware-fault type signal.
13:02:19 <AnMaster> Ilari, on such a strict platform, how do you read TCP/IP headers?
13:02:27 <AnMaster> after all they contain non-aligned fields iirc
13:03:10 <Ilari> Even if arch only had 32-bit memory R/W, you can load fields into registers and suffle the bytes in appropriate manner.
13:04:10 <AnMaster> hm ok
13:04:31 <AnMaster> make sense
13:04:33 <AnMaster> makes*
13:05:11 <Ilari> TCP doesn't even have any fields crossing 32-bit boundary...
13:05:25 <Ilari> Well, apart of options.
13:05:37 <AnMaster> maybe it was IP then
13:07:20 <Ilari> IPv4 again only has option field that can cross 32-bit boundary...
13:07:34 <AnMaster> well maybe it was that field then
13:08:29 <Ilari> IPv6 has src/dst addresses crossing 32-bit boundary, but they are still 32-bit aligned.
13:08:41 <AnMaster> they are 128-bits indeed
13:10:08 <Ilari> Both TCP and IP have pointers that make possible to just ignore options...
13:10:47 <AnMaster> hm
13:11:22 <AnMaster> unless you want to interpret the options
13:11:55 <Ilari> Handling options could be quite nasty to write as ASM code for arch that has no unaligned or sub-32-bit load/store...
13:12:58 <AnMaster> is there any arch without sub-32-bit?
13:13:44 <Ilari> Maybe some of first MIPS processors (latter do have unaligned load/store ops)? I don't really know
13:14:22 <AnMaster> well today MIPS is used a lot in consumer routers and such
13:16:11 <Ilari> Routers don't encounter options in IP header often, and some of the options there are better ignored anyway (like source route).
13:17:40 <AnMaster> hm true
13:19:30 <Ilari> Heh... Priorities 'immediate', 'flash' and 'flash override'... Why does that remind me of military stuff?
13:20:21 <fizzie> MIPS R4k (which I think my SGI Indy has) is rather old-ish (although not really old-old), and has "load byte" and "load halfword". I'm very much not an expert on MIPS variants, so no clue whether the others do.
13:23:08 <fizzie> Random googling hit upon some miscellaneous Alpha architecture documentation, which seems to imply that there the unaligned (and any less-than-32-bits-wide) load instructions are just pseudo-instructions that get assembled into multiple opcodes.
13:23:09 <Ilari> Looking at list of IP options, perhaps one of the very few that could concen routers and shouldn't be ignored anyway is traceroute option.
13:23:31 <Ilari> *concern
13:23:56 <Ilari> And one can do traceroute without using traceroute option anyway...
13:24:43 <AnMaster> hm how would you cast a uint8_t to a int8_t in C *without converting it*
13:24:49 <AnMaster> like an union in other words
13:24:53 <AnMaster> without having to use a union
13:25:01 <fizzie> Oh, and the DSP chip (TI TMS320VC5416) we used on one course had absolutely no unaligned or sub-32-bit load/store... but DSP chips probably don't really count.
13:25:10 <Ilari> '(int8_t)value'?
13:25:23 <AnMaster> Ilari, it is a uint8_t memory[MEMORYSIZE];
13:25:30 <AnMaster> and I need to access that as different types
13:25:36 <AnMaster> through a pointer hrrm
13:25:48 <fizzie> Well, ((uint8_t *)memory)[x] ?
13:25:56 <Ilari> Or 'int8_t* smemory = (int8_t*)memory'?
13:25:58 <AnMaster> int8_t you mean but true
13:26:01 <AnMaster> hm
13:26:16 <AnMaster> well I will also need to access it as 32-bits and so on
13:26:20 <AnMaster> but indeed
13:27:27 <Ilari> Be aware of that it uses type size as offset multipler... So just casting the table pointer doesn't work.
13:28:30 -!- RedDak has joined.
13:28:53 <AnMaster> Ilari, indeed
13:28:58 <fizzie> If all your offsets are bytes, it could be cleanest to use *((TYPE *)&memory[offset]) for all types.
13:29:02 <Ilari> Maybe something like *((uint32_t)(memory + x))
13:29:08 <AnMaster> fizzie, ah good idea
13:29:44 <AnMaster> return comp->mem->memory[ptr]; == return *((TYPE* )&(comp->mem->memory[offset])); gah
13:29:54 <AnMaster> err ptr in both cases
13:29:56 <AnMaster> but yeah
13:30:31 <fizzie> Just don't use offset[comp->mem->memory] unless you like confusing people.
13:31:23 <AnMaster> fizzie, eh?
13:31:30 <AnMaster> is that even valid?
13:31:33 <fizzie> It is.
13:31:38 <AnMaster> wtf
13:31:54 <fizzie> foo[bar] is pretty much the same as *(foo + bar), and + is commutative, so you can write it as bar[foo] if you like.
13:32:01 <AnMaster> hm
13:32:05 <AnMaster> offset being a 32-bit int and comp->mem->memory being a 64-bit pointer?
13:32:10 <fizzie> I would think there's a lame joke about it in many C books.
13:32:13 <AnMaster> fizzie, not sure if it is commutative then
13:32:39 <fizzie> Oh, it is. As long as you have one pointer and one integer, it'll do pointer arithmetic with it no matter which way you write it.
13:32:44 <Ilari> AFAIK, + is always commutative in C (in C++ it might not be).
13:33:03 <AnMaster> hm
13:33:11 <fizzie> 4["funny"] == 'n' is true, if you want a test case. :p
13:33:19 <fizzie> Eh, 'y'.
13:33:32 <fizzie> Can't even do zero-based indexing in my head. I blame MATLAB.
13:33:57 <Ilari> In C++ the cases where + isn't commutative invariably involve operator overloading.
13:36:07 <fizzie> ISO/IEC 9899:1999 (read: C99) 6.5.2.1 "Array subscripting", paragraph 2: "The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2)))."
13:36:12 <AnMaster> #define CreateRead(name, type) \
13:36:12 <AnMaster> static inline type Read ## name (ans_comp * comp, ans_ptr ptr) { \
13:36:12 <AnMaster> if ((ptr + sizeof(type)) < comp->mem->size) { \
13:36:12 <AnMaster> return *((type*)&(comp->mem->memory[ptr])); \
13:36:12 <AnMaster> } else { \
13:36:13 <AnMaster> return 0; \
13:36:15 <AnMaster> } \
13:36:17 <AnMaster> }
13:36:19 <AnMaster> yay
13:36:21 <AnMaster> :)
13:36:24 <oklopol> :)
13:36:25 <AnMaster> (sorry for spam)
13:36:36 <AnMaster> CreateRead(S8, int8_t) and so on then
13:36:41 <fizzie> It's like a cake made of ^Is.
13:36:47 <AnMaster> fizzie, what is?
13:36:58 <fizzie> The tab characters there in front of the lines.
13:37:04 <AnMaster> err
13:37:07 <Ilari> One exampe of noncommutative '+' in C++ with standard library types is std::string '+' std::string (<foo> + <bar> gives <foobar> but <bar> + <foo> gives <barfoo>).
13:37:09 <fizzie> A 90-degrees-rotated cake, but a cake nevertheless.
13:37:09 <AnMaster> fizzie, your client suck then?
13:37:10 <AnMaster> ;P
13:37:40 <fizzie> I'm not sure I'd want it to show raw tabs as 8-character spaces.
13:37:49 <AnMaster> indeed
13:37:53 <AnMaster> it shows up as 4 here
13:37:58 <AnMaster> set irc tabstop ;)
13:39:05 <AnMaster> 4 * 1024 * 1024 == 4 MB right?
13:39:08 <AnMaster> in bytes
13:39:22 <fizzie> Should be enough for everybody.
13:39:40 <Ilari> AnMaster: Does that code have bug in it?
13:39:53 <AnMaster> Ilari, what code? the read one? possible haven't tested it yet
13:40:06 <Ilari> AnMaster: That CreateRead code.
13:40:16 <AnMaster> Ilari, it is very possible it got errors
13:40:24 <AnMaster> point them out please
13:40:25 <AnMaster> !
13:40:47 <AnMaster> it compiles but I'm not yet at a stage where I can test it
13:40:50 <Ilari> AnMaster: Looks like that if line has integer overflow...
13:40:59 <AnMaster> oh true
13:41:16 <Ilari> AnMaster: And hopefully that ptr is unsigned...
13:41:19 <AnMaster> comp->mem->size need to be 64-bit to ensure correctness
13:41:25 <AnMaster> Ilari, and yes typedef uint32_t ans_ptr;
13:41:39 <AnMaster> I don't have negative memory
13:42:09 <Ilari> Making mem->size to be 64 bits isn't enough if arch is 32-bit and ptr is 32-bit...
13:42:26 <AnMaster> casting both to 32-bit indeed
13:42:50 <AnMaster> so what to do. oh wait doing a - from memory size
13:42:55 <AnMaster> and then compare
13:42:57 <AnMaster> will work better
13:42:59 <AnMaster> right
13:43:11 <fizzie> Also maybe <=? When reading bytes (sizeof == 1), if your size == 2, you'd only be able to read from offset 0; when ptr == 1, it's 1+1 < 2 which is false.
13:43:17 <AnMaster> ah true
13:43:52 <oklopol> guys, what are you talking about?
13:44:28 <fizzie> oklopol; They're probably spreading rumours about you!
13:44:32 <AnMaster> also the createread code got some other missing parts: It should cause a jump to exception table on out of bonds access from the code
13:44:46 <AnMaster> if (ptr >= (comp->mem->size - sizeof(type)))
13:44:50 <AnMaster> that seems correct?
13:44:52 <AnMaster> wait no?
13:44:52 <oklopol> fizzie: not a good answer!
13:44:58 <AnMaster> that is wrong
13:45:01 <fizzie> Just a guess, just a guess.
13:45:02 <AnMaster> should be > just
13:45:43 <Ilari> AnMaster: Also, since you have exception table, how you handle nested exceptions? Similarly to x86 (it has 'double fault' exception, but 'triple fault' causes processor shutdown).
13:46:03 <AnMaster> double fault indeed
13:46:07 <AnMaster> and tripple fault
13:46:18 <AnMaster> Ilari, I should pastebin my current mostly complete specs
13:46:24 <AnMaster> there are still some things missing in it
13:46:41 <AnMaster> but I want to do a tire 1 implementation first or something ;)
13:47:11 <AnMaster> http://rafb.net/p/T6FrEX67.html
13:49:35 <AnMaster> how would I write a 32-bit value to that array, hrrm
13:50:38 <AnMaster> *((type*)&(comp->mem->memory[ptr])) = value;
13:50:40 <AnMaster> maybe?
13:50:47 <AnMaster> Ilari, does that seem sane?
13:50:50 <AnMaster> or correct
13:52:19 <Ilari> I don't see obivious mistakes. Also, from spec, I flag to ADD and SUB are pretty much no-ops unless you have some overflow flags or exceptions.
13:52:54 <AnMaster> Ilari, how do you do -2 + 4 without IADD?
13:53:02 <AnMaster> two-complement btw
13:53:25 * AnMaster tries to figure out
13:53:34 <Ilari> FFFF FFFE + 0000 0004 = 0000 0002 (assuming 32 bits).
13:55:20 <AnMaster> hm I'll think about it
13:58:04 <Ilari> And indeed FFFF FFFE is 32-bit 2s complement for -2.
13:59:02 <AnMaster> also oops for a typo "There are 64 general purpose registers, named r1-r128."
13:59:07 <AnMaster> that is plain wrong heh
13:59:26 * AnMaster changes it to say r1-r64
14:02:13 <AnMaster> make that r0-r63 in fact :)
14:06:57 -!- Corun has joined.
14:12:51 <AnMaster> actually I don't need 8/16/32/64 variants on LDC and some other
14:12:56 <AnMaster> wait I do
14:13:08 <AnMaster> as register number is same
14:32:22 <AnMaster> Ilari, in total 137 instructions it seems
14:32:29 <AnMaster> assuming my count is correct
14:38:54 <AnMaster> ah it is correct
14:38:56 <AnMaster> while read line; do if [[ $line =~ ^#define\ OP_([^ ]+)\ +([0-9]+) ]]; then id=${BASH_REMATCH[2]}; op=${BASH_REMATCH[1]}; if [[ ${INSTRARRAY[$id]} ]]; then echo "double $id"; else INSTRARRAY[${BASH_REMATCH[2]}]=${BASH_REMATCH[1]}; fi; fi; done < opcodes.h
14:39:11 <AnMaster> for ((i=0; i < 138; i++)); do if [[ -z ${INSTRARRAY[$id]} ]]; then echo "missing $i"; fi; done
14:39:16 <AnMaster> that should verify it
14:39:21 <AnMaster> bbl food
14:47:52 <AnMaster> back
14:58:10 <Ilari> 137 fits well into single byte with room to spare...
14:59:03 <AnMaster> yes indeed
14:59:11 <AnMaster> Ilari, I thought it would be way more
14:59:25 <AnMaster> I'm in fact surprised it wasn't more
15:00:00 <AnMaster> now this should be made into a giant switch case of course ;)
15:00:08 <AnMaster> switch-case*
15:03:41 <AnMaster> Ilari, btw this list doesn't contain some instructions I were unsure if I should implement, so add maybe 5 more or so for full set
15:06:08 <Ilari> The system doesn't appear to implement rings, user/supervisor, strong isolation or any corresponding priviledge seperation mechanism...
15:06:19 <AnMaster> Ilari, indeed, and that is intentional
15:06:37 <AnMaster> maybe it will be added in future
15:06:50 <AnMaster> but for now I just want to get the basics working
15:07:31 <AnMaster> Ilari, but indeed porting linux to it would be a nice future challenge (that I don't intend to take ;)
15:08:06 <Ilari> Its also missing segmentation (but it is mostly holdover from 16-bit days)...
15:08:25 <AnMaster> well modern systems use paging instead iirc?
15:08:31 <AnMaster> if I haven't misunderstood it
15:08:53 <Ilari> Yes, modern systems use paging instead of segmentation...
15:09:16 <AnMaster> so well that may be something I will do in the future indeed, but *not now*, I need to walk before I can run and so on
15:09:38 <Ilari> Except that IIRC, some security enhancement patches to Linux made use of segmentation...
15:09:46 <AnMaster> only on x86
15:09:49 <AnMaster> not on x86_64
15:09:53 <AnMaster> if you mean PAX
15:10:16 <Ilari> Nope, not PAX. And IIRC, x64 doesn't even support paging in 64-bit mode.
15:10:54 <AnMaster> err you mean segmentation
15:10:56 <AnMaster> not paging
15:11:16 <AnMaster> right?
15:11:21 <Ilari> Yes, segmentation...
15:11:41 <AnMaster> anyway segmentation is not something I need in other words heh
15:12:08 <AnMaster> how would I best do main loop I wonder
15:12:36 <AnMaster> hrrm, 1) fetch 1 byte, 2) fetch parameters
15:12:39 <AnMaster> 3) process
15:12:42 <AnMaster> seems best right?
15:13:22 <AnMaster> seems only sane way and don't think it is suboptimal?
15:14:25 <Ilari> The standard execution cycle is instruction fetch, instruction decode, operand fetch, execution, writeback.
15:14:33 <AnMaster> hm
15:14:49 <AnMaster> what would instruction decode mean in the case of a byte code interpreter?
15:15:03 <AnMaster> Ilari, I don't know VHDL if that was what you were thinking ;)
15:15:56 <AnMaster> a byte code interpreter will work a bit differently than a real CPU of course, like fetching several instructions in parallel doesn't make much sense
15:18:34 <Ilari> Seperating instruction fetch and instruction decode in bytecode interpretter might make detecting reading from invalid memory easier... But OTOH, it has some problems with self-modifying code.
15:18:56 <Ilari> reading conde from invalid memory, that is.
15:18:59 <AnMaster> hm code may indeed be self-modifying if it want or not if it doesn't
15:19:19 <AnMaster> as for read from invalid, well.... I have been planning to initialize the memory to 0 (NOP)
15:19:35 <AnMaster> or is that a bad idea?
15:20:43 <Ilari> AnMaster: Maybe make 0 be like X86 UD2 and use something else for NOP? OTOH, 0 for NOP looks nice...
15:20:50 <AnMaster> hm?
15:20:56 <AnMaster> UD2 what one is that?
15:21:17 <AnMaster> can't find it in my x86_64 reference manual (section general programming)
15:21:21 <AnMaster> system programming?
15:21:37 <Ilari> Defined to always raise SIGILL.
15:21:57 <AnMaster> weird it is in "system instruction"
15:22:23 <AnMaster> Mnemonic Opcode Description
15:22:24 <AnMaster> UD2 0F 0B Raise an invalid opcode exception.
15:22:29 <AnMaster> what is opcode 0 on x86?
15:23:48 -!- RedDak has quit (Remote closed the connection).
15:24:19 <Ilari> 00 is 8 bit register to memory add.
15:25:25 <AnMaster> I see
15:25:50 <Ilari> When combining with second zero byte, the register is AL, and the memory reference is BX+SI, EAX or RAX.
15:26:10 <AnMaster> well x86 is more or less insane in parts
15:27:09 <Ilari> Hmm... There are many instructions that take two gp registers there, right? There would be four free bits if instruction would be 3 bytes...
15:28:52 <AnMaster> err
15:29:00 <AnMaster> hm
15:29:20 <AnMaster> Ilari, I plan to extend it in the future
15:29:24 <AnMaster> with stuff like rings and so on
15:29:42 <AnMaster> so no need to pack more closely
15:30:37 -!- tusho has joined.
15:30:56 <AnMaster> hi tusho
15:31:10 <tusho> hi ais523
15:31:10 <AnMaster> btw I know you will hate ansembler as much as cfunge at some point ;P
15:31:11 <AnMaster> I bet
15:31:12 <tusho> darn
15:31:16 <AnMaster> tusho, he isn't here
15:31:26 -!- boily has joined.
15:31:29 <AnMaster> but I managed to say hi to you before you
15:31:37 <AnMaster> you to me*
15:31:38 <tusho> AnMaster: i know
15:31:40 <tusho> that's why i said darn
15:31:44 <tusho> no
15:31:46 <tusho> i said 'hi ais523/darn'
15:31:46 <AnMaster> and ais isn't here at all
15:31:48 <tusho> oh
15:31:50 <tusho> well, I don't greet you :-P
15:31:52 <tusho> hello boily - you new here?
15:31:58 <tusho> AnMaster: yes, but if I check that he'll have greeted me already
15:32:01 <AnMaster> tusho, AnMaster != ais523
15:32:03 <tusho> so better to risk it
15:32:08 <AnMaster> ha
15:33:15 <AnMaster> tusho, 8 MB memory for ansembler, that should be enough for everyone right? ;)
15:33:26 <tusho> AnMaster: yes
15:33:32 <tusho> that's actually reasonable
15:33:33 <tusho> :-P
15:33:34 <Ilari> X86 uses 'spare register' field of addressing mode field to choose instruction for many opcodes...
15:33:36 <AnMaster> btw Ilari here suggested I add rings and such
15:33:46 <tusho> AnMaster: i wouldn't for your first thingy
15:33:49 <tusho> i'd keep it simple, first
15:33:54 <AnMaster> tusho, indeed
15:34:05 <AnMaster> I will maybe add rings and such at some point in the future
15:34:14 <AnMaster> but the current 137 instructions are enough for now
15:34:26 <Ilari> I didn't suggest to add rings. I only noted the absence of priviledge separation. And I know ways to get privledge separation without rings.
15:34:40 <tusho> 137?! wtf AnMaster
15:34:41 <AnMaster> <Ilari> The system doesn't appear to implement rings, user/supervisor, strong isolation or any corresponding priviledge seperation mechanism...
15:34:41 <tusho> :)
15:34:51 <AnMaster> tusho, well a lot are 32/64 variants
15:34:54 <tusho> Also ... Ilari, this is his first CPU thingy.
15:34:55 <AnMaster> so about half real
15:35:06 <tusho> Does he really need privilege seperation, Ilari?
15:35:08 <tusho> No. :P
15:35:10 <AnMaster> not yet
15:35:16 <AnMaster> maybe when the rest is done
15:35:18 <AnMaster> but not for now
15:35:26 <AnMaster> I made it extensible in future
15:35:27 <AnMaster> :)
15:36:03 <AnMaster> tusho, if I had used a prefix byte it would have been much fewer instructions
15:37:26 <AnMaster> tusho, http://rafb.net/p/z7jJfg51.html
15:37:33 <AnMaster> CreateReadAndWrite(S8, int8_t)
15:37:34 <AnMaster> CreateReadAndWrite(U8, uint8_t)
15:37:34 <AnMaster> CreateReadAndWrite(S16, int16_t)
15:37:35 <AnMaster> after
15:37:39 <AnMaster> and so on
15:37:46 <tusho> ha ow
15:38:00 <AnMaster> tusho, what? I love the C preprocessor ;P
15:38:16 <tusho> by the way, since I'm just going to ask random alive people, AnMaster, what do you think of http://eso-std.org/~ais523/notary-report?
15:38:21 <tusho> specifically, does it look OK?
15:38:28 <tusho> apparently the Contestmaster: line is messed in a lot of browsers
15:38:40 <tusho> (oh, and enable JS because it lets you hide the index and recent changes)
15:38:42 <AnMaster> well this is firefox 2 atm
15:38:48 <tusho> (but JS is not required)
15:38:56 <tusho> (still, i'd enable it)
15:38:59 <tusho> (otherwise it's really long)
15:39:28 <AnMaster> tusho, the line is not missing for first report in: lynx konqueror, firefox 2
15:39:34 <AnMaster> I can check links and w3m too
15:39:37 <AnMaster> but that is all
15:39:41 <tusho> AnMaster: not missing
15:39:42 <tusho> just messed
15:39:45 <tusho> i.e. overlapping with the name
15:39:47 <tusho> anyway, it's the css
15:39:49 <tusho> the html itself is fine
15:40:07 <AnMaster> tusho, looks ok in lynx apart from some odd {{{ and }}}
15:40:10 <tusho> (oh, and I assume the two JS links work fine)
15:40:17 <tusho> odd {{{ and }}}? weird
15:40:26 <AnMaster> tusho, only without css
15:40:29 <AnMaster> as in lynx
15:40:41 -!- Corun has quit ("This computer has gone to sleep").
15:40:46 <tusho> AnMaster: so it works perfectly. any comments on the actual design?
15:40:49 <AnMaster> Pledge: false
15:40:49 <AnMaster> Parties: Ivan Hope CXXVII, comex, the AFO, Murphy, root, Goethe, BobTHJ
15:40:49 <AnMaster> Contestmaster: Ivan Hope CXXVII
15:40:49 <AnMaster> Text: {{{
15:40:49 <AnMaster> The name of this contract is "Agoran Twister". This is a public
15:40:51 <AnMaster> contract. A party to this contract may be referred to as a Keith.
15:40:56 <tusho> oh
15:40:59 <tusho> you're loading it as text/plain
15:41:04 <AnMaster> tusho, "ok but I'm not good at estetics myself"
15:41:06 <AnMaster> tusho, I am?
15:41:09 <tusho> yeah
15:41:17 <tusho> http://eso-std.org/~ais523/notary-report will give you a text file or html depending on what your browser requests
15:41:19 <tusho> try http://eso-std.org/~ais523/notary-report.html
15:42:02 <AnMaster> well ok in firefox 2 and konq for layout look
15:42:08 <AnMaster> as in "doesn't look messed up"
15:42:13 <AnMaster> note javascripts are off in both
15:42:19 * AnMaster turns it on in konq
15:42:20 <tusho> AnMaster: try turning on JS
15:42:22 <tusho> yeah
15:42:26 <tusho> the index and recent changes should collapse
15:42:28 <AnMaster> show/hide links works
15:42:29 <tusho> and you should have a hide/show link
15:42:35 <tusho> ok, great
15:42:38 <tusho> how does it look in lynx with the .html
15:42:39 <AnMaster> collapsed by default?
15:42:41 <AnMaster> is that correct?
15:42:43 <tusho> yes
15:42:49 <tusho> since they're very long
15:43:10 <AnMaster> well in lynx, it is *ok but not great*, few sites are great in lynx, maybe those using SHORTTAGS ;P
15:43:18 <AnMaster> * 2008-06-10 Teh Cltohed Mna joins the AAA
15:43:18 <AnMaster> * 2008-06-10 Teh Cltohed Mna joins the Bank of Agora
15:43:18 <AnMaster> * 2008-06-10 ehird creates pledge #9
15:43:18 <AnMaster> * time of last report
15:43:19 <AnMaster> * 2008-06-10 Ivan Hope CXXVII creates pledge #10
15:43:21 <AnMaster> huh
15:43:23 <AnMaster> there is an error there
15:43:28 <AnMaster> * time of last report is in blue
15:43:33 <tusho> AnMaster: htat's not an error
15:43:33 <AnMaster> while the othere are in magenta
15:43:35 <AnMaster> ?
15:43:35 <tusho> that's how lynx displays <em>
15:43:41 <tusho> <em>time of last report</em>
15:43:47 <tusho> which is why it's italic in a graphical browser
15:43:51 <tusho> (em for emphasis)
15:43:54 <AnMaster> tusho, oh the show/hide doesn't work any longer in konq
15:43:59 <tusho> (the semantic version of <i>talics)
15:44:01 <tusho> AnMaster: huh what
15:44:03 <AnMaster> it stops working after you close it
15:44:10 <tusho> ah hm
15:44:12 <tusho> very odd
15:44:13 <AnMaster> open, close, dead
15:44:20 <tusho> but I think that's down to konqueror's quite poor js support, AnMaster
15:44:30 -!- boily has left (?).
15:44:42 <AnMaster> tusho, well this is konq 3.5.9 so indeed
15:44:51 <AnMaster> 4.0.x is probably better
15:45:28 <tusho> AnMaster: you know the amount of stuff I have in the css for that page is totally overblown for what it is
15:45:31 <tusho> it messes about with typography
15:45:33 <tusho> (line heights)
15:45:47 <AnMaster> tusho, sucks in w3m but I think it is wrong terminal charset
15:45:55 <tusho> probably
15:46:01 <AnMaster> set to latin-1 for another app, looks better with utf8 in konsole
15:46:16 <tusho> AnMaster: is this app ick
15:46:17 <tusho> :P
15:46:27 <AnMaster> yes how could you guess
15:46:34 <AnMaster> brb dad wants computer help
15:46:35 <AnMaster> brb
15:47:58 <tusho> 03:24:33 <AnMaster> damn where is tusho when you need him
15:47:59 <tusho> <3
15:49:31 <AnMaster> hah
15:49:35 <AnMaster> tusho, well that is unusual
15:49:36 <AnMaster> ;P
15:49:40 <tusho> :P
15:49:43 <tusho> AnMaster: i thought you wer ebrb
15:49:46 <tusho> *were brb
15:49:49 <AnMaster> well I got back
15:50:07 <tusho> AnMaster: just to horrify you by the way, that notary report is generated with ruby
15:50:11 <tusho> by parsing the text version with regexps
15:50:16 <AnMaster> tusho, well I got nothing against ruby
15:50:29 <AnMaster> I don't know ruby but it seems saner than perll
15:50:31 <AnMaster> perl*
15:50:40 <tusho> AnMaster: it is basically a cleaned up perl
15:50:47 <tusho> with a smalltalky OO system
15:51:00 <AnMaster> tusho, and some influences from python
15:51:07 <AnMaster> iirc?
15:51:14 <AnMaster> I may be wrong about that
15:51:26 <tusho> AnMaster: well, some of it looks like python
15:51:30 <tusho> but semantically it's quite different
15:51:36 <tusho> let's put it this way, perl->ruby is pretty damn easy
15:51:41 <AnMaster> tusho, do you want to see my register union?
15:51:42 <tusho> python->ruby is quite uphill
15:51:45 <tusho> and sure
15:51:45 <AnMaster> for general register
15:51:53 <AnMaster> http://rafb.net/p/vWHg2850.html
15:51:57 <AnMaster> BE SCARED
15:51:59 <AnMaster> ;P
15:52:06 <tusho> what's scary about that
15:52:10 <tusho> it's pretty sane?
15:52:14 <AnMaster> heh ok
15:52:19 <AnMaster> I thought you wouldn't like it
15:53:48 <AnMaster> isn't there some CPU with like 8 MB L2 cache?
15:53:54 <tusho> shrug
15:53:55 <AnMaster> or am I confused about that?
15:53:58 <AnMaster> just wondering
15:54:12 <AnMaster> iirc there is one, some quad-core monster from intel or amd
15:55:38 <tusho> AnMaster: i think maybe the mac pros have them
15:55:41 <tusho> it sounds familiar
15:55:49 <AnMaster> hm ok that too then
15:56:21 -!- Sgeo has joined.
15:56:42 <tusho> Sgeo: Sgeo
15:56:53 <Sgeo> tusho: ehird
15:57:13 <tusho> you got it rong
15:57:31 <Sgeo> hm?>
15:58:57 <Sgeo> http://forums.gamewaredevelopment.com/search.php?searchid=57320
15:59:34 <tusho> Sgeo: what about it
15:59:43 <tusho> also, 'I grew another hand' is totally the best topic title ever
15:59:58 <Sgeo> lol
16:01:14 * Sgeo makes another thread
16:02:22 <AnMaster> Sgeo, what did you search for+
16:02:25 <AnMaster> s/+/?/
16:02:27 <tusho> AnMaster: topics he started
16:02:30 <tusho> that's what the top bar said
16:02:36 <AnMaster> ah
16:02:42 <AnMaster> right
16:02:44 <tusho> also, Sgeo, wtf, that forum has no 'register' link. :-P
16:02:47 <AnMaster> RTFL?
16:02:48 <AnMaster> ;)
16:02:52 <tusho> do you have to join via astral projection?
16:03:49 <Sgeo> I think registration was temporarily disabled or something
16:03:52 <Sgeo> Not sure
16:03:56 <Sgeo> I joined a long while ago
16:04:24 <Sgeo> http://forums.gamewaredevelopment.com/showthread.php?t=7570 can have a detrimental effect on the Warp
16:04:45 <tusho> Sgeo: hah i just found that
16:04:49 <tusho> 'The code still requires a bit of work, however, I am apprehensive about releasing it to the public, for the effects of duplicated norns traveling through the Warp are unknown.'
16:04:55 <tusho> IT MIGHT CAUSE A PIME TARADOX
16:05:02 <tusho> THIS EVIL INVENTION CAN NEVER BE RELEASED
16:05:58 <Sgeo> Seriously, the norn history as recorded by a warp might record a death, then more events coming from a duplicate. That might be the only effect, or that occurance might crash the rather unstable and probably badly programmed warp.
16:07:43 <tusho> Sgeo: Well try it
16:07:54 <Sgeo> I don't want to risk crashing the Warp
16:08:03 <tusho> Sgeo: Then you'll never no. Jusst try it.
16:08:04 <Sgeo> I've been urged by Sine not to try it
16:08:08 <tusho> *know
16:08:28 <tusho> Sgeo: I assume the Warp crashing would disable everyone elses?
16:08:32 <tusho> I imagine the software restarts automatically.
16:08:37 -!- Corun has joined.
16:08:38 <tusho> It would be crazy for it not to.
16:08:42 <Sgeo> There's a Warp server, that's what I'm worried about
16:08:48 <Sgeo> The Warp's been down before
16:08:55 <tusho> Sgeo: Presumably just regular downtime though.
16:09:05 <tusho> A crash will just make it automatically restart; I've never seen it any other way
16:09:25 <Sgeo> I don't trust the Warp to be sanely designed.
16:09:49 <tusho> Sgeo: Even terribly designed servers auto-restart. :-P
16:10:07 <tusho> Sheesh. Just do it :P
16:10:31 <Sgeo> Let me clean up some code. A command that my code uses is currently rather useless in a script, so I need to work around it using the equivelent of eval()
16:15:18 <AnMaster> warp?
16:15:23 <AnMaster> star trek?!
16:15:25 * AnMaster runs
16:16:49 <Sgeo> caos 0 1 _p1_ _p2_ "hist wipe ov99" 0 1 va98
16:16:56 <Sgeo> Instead of hist wipe ov99
16:17:20 <Sgeo> AnMaster, no. Docking Station (Creatures)
16:17:26 <AnMaster> err?
16:17:36 <AnMaster> what game?
16:17:41 <Sgeo> Docking Station
16:17:53 <AnMaster> never heard of it
16:17:56 <AnMaster> open source?
16:18:03 <Sgeo> No
16:18:14 <Sgeo> It's like a trial of Creatures 3 with some added abilities
16:18:22 <Sgeo> http://creatures.wikia.com/wiki/Docking_Station
16:18:38 <Sgeo> free as in beer though
16:19:01 <Sgeo> No time limit. Just an annoying nagging magma norn thing which can easily be disabled
16:20:08 <Sgeo> tusho has played with it a bit
16:20:23 <tusho> hardly :-P
16:21:15 <Sgeo> tusho likes torturing norns
16:21:22 <tusho> :p
16:22:13 <Sgeo> I torture norns genetically.
16:22:17 -!- timotiis has joined.
16:22:38 <tusho> Sgeo: i would torture norns genetically; except no way in hell will I subject myself to caos
16:22:43 <tusho> you should write a Caos Abstraction Layer
16:22:45 <tusho> CAL
16:22:49 <Sgeo> Talk to bd_
16:22:50 <tusho> and have a compiler that makes caos out of it
16:22:52 <tusho> :-P
16:22:59 <Sgeo> He's working on something called Kaos
16:23:06 <Sgeo> Also, genetic torture <> CAOS stuff
16:23:10 <tusho> Sgeo: does it have real control structures
16:23:15 <tusho> like with { curly braces }
16:23:25 <Sgeo> doif ... endi
16:23:42 <tusho> Sgeo: fail
16:23:47 <tusho> 4 characters still
16:23:50 <tusho> and no actual blocks
16:23:51 <AnMaster> tusho, do you think I should initialize the memory of ansembler to 0x0 before or leave it random?
16:24:00 <tusho> AnMaster: use uninitialized memory
16:24:01 <tusho> :D
16:24:12 <Sgeo> enum 4 0 0 ... next
16:24:20 <tusho> Sgeo: fail
16:24:21 <AnMaster> tusho, wait, it is a global variable, won't it be 0x0 anyway then?
16:24:28 <tusho> AnMaster: then make it local
16:24:28 <Sgeo> tusho, it's worse than LSL
16:24:32 <tusho> and copy it into a global
16:24:45 <AnMaster> tusho, ugh, I don't want to overdesign and make it reentrant!
16:24:46 <AnMaster> ;P
16:24:48 <tusho> Sgeo: er I was talking about Kaos by the way
16:24:51 <Sgeo> some of the commands, like hist wipe, are buggy, so I have to try to wrap in the caos command
16:24:52 <tusho> AnMaster: keep it in a global
16:24:56 <AnMaster> tusho, or MAYBE I SHOULD!?
16:24:56 <tusho> but intiialize it from a local
16:24:58 <Sgeo> tusho.... oh
16:25:01 <Sgeo> I was talking CAOS
16:25:03 <Sgeo> not Kaos
16:25:03 <AnMaster> ;P
16:25:21 <Sgeo> http://creatures.wikia.com/wiki/Kaos
16:25:44 <AnMaster> tusho, saying "re-entrant" made you change your mind quickly hehehe
16:25:56 <tusho> AnMaster: no
16:25:58 <tusho> i always said that
16:26:00 <AnMaster> Sgeo, Kaos? that is Swedish for chaos btw
16:26:11 <AnMaster> <tusho> AnMaster: then make it local
16:26:13 <Sgeo> Kaos looks somewhat decent given what it has to compile to..
16:26:13 <AnMaster> <tusho> AnMaster: keep it in a global
16:26:15 <AnMaster> huh
16:26:18 <AnMaster> whatever ;P
16:26:24 <tusho> Sgeo: no
16:26:25 <tusho> read the next line
16:26:29 <tusho> 'but initialize it from a local'
16:26:34 <AnMaster> oh
16:26:34 <tusho> also my first one was
16:26:35 <AnMaster> I see
16:26:37 <tusho> 'then make it a local'
16:26:40 <tusho> 'but copy it to a global'
16:26:41 <AnMaster> tusho, memcpy of 8 MB? ;P
16:26:43 <tusho> so ha, i didn't change
16:26:46 <tusho> AnMaster: go for it
16:26:51 <AnMaster> well I will see
16:27:07 <Sgeo> tusho, hm?
16:27:13 <tusho> Sgeo: er
16:27:16 <tusho> I meant to target AnMaster
16:27:32 <AnMaster> ah
16:27:34 <AnMaster> I see
16:27:35 <AnMaster> right
16:27:55 <AnMaster> I thought you were targeting Sgeo
16:29:40 <AnMaster> tusho, question: will this fetch and increment right? instr = comp.mem[comp.regs.pc++];
16:29:44 <AnMaster> this will*
16:29:56 * AnMaster can never remember ordering in such cases
16:30:11 <tusho> AnMaster: yes but I think that may be undefined
16:30:12 <tusho> no, wait
16:30:13 <tusho> no
16:30:14 <tusho> that's valid
16:30:15 <tusho> but yes
16:30:18 <tusho> fetch then increment
16:30:22 <AnMaster> confusing still heh ;P
16:30:23 <tusho> ++a vs a++
16:30:26 <tusho> 'head' vs 'tail'
16:30:33 <tusho> the increment is trailing on the latter, sorta
16:30:34 <AnMaster> size of register file: 1200
16:30:35 <AnMaster> size of computer: 8389808
16:30:36 <AnMaster> :)
16:30:47 <AnMaster> just sizeof on structs
16:38:23 <AnMaster> tusho, yay I implemented NOP and HLT ;P
16:38:30 <AnMaster> and it can run that
16:38:32 <tusho> AnMaster: your name is totally fitting!
16:38:37 <tusho> you are a master at advanced programming!
16:38:40 <AnMaster> tusho, yes it was a joke
16:38:41 <AnMaster> ;P
16:38:45 <tusho> so was that
16:39:11 <AnMaster> I have implemented NOP and HLT, only to test main loop works, and it was really yay that my main loop works
16:39:35 * AnMaster implements a few more
16:42:47 <Sgeo> WHY isn't the hist wipe taking effect?!?!
16:42:55 <tusho> Sgeo: Warp'd it yet?
16:45:04 <Sgeo> I'm trying to fix the hist wipe issue first
16:46:43 -!- olsner has joined.
16:49:40 -!- Corun has quit ("This computer has gone to sleep").
16:50:52 <tusho> AIS523-LOGS-CLAIM-OF-ERROR: You don't have Pledge: false on teh clthoed mna
16:53:29 <AnMaster> false on the what?
16:53:55 <tusho> AnMaster: an agoran partnership
16:53:59 <AnMaster> ah
16:56:05 <AnMaster> tusho, different types of jump implemented btw
16:56:06 <AnMaster> mostly
17:00:57 <AnMaster> tusho, if at 0x2 there is an "realative jump instruction", and at 0x3 is the parameter for it (with is 10 in this example) where should it end up?
17:01:01 <AnMaster> 0x12 or 0x13?
17:01:15 <tusho> AnMaster: 0x2+10
17:01:18 <tusho> 12
17:01:26 <tusho> since (RJMP X) is one instruction
17:01:33 <Sgeo> I can't seem to dbg: outs this damn thing
17:01:45 <AnMaster> well instructions + parameters are variable width
17:01:47 <AnMaster> tusho, hrrm
17:01:56 <AnMaster> I guess assembler will have to take care of it
17:02:30 <AnMaster> for example NOP got no parameters, the relative jump one 8-bit parameter and the absolute jump one 32-bit parameter
17:03:06 <AnMaster> tusho, so should it be in bytes I guess?
17:03:15 <AnMaster> anyway it is JRL not RJMP for me
17:03:19 <AnMaster> afk making some food
17:04:56 <Sgeo> The issue seems to be a change of targ
17:08:38 -!- jix has joined.
17:23:26 <Sgeo> It seems to work now
17:24:47 <tusho> Sgeo: Warp it up.
17:25:22 <Sgeo> Go on DS, make two worlds
17:26:02 <tusho> Sgeo: Who, me?
17:26:17 <Sgeo> yes
17:26:23 <tusho> Okay. Let me boot up Parallels.
17:26:42 <Sgeo> The plan: I'll make one norn, export it, copy and reimport
17:26:58 <tusho> And it either works or crashes the Warp? :P
17:26:58 <Sgeo> I send it to you, marked Kill
17:27:00 <Sgeo> You kill it
17:27:17 <Sgeo> Then I reimport a literal copy, send it to you after you switch worlds..
17:27:24 <tusho> Looks like my EXTREME SLAPPING KNOWLEDGE is going to be useful
17:27:31 <tusho> Sgeo: I already have one world; do I need to make two or just an extra one?
17:27:32 <Sgeo> targ norn dead
17:27:39 <Sgeo> Just make an extra one if you want
17:28:14 -!- Corun has joined.
17:28:23 <Sgeo> Hi Corun
17:28:34 <tusho> 'Your computer might be at risk
17:28:39 <tusho> Antivirus software might not be installed
17:28:43 <tusho> Click this balloon to fix this problem.'
17:28:53 <tusho> I love an OS that is too dangerous to use unless you install third-party software.
17:29:34 * tusho docks a station
17:29:58 <tusho> eurgh
17:30:00 <tusho> stop using memory, ff
17:30:33 <Sgeo> Who are you on DS?
17:30:52 <tusho> Errr, not sure. elliotthird I think. Wait, I need to add another world.
17:31:24 <tusho> fffffffff lagggy
17:31:43 <AnMaster> back
17:31:52 <Sgeo> The list of worlds isn't updating
17:31:52 <tusho> BRB
17:32:01 <Sgeo> Maybe it requires some sort of Warp interaction?
17:32:30 -!- tusho has quit.
17:33:52 -!- tusho has joined.
17:34:04 <tusho> k wait
17:34:20 <tusho> Sgeo: have you found my first world
17:34:41 <Sgeo> Go online on your first world
17:34:47 <Sgeo> Norns are sent to people, not specific worlds
17:34:48 <tusho> Sgeo: shouldn't I add my second first
17:34:57 <Sgeo> *shrug*
17:35:02 <tusho> i will
17:35:08 -!- olsner has quit ("Leaving").
17:35:09 <Sgeo> The different duplicate norns must go to different worlds
17:35:44 <tusho> Uh-oh... what's my password...
17:35:59 <tusho> yay
17:36:03 <tusho> Sgeo: I'm 'ehird'
17:36:09 <tusho> no norns
17:36:23 <Sgeo> Go online in your world
17:36:25 <tusho> doing so
17:36:26 <tusho> wait
17:36:27 <tusho> don't transfer yet
17:36:29 -!- jix has quit (Read error: 110 (Connection timed out)).
17:36:48 <tusho> ok
17:36:48 <tusho> now
17:37:02 <tusho> Sgeo: do I have to go anywhere in particular to get it
17:37:13 <Sgeo> Come on, stupid thing, get ehird added
17:37:29 -!- jix has joined.
17:37:47 <tusho> Sgeo: ?
17:37:58 <Sgeo> I'm trying to add you to my contact list
17:38:07 <tusho> yes
17:38:09 <tusho> but what about my previous q
17:38:33 <Sgeo> It should arrive in the Containment Chamber, in the workshop
17:38:40 <Sgeo> But first I need to add you as a contact
17:38:43 <tusho> Was that stare blank enough, Sgeo?
17:38:44 <tusho> :|
17:38:50 <tusho> I'm in the initial DS room thing.
17:38:53 <tusho> Wehre do I go.
17:38:59 <Sgeo> Go to the right
17:39:04 <Sgeo> Middle of the right
17:39:08 <tusho> Now I'm in a tunnel thing
17:39:12 <tusho> Middle door?
17:39:13 <Sgeo> You'll see a door, click it
17:39:20 <tusho> ah
17:39:21 <tusho> contact list
17:39:22 <tusho> okay
17:39:28 <Sgeo> Mid door is comm room
17:39:36 <Sgeo> go back, there are icons near the top of the screen
17:39:48 <Sgeo> go back to Capitalla hub
17:39:53 <Sgeo> and click the door on the right
17:39:53 <tusho> OK.
17:39:59 <tusho> Okay.
17:40:05 <tusho> I'm in a room. :P
17:40:08 <Sgeo> That's the workshop
17:40:13 <tusho> Okay. So now I just wait?
17:40:18 <Sgeo> Containment chamber is lower right
17:40:22 <Sgeo> I need toa dd you to conacts
17:40:31 <tusho> Sgeo: Should I add you or something?
17:40:40 <Sgeo> tusho, if you can, yes
17:40:55 <tusho> How. :P
17:40:58 <Sgeo> website
17:41:01 <tusho> o
17:41:02 <Sgeo> http://www.gamewaredevelopment.co.uk/ds/active/addfriend.pl
17:41:11 <Sgeo> But for some reason it's not adding you
17:41:18 <tusho> Sgeo rite
17:41:36 <Sgeo> Hm, now it works
17:41:47 <tusho> I just added you.
17:41:48 <tusho> My love.
17:42:19 * Sgeo vaguely wonders if his patch could, in some clinically insane way, be screwing with something
17:42:22 <tusho> Sgeo: U ARENT TALKING
17:42:22 <tusho> :(
17:42:58 -!- ais523 has joined.
17:43:12 <tusho> hi aisq
17:43:13 <tusho> hi ais523
17:43:17 <tusho> (gosh, you're late)
17:43:26 <ais523> hi tusho
17:43:39 <ais523> and I was slow because I was reading Agora backlog on another computer while waiting for this one to connect to the internet
17:43:53 <tusho> ais523: read #esoteric logs
17:43:56 <tusho> i COE'd you
17:46:04 <tusho> (if you fix it in the text version remember to rerun notary2html :P)
17:46:15 <tusho> ais523: senddddddit
17:46:16 <Sgeo> I'm offline
17:46:17 <tusho> err
17:46:18 <tusho> Sgeo:
17:46:19 <tusho> oh
17:46:20 <tusho> why
17:46:22 <Sgeo> Why?
17:46:22 <ais523> tusho: what do you mean remember to rerun?
17:46:25 <Sgeo> Were you kicked offline?
17:46:28 <tusho> no
17:46:28 <tusho> :|
17:46:32 <ais523> I put notary2html in the same shellscript as the other
17:46:33 <tusho> I'll reconnect
17:46:35 <tusho> ais523: ah, ok
17:46:41 * tusho reconnects
17:46:52 <tusho> wtf
17:46:54 <tusho> Sgeo: it won't reconnect
17:47:01 <tusho> ah
17:47:01 <tusho> there
17:47:02 * Sgeo just reconnected
17:47:02 <tusho> ok
17:47:03 <tusho> send it
17:47:30 <Sgeo> Did you get the.. no I guess you didn't
17:47:50 <tusho> Sgeo: ok
17:47:52 <tusho> i got 'hm'
17:48:56 <tusho> aha
17:48:57 <tusho> got him
17:49:16 <Sgeo> Kill him! Kill him with fire!
17:49:28 <Sgeo> I can't find the creature
17:49:39 <tusho> Sgeo: i've got 'im
17:49:41 <tusho> how do I kill him
17:49:49 <Sgeo> targ norn dead works
17:49:56 <tusho> how do I ge the console
17:50:29 <Sgeo> wtf
17:50:29 <tusho> Sgeo: ping
17:50:30 <Sgeo> http://www.gamewaredevelopment.co.uk/ds/active/world_notes.pl?world_id=128536
17:50:34 <tusho> How do I get the console up
17:50:35 <Sgeo> Ctrl-Shift-C
17:50:48 <tusho> Dead.
17:50:49 <Sgeo> Creation:6- December 2008 [24: 1:7:]
17:50:50 <tusho> Dead as a dead thing.
17:51:00 <tusho> Go to my second world now right?
17:51:16 <Sgeo> http://www.gamewaredevelopment.co.uk/ds/active/raised.pl?hid=50&uid=12187&s=1&page_start=0
17:51:46 <tusho> Sgeo: Yes, yes.
17:51:47 <Sgeo> I can't seem to find the page for that Creature
17:51:49 <tusho> Do I go into my second world?
17:51:58 <tusho> Oooh.
17:52:00 <tusho> He just disappeared.
17:52:02 <Sgeo> Well, just to see if anything crashes, sure
17:52:04 <tusho> In a puff of smoke.
17:52:14 <tusho> Sgeo: btw, here's the log
17:52:14 <tusho> born
17:52:18 <tusho> exported from c.i. 2
17:52:21 <tusho> imported to c.i.2
17:52:24 <tusho> warped out c.i.2
17:52:27 <tusho> warped into dah
17:52:27 <tusho> died
17:52:37 <tusho> all at 0 mins, but at different times
17:52:39 <tusho> died at 1 wins
17:53:05 <Sgeo> Ok, go to second world. It won't be able to enter a world where it already exists/existed
17:53:14 <Sgeo> (well, not w/o a patch anyway)
17:53:24 <tusho> Sgeo: ok just a sec
17:53:31 * Sgeo wants to see the history on the site
17:53:38 <tusho> Sgeo: i'm in hugs and doom now
17:53:40 <tusho> (not doom and hugs)
17:53:54 <tusho> OK.
17:53:55 <tusho> Go warp it
17:54:03 <Sgeo> ok
17:54:57 <Sgeo> http://www.gamewaredevelopment.co.uk/ds/active/raised.pl?hid=10&uid=14389&s=1&page_start=40&page_size=20
17:55:02 <Sgeo> Only 68?!?
17:55:15 <tusho> Sgeo: Just warp it
17:55:16 <Sgeo> Did you receive it?
17:55:45 <tusho> No.
17:55:48 <tusho> Hm.
17:55:51 <tusho> The chamber is closed.
17:55:52 <tusho> Weird
17:55:54 <tusho> Err not the changer
17:55:56 <tusho> the warp thingy
17:56:07 <Sgeo> Go back online
17:56:08 <tusho> Oh.
17:56:10 <tusho> That's the elevator
17:56:10 <tusho> Oh
17:56:11 <tusho> good idea
17:56:11 <tusho> heh
17:56:20 <tusho> yay
17:56:21 <tusho> he's here
17:56:30 <Sgeo> Sent
17:56:39 <tusho> he's here
17:56:40 <Sgeo> It's named Dupey - LIV?
17:56:44 <tusho> omg
17:56:46 <tusho> there's two norns
17:56:49 <tusho> one is called ?
17:56:53 <tusho> they look identical
17:56:56 <tusho> the second one just came
17:57:04 <tusho> Sgeo: OMG
17:57:08 <Sgeo> I think ? might be someone else's
17:57:09 <Sgeo> tusho, hm?
17:57:20 <tusho> Sgeo: it's a baby male, and it's exactly like yours
17:57:20 <tusho> oh
17:57:20 <tusho> hm
17:57:26 <tusho> 'this creature is a native of your world/
17:57:32 <Sgeo> Which one?
17:57:32 <tusho> maybe it's that annoying one in the original room
17:57:35 <tusho> but I doubt it walked all the way over here
17:57:37 <tusho> and besides it just appeared
17:57:38 <tusho> from the warp
17:57:49 <Sgeo> Maybe you opened the chamber
17:57:49 <tusho> Sgeo: A creature just appeared from the warp, identical looking to yours.
17:57:51 <AnMaster> tusho, btw did you see my idea of memory mapped registers?
17:57:51 <Sgeo> Check it's history
17:57:54 <tusho> It says it's already a native of my world
17:58:30 <tusho> Sgeo: history:
17:58:30 <tusho> Cloned
17:58:31 <tusho> Not in world
17:58:34 <tusho> 24 jun 2008
17:58:37 <tusho> 16:57
17:58:38 <AnMaster> tusho, to avoid different instructions for registers and memory access, you would reserve the top few bytes of the address space to point to registers
17:58:39 <tusho> that's now!
17:58:42 <AnMaster> tusho, !
17:58:44 <tusho> specifically, that's when the other guy got here
17:58:46 <tusho> Sgeo: so WTF
17:58:52 <tusho> your creature made a clone come from the warp
17:58:55 <tusho> that is a native to my world already
17:58:57 <tusho> just after it came
17:59:16 <AnMaster> tusho, !
17:59:16 <ais523> tusho: I can't find your COE in the logs
17:59:24 <tusho> ais523: search for AIS523
17:59:31 <Sgeo> tusho, please check its history
17:59:34 <ais523> ah, got it
17:59:39 <ais523> that'll be an easy fix
17:59:39 <Sgeo> oh
17:59:39 <tusho> Sgeo: I DID
17:59:47 <tusho> but it can't be a native not in world at that time
17:59:47 <ais523> I'll do it at the same time as today's contract catchup
17:59:49 <tusho> since it came from the warp
17:59:54 <Sgeo> That's it?
17:59:57 <tusho> Sgeo: yep
18:00:00 <Sgeo> Are you sure you switched worlds?
18:00:03 <tusho> Yep
18:00:07 <Sgeo> hah
18:00:33 <tusho> Sgeo: i think this might be the first natural clone :-P
18:00:52 <Sgeo> Well, now that the Warp is known to survive, maybe I can release the patch
18:00:54 <Sgeo> tusho, heh
18:01:07 <tusho> Sgeo: ok, dupey just spent five minutes pressing a button and making it bleep
18:01:10 <tusho> well not five minutes but a while
18:01:16 <tusho> i think this cloning thing made him go crazy
18:01:17 <Sgeo> lol
18:01:26 <Sgeo> There's no such thing as a sane norn
18:01:36 <tusho> Sgeo: oh dear
18:01:39 <tusho> ? just hit dupey - liv
18:01:41 <tusho> "dupey - liv na"
18:03:23 <Sgeo> enum 4 0 0 vocb next
18:03:33 <tusho> wut
18:03:40 <tusho> oh lol
18:03:42 <Sgeo> That educates all Creatures
18:03:43 <tusho> ? is 6 minutes old
18:03:46 <tusho> exactly the same as the other guy
18:03:59 <Sgeo> I think I know what happened
18:04:07 <tusho> hm?
18:04:08 <Sgeo> I tried to send one norn to your first world
18:04:15 <Sgeo> It never arrived successfully
18:04:20 <Sgeo> So you open the second world
18:04:23 <tusho> ah
18:04:25 <tusho> but why is it ?
18:04:37 <Sgeo> Two norns of the same moniker arrive at your second world
18:04:51 <Sgeo> One makes it in normally, the other is automatically cloned by pray impo
18:04:58 <tusho> heh
18:05:15 <Sgeo> Let's try it again?
18:05:22 <tusho> Sgeo: omg
18:05:25 <tusho> they both refer to themselves
18:05:26 <AnMaster> tusho, wtf is this odd game
18:05:27 <tusho> as dupey - liv
18:05:28 <AnMaster> very odd
18:05:29 <Sgeo> Or there's someone else I can dump another dupey on
18:05:31 <Sgeo> tusho, hm?
18:05:33 <tusho> AnMaster: Creatures Docking Station
18:05:38 <tusho> Sgeo: they keep saying dupey - liv tirde
18:05:39 <tusho> or whatever
18:05:45 <AnMaster> tusho, well what kind of game is it?
18:05:47 <tusho> oh, and I just convinced one of them to eat elevator
18:05:47 <Sgeo> The ? keeps saying it?
18:05:52 <tusho> Sgeo: both do
18:05:53 <Sgeo> tusho, they often do that
18:06:03 <tusho> AnMaster: an AI game
18:06:07 <AnMaster> interesting
18:06:08 <Sgeo> (eating elevator I mean)
18:06:10 <tusho> there's these little creatures called norns and they're dumb as hell
18:06:17 <tusho> you control a hand cursor that can speak
18:06:20 <AnMaster> lemmings?!
18:06:22 <AnMaster> j/k
18:06:31 <tusho> you have to stop them from killing themselves and teach them what 'eat' and 'food' means because they're dumb as all hell
18:06:37 <Sgeo> I'll send another dupey to someone else
18:06:38 <tusho> that's about it
18:06:41 <tusho> Sgeo: aww
18:06:41 <AnMaster> <tusho> there's these little creatures called norns and they're dumb as hell <-- s/norn/lemming/ and it would still be true
18:06:43 <tusho> I want another dupey
18:06:46 <tusho> I want a whole family of dupeys
18:06:49 <tusho> AnMaster: but lemmings don't learn
18:06:51 <Sgeo> Make another world
18:06:52 <AnMaster> tusho, true
18:06:54 <tusho> and lemmings don't walk about as they wish and ignore you
18:07:03 <AnMaster> true
18:07:07 <tusho> Sgeo: your next project should be giving to the same world
18:07:07 <tusho> :P
18:07:21 <AnMaster> but the statement "they are dumb as hell" is still true
18:07:28 * tusho tries to make dupey - liv eat dupey - liv
18:07:32 <Sgeo> tusho, that's all the effect was
18:07:45 <tusho> LMAO
18:07:48 <tusho> 'dupey - liv very patient'
18:07:54 <AnMaster> eh?
18:08:01 <tusho> AnMaster: one of them just said that they were very patient
18:08:04 <AnMaster> odd
18:08:05 <tusho> which is a pretty odd thing to say just like that
18:08:19 <AnMaster> tusho, got screenshots of this game?
18:08:25 * Sgeo has a few million
18:08:28 <tusho> DS?
18:08:28 <tusho> yes
18:08:34 <Sgeo> Mostly of odd situations I managed to engineer?
18:08:38 <AnMaster> hah
18:08:53 <Sgeo> http://sgeo.diagonalfish.net/screenshots/ some of those are DS
18:08:55 <tusho> http://www.generation5.org/content/2001/images/cds02.jpg
18:09:06 <tusho> http://www.gamershell.com/static/screenshots/3423/53661_full.jpg
18:09:47 <AnMaster> 2D I see
18:09:54 <tusho> well yes
18:09:56 <tusho> it'd be crazy in 3d
18:10:00 <AnMaster> why?
18:10:10 <tusho> Sgeo: how do I repeat last thing said
18:10:18 <Sgeo> ctrl-S I think
18:10:29 <tusho> hahahahah
18:10:31 <tusho> i told it to eat hand
18:10:33 <tusho> and it stood up
18:10:38 <tusho> and looked at the hand constantly
18:10:43 <tusho> "CAN'T EAT"
18:10:44 <Sgeo> because you said hand
18:10:54 <tusho> but I said eat hand
18:10:57 <Sgeo> try "hit hand"
18:10:57 <tusho> not stare at hand :<
18:11:26 <tusho> Sgeo: it bashes into it with its head
18:11:27 <tusho> but nothing happens
18:11:49 <Sgeo> Well, saying "hand" activates the hand neuron in the noun lobe, which does stuff with the comb lobes, which reaches the attn lobe
18:12:00 <Sgeo> The hand doesn't turn red?
18:12:12 <tusho> nope
18:12:13 <tusho> Sgeo: say
18:12:16 <tusho> what was that pain command again
18:12:23 <AnMaster> pain command huh?
18:12:28 <AnMaster> this game sounds weird
18:12:31 <tusho> AnMaster: not really
18:12:34 <tusho> it's the CAOS scripting language
18:12:39 <tusho> you have to press ctrl-shift-c to get the console
18:12:47 <tusho> so it's not exactly intended for people not making extensions and stuff
18:12:58 <tusho> but you can set the pain level to 100%
18:12:59 <Sgeo> http://creatures.wikia.com/wiki/C3/DS_CAOS_Codes
18:12:59 <tusho> LMAO
18:13:02 <tusho> 'dupey - liv extremely high up'
18:13:06 <tusho> GREAT OBSERVATION THERE
18:13:22 <Sgeo> There's probably an easier way than the command I mentioeed
18:13:30 <Sgeo> Maybe just setting the pain chemical
18:13:41 <Sgeo> sway writ norn 0 1 0 2 0 3 0 4
18:13:55 <Sgeo> The 1 2 3 and 4 just need to be greater or equal to 1 I think
18:14:03 <Sgeo> It's just I think 1 2 3 4 is easy to remember
18:14:15 <tusho> OH MY WORD
18:14:16 <tusho> THEY ARE HUGE
18:14:35 <tusho> I forced them into adulthood
18:14:35 <tusho> XD
18:14:48 <Sgeo> targ norn chem 148 1
18:14:55 <Sgeo> Should fill the pain chemical to full
18:15:14 <tusho> wow
18:15:16 <tusho> he didn't like that
18:15:27 <tusho> aww. how do I undo that
18:15:34 <Sgeo> targ norn chem 148 -1
18:15:49 <Sgeo> But I don't know if that really undoes the pain it felt
18:16:07 <Sgeo> Chemical 125 controls aging
18:16:26 <Sgeo> targ norn chem 125 1 will extend its lifespan, targ norn chem 125 -1 will age it to death
18:16:32 <Sgeo> as would targ norn ages 8
18:16:56 <tusho> Sgeo: {To induce labour in a stuck pregnancy (for the currently selected norn) }
18:17:00 <tusho> i did that on the male norns
18:17:01 <Sgeo> Instead of this "targ norn" stuff, surround it with enum 4 0 0 ... next to do it to all creaturews
18:17:01 <tusho> xD
18:17:04 <Sgeo> lokl
18:17:08 <tusho> nothing happened
18:17:09 <tusho> :(
18:17:12 <Sgeo> Males can get pregnant with some CAOS
18:17:37 <tusho> cool. how :P
18:17:56 <Sgeo> Put a genome in slot 1
18:18:06 <tusho> OIC.
18:18:38 <AnMaster> wtf
18:18:41 <tusho> Pffft.
18:18:46 <tusho> I just killed that guy's clone in front of him.
18:18:46 <AnMaster> tusho, how does that odd scripting language look?
18:18:51 <tusho> He went back to playing with the elevator
18:18:57 <tusho> AnMaster: {sway writ norn 0 1 0 2 0 3 0 4}
18:19:03 <tusho> {inst rtar family genus species stpt seta va00 twin targ 1 mvto x y }
18:19:03 <AnMaster> err
18:19:08 <AnMaster> and those means?
18:19:12 <tusho> all opcodes are 4 chars because you can make an efficient hash table with them
18:19:12 <tusho> :P
18:19:16 <tusho> The first puts the norn into pain.
18:19:20 <tusho> The first, apparently:
18:19:21 <tusho> {To clone an agent - Replace family, genus, species with the appropriate numbers of the agent. Replace x, y with the coordinates of where the new agent should be placed. Clone will fail to appear if insuffecient space is present at x, y coordinates }
18:19:37 <Sgeo> inst makes it atomic
18:19:37 <tusho> Sgeo: Can I revive a dead norn?
18:19:43 <Sgeo> tusho, not without hex editing
18:19:55 <AnMaster> Sgeo, and can you do hex editing too!?
18:20:03 <AnMaster> VERY odd game
18:20:06 <Sgeo> My Creatures project is to attempt to revive dead norns
18:20:20 <tusho> AnMaster: err
18:20:23 <tusho> you can hex edit any file
18:20:31 <tusho> anyway, regular players don't touch this stuff
18:20:34 <tusho> I just like messing up norns.
18:20:34 <AnMaster> isn't that cheating?
18:20:42 <tusho> you can't win creatures
18:20:42 <tusho> :P
18:20:48 <AnMaster> hm?
18:20:52 <tusho> AnMaster: you can't 'win' the game
18:20:55 <AnMaster> I see
18:20:59 <tusho> well
18:21:08 <tusho> keeping a long-running world with good genetics in the norns and keeping them breeding
18:21:15 <tusho> is probably the cloest thing
18:21:18 <tusho> *closest
18:21:53 <Sgeo> Often you get immortals and fast-agers
18:21:59 -!- ais523_ has joined.
18:22:07 <Sgeo> wb ais523
18:22:09 <tusho> Sgeo: apparently he's "quite ill"
18:22:12 <tusho> before that he was "ill"
18:22:20 <Sgeo> oO
18:22:25 <Sgeo> Use the HoverDoc
18:22:33 <tusho> Sgeo: wot
18:22:34 <Sgeo> Ctrl-H to find it
18:22:41 <tusho> its in another world
18:22:42 <Sgeo> Right-click, and drop it on the norn
18:22:48 <tusho> er
18:22:48 <tusho> room
18:23:01 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
18:23:03 <Sgeo> Use the scroll on the mouse if you have one
18:23:13 <tusho> ha
18:23:14 <tusho> ah
18:23:16 <tusho> hungry for startch
18:23:16 <Sgeo> If not, put it in the Inventory, which is the GUI element at the lower right
18:23:24 * tusho wonders where he can get some seeds
18:23:30 <Sgeo> I think "quite ill" might be something else
18:23:40 <Sgeo> Ctrl-Shift-E makes food drop from the hand
18:23:55 <tusho> those are carrots
18:23:56 <tusho> not seeds
18:24:10 <Sgeo> There are also seeds in ther
18:24:11 <Sgeo> e
18:24:19 <Sgeo> erm, nuts
18:24:47 -!- Corun has quit ("This computer has gone to sleep").
18:25:58 <Sgeo> Was that norn in the upper left area of the workshop?
18:26:14 <Sgeo> Because that place tends to be a breeding ground for bacteria for some reason
18:26:26 <tusho> Yes it was
18:27:02 <Sgeo> Open hoverdoc
18:27:10 <Sgeo> Click the right-pointing arrow thing on the edge
18:27:15 <Sgeo> Look through the options
18:28:09 <tusho> meh
18:28:22 <Sgeo> hm?
18:29:59 <Sgeo> tusho, why meh?
18:30:06 <tusho> i gave up :P
18:30:51 <Sgeo> On what?
18:30:59 <tusho> it
18:31:17 <AnMaster> signed and unsigned integers have the same value for positive values right?
18:31:36 <tusho> yes
18:31:40 <Sgeo> Not if the positive value is large enough, such that it's negative in the signed integer..
18:31:45 <AnMaster> assuming two complement
18:32:01 <AnMaster> Sgeo, well true but here I want to know signed 0 == unsigned 0
18:32:11 <AnMaster> assuming two complement
18:32:46 * Sgeo 'd think so, but not sure
18:33:50 -!- ais523_ has changed nick to ais523.
18:36:41 <tusho> mwahahahhahaha, I am evil
18:36:45 <AnMaster> tusho, oh?
18:36:51 <tusho> I am combining the two of the worst languages ever made
18:36:59 <AnMaster> malbolge and intercal?
18:37:12 <AnMaster> ais523, btw how goes fffungi?
18:37:24 <AnMaster> tusho, or what two ones?
18:37:30 <tusho> malbolge and intercal aren't BAD
18:37:37 <tusho> and i'm talking about languages intended for serious use
18:37:39 <Sgeo> tusho, CAOS is one of them, I bet
18:37:42 <AnMaster> um
18:37:44 <tusho> *g* no, Sgeo
18:37:53 <ais523> AnMaster: I implemented something else in C-INTERCAL instead
18:37:54 <AnMaster> tusho, APL and COBOL?
18:38:00 <AnMaster> ais523, oh? :/
18:38:04 <ais523> but at least it showed up lots of bugs in the code
18:38:10 <tusho> APL is great
18:38:11 <ais523> that would have affected fffungi too
18:38:13 <tusho> like, awesome
18:38:14 <AnMaster> ais523, hm? you aren't going to do ffungi?
18:38:15 <ais523> which I'm still planning to do
18:38:16 <tusho> COBOL sucks, but no
18:38:21 <tusho> this is stuff people say is awesome right now
18:38:26 <ais523> it's just I was working on something else
18:38:29 <AnMaster> ah ok
18:38:36 <AnMaster> ais523, the operator stuff?
18:38:41 <ais523> AnMaster: that's it
18:38:46 <Sgeo> tusho, what?
18:38:48 <ais523> I defined plus minus times divided
18:38:50 <AnMaster> tusho, what languages then?
18:38:51 <ais523> and it actually worked
18:38:52 <tusho> Sgeo: arc and PHP
18:38:57 <AnMaster> ais523, and the use?
18:38:59 <Sgeo> What's arc?
18:38:59 <AnMaster> ;P
18:39:07 <tusho> Sgeo: Arc is Paul Graham's shitty lisp dialect.
18:39:08 <AnMaster> indeed what is arc
18:39:22 <ais523> AnMaster: being able to write expressions with + and - in will make INTERCAL a lot more usable
18:39:25 <tusho> He took 5 years to release it; and it turns out it's a half-baked, wafer-thin crappy toy scheme-alike written on top of PLT Scheme.
18:39:32 <tusho> It's also buggy.
18:39:35 <AnMaster> ais523, is that really the goal though? ;P
18:39:40 <tusho> And what's more, he never shut up about it before or after release.
18:39:47 <tusho> Also, it has an incredibly shitty web library.
18:39:51 <ais523> AnMaster: yes, in this case, I don't mind INTERCAL being usable as long as it's usable in an unusual way
18:39:54 <tusho> (Before it can even do, say, useful arithmetic or file access.)
18:40:12 <AnMaster> ais523, oh I thought a "plus, substract, then multiply and finally divide" operator
18:40:13 <AnMaster> hah
18:40:14 <AnMaster> now I see
18:40:21 <tusho> My idea: Write an Arc->PHP compiler in PHP. Then you'll be able to run the shitty web apps written in the shitty toy lisp on top of a shitty web language.
18:40:22 <tusho> :D
18:41:21 <AnMaster> php isn't that bad, there are worse languages
18:41:29 <AnMaster> while I don't like php there are worse
18:41:41 <tusho> AnMaster: even so
18:41:43 <tusho> it's terribly evil
18:41:48 <AnMaster> damn I'm up at 137 instructions because I missed some
18:41:51 <AnMaster> err
18:41:53 <AnMaster> 139
18:41:54 <AnMaster> I mean
18:41:58 <tusho> especially as the arcist idiots will say 'OMG! NOW WE HAVE AWESOME DEPLOYMENT!'
18:43:27 -!- jix has quit (Read error: 113 (No route to host)).
18:57:25 <Sgeo> tusho, try mapk
18:57:30 <Sgeo> Not in a good world though
18:57:36 <tusho> Sgeo: i shut it down
19:00:31 <AnMaster> should a stack grow downards or upwards?
19:00:38 <AnMaster> and where should the call stack be placed?
19:00:50 <AnMaster> tusho, ^
19:00:58 <tusho> shrug
19:01:07 <AnMaster> tusho, why not help? :/
19:01:51 <RodgerTheGreat> tusho: you should somehow involve ruby in this- that could make it significantly worse
19:02:04 -!- revcompgeek has joined.
19:02:04 <tusho> RodgerTheGreat: let's troll about how ruby sucks ha ha
19:02:33 <AnMaster> ruby seems quite good to me
19:02:33 <tusho> because $list_of_entirely_untrue_reasons_why_ruby_sucks_showing_that_i_have_not_actually_used_it_and_just_like_saying_how_it_sucks
19:03:08 <RodgerTheGreat> AnMaster: if you're implementing a stack with arrays, growing down makes sense- it makes it very easy to resize the array later on
19:03:17 <AnMaster> however I do find perl confusing because 1) every single char (or close) seems to have a special meaning 2) there are a lot of ways to do everything)
19:03:31 <AnMaster> RodgerTheGreat, no, I'm implementing inside an adress space
19:03:36 <AnMaster> for the virtual computer
19:03:42 <RodgerTheGreat> but as with most data structure decisions, arbitrary choices can be fine if you're consistent
19:03:43 <RodgerTheGreat> hm
19:03:52 <ais523> AnMaster: I understand your concerns, having alpha chars having a special meaning can be confusing
19:03:54 <AnMaster> RodgerTheGreat, a byte code interpreter
19:03:57 <ais523> I think the numbers are all just numbers though
19:04:14 <AnMaster> ais523, HAH WHAT A COMFORT! *runs*
19:04:52 <RodgerTheGreat> if you want a stack and your code all in the same memory, the way I think MIPS does it is code starting at the top and going down, and the stack growing up from the bottom toward it
19:05:31 <AnMaster> RodgerTheGreat, so program counter/instruction pointer counts downwards?
19:05:33 <AnMaster> that seems odd
19:05:41 <AnMaster> I would do the reverse
19:05:47 <ais523> x86 does the reverse
19:05:50 <RodgerTheGreat> I think we're picturing this differently
19:05:55 <ais523> stack goes backwards from the end of the segment
19:06:03 <AnMaster> ais523, well no segments here
19:06:04 <RodgerTheGreat> ais523: yes
19:06:09 <ais523> AnMaster: yes, I know
19:06:10 <AnMaster> so top of address space
19:06:20 <AnMaster> and what about call stack then?
19:06:29 <AnMaster> should it be placed near the end and grow upwards
19:07:22 <AnMaster> of course it can be changed
19:07:30 <AnMaster> but should it grow up or down?
19:07:31 <AnMaster> ais523, ?
19:07:33 <RodgerTheGreat> I tend to think of memory as arranged from low addresses to high addresses vertically. 00000000 is at the "top" and FFFFFFFF is at the "bottom"
19:07:41 <AnMaster> does x86 even have a separate call stack or?
19:07:48 <ais523> AnMaster: call stack's mixed with variable stack
19:08:04 <AnMaster> ais523, well in my code it isn't so far
19:10:52 <AnMaster> ais523, btw it is pointless trying to use splint on cfunge, splint get parsing errors on even simple C99 stuff like: for (int i = 0; ...)
19:10:58 <AnMaster> I reported a bug
19:11:02 <AnMaster> no response
19:11:04 <ais523> it gets parsing errors on C-INTERCAL, too
19:11:08 <ais523> at least some of the files
19:11:23 <AnMaster> ais523, for cfunge it only works on like 2-3 files
19:11:43 <AnMaster> and only when you ifdef stuff in certain shared headers out
19:18:09 <augur> lalala
19:25:34 <AnMaster> well if anyone want to see my early steps towards the byte code interpreter there is now a bzr repo
19:25:41 <ais523> hi augur
19:25:45 <AnMaster> bzr branch http://rage.kuonet.org/~anmaster/bzr/ansembler
19:25:49 <augur> hey man
19:27:30 * ais523 starts trying to compile cfunge with ick
19:28:11 <tusho> ais523: how would that work
19:28:22 <ais523> tusho: it links C files to INTERCAL files when compiling
19:28:25 <tusho> ah
19:28:32 <ais523> of course it shells out to gcc to compile the C
19:28:38 <ais523> after doing a few ick-specific tweaks to it
19:28:46 <ais523> mostly fixup
19:28:51 <ais523> for things like COME FROM
19:29:54 <AnMaster> ais523, don't use boehm-gc btw, it got serious bugs in cfunge, and needs a very recent boehm-gc version, + it slows down a fair bit
19:29:59 <AnMaster> so -DDISABLE_GC
19:30:24 <AnMaster> ais523, apart from that you need some other defines too to make it compile, oh and you need -std=c99
19:30:25 <ais523> AnMaster: hmm... I'll need some INTERCALLY way to do -D
19:32:19 <AnMaster> ais523, well what flags you *will* need at least: -std=c99 -DDISABLE_GC -DUSE32 -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED
19:32:21 <AnMaster> also:
19:32:22 <AnMaster> -pedantic -Wall -Wextra -Wformat=2 -Wwrite-strings -Wa-lot-of-other-flags-see-the-cmake-file
19:32:26 <AnMaster> ;P
19:32:42 <AnMaster> ais523, CMakeLists.txt to be exact
19:32:46 <AnMaster> is the meta-build file
19:33:40 <tusho> AnMaster: nothing needs -W to compile
19:33:43 <AnMaster> ais523, the "-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED" are needed on glibc systems to get the needed defines
19:33:51 <AnMaster> tusho, indeed it was just show off ;P
19:34:21 <AnMaster> it will compile with -Werror and a lot of warning flags if you want to
19:37:17 -!- revcompgeek has left (?).
19:42:51 <ais523> anyway, cfunge hit a Schrodingbug in C-INTERCAL
19:43:05 <ais523> the code's obviously wrong, and looking at it there's no obvious reason why it ever worked at all
19:43:09 <ais523> I'll have to look into that
19:43:54 <AnMaster> ais523, is it on your side or mine?
19:43:57 <ais523> mine
19:44:06 <AnMaster> tell me what this bug is when you found out!
19:44:14 <ais523> ah wait, I see what happened
19:44:19 <AnMaster> hm?
19:44:32 <ais523> it's mixing the code for searching for an expansion library (=no extension) with the code for including a C file (=.c extension)
19:44:41 <AnMaster> eh?
19:44:46 <ais523> the issue that the files are being double-extended, so gcc can't find main.c.c
19:44:51 <AnMaster> haha
19:45:15 <AnMaster> ais523, well you will need to replace main.c totally I think
19:45:24 <AnMaster> it contains nothing useful for fffungi really
19:45:35 <ais523> AnMaster: yes, I'll be replacing it
19:45:40 <AnMaster> just parameter parsing and such
19:46:04 <AnMaster> one thing to note however is that argc/argv variables are in main.c and need to be moved elsewhere
19:46:20 <ais523> gor it
19:46:25 <ais523> I wrote break rather than continue
19:46:27 <AnMaster> or y will break
19:46:35 <ais523> thus causing subtle bugs when more than 2 files were involved
19:46:39 <AnMaster> hm?
19:46:45 <AnMaster> oh I see
19:47:33 <AnMaster> ais523, btw I suspect the PERL fingerprint *could* interact badly with ick
19:47:51 <AnMaster> ais523, it both fork()s execv()s and then uses some pipes to talk to child process
19:49:22 <AnMaster> ais523, could that cause issues with C-INTERCAL?
19:49:32 <ais523> AnMaster: probably it's fine
19:49:52 <ais523> C-INTERCAL's surprisingly robust against everything but call stack tricks
19:50:22 <AnMaster> ais523, because that fingerprint is one main reason I'm dropping Boehm-GC, if Boehm-GC is used to malloc there, then memory corruptions happens on the stack
19:50:27 <AnMaster> very odd
19:50:31 -!- jix has joined.
19:50:55 <AnMaster> works fine without bohem-gc
19:51:02 <AnMaster> and valgrind doesn't find any issues
19:52:06 <ais523> AnMaster: Perl is refcounted IIRC
19:52:20 <AnMaster> ais523, maybe, but that shouldn't affect a execv()
19:52:24 <AnMaster> I don't load libperl
19:52:30 <AnMaster> I just fork() and execv() perl
19:52:40 <AnMaster> and then reads STDIO of perl
19:55:50 <ais523> hmm... gcc seems not to be in c99 mode by default, I thought it was
19:56:08 <AnMaster> ais523, indeed that is the case
19:56:12 <AnMaster> you need -std=c99 for gcc
19:56:37 <AnMaster> -DDISABLE_GC -DUSE32 are needed to get sane behaviour from cfunge in your case
19:56:51 <AnMaster> -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED are needed on glibc based system to expose some definitions
19:56:59 <AnMaster> ais523, ^
19:57:03 <ais523> ah, yes
19:57:05 <AnMaster> I know this from experience
19:57:15 <AnMaster> you can't avoid them!
19:57:38 <AnMaster> well you could add them before the first include in global.h but...
19:57:42 <ais523> AnMaster: atm there's no way to pass commandlineargs to gcc through ick, so I'm just editing the #defines into global.h temporarily for testing until I can think of a better way
19:58:02 <AnMaster> ah
19:58:21 <AnMaster> ais523, as for -std=c99 you need to pass it on command line
19:58:36 <AnMaster> I don't know of any way to do it in the C code itself
19:58:59 <AnMaster> I don't think that is possible even
19:59:12 <AnMaster> so you need to pass that parameter for cfunge :P
19:59:20 <ais523> AnMaster: I only get 4 errors if I #define restrict to the null string
19:59:32 <ais523> all for for loop initial declarations
19:59:35 <AnMaster> ais523, well... that is unsupported!
19:59:38 <ais523> which I think could be rewritten
19:59:43 <AnMaster> ais523, ok... but why?
19:59:47 <ais523> AnMaster: restrict's just an optimiser hint
19:59:52 <AnMaster> then you are using lots of GCC extensions
19:59:58 <ais523> AnMaster: yep
19:59:59 <AnMaster> instead of C99
20:00:05 <ais523> well, it's called gnu99
20:00:11 <AnMaster> err
20:00:13 <ais523> it's the gcc default
20:00:19 <AnMaster> it is default gnu89 I think?
20:00:21 <ais523> I'm surprised it doesn't support restrict, though
20:00:23 <AnMaster> not gnu99
20:00:29 <ais523> ah, that would explain a lot
20:00:31 <AnMaster> gnu99 would handle it
20:00:35 <AnMaster> but gnu89 wouldn't
20:00:49 <AnMaster> ais523, anyway why not just add support for -std=c99 passing?
20:01:01 <AnMaster> it would me feel easier
20:01:16 <ais523> AnMaster: yes, I know, but the issue is figuring out where the args would be passed from
20:01:19 <AnMaster> ais523, because for some cases the gnu extensions got a different semantic than the C99 ones
20:01:29 <AnMaster> like inline on non-static functionbs
20:01:32 <AnMaster> functions*
20:01:42 <AnMaster> so I got no idea if gnu89 will work correctly
20:05:52 <AnMaster> ais523, so really trying to convert it to gnu89 is totally unsupported from my side?
20:05:54 <AnMaster> side*
20:06:03 <ais523> AnMaster: makes sense
20:06:15 <AnMaster> what about building it as a static library at compile time? and then linking that?
20:06:30 <AnMaster> like you do for libick iirc?
20:06:36 <ais523> that's what'll be done in the final version
20:06:46 <ais523> right now I'm just wondering how well it works if just linked in as source
20:06:54 <AnMaster> then you can use some autoconf macro to find c99 for current compiler iirc
20:07:03 <AnMaster> however that is global for project afaik not per file
20:07:03 <AnMaster> :/
20:07:19 <ais523> well, C-INTERCAL's legal C99 too, I think, even though I don't use its features
20:07:34 <ais523> apart from I use // comments temporarily when debugging, then I can easily find them all by recompiling as strict C89
20:07:37 <AnMaster> ais523, there may be some rare corner cases where it isn't valid
20:08:25 <AnMaster> well cfunge use a lot of // comments :P *thinks of hilarious result trying to compile cfunge as strict C89*
20:08:36 <AnMaster> it will fail in a lot of places
20:08:53 <AnMaster> ais523, oh btw, not sure if you noticed it, but all of cfunge isn't in src
20:08:57 <AnMaster> some part are in lib too
20:09:06 <AnMaster> it is an external hash library
20:09:10 <AnMaster> that I modified heavily
20:09:15 <AnMaster> to be a bit faster
20:09:20 <AnMaster> though not fast enough
20:09:27 <AnMaster> even though it is quite special cased
20:10:00 <AnMaster> in case of linking errors this could be important to know
20:10:11 <ais523> I haven't got to the stage where it links yet
20:10:27 <AnMaster> also that hash library may be partly C99-ified
20:10:30 <AnMaster> not 100% sure
20:12:28 <ais523> AnMaster: C99 preprocesses the same way as C89 on cfunge, right?
20:13:27 <AnMaster> ais523, well I don't think I use any varadic macros
20:13:36 <AnMaster> but I can't guarantee
20:14:08 <AnMaster> ais523, I remember using a varadic macro in some project at some point
20:14:14 <AnMaster> probably wasn't in cfunge
20:14:20 <ais523> well, it seemed to preprocess alright
20:14:22 <AnMaster> ais523, anyway why do you want to turn cfunge into c89?
20:14:26 <ais523> but presumably variadic macros would do that
20:14:42 <AnMaster> also gnu89 *does* support varadic macros
20:14:50 <AnMaster> though not in same form iirc *unsure about that*
20:15:17 <ais523> oh well, the method I'm using is to use file extension .c99 for C99 files
20:15:26 <AnMaster> well that's unusual
20:15:27 <ais523> so I can just preprocess them as C99 too
20:15:28 <AnMaster> ;P
20:15:55 * Sgeo actually wrote a decent README once
20:16:31 <AnMaster> ais523, btw I wish that you change HANDPRINT in global.h slightly in your version
20:17:09 <ais523> AnMaster: yes, that would make sense
20:17:15 <ais523> what if I use unmodified source, though?
20:17:21 <ais523> that's what I'm aiming for
20:17:44 <AnMaster> hrrm
20:17:50 <AnMaster> ais523, good question
20:17:57 <AnMaster> that I can't answer atm
20:18:00 <ais523> personally I think the handprint should be differnet anyway
20:18:06 <AnMaster> yes
20:18:25 <AnMaster> but you will need to modify somewhat, rip out main.c and replace it in some way right?
20:19:21 <ais523> AnMaster: actually I use linker tricks to rip out the old main
20:19:34 <ais523> by ignoring the main function it creates in favour of mine
20:19:55 <AnMaster> ais523, well that's... interesting
20:20:08 <AnMaster> anyway you should indeed change HANDPRING
20:20:10 <AnMaster> PRINT*
20:20:25 <ais523> AnMaster: is the handprint stored in an externally-visible variable?
20:20:32 <ais523> if so, I can use linker tricks to change it too
20:20:36 <AnMaster> err in a #define
20:20:39 <AnMaster> in global.h
20:20:42 <AnMaster> near the end of the file
20:20:44 <ais523> ah, that's harder to change
20:20:46 <AnMaster> along with version number
20:21:15 <AnMaster> ais523, well such a small change would be rather simple to maintain wouldn't it?
20:21:26 <AnMaster> you could even do some sed trick at compile time
20:21:28 <ais523> well, yes
20:21:45 <ais523> it's not that intercally though
20:21:47 <AnMaster> while version fingerprint would change every now and then, the HANDPRINT wont ever
20:21:54 <AnMaster> HAH
20:21:57 <ais523> the horrible breaky way would be to modify the handprint directly in the executable
20:22:01 <ais523> by grepping for it
20:22:08 <ais523> I'm not doing that, though
20:22:12 <ais523> that's just too silly
20:22:13 <AnMaster> good!
20:22:23 <AnMaster> ais523, because that could cause collisions
20:22:49 <ais523> well, yes, I know
20:25:05 <AnMaster> anyway just maintaining a small patch like that is easy
20:25:45 <AnMaster> you will need to update it occasionally if you do it like a patch becase the version number is next to it, and thus patch context will change, or you could sed it at compile time and never need to worry about that again
20:26:21 <AnMaster> ais523, still you need some source changes, to be exact: src/fingerprints/fingerprints.h
20:26:25 <AnMaster> script generated
20:26:30 <AnMaster> to contain your extra fingerprint too
20:26:37 <ais523> ah yes, of course
20:26:50 <ais523> also for the fungespace metadata stuff
20:26:51 <AnMaster> ais523, and then there is the load from string instruction too right?
20:27:03 <ais523> yes, but I can do that in my code, I think
20:27:38 <AnMaster> not very efficiently
20:28:02 <ais523> ah, of course
20:28:22 <AnMaster> also you will need to replace a bit more than main() it seems there
20:28:30 <AnMaster> because interpreterRun() takes as argument a filename
20:28:43 <AnMaster> main() doesn't load the file, interpreterRun() does
20:28:55 <AnMaster> main() is only option parsing really
20:29:15 <ais523> well, also I think for technical reasons interpreterMainLoop may need to be split into two functions, one which is the body of the loop, the other which just calls it repeatedly
20:29:28 <AnMaster> well... what?
20:29:37 <AnMaster> interpreterMainLoop is already like that
20:29:42 <ais523> it's so that the outside wrapper function can be made a C-INTERCAL interface function
20:29:44 <AnMaster> it just calls ExecuteInstruction()
20:29:57 <ais523> AnMaster: yes, I know, but there seems to be more in the loop than that
20:30:05 <AnMaster> yes there is some thread stuff
20:30:13 <AnMaster> if threading is enabled
20:30:26 <AnMaster> see after line 543
20:30:28 <AnMaster> "#else /* CONCURRENT_FUNGE */"
20:30:32 * Sgeo impregnates a norn with herself
20:30:35 <AnMaster> as in "not concurrent" below
20:31:01 <AnMaster> ais523, that non-threading one just does three things:
20:31:09 <AnMaster> 1) get next instruction from funge space
20:31:19 <AnMaster> 2) optionally print some debug info
20:31:23 <AnMaster> 3) execute instruction
20:31:28 <AnMaster> 4) move ip forward
20:31:33 <AnMaster> so 4 things
20:31:49 <AnMaster> the concurrent version does a bit more
20:32:05 <ais523> yes, I'd basically have to rewrite interpreterMainLoop for the interface-with-INTERCAL version
20:32:16 <ais523> so that I can stop executing the Befunge program and start executing INTERCAL instead
20:32:18 <AnMaster> ah
20:32:36 <AnMaster> well the non-concurrent version is fairly simple!
20:32:41 <AnMaster> once you remove the ifdef
20:32:45 <ais523> yes
20:32:59 <AnMaster> ais523, you will need to run parts of interpreterRun too
20:33:35 <AnMaster> ais523, cfunge need random srandom() for conformant operation, so I hope intercal doesn't need it to be predictable
20:33:37 <AnMaster> ?
20:33:44 <ais523> no, that would be silly
20:33:50 <ais523> but INTERCAL already srandoms
20:33:57 <AnMaster> ais523, well it is intercal... you never know ;P
20:34:01 <AnMaster> ah good
20:34:04 <ais523> so I'll have to be careful not to reseed repeatedly
20:34:20 <AnMaster> if (!FungeSpaceLoad(filename)) {
20:34:20 <AnMaster> fprintf(stderr, "Failed to process file \"%s\": %s\n", filename, strerror(errno));
20:34:20 <AnMaster> exit(EXIT_FAILURE);
20:34:20 <AnMaster> }
20:34:25 <AnMaster> needs to be replaced
20:34:28 <AnMaster> with a "load from string"
20:34:45 <AnMaster> skip next block with ip list (that's concurrent)
20:34:49 <AnMaster> IP = ipCreate();
20:34:51 <AnMaster> need to be done
20:34:51 <ais523> well, it'll be "load from value of global variable"
20:34:54 <ais523> which'll probably be a string
20:35:07 <ais523> what's in an IP object, by the way?
20:35:12 <ais523> I may have to end up storing several
20:35:12 <AnMaster> instruction pointer
20:35:21 <ais523> as in, does it contain pointers to things?
20:35:24 <ais523> or entire objects?
20:35:25 <ais523> or what?
20:35:30 <AnMaster> src/ip.h
20:35:32 <ais523> How would I duplicate them, and destroy them?
20:35:34 <AnMaster> see definition of struct there
20:35:49 <AnMaster> there are functions for duplications and destruction when concurrency is enabled
20:36:01 <AnMaster> like 59 in ip.h
20:36:11 <AnMaster> also line 94 and 99
20:36:26 <AnMaster> and the rest of that file
20:37:48 <AnMaster> ais523, I'm not sure in what meaning you plan to destroy/create them, but possibly you may need to copy fingerHRTItimestamp along, depending on the exact way you interpret specs
20:37:49 <AnMaster> ;P
20:38:07 <ais523> AnMaster: basically to save the IP in the Befunge program while destroying stack
20:38:15 <AnMaster> err?
20:38:22 <AnMaster> I'm not sure I get what you mean there
20:38:28 <ais523> I can't store it in an auto, I'll have to temporarily copy it to a global for safekeeping
20:38:37 <ais523> actually, it probably isn't a problem
20:38:42 <AnMaster> well it is malloced
20:38:47 <AnMaster> so just a pointer to copy somewhere
20:38:49 <ais523> definitely not a problem then
20:39:38 <AnMaster> ais523, you can see where cfunge store them: interpreter.c line 50-54
20:40:00 <AnMaster> ip list is, again, only for concurrent stuff
20:40:44 <AnMaster> which you indeed can't support in a sane way
20:41:19 <AnMaster> ais523, so just ignore everything between #ifdef CONCURRENT_FUNGE and the next #else (or if such doesn't exist, the next #endif ;P)
20:41:24 <ais523> yes, I think so
20:41:53 <AnMaster> err not "next" make that "matching"
20:42:00 <ais523> interpreter.c99:72: warning: C99 inline functions are not supported; using GNU89
20:42:01 <AnMaster> as there are some nested cases ;P
20:42:11 <AnMaster> ais523, what gcc version?
20:42:17 <AnMaster> 4.2 or 4.3 right?
20:42:21 <ais523> gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
20:42:27 <AnMaster> ah 4.1.2 here
20:42:32 <AnMaster> it doesn't generate that warning
20:42:43 <ais523> presumably it gets it wrong anyway, though
20:42:48 <ais523> just doesn't warn about it
20:43:02 <AnMaster> gcc (GCC) 4.1.2 20070214 ( (gdc 0.24, using dmd 1.020)) (Gentoo 4.1.2 p1.0.2)
20:43:46 <AnMaster> <ais523> presumably it gets it wrong anyway, though <ais523> just doesn't warn about it <-- probably, but it isn't much of an issue I think, possibly slightly less effective code
20:44:05 <AnMaster> for the inline difference the effect is in no way disasterous
20:44:10 <AnMaster> but for other stuff it could be
20:44:29 <AnMaster> I just have no intention on supporting compiling as gnu89
20:44:30 <AnMaster> ;P
20:44:50 <ais523> what does gnu89 inline mean anyway?
20:44:53 <AnMaster> because it could break badly and would be hard to track down
20:44:57 <ais523> IIRC c99 inline means "compile as fast as possible"
20:45:08 <ais523> sorry "compile so that it runs as fast as possible"
20:45:21 <ais523> maybe also prevents pointers being taken to the function, not sure on that
20:45:27 <AnMaster> it means "place the code inside the calllers function body" in both cases
20:45:34 <AnMaster> for "static inline" there is no difference
20:45:46 -!- ihope___ has joined.
20:45:55 <AnMaster> however "extern inline" and "inline" without extern have reversed meanings beteween gnu89 and C99 iirc
20:46:03 -!- ihope___ has changed nick to ihope.
20:46:05 <AnMaster> but I refer to GNU manual in this case
20:47:07 <ais523> anyway, it almost worked
20:47:15 <ais523> just some link errors as expected due to some files not being linked in
20:47:21 <ais523> where are they, /lib?
20:47:32 <AnMaster> lib/somesubdir/*.[ch]
20:47:37 -!- RedDak has joined.
20:47:41 <AnMaster> there are two c files
20:47:57 <ais523> ah, there are also subdirs of src
20:48:00 <ais523> which presumably also need to be linked
20:48:49 <AnMaster> ais523, yes indeed
20:48:57 <AnMaster> for fingerprints there are two layers
20:49:03 <AnMaster> for everything else just one layer iirc
20:49:18 <AnMaster> ais523, I like structuring my code in a logic way ;P
20:50:02 <ais523> well, for my tests I'll just dump them all into the same dir to make things easier, but the final version will keep them in their original locations and with the right file extensions
20:50:14 <AnMaster> good
20:50:25 <AnMaster> ais523, also you can't dump in same without some crazy symlinks I think
20:50:34 <AnMaster> as they got stuff like #include "../headerfile.h"
20:50:37 <AnMaster> ais523, heh
20:51:06 <AnMaster> (well when I coded it I didn't think that would be an issue!)
20:52:24 * ais523 writes some crazy symlinks
20:52:39 <AnMaster> ais523, sure that is really easier?
20:52:52 <ais523> no, but I'm doing it anyway
20:53:08 <AnMaster> hah
20:53:19 <AnMaster> ais523, well what are you checking for currently?
20:53:28 <ais523> actually I used hardlinks
20:53:44 <ais523> not that it matters, I'm going to delete the directory tree soon anyway
20:53:47 <AnMaster> well anyway, what are you trying to check for atm on the source?
20:53:56 <AnMaster> name clashes?
20:54:03 <ais523> AnMaster: just trying to get it to link
20:54:07 <AnMaster> ah
20:54:11 <ais523> ick requires the names of all relevant files on the command-line
20:54:15 <ais523> so I'm just using wildcards
20:54:23 <AnMaster> well so does cfunge build system
20:54:24 <AnMaster> a sec
20:54:30 <AnMaster> FILE(GLOB CFUNGE_SOURCES RELATIVE ${CFUNGE_SOURCE_DIR}
20:54:31 <AnMaster> lib/libghthash/*.c
20:54:31 <AnMaster> src/*.c
20:54:31 <AnMaster> src/funge-space/*.c
20:54:31 <AnMaster> src/instructions/*.c
20:54:31 <AnMaster> src/fingerprints/*.c
20:54:33 <AnMaster> src/fingerprints/*/*.c
20:54:37 <AnMaster> )
20:54:39 <AnMaster> (sorry for spam)
20:54:49 <AnMaster> ais523, sorry if I mentioned that bit too late ;P
20:56:37 * AnMaster goes to get some food, will be back soon
21:03:20 <AnMaster> back
21:03:26 <AnMaster> ais523, progress? :)
21:03:31 <ais523> it almost worked
21:03:34 <ais523> just -lm was missing...
21:03:42 <AnMaster> ah yes that is for some fingerprints
21:04:01 <ais523> ick -be stub.i *.c99 */*.c99 */*/*.c99 ../lib/*/*.c99 was the command I used, by the way
21:04:14 <ais523> after renaming all the C files to end .c99
21:04:16 <AnMaster> ah so you gave up "all in one dir"?
21:04:19 <AnMaster> right
21:04:23 <ais523> yes, I handled most of the dependencies
21:04:31 <ais523> but things like ../fingerprints were confusing to handle
21:04:40 <AnMaster> haha
21:05:16 <AnMaster> um you mean ../fingerprints.h?
21:05:19 <ais523> I think I'll program C-INTERCAL to interpret "libm.a" on the command-line as equivalent to -lm on GCC
21:05:34 <ais523> AnMaster: no, I mean like ../fingerprints/HRTI/HRTI.h
21:05:41 <AnMaster> ah
21:05:49 <AnMaster> not sure where that is used?
21:05:53 <ais523> probably it isn't
21:05:56 <ais523> that was just an example
21:05:58 <ais523> but it was that sort of thing
21:06:04 <AnMaster> ok
21:06:38 <AnMaster> ais523, interesting, well libm is certainly needed. when I implement the SOCK fingerprint in the future (it handles sockets), libnsl could be needed on *some platforms*
21:06:52 <AnMaster> not trying to give you a headache, except intercal already gave that to me ;P
21:07:01 <ais523> nah, don't worry about it
21:07:11 <ais523> I enjoy trying to deal with all the strange interactions between different parts of the language
21:07:16 <ais523> and different parts of the code
21:07:40 <AnMaster> ais523, anyway glibc systems won't need libnsl and probably shouldn't use it
21:07:50 <AnMaster> not sure about systems like freebsd though
21:08:58 <AnMaster> I know cfunge works on freebsd and it did work on openbsd at one point at least. it works with some changes on windows with mingw. oh and of course it works on linux. apart from that: no clue
21:09:24 <ais523> you were targetting posix, presumably
21:11:34 <AnMaster> ais523, I were
21:11:42 <AnMaster> because I can't stand winapi
21:12:06 <AnMaster> ais523, but I can't guarantee I haven't made mistakes that makes it unportable
21:12:20 <AnMaster> for example: big endian? don't have any such POSIX system to test on
21:12:27 <AnMaster> and I don't plan to port it to mac os 7
21:12:30 <AnMaster> which I *do* have
21:13:09 <ais523> 7's a bit old
21:13:49 <AnMaster> ais523, indeed :P
21:13:52 <AnMaster> it is an old mac
21:14:04 <AnMaster> it is in some box in the attic I think
21:18:57 <AnMaster> ais523, anyway I hope it is portable to all POSIX :)
21:19:00 <AnMaster> and it should be
21:19:08 <AnMaster> I don't really care about windows
21:19:25 <Sgeo> The Warp is alive
21:22:24 <AnMaster> ais523, any progress? :D
21:22:35 <ais523> I'm still thinking about how to do libraries best
21:22:45 <ais523> the command line arg code in C-INTERCAL is really fragile
21:23:21 <AnMaster> ais523, or you could drop some of the fingerprints, the core doesn't need libm. just the fingerprints
21:23:38 <ais523> yes, but then I'd have to figure out how to compile it again
21:23:43 <ais523> does it work if the fingerprints aren't linked in?
21:24:03 <AnMaster> you will need to change fingerprints.h to remove some entries from the big array there, but then it will work
21:24:11 <AnMaster> it is just an array with some metadata
21:24:30 <AnMaster> oh btw you may hate to hear this: in the future I plan some fingerprints to be loaded with dlopen()
21:24:32 <AnMaster> just an idea
21:24:43 <ais523> no way that would work on DOS, but cfunge probably doesn't work there anyway
21:24:45 <AnMaster> I'm sure it would make stuff hard for you so I may not do it
21:25:05 <AnMaster> ais523, well, you have to strip quite a few fingerprints and then it works on windows I think
21:25:24 <AnMaster> for example PERL fingerprint
21:26:05 <AnMaster> ais523, and that was a few months ago, I got no idea if it still is that bad, or worse
21:26:20 <AnMaster> anyway I probably won't do the dlopen thing
21:26:38 <AnMaster> ais523, I will be happy to not try to mess it up too badly for you if you get this working
21:27:05 <ais523> meh, for the time being I'll just hardcode the -lm in C-INTERCAL
21:27:07 <ais523> and fix it later
21:27:24 <AnMaster> only changes that are likely to happen are: 1) new fingerprints 2) new funge space code 3) small bugfixes
21:27:39 <AnMaster> other than that cfunge is pretty finished
21:27:48 <AnMaster> and the public interface to funge space won't change
21:28:31 <ais523> ok, it compiled and linked
21:28:45 <ais523> and it's a nop, just as I planned
21:28:53 <ais523> now all I have to do is write the linking code...
21:30:03 <AnMaster> ais523, yes that is the hard part eh?
21:30:11 <ais523> yes, probably
21:30:30 <AnMaster> btw doesn't ick link dynamic libraries at all?
21:30:37 <ais523> not at present
21:30:41 <AnMaster> and doesn't do math at all?
21:30:46 <ais523> no, it doesn't
21:30:48 <AnMaster> I mean floating point math
21:30:50 <AnMaster> hrrm
21:30:52 <ais523> have you seen how bad INTERCAL is at arithmetic?
21:31:03 <AnMaster> ais523, possibly :P
21:31:03 <ais523> there's a floating point library for INTERCAL, but it works with bitwise manipulation
21:31:05 <AnMaster> it is hard to say
21:31:09 <AnMaster> when all it says
21:31:11 <AnMaster> is
21:31:15 <AnMaster> &%)(&=/)&"#/(&=!!
21:31:17 <AnMaster> ;P
21:31:29 <AnMaster> I fully admit not understanding most of intercal
21:31:34 <ais523> AnMaster: well there are only 5 basic operators, and they're all bitwise
21:31:43 <AnMaster> hm
21:32:09 <AnMaster> ais523, interesting, how will data be passed between funge and intercal?
21:32:27 <ais523> AnMaster: I was planning to add a fingerprint command for the Funge to get and set INTERCAL variables
21:32:32 <AnMaster> ah
21:32:32 <ais523> that's much how I do it with C
21:32:42 <AnMaster> see the fingerprints: FPDP and FPSP for some floating point
21:32:45 <ais523> it's how INTERCAL programs pass data within themselves, too
21:32:49 <AnMaster> quite horrible unions really
21:33:21 <AnMaster> what will you call your fingerprint?
21:33:27 <AnMaster> 4 chars after all
21:33:37 <ais523> I've been thinking about that, actually
21:33:44 <ais523> I could fit 6 chars in if the name's in Baudot
21:33:50 <ais523> because there are 32 bits to play with
21:33:53 <AnMaster> um
21:33:56 <AnMaster> err
21:34:02 <AnMaster> that isn't very fungeish
21:34:10 <ais523> I think I'll use an ASCII name, though
21:34:14 <AnMaster> also the scripts of cfunge will complain
21:34:28 <AnMaster> because I'm quite sure things will go very bad in auto generation
21:34:50 <AnMaster> cfunge wants [A-Z0-9]{4}
21:34:53 <AnMaster> for fingerprint names
21:34:53 <ais523> I'm thinking an acronym, maybe based on Intercal Integration
21:35:22 <AnMaster> it will accept some other too with warnings
21:35:43 <AnMaster> utils/gen_fprint_list.sh line 82-90
21:36:52 <AnMaster> ais523, but please conform to [A-Z0-9]{4}, because other stuff could cause C errors, due to function names
21:36:57 <ais523> I think I'll stop working on fffungi for now, maybe continue tomorrow
21:37:03 <AnMaster> ais523, oh why? :/
21:37:11 <AnMaster> ais523, not too hard is it?
21:37:15 <ais523> AnMaster: because I need to think about this a bit more
21:37:17 <AnMaster> ah
21:37:21 <ais523> and I've been programming continuously for ages
21:37:24 <ais523> since about 1pm
21:37:24 <AnMaster> ais523, s/maybe //
21:37:26 <AnMaster> ;P
21:37:38 <ais523> well, I have other things to do too
21:37:57 <AnMaster> wait? are you telling me there is something else besides esotericness?
21:38:07 <ais523> yep, unfortunately
21:38:17 <AnMaster> I see
21:38:25 <AnMaster> well I got summer holidays now so :)
21:38:38 <ais523> so have I, but I still have other things to do...
21:39:07 <AnMaster> ah ok
21:39:21 <ais523> at least it's going somewhere
21:39:33 <ais523> and I'm pretty convinced that there isn't some big contradiction making it impossible
21:40:05 <AnMaster> ais523, just a lot of small issues
21:40:05 <AnMaster> ;P
21:40:43 <AnMaster> ais523, anyway if you have problems linking you certainly don't want to use boehm-gc, it need two more *dynamic* libraries
21:40:53 <AnMaster> oh wait they could be static too
21:41:01 <AnMaster> I actually do them static for binary releases
21:41:04 <AnMaster> but still
21:41:09 <ais523> the problem's to do with trying to get ick to give the right command line to gcc
21:41:11 <ais523> it's long enough as it is
21:41:36 <AnMaster> but that will be less of a problem when cfunge itself is a static library?
21:41:44 <ais523> yes, definitely
21:41:53 <AnMaster> also to avoid name collisions it should be libickcfunge.a or something like that
21:42:02 <AnMaster> who knows if I want to make a libcfunge.a in the future
21:42:05 <ais523> I generally do libick then two characters
21:42:11 <AnMaster> of cf then?
21:42:13 <ais523> so libickcf for instance
21:42:20 <AnMaster> I use cf as prefix in some internal parts
21:42:44 * AnMaster points vaguely in the direction of support.h
21:44:26 <ais523> grr... why are the IOCCC so slow in releasing the solutions?
21:44:46 <ais523> they selected the winners last September
22:02:44 <AnMaster> ais523, odd
22:02:47 <ais523> what is?
22:02:53 <ais523> ah, what i just said
22:02:56 <AnMaster> yes indeed
22:02:58 <AnMaster> what else
22:04:29 <AnMaster> ais523, so when I'm here (I may be away tomorrow) are there any more cfunge questions?
22:04:37 <AnMaster> load from string I could write for you
22:04:40 <AnMaster> that would be fast
22:04:49 <ais523> yes, that would be nice
22:04:50 <AnMaster> would load at (0,0)
22:04:56 <ais523> yes
22:05:10 <ais523> the string itself will come from a stub .c file that just defines one global variable, which is the string
22:05:15 <ais523> but I'll pass it to you as an argument
22:05:43 <AnMaster> well yes const char * restrict program
22:05:48 <AnMaster> will be my prototype
22:09:01 <AnMaster> ais523, well I think that is finished, haven't test compiled it yet
22:09:08 <AnMaster> or test run it
22:09:13 <ais523> wow, that was quick
22:09:30 <AnMaster> ais523, was just some changes to the loop of FungeSpaceLoad really that was needed
22:09:47 -!- Bishopshate has joined.
22:10:11 <AnMaster> well it compiles, haven't tested it though
22:11:57 <AnMaster> ais523, you can see the original version first and the modified after at http://rafb.net/p/3vJs6I41.html
22:12:04 <AnMaster> see why it didn't take long?
22:12:41 <ais523> yes, it's a pretty small change
22:13:01 <AnMaster> and thus I think it will work even without testing it
22:13:11 <AnMaster> of course I'm not 100% sure
22:14:05 <AnMaster> ais523, will it be possible to link C code, intercal code AND befunge code at once?
22:14:09 <AnMaster> I mean several ffi at once
22:14:11 <ais523> yes
22:14:22 <ais523> probably not two Befunge programs simultaneously, though
22:14:27 <AnMaster> nice
22:14:42 <ais523> however there's a potential issue with namespace collisions between C and cfunge
22:14:47 <AnMaster> well indeed I use one static variable there
22:15:08 <AnMaster> well I don't feel like redesigning the whole code to use prefixes everywhere
22:15:22 <ais523> yes, makes sense
22:15:30 <ais523> I added the prefixes with search-and-replace
22:15:36 <AnMaster> ais523, however some visbility("hidden") attributes could help
22:15:36 <ais523> but then spent a while fixing breakage that caused
22:15:50 <AnMaster> yes that is pretty likely to cause breakage
22:16:01 <AnMaster> due to all places they are called in and so on
22:16:02 <ais523> the issue was that I did, in this case, want to replace inside string literals
22:16:06 <AnMaster> aha
22:16:16 <AnMaster> where do I have such string literals?
22:16:19 <ais523> because most of them hold bits of C code that go into the finished program
22:16:27 <ais523> you probably don't have that problem
22:16:30 <AnMaster> ah
22:16:34 <AnMaster> how comes you have
22:16:41 <AnMaster> oh right to C
22:16:42 <AnMaster> indeed
22:17:02 <AnMaster> ais523, well I think some issues could happen from "way to cleaver" preprocessor defines
22:17:11 <AnMaster> like those constructing functions
22:17:15 <AnMaster> using ##
22:17:22 <AnMaster> if you know what I mean
22:17:34 <AnMaster> see the ROMA fingerprint for example
22:17:40 <AnMaster> there it is static so no problem
22:19:26 -!- oerjan has joined.
22:21:40 <Sgeo> http://forums.gamewaredevelopment.com/showthread.php?t=7572
22:21:42 -!- Slereah_ has joined.
22:21:55 <ais523> hi Slereah_
22:21:57 <ais523> and oerjan
22:22:01 <Sgeo> hi Slereah_ and oerjan
22:22:08 <AnMaster> ais523, I will commit the untested FungeSpaceLoadString
22:22:13 <ais523> ok
22:24:01 <oerjan> good evening all
22:24:08 <ais523> good evening
22:24:35 <tusho> hi oerjan
22:24:36 <AnMaster> ais523, you will need to -DFUNGE_EXTERNAL_LIBRARY to get it
22:24:36 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)).
22:24:45 <ais523> AnMaster: ok
22:24:46 -!- Slereah_ has joined.
22:24:47 <AnMaster> as I don't want to pollute the normal cfunge binary
22:24:51 <AnMaster> I'm pushing atm
22:25:04 <AnMaster> slow server
22:25:14 <AnMaster> ah done
22:25:15 <Ilari> Slow uplink? :-)
22:25:17 <AnMaster> ais523, bzr pull
22:25:17 <Slereah_> Hello.
22:25:30 <AnMaster> Ilari, well partly, but the server is quite heavily loaded I know
22:25:36 <AnMaster> as I got root on that dedi
22:26:09 <AnMaster> 9:25PM up 222 days, 20:23, 7 users, load averages: 2.33, 1.23, 4.23
22:26:35 <AnMaster> and hi Slereah_
22:27:08 <AnMaster> ais523, anyway bzr pull should work, if it doesn't you need to use --remember once to tell it the url
22:27:13 <AnMaster> but that shouldn't be needed
22:34:08 <AnMaster> ais523, managed to get it?
22:34:12 <AnMaster> yes or no?
22:34:16 <ais523> I haven't tried to pull yet
22:34:32 <ais523> I think I'll probably just rebranch
22:34:35 <AnMaster> do because I want to know if I need to tell you to do an additional step
22:34:38 <AnMaster> ais523, um why?
22:34:45 <ais523> renaming all the files in a repo tends to confuse version control systems
22:34:59 <AnMaster> ais523, you could bzr --recursive revert .
22:35:02 <AnMaster> or something like that
22:35:18 <AnMaster> ah wait
22:35:30 <AnMaster> no need for recursive it seems
22:35:58 <AnMaster> "Use "bzr revert ." in the tree root to revert all files but keep the merge record,
22:35:58 <AnMaster> and "bzr revert --forget-merges" to clear the pending merge list without
22:35:58 <AnMaster> reverting any files.
22:35:58 <AnMaster> "
22:36:16 <tusho> AnMaster: he renamed every file
22:36:27 <AnMaster> tusho, yes but that would restore them
22:36:31 <AnMaster> bzr is resilliant
22:36:37 <AnMaster> resilient*
22:36:39 <tusho> He renamed them for a reason I am guessing, AnMaster
22:36:41 <AnMaster> unlike maybe git
22:36:47 <AnMaster> tusho, yes from *.c to *.c99
22:36:49 <AnMaster> I know
22:36:50 <ais523> tusho: yes, to change the extension for all the c99 files to .c99
22:36:59 <tusho> hahaha
22:37:03 <tusho> git is far more resilient than any others
22:37:04 <tusho> :)
22:37:07 <AnMaster> no
22:37:12 <AnMaster> bzr is as resilient
22:37:17 <tusho> it has to be for the kernel
22:37:19 <AnMaster> prove that it isn't and I will believe it
22:37:21 -!- ais523 has quit ("avoiding a flamewar").
22:37:29 <AnMaster> see what you caused
22:37:41 <tusho> zomg, he parted #esoteric!!111!1
22:37:46 <AnMaster> tusho, because of you
22:37:51 <tusho> AnMaster: um
22:37:55 <tusho> <AnMaster> unlike maybe git
22:38:01 <tusho> if that's not incitement to a flamewar I don't know what is
22:38:08 <tusho> you could have simply omitted that inflammatory line
22:38:12 <AnMaster> true
22:38:31 <AnMaster> tusho, he even disconnected thanks to you
22:38:49 <Sgeo> The Warp survived
22:38:54 <tusho> weird, he disconnected?
22:38:56 <tusho> why not just /part?
22:39:03 <AnMaster> tusho, or he changed nick
22:39:06 <tusho> come back, logreadais523
22:39:12 <AnMaster> ahaha
22:39:16 <AnMaster> he does that?
22:39:18 <tusho> yes
22:39:21 <tusho> as i
22:39:58 -!- Bishopshate has quit (Read error: 110 (Connection timed out)).
22:40:14 <tusho> OI AIS523
22:40:15 <tusho> COME BACK
22:40:18 <tusho> OR I'LL STAB YOU
22:40:21 <tusho> STAB STAB STAB
22:40:25 <tusho> NOW YOU'RE DEAD SO YOU CAN'T COME BACK
22:40:27 <tusho> BUT COME BACK ANYWAY
22:45:27 <tusho> Please?
22:45:36 <AnMaster> no luck thanks to you
22:45:55 <oklopol> :)
22:46:11 <tusho> AnMaster: again, you initiated it
22:46:12 <oklopol> my guess: was going to leave, wanted a funny quit msg
22:46:21 <oklopol> okokokokokokokokokoko
22:46:29 <tusho> hardly
22:46:31 <oklopol> not that i have any idea what's been going on
22:46:33 <tusho> he never leaves at this time
22:46:45 <AnMaster> tusho, and you made it into a flameward
22:46:48 <AnMaster> flamewar
22:46:53 <oklopol> i've seen him do all kinds of join/part cycles
22:46:53 <AnMaster> you didn't need to say anything
22:46:57 <AnMaster> but YOU DID
22:47:06 <tusho> you didn't need to say anything in the first place, though
22:47:16 <tusho> & it was the root
22:47:18 <AnMaster> tusho, agreed, but why did you respond to it at all?
22:47:26 <tusho> because you initiated it
22:47:32 <tusho> so I responded to it
22:47:38 <AnMaster> "don't feed the trolls"?
22:47:38 <tusho> because you were wrong
22:47:40 <AnMaster> never heard that?
22:47:46 <tusho> AnMaster: don't troll in the first place
22:47:58 * AnMaster flames about trolling
22:54:13 <tusho> AIS
22:54:15 <tusho> COME BACQ
22:59:19 <oerjan> he'll be back.
22:59:40 <oklopol> that's what they said about you
22:59:59 <oerjan> after all, AIS secretely stands for Arnold I. Schwarzenegger. it's surprising he is here as much as he is.
23:00:15 <oerjan> (the Smith thing is just a ruse.)
23:01:35 <Sgeo> http://ccbb.biosci.utexas.edu/seminars.html
23:01:37 <AnMaster> oerjan, what does he say his name is?
23:01:47 <Sgeo> "The term "Sgeo-cybernetics" was first proposed in 2005 by Reyes et.al."
23:02:10 <oklopol> wow
23:02:14 <AnMaster> Sgeo, bad luck
23:02:15 <oklopol> we have two famous guys here!
23:02:28 <AnMaster> oklopol, rather a co-incidence?
23:02:47 <oklopol> well actually i consider oerjan famous too
23:02:53 <AnMaster> oklopol, oh is he?
23:02:55 <tusho> yeah
23:02:59 <tusho> oerjan is a MATHEMATICIAN
23:03:01 <oklopol> and i widely know myself, so i guess i'm famous.
23:03:02 <tusho> he's published PAPER
23:03:02 <tusho> S
23:03:12 <tusho> and he's in the AMERICAN MATHEMATICAL THINGY
23:03:13 <tusho> qed
23:03:15 <oklopol> :P
23:03:21 <tusho> oh
23:03:22 <tusho> and he plays agora
23:03:26 <tusho> that's the most important part
23:03:28 <tusho> er
23:03:30 <tusho> *played
23:03:44 <oklopol> well didn't Sgeo or someone recognize his picture from somewhere
23:03:52 <oklopol> from something like agora perhaps
23:03:52 <tusho> oh god, if oklopol joined Agora...
23:03:56 <oklopol> :D
23:03:57 <tusho> HE SHOULD DO IT
23:04:01 <oklopol> mwahaha
23:04:05 <tusho> it'd be all crazy all the time
23:04:16 <Sgeo> What picture did I recognize? I don't remember that..
23:04:25 <oklopol> Sgeo: may have been someone else
23:04:31 <tusho> oklopol: http://www.agoranomic.org/cgi-bin/mailman/listinfo/agora-official http://www.agoranomic.org/cgi-bin/mailman/listinfo/agora-business http://www.agoranomic.org/cgi-bin/mailman/listinfo/agora-discussion http://www.listserver.tue.nl/mailman/listinfo/agora http://yoyo.its.monash.edu.au/mailman/listinfo/nomic
23:04:43 <tusho> oklopol: subscribe to all of them, then email agora-business@agoranomic.org saying that you register
23:04:45 <tusho> :DDDDDDDDDD
23:04:52 <oklopol> :D
23:04:56 <oklopol> NOOOOOOOOOOOOOOOOOOOOOO
23:05:03 <tusho> y not
23:05:05 <oklopol> i need to work now!
23:05:14 <tusho> bah
23:08:28 -!- Corun has joined.
23:10:19 -!- Corun has quit (Client Quit).
23:22:42 -!- Sgeo has quit (Connection timed out).
23:43:38 -!- Corun has joined.
23:51:45 <AnMaster> 92.9 %CPU, 36% CPU
23:51:52 <AnMaster> both according to same ps aux
23:51:53 <AnMaster> wtf
23:51:58 -!- timotiis has quit (Read error: 110 (Connection timed out)).
23:51:59 <AnMaster> that shouldn't be possible right
23:52:01 <AnMaster> tusho, !
23:52:04 <AnMaster> any idea?
23:52:08 <tusho> shrug
23:52:39 * tusho sets up an improptu nomic
23:53:28 <tusho> 1. The game is this game. The name of this game is "#esotericia". All players are people who have stated that they wish to play the game. All players of the game. 2. Any player may propose a change to the rules. If all players agree to it, it takes effect.
23:53:32 <tusho> I wish to play.
23:56:16 <tusho> AnMaster: Do you?
23:56:27 <tusho> I'll only play for like 30m :P
23:56:31 <AnMaster> no
23:56:34 <AnMaster> I need to sleep
23:56:36 <tusho> bah
23:56:38 <AnMaster> night
23:56:39 <tusho> nobody needs slee
23:56:40 <tusho> p
23:56:42 <tusho> sleep is an illusion
23:56:43 <tusho> :P
23:56:53 <tusho> Corun: you? You just came in here :-P
←2008-06-23 2008-06-24 2008-06-25→ ↑2008 ↑all