←2006-12-22 2006-12-23 2006-12-24→ ↑2006 ↑all
00:21:50 -!- Sgeo has joined.
00:28:05 <Asztal> uh... wut
00:28:58 <Asztal> 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 <Asztal> 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 <Sukoshi> 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 <okokoko> owned
00:35:18 <Asztal> 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 <GregorR> Increase the size of the buffer whenever you get a short read.
00:43:08 -!- wooby has joined.
00:44:58 <ihope> Use line buffering?
00:47:39 <bsmntbombdood> What socket?
00:52:36 <bsmntbombdood> And how does one read a line from a socket
00:52:37 <bsmntbombdood> ?
00:52:53 <bsmntbombdood> that's always confused me
00:53:23 <Asztal> Generally you read until you get a '\n'
00:53:32 <Asztal> I mean, that's how I'd do it
00:56:42 <bsmntbombdood> well...yeah
00:56:48 <bsmntbombdood> But buffering
00:58:12 <bsmntbombdood> You can't just read one character at a time
01:03:52 * Sgeo currently has SpySheriff installed
01:03:59 <Sgeo> Anyone want me to make a screenshot tour?
01:06:36 -!- oerjan has joined.
01:24:12 <puddy_> 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 <ihope> Perfect!
01:50:54 <ihope> Pudding rust monster invisible monster vampire mummy snake gnome!
01:52:12 <ihope> Newt centaur dwarf ant nymph snake floating eye rat vortex...
01:52:23 -!- ihope_ has quit (Connection timed out).
01:52:35 <ihope> 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 <oerjan> not necessarily: {-\+{--!.($--=*::[__]&1.2)/\1}++'a'--}_main
02:01:44 <CakeProphet> hmm...
02:02:09 <CakeProphet> I should construct a Lisp interpreter in Python... that lets me execute it and return a value.
02:02:31 <CakeProphet> in Python.
02:04:37 <oerjan> sounds like the hardest part would be choosing the data representation
02:05:04 -!- ihope has left (?).
02:14:45 <GreaseMonkey> 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 <Sukoshi> I wouldn't even want to attempt a Lisp interpreter.
02:23:50 <Sukoshi> Maybe maybe a Scheme interpreter some day when I'm feeling adventurous, but it's an insane amount of work.
02:24:39 <oerjan> i was sort of assuming a full Common Lisp implementation was not intended :)
02:25:00 <Sukoshi> Even just the semantics.
02:25:22 <Sukoshi> CL, being dirty, is going to be harder to write semantics for than Scheme.
02:25:55 <Sukoshi> On the other hand, writing interpreters in Lisp are a lot easier.
02:27:17 <Sukoshi> *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 <Razor-X> Guh. I don't like that sound.
02:47:43 <Razor-X> 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 <bsmntbombdood> damn
07:58:44 <bsmntbombdood> 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 <okokoko> http://www.quinapalus.com/wi-java.html
11:05:02 <okokoko> someone kill me :(
11:06:35 <lindi-> okokoko: i get just black background with gappletviewer-4.1 h
11:06:59 <okokoko> ie is the only one i got it working with
11:07:03 <okokoko> wait
11:07:24 <okokoko> http://www.quinapalus.com/wi-java.html
11:07:27 <okokoko> eh
11:07:30 <okokoko> now i see
11:07:45 <okokoko> http://www.quinapalus.com/wi-index.html
11:07:54 <okokoko> the copy-paste doesn't work :\
11:08:01 <lindi-> use gnu screen
11:08:14 <okokoko> me windows-boy
11:08:18 <lindi-> now away, please send me the source and i'll take a look
11:08:47 <okokoko> k
11:08:48 <okokoko> i will
11:11:30 <okokoko> i couln't send it
11:11:57 <okokoko> it's coded in wireworld tho, so i'm not sure if you'd enjoy the source that much
11:14:21 <lindi-> i could learn
11:21:09 <fizzie> Ooh, wireworld. Now that was funky.
11:27:31 <fizzie> Kind-of reminds me of the OpenTTD logic nastiness.
11:34:50 <pgimeno> Wireworld is so funny
11:35:27 <pgimeno> playing with electrons, designing your own components
11:36:40 <pgimeno> unfortunately the best Wireworld implementation I've known was for Windows and not very advanced (quite fast though)
11:41:17 <pgimeno> xlife claims to support Wireworld but the rules are incorrect
11:42:58 <okokoko> you can implement wireworld yourself in half an hour
11:43:12 <okokoko> it's pretty simple
11:43:25 <pgimeno> not a fast and comfortable implementation though
11:43:31 <okokoko> really?
11:43:31 <pgimeno> I know it's simple
11:43:47 <okokoko> well an editor will take long
11:43:48 <okokoko> wure
11:43:51 <okokoko> *s
11:44:11 <pgimeno> well, you need to track the positions of the electrons separately in order to speed the calculations up
11:44:16 <okokoko> and prolly you'd like to make something, not just watch, so wtf am i whining
11:44:29 <okokoko> yes, that's easy
11:44:54 <pgimeno> not a 1/2 hour project (for me anyway, I'm a bit slow programming)
11:44:54 <okokoko> and it's the only optimization i can think of
11:45:06 <okokoko> slow bit programming
11:45:13 <okokoko> that's wireworld
11:45:16 <pgimeno> :D
11:45:18 <okokoko> :)
11:46:22 <pgimeno> hm, thinking about it, you also have to track electron tails if you don't want to leave 'stale' trails
11:48:01 <pgimeno> 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 <fizzie> 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 <pgimeno> in half an hour? :D
11:49:17 <fizzie> Well, of course not.
11:49:26 <pgimeno> hehe, I know, just kidding
11:50:13 <pgimeno> 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 <fizzie> 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 <pgimeno> yeah, you're right, I should write a wireworld *compiler*
11:53:27 <pgimeno> or even better, build the circuits with electronic components instead
11:55:29 <fizzie> 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 <pgimeno> in particular, xlife uses a Von Neumann neighbourhood
12:04:16 <pgimeno> xlife's implementation of Wireworld, I mean
12:10:02 <pgimeno> 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 <bsmntbombdood> How do you do IO without adding an instruction for it?
19:03:22 <bsmntbombdood> Memory mapped I think, but how does the intrepreter know when to output?
19:08:35 -!- ihope has joined.
19:08:41 <bsmntbombdood> Do you just catch any and all writes/reads to the special addresses?
19:09:11 <ihope> I want an enzyme language. It'd be fun.
19:09:46 <bsmntbombdood> ihope: How do you do memory mapped io?
19:10:04 <ihope> In an enzyme language?
19:10:07 <bsmntbombdood> no
19:10:28 <ihope> I think it's often just catching reading and writing to certain addresses, yeah.
19:10:59 <ihope> Maybe it'd just catch writing, and then it'd automatically write things into memory.
19:17:45 * bsmntbombdood starts coding
19:37:48 <ihope> So yeah, enzymes. (enzymes - inhibitors) `max` cofactors = active enzymes, and an active enzyme performs whatever chemical reaction every tick.
19:38:48 <ihope> Every possible input has a chemical, and every possible output has a chemical.
19:38:58 <ihope> If something can be both input and output, it has two chemicals.
19:39:55 <ihope> 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 <ihope> If an output chemical is ever generated, it is immediately removed and the corresponding thing is output.
19:42:33 <ihope> Pretty simple.
19:47:06 <bsmntbombdood> What's more usefull, number output or ascii output?
19:47:49 <ihope> You can't output ASCII by outputting numbers.
19:47:55 <ihope> You can output numbers by outputting ASCII.
19:48:38 <bsmntbombdood> hmm
20:17:19 <bsmntbombdood> hrm
20:17:53 * bsmntbombdood is confused
20:22:15 <bsmntbombdood> confusion over
20:23:17 <lindi-> octet output sounds even more useful
20:23:30 <bsmntbombdood> hmm?
20:23:54 <lindi-> then you could output e.g. JPEG images too
20:30:17 <bsmntbombdood> make it configurable!
20:39:29 <ihope> That too.
20:42:24 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
20:51:14 <bsmntbombdood> 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 <bsmntbombdood> done with the very fragile and slow assembler
22:41:10 -!- pikhq has joined.
22:41:23 <bsmntbombdood> 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 <pikhq> . . . Yes. I'm going to have a *documented* version of BFM. Crazy, no?
22:48:34 <bsmntbombdood> crazy
22:48:51 <pikhq> And now BFM is even well-designed, too.
22:49:22 <pikhq> I'm guilty of a crime against Esome, due to this craziness, no doubt.
22:55:52 <bsmntbombdood> 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 <bsmntbombdood> hrm
22:59:27 <bsmntbombdood> it not work so good
23:02:10 <bsmntbombdood> :(
23:02:37 <pikhq> That's because you took off your pants.
23:02:44 <bsmntbombdood> I put them back on!
23:03:13 <pikhq> And the program's still suffering from PTSD.
23:05:05 <bsmntbombdood> PTSD?
23:06:36 <pikhq> Post-traumatic stress disorder.
23:06:42 <bsmntbombdood> aaah
23:08:30 <bsmntbombdood> step
23:08:32 <bsmntbombdood> ooops
23:23:05 <ihope> In my opinion, once a language is proven Turing-complete, it's done.
23:23:18 <pikhq> ihope: Then BFM was done months ago.
23:23:29 <bsmntbombdood> ihope: um no
23:23:32 <ihope> Not that I don't like to see fancy new languages that are obviously Turing-complete. :-)
23:23:44 <pikhq> Like, when I wrote brainfucktobfm.tcl. . ..
23:25:38 <bsmntbombdood> woot fixed it
23:25:52 <bsmntbombdood> assembler didn't calculate offsets right
23:28:17 <bsmntbombdood> ok, I have an assembler and virtual machine for an OISC
23:28:51 <bsmntbombdood> sample code: http://pastebin.ca/290377
23:28:52 <pikhq> Nice.
23:29:04 <bsmntbombdood> that reads a char, adds one, prints it out
23:29:12 <bsmntbombdood> then prints a newline
23:32:21 <bsmntbombdood> 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 <bsmntbombdood> The one instruction is "subtract and branch if not positive", by the way
23:35:55 <bsmntbombdood> pikhq: Go right ahead
23:36:31 <pikhq> bsmntbombdood: Need something to do tonight. ;)
23:37:09 -!- oerjan has joined.
23:37:17 <bsmntbombdood> 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 <pikhq> Obviously. ;)
23:37:46 <oerjan> OI(S)C ...
23:38:09 <bsmntbombdood> oerjan: yeah
23:38:20 <ihope> Is that the new b or the old b?
23:38:20 <pikhq> oerjan: Soon, I will have a documented BFM build. I won't have to answer as many questions.
23:38:23 <pikhq> Hallelujah.
23:38:27 <bsmntbombdood> ihope: new b
23:38:33 <bsmntbombdood> oerjan: http://bsmntbombdood.mooo.com/oisc.tar.gz
23:38:40 <ihope> And I mean in the comparison of course.
23:39:00 <lindi-> if (b = b-a <= 0) goto c;
23:39:15 <lindi-> like that?
23:39:17 <bsmntbombdood> lindi-: not quite
23:39:32 <bsmntbombdood> if (*b = *b-*a <= 0) goto c;
23:39:50 <lindi-> bsmntbombdood: what's the difference if you can't change "b" ?
23:40:02 <bsmntbombdood> ?
23:40:11 <lindi-> ok sure if you can change where the pointer points to
23:40:17 <bsmntbombdood> a, b, and c are all adresses
23:40:22 <lindi-> ok then
23:40:27 <bsmntbombdood> not literal values
23:40:28 <lindi-> it makes more sense
23:41:22 <bsmntbombdood> oh, and if c == -1, go to the next triplet no matter what
23:42:02 <oerjan> if (m[p+1] = m[p] - m[p+1] <= 0) p = m[p+2]; else p+=3;
23:44:17 <oerjan> or maybe not
23:45:14 <bsmntbombdood> if ((m[p+1] = m[p] - m[p+1] <= 0) || m[p+2] == -1) p = m[p+2]; else p+=3;
23:45:17 <oerjan> hm... if you made the addresses relative then c == 3 could mean that without an exception.
23:45:50 <bsmntbombdood> yeah, but they're not relative
23:46:39 <bsmntbombdood> erm
23:47:07 <bsmntbombdood> 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 <bsmntbombdood> ?
23:49:50 <pikhq> GNU C supports, among other things, arrays with the size defined at compile time.
23:49:53 <pikhq> Err.
23:49:54 <pikhq> Runtime.
23:49:58 <lindi-> stick to ANSI C ;)
23:49:59 <ihope> :-)
23:50:03 <pikhq> . . .
23:50:04 <pikhq> Wait.
23:50:04 <lindi-> malloc is easy
23:50:31 <pikhq> Why the hell are you using malloc if the size of the VM's memory doesn't change at runtime, anyways?
23:50:58 <lindi-> i haven't even seen the program :)
23:51:08 <bsmntbombdood> pikhq: No where in that file is malloc used
23:51:42 <pikhq> bsmntbombdood: memset, however, is.
23:51:49 <pikhq> . . . Oh.
23:51:53 <pikhq> That doesn't allocate anything.
23:51:54 <pikhq> XD
23:52:10 <bsmntbombdood> int memory[VM_MEMSIZE];
23:52:17 <bsmntbombdood> yeah ;)
23:52:43 <pikhq> Ignore me while I start thinking.
23:52:51 <lindi-> how large is VM_MEMSIZE?
23:52:54 <ihope> What does memset do?
23:53:02 <fizzie> And why is that file named .tar.gz since it's not gzipped?
23:53:09 <bsmntbombdood> #define VM_MEMSIZE 65536
23:53:19 <bsmntbombdood> ihope: sets a block of memory to a value
23:53:27 <pikhq> ihope: Look up in man pages.
23:53:38 <fizzie> 64k * sizeof(int) bytes is a bit much to allocate from the stack.
23:53:52 <bsmntbombdood> fizzie: oops
23:53:57 <ihope> The stack?
23:54:30 <lindi-> int foo[bar]; is from stack
23:54:33 <fizzie> It's a local ("automatic") variable (and not declared static), so it will in most implementations allocated from the (call) stack,.
23:54:35 <lindi-> malloc would use heap
23:56:31 <bsmntbombdood> fizzie: Does it matter?
23:56:45 <fizzie> 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 <fizzie> Well, it might not work on some MS-DOS compilers.
23:57:29 <ihope> What's the difference between static and dynamic?
23:58:04 <fizzie> (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 <oerjan> in this context the opposite of static is automatic, not dynamic
←2006-12-22 2006-12-23 2006-12-24→ ↑2006 ↑all