00:21:50 -!- Sgeo has joined. 00:28:05 uh... wut 00:28:58 I have a hash table which most definitely contains my value which is {19375}... yet the hash table says it doesn't contain it! 00:30:02 And I even checked its internal stuff, and it's definitely there, with the same hash code as the list I'm using to look the value up... it's all lies, I hate debugging :P 00:32:06 Hmmm. How should I have read() read the socket to search for a newline? What if the next newline is past the end of the receiving buffer? 00:32:08 owned 00:35:18 Have 2 buffers, read everything you can from the first into the second, and then try to read whole lines out of the second whenever you get more data? 00:42:15 Increase the size of the buffer whenever you get a short read. 00:43:08 -!- wooby has joined. 00:44:58 Use line buffering? 00:47:39 What socket? 00:52:36 And how does one read a line from a socket 00:52:37 ? 00:52:53 that's always confused me 00:53:23 Generally you read until you get a '\n' 00:53:32 I mean, that's how I'd do it 00:56:42 well...yeah 00:56:48 But buffering 00:58:12 You can't just read one character at a time 01:03:52 * Sgeo currently has SpySheriff installed 01:03:59 Anyone want me to make a screenshot tour? 01:06:36 -!- oerjan has joined. 01:24:12 please download debian sarge, burn it to dvd and deliver it to my home 01:31:58 -!- GreaseMonkey has joined. 01:33:58 -!- ihope_ has joined. 01:34:44 -!- ihope__ has joined. 01:43:26 -!- ihope__ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09"). 01:49:12 -!- ihope has quit (Connection timed out). 01:50:17 -!- ihope has joined. 01:50:23 Perfect! 01:50:54 Pudding rust monster invisible monster vampire mummy snake gnome! 01:52:12 Newt centaur dwarf ant nymph snake floating eye rat vortex... 01:52:23 -!- ihope_ has quit (Connection timed out). 01:52:35 Actually, #nethack would be a better place to babble incoherently in. 01:55:38 -!- wooby has quit (Read error: 104 (Connection reset by peer)). 01:57:33 -!- wooby has joined. 01:57:40 -!- wooby has quit (Remote closed the connection). 01:59:21 not necessarily: {-\+{--!.($--=*::[__]&1.2)/\1}++'a'--}_main 02:01:44 hmm... 02:02:09 I should construct a Lisp interpreter in Python... that lets me execute it and return a value. 02:02:31 in Python. 02:04:37 sounds like the hardest part would be choosing the data representation 02:05:04 -!- ihope has left (?). 02:14:45 gonna reboot into windows, recording stuff 02:15:19 -!- GreaseMonkey has quit (Client Quit). 02:16:07 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 02:16:10 -!- puzzlet has joined. 02:23:19 I wouldn't even want to attempt a Lisp interpreter. 02:23:50 Maybe maybe a Scheme interpreter some day when I'm feeling adventurous, but it's an insane amount of work. 02:24:39 i was sort of assuming a full Common Lisp implementation was not intended :) 02:25:00 Even just the semantics. 02:25:22 CL, being dirty, is going to be harder to write semantics for than Scheme. 02:25:55 On the other hand, writing interpreters in Lisp are a lot easier. 02:27:17 *is a lot easier. 02:39:32 -!- Razor-X has joined. 02:39:39 -!- Sukoshi has quit (Read error: 104 (Connection reset by peer)). 02:47:34 Guh. I don't like that sound. 02:47:43 I think I'll give my machine a rest. 02:47:48 -!- Razor-X has quit (Remote closed the connection). 02:58:32 -!- oerjan has quit ("Leaving"). 02:59:20 -!- puddy_ has quit (Read error: 110 (Connection timed out)). 03:13:30 -!- Asztal has quit (Read error: 113 (No route to host)). 05:02:53 -!- digital_me has quit (sterling.freenode.net irc.freenode.net). 05:02:53 -!- GregorR has quit (sterling.freenode.net irc.freenode.net). 05:02:54 -!- Sgeo has quit (sterling.freenode.net irc.freenode.net). 05:02:54 -!- sekhmet has quit (sterling.freenode.net irc.freenode.net). 05:02:56 -!- mtve has quit (sterling.freenode.net irc.freenode.net). 05:02:56 -!- bsmntbombdood has quit (sterling.freenode.net irc.freenode.net). 05:03:07 -!- GregorR has joined. 05:03:07 -!- digital_me has joined. 05:03:07 -!- sekhmet has joined. 05:03:07 -!- Sgeo has joined. 05:03:07 -!- bsmntbombdood has joined. 05:03:07 -!- mtve has joined. 05:10:01 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 05:50:26 -!- anonfunc has joined. 06:07:39 -!- digital_me has quit (Read error: 110 (Connection timed out)). 07:16:09 -!- anonfunc has quit. 07:58:42 damn 07:58:44 http://en.wikipedia.org/wiki/OISC 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:01:35 * bsmntbombdood likey 10:37:53 -!- wooby has joined. 11:03:31 -!- jix_ has joined. 11:04:58 http://www.quinapalus.com/wi-java.html 11:05:02 someone kill me :( 11:06:35 okokoko: i get just black background with gappletviewer-4.1 h 11:06:59 ie is the only one i got it working with 11:07:03 wait 11:07:24 http://www.quinapalus.com/wi-java.html 11:07:27 eh 11:07:30 now i see 11:07:45 http://www.quinapalus.com/wi-index.html 11:07:54 the copy-paste doesn't work :\ 11:08:01 use gnu screen 11:08:14 me windows-boy 11:08:18 now away, please send me the source and i'll take a look 11:08:47 k 11:08:48 i will 11:11:30 i couln't send it 11:11:57 it's coded in wireworld tho, so i'm not sure if you'd enjoy the source that much 11:14:21 i could learn 11:21:09 Ooh, wireworld. Now that was funky. 11:27:31 Kind-of reminds me of the OpenTTD logic nastiness. 11:34:50 Wireworld is so funny 11:35:27 playing with electrons, designing your own components 11:36:40 unfortunately the best Wireworld implementation I've known was for Windows and not very advanced (quite fast though) 11:41:17 xlife claims to support Wireworld but the rules are incorrect 11:42:58 you can implement wireworld yourself in half an hour 11:43:12 it's pretty simple 11:43:25 not a fast and comfortable implementation though 11:43:31 really? 11:43:31 I know it's simple 11:43:47 well an editor will take long 11:43:48 wure 11:43:51 *s 11:44:11 well, you need to track the positions of the electrons separately in order to speed the calculations up 11:44:16 and prolly you'd like to make something, not just watch, so wtf am i whining 11:44:29 yes, that's easy 11:44:54 not a 1/2 hour project (for me anyway, I'm a bit slow programming) 11:44:54 and it's the only optimization i can think of 11:45:06 slow bit programming 11:45:13 that's wireworld 11:45:16 :D 11:45:18 :) 11:46:22 hm, thinking about it, you also have to track electron tails if you don't want to leave 'stale' trails 11:48:01 e.g. when two electrons annihilate each other (as if one of them were a positron) there's a state in which the tails remain 11:48:36 You can track "interesting regions". And if you _really_ want to optimize, you can analyze the device. Replace wires with delays, so no need to compute the individual electron-movement-transitions. Maybe even recognize recognizable logic gates. 11:49:09 in half an hour? :D 11:49:17 Well, of course not. 11:49:26 hehe, I know, just kidding 11:50:13 but it's harder to see it in movement then 11:50:53 * pgimeno considers taking a look at xlife's source to see if he can hack some true-Wireworld code 11:50:59 Yes, but obviously you want your wireworld "code" run as fast as inhumanly possible; after all, why did you write it in wireworld if efficiency wasn't an issue? 11:52:04 yeah, you're right, I should write a wireworld *compiler* 11:53:27 or even better, build the circuits with electronic components instead 11:55:29 You could write a wireworld-to-fpga thing. Although then you'd probably actually need to recognize the function of all blocks in the "source", I don't think emulating the wireworld rules with a fpga would work very well. 12:04:04 in particular, xlife uses a Von Neumann neighbourhood 12:04:16 xlife's implementation of Wireworld, I mean 12:10:02 bah, xlife is too buggy 12:13:56 -!- tgwizard has joined. 12:25:59 -!- Puddy_ has joined. 12:43:47 -!- ivan` has quit (Read error: 104 (Connection reset by peer)). 12:44:17 -!- Puddy_ has quit ("BitchX-1.1-final -- just do it."). 12:44:21 -!- ivan` has joined. 14:02:43 -!- Asztal has joined. 14:42:03 -!- CakeProphet_ has joined. 14:49:17 -!- CakeProphet has quit (Read error: 145 (Connection timed out)). 14:52:03 -!- CakeProphet_ has changed nick to CakeProphet. 15:32:58 -!- aduket has joined. 16:00:22 -!- aduket has quit ("So long, and thanks for all the fish."). 16:32:38 -!- Asztal has quit (Read error: 113 (No route to host)). 16:44:56 -!- CakeProphet has quit ("haaaaaaaaaa"). 17:12:56 -!- wooby has quit. 17:25:10 -!- Asztal has joined. 17:32:07 -!- Sukoshi has joined. 19:00:14 How do you do IO without adding an instruction for it? 19:03:22 Memory mapped I think, but how does the intrepreter know when to output? 19:08:35 -!- ihope has joined. 19:08:41 Do you just catch any and all writes/reads to the special addresses? 19:09:11 I want an enzyme language. It'd be fun. 19:09:46 ihope: How do you do memory mapped io? 19:10:04 In an enzyme language? 19:10:07 no 19:10:28 I think it's often just catching reading and writing to certain addresses, yeah. 19:10:59 Maybe it'd just catch writing, and then it'd automatically write things into memory. 19:17:45 * bsmntbombdood starts coding 19:37:48 So yeah, enzymes. (enzymes - inhibitors) `max` cofactors = active enzymes, and an active enzyme performs whatever chemical reaction every tick. 19:38:48 Every possible input has a chemical, and every possible output has a chemical. 19:38:58 If something can be both input and output, it has two chemicals. 19:39:55 And there's also a chemical called inputose. Whenever something is input, one unit of inputose is converted to the input chemical. 19:40:49 If an output chemical is ever generated, it is immediately removed and the corresponding thing is output. 19:42:33 Pretty simple. 19:47:06 What's more usefull, number output or ascii output? 19:47:49 You can't output ASCII by outputting numbers. 19:47:55 You can output numbers by outputting ASCII. 19:48:38 hmm 20:17:19 hrm 20:17:53 * bsmntbombdood is confused 20:22:15 confusion over 20:23:17 octet output sounds even more useful 20:23:30 hmm? 20:23:54 then you could output e.g. JPEG images too 20:30:17 make it configurable! 20:39:29 That too. 20:42:24 -!- Asztal has quit (Read error: 104 (Connection reset by peer)). 20:51:14 yay for regexs! 20:51:20 -!- Asztal has joined. 20:56:28 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)"). 21:07:25 -!- ivan`_ has joined. 21:16:13 -!- CakeProphet has joined. 21:26:19 -!- ivan` has quit (Read error: 110 (Connection timed out)). 21:26:21 -!- ivan`_ has changed nick to ivan`. 22:00:26 -!- ivan` has quit (Read error: 104 (Connection reset by peer)). 22:01:07 -!- ivan` has joined. 22:37:20 done with the very fragile and slow assembler 22:41:10 -!- pikhq has joined. 22:41:23 now debugging the crappy vm 22:42:32 * pikhq is releasing a fully documented build of BFM, along with a build of Basm using current best practices, as soon as he fixes a bug that's suddenly popped up. 22:43:33 . . . Yes. I'm going to have a *documented* version of BFM. Crazy, no? 22:48:34 crazy 22:48:51 And now BFM is even well-designed, too. 22:49:22 I'm guilty of a crime against Esome, due to this craziness, no doubt. 22:55:52 OMG IT WORKS 22:56:00 * pikhq applaudes 22:56:03 * bsmntbombdood takes off his pants and dances 22:56:10 * pikhq looks away 22:57:04 * bsmntbombdood puts them back on 22:58:38 hrm 22:59:27 it not work so good 23:02:10 :( 23:02:37 That's because you took off your pants. 23:02:44 I put them back on! 23:03:13 And the program's still suffering from PTSD. 23:05:05 PTSD? 23:06:36 Post-traumatic stress disorder. 23:06:42 aaah 23:08:30 step 23:08:32 ooops 23:23:05 In my opinion, once a language is proven Turing-complete, it's done. 23:23:18 ihope: Then BFM was done months ago. 23:23:29 ihope: um no 23:23:32 Not that I don't like to see fancy new languages that are obviously Turing-complete. :-) 23:23:44 Like, when I wrote brainfucktobfm.tcl. . .. 23:25:38 woot fixed it 23:25:52 assembler didn't calculate offsets right 23:28:17 ok, I have an assembler and virtual machine for an OISC 23:28:51 sample code: http://pastebin.ca/290377 23:28:52 Nice. 23:29:04 that reads a char, adds one, prints it out 23:29:12 then prints a newline 23:32:21 http://bsmntbombdood.mooo.com/oisc.tar.gz , be careful, the assembler and vm are both fragile, no error checking 23:34:32 * pikhq will probably want to fix that for you some time 23:35:32 The one instruction is "subtract and branch if not positive", by the way 23:35:55 pikhq: Go right ahead 23:36:31 bsmntbombdood: Need something to do tonight. ;) 23:37:09 -!- oerjan has joined. 23:37:17 A line of "a b c": says contents of b = contents of b minus contents of a; if b <= 0, jump to c 23:37:37 Obviously. ;) 23:37:46 OI(S)C ... 23:38:09 oerjan: yeah 23:38:20 Is that the new b or the old b? 23:38:20 oerjan: Soon, I will have a documented BFM build. I won't have to answer as many questions. 23:38:23 Hallelujah. 23:38:27 ihope: new b 23:38:33 oerjan: http://bsmntbombdood.mooo.com/oisc.tar.gz 23:38:40 And I mean in the comparison of course. 23:39:00 if (b = b-a <= 0) goto c; 23:39:15 like that? 23:39:17 lindi-: not quite 23:39:32 if (*b = *b-*a <= 0) goto c; 23:39:50 bsmntbombdood: what's the difference if you can't change "b" ? 23:40:02 ? 23:40:11 ok sure if you can change where the pointer points to 23:40:17 a, b, and c are all adresses 23:40:22 ok then 23:40:27 not literal values 23:40:28 it makes more sense 23:41:22 oh, and if c == -1, go to the next triplet no matter what 23:42:02 if (m[p+1] = m[p] - m[p+1] <= 0) p = m[p+2]; else p+=3; 23:44:17 or maybe not 23:45:14 if ((m[p+1] = m[p] - m[p+1] <= 0) || m[p+2] == -1) p = m[p+2]; else p+=3; 23:45:17 hm... if you made the addresses relative then c == 3 could mean that without an exception. 23:45:50 yeah, but they're not relative 23:46:39 erm 23:47:07 meh, just read the source 23:49:32 * pikhq wishes to note that, if you used GNU C, creating the memory would be somewhat easier. 23:49:49 ? 23:49:50 GNU C supports, among other things, arrays with the size defined at compile time. 23:49:53 Err. 23:49:54 Runtime. 23:49:58 stick to ANSI C ;) 23:49:59 :-) 23:50:03 . . . 23:50:04 Wait. 23:50:04 malloc is easy 23:50:31 Why the hell are you using malloc if the size of the VM's memory doesn't change at runtime, anyways? 23:50:58 i haven't even seen the program :) 23:51:08 pikhq: No where in that file is malloc used 23:51:42 bsmntbombdood: memset, however, is. 23:51:49 . . . Oh. 23:51:53 That doesn't allocate anything. 23:51:54 XD 23:52:10 int memory[VM_MEMSIZE]; 23:52:17 yeah ;) 23:52:43 Ignore me while I start thinking. 23:52:51 how large is VM_MEMSIZE? 23:52:54 What does memset do? 23:53:02 And why is that file named .tar.gz since it's not gzipped? 23:53:09 #define VM_MEMSIZE 65536 23:53:19 ihope: sets a block of memory to a value 23:53:27 ihope: Look up in man pages. 23:53:38 64k * sizeof(int) bytes is a bit much to allocate from the stack. 23:53:52 fizzie: oops 23:53:57 The stack? 23:54:30 int foo[bar]; is from stack 23:54:33 It's a local ("automatic") variable (and not declared static), so it will in most implementations allocated from the (call) stack,. 23:54:35 malloc would use heap 23:56:31 fizzie: Does it matter? 23:56:45 And "static int foo[bar];" would usually use a statically allocated address from the data segment, which might well be faster than accessing via a pointer to the heap. 23:56:54 Well, it might not work on some MS-DOS compilers. 23:57:29 What's the difference between static and dynamic? 23:58:04 (Although malloc()ing that many bytes from the heap might not work either on some MS-DOS compilers/runtimes, at least with particular compiler flags.) 23:58:56 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 23:59:48 in this context the opposite of static is automatic, not dynamic