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