←2006-11-02 2006-11-03 2006-11-04→ ↑2006 ↑all
00:00:58 -!- Razor-X` has changed nick to Razor-X.
00:05:19 -!- xor has changed nick to bsmntbombdood.
00:18:59 -!- bsmntbombdood has changed nick to xor_.
01:09:25 -!- oerjan has joined.
01:18:51 -!- sekhmet has quit ("bleh").
01:50:36 -!- sekhmet has joined.
02:33:47 -!- xor_ has changed nick to bsmntbombdood.
02:45:26 -!- calamari has joined.
02:45:43 <calamari> hi
02:46:52 <CakeProphet> Heya.
02:47:24 * bsmntbombdood eats calamari
02:55:06 -!- thematrixeatsyou has joined.
02:55:15 <thematrixeatsyou> hi
02:55:46 <oerjan> hi and beware of the cannibals.
02:55:59 * bsmntbombdood eats thematrixeatsyou
02:56:37 * thematrixeatsyou responds by tasting like chocolate
02:56:48 <bsmntbombdood> mmmm chocolate
02:58:27 <thematrixeatsyou> endorse cannabalism! eat dipshits!
03:00:23 <oerjan> somehow that doesn't sound very tasty.
03:01:39 <thematrixeatsyou> !funge93 0"yrgnuh saw doodbmobtnmsb :detceted msilabannaC">:#,_@
03:01:42 <EgoBot> Cannabalism detected: bsmntbombdood was hungry
03:02:03 <thematrixeatsyou> damn, why did gregorR take out the !cat command? :(
03:02:10 <bsmntbombdood> I thought EgoBot did that by itself for a minute
03:02:15 <oerjan> !ps d
03:02:18 <EgoBot> 1 thematrixeatsyou: funge93
03:02:20 <EgoBot> 2 oerjan: ps
03:02:27 <oerjan> !ps
03:02:28 <pikhq> It's a daemon.
03:02:30 <EgoBot> 1 thematrixeatsyou: funge93
03:02:33 <EgoBot> 2 oerjan: ps
03:02:42 <pikhq> !daemon cat bf ,[.,]
03:02:50 <pikhq> !cat Welcome back, cat.
03:02:50 <thematrixeatsyou> shit, i did !funge93 0
03:02:52 <bsmntbombdood> oooooh
03:02:52 <EgoBot> Welcome back, cat.
03:03:10 <EgoBot> Cannabalism detected: bsmntbombdood was hungry
03:03:15 <thematrixeatsyou> better :D
03:03:22 <pikhq> Besides, glass is nicer.
03:03:27 <bsmntbombdood> whoa howd you do that
03:03:47 <pikhq> !daemon cat bf ,[.,]
03:03:57 <CakeProphet> Hmmm... building a Brainfuck interpreter in a 2 dimensional map-like programming language is pretty interesting.
03:04:00 <CakeProphet> It's like a puzzle.
03:04:02 <EgoBot> thematrixeatsyou has special powers, admire him
03:04:13 <thematrixeatsyou> lemme guess, befunge?
03:04:20 <CakeProphet> Nah... it's something I'm working on.
03:05:01 <pikhq> !glass {M[m(_o)O!"See? Glass is t3h nice"(_o)o.?]}
03:05:04 <EgoBot> See? Glass is t3h nice
03:05:40 <CakeProphet> Oh... well after briefly reading how Befunge works... my language is looking a lot like it. :P
03:06:20 <CakeProphet> ~
03:06:22 <CakeProphet> >Hello,\ World!#
03:06:27 <CakeProphet> That's the Hello World program.
03:07:37 <bsmntbombdood> >"Hello, World"[<]>[.>]
03:07:52 <CakeProphet> Hmmm... definetely different.
03:07:52 <bsmntbombdood> brain fuck with strings!
03:08:13 <CakeProphet> but the concept of befunge is similar to this one...
03:10:00 <pikhq> !glass {M[m(_i)I!(_o)O!(char)(_i)c.?=(noteof)(_i)e.?=/(noteof)(char)(_o)o.?(char)(_i)c.?=(noteof)(_i)e.?\]}
03:10:03 <pikhq> !ps d
03:10:06 <EgoBot> 1 pikhq: glass
03:10:08 <EgoBot> 2 pikhq: daemon cat bf
03:10:10 <EgoBot> 3 pikhq: ps
03:10:14 <pikhq> If I did that right, it's a Glass Brainfuck program.
03:10:18 <pikhq> Cat.
03:10:22 <pikhq> !i 1 Foo
03:10:45 <pikhq> If I *didn't* do it right, as I believe I have, it's a bunch of gibberish.
03:10:46 <pikhq> !ps
03:10:50 <EgoBot> 1 pikhq: ps
03:10:54 <bsmntbombdood> brainfuck with strings!
03:11:03 <pikhq> Ahah.
03:11:18 * bsmntbombdood giggles
03:11:23 <CakeProphet> Cat in Cake's Concept Language is:
03:11:23 <pikhq> Did it slightly wrong.
03:11:40 <CakeProphet> ~
03:11:42 <CakeProphet> ;
03:11:43 <CakeProphet> #
03:12:47 <pikhq> !glass {M[m(_i)I!(_o)O!(_a)A!(char)(_i)c.?=(noteof)(0)(_i)e.?(_a)e.?=/(noteof)(char)(_o)o.?(char)(0)(_i)c.?(_a)e.?=(noteof)(_i)e.?\]}
03:12:53 <pikhq> !i 1 Foo?
03:12:59 <pikhq> !ps
03:13:02 <EgoBot> 1 pikhq: ps
03:13:30 <pikhq> I'mma gonna stop the glassing.
03:14:02 * bsmntbombdood is proud of hisself
03:14:31 <pikhq> Now go and code it.
03:14:46 <bsmntbombdood> bah
03:14:47 <CakeProphet> I think one of the main differences in Befunge and this language is that this language can have more than one pointer at a time, and have multiple stackes which are represented in the codespace by characters.
03:14:49 <bsmntbombdood> don't feel like it
03:24:16 <CakeProphet> ~ #This is a mouse... a pointer character. Default direction is set to south
03:24:17 <CakeProphet> ;>! #-semicolon is users input
03:24:19 <CakeProphet> * <
03:24:20 <CakeProphet> ! < #continuously append all values in the mouse to all stacks/queues adjacent to the asterick
03:24:22 <CakeProphet> >$ (code) *^
03:24:24 <CakeProphet> ~ #This mouse represents each value in the input...
03:24:25 <EgoBot> Huh?
03:24:25 <CakeProphet> ^
03:24:27 <CakeProphet>
03:24:28 <CakeProphet>
03:24:29 <CakeProphet> muhahahahaha
03:24:31 <CakeProphet> foreeach loop
03:39:58 -!- Asztal has joined.
04:04:49 * pikhq prefers Dimensifuck.
04:15:45 <calamari> hrm
04:16:16 <calamari> anyone know of a way of setting nonblocking input so that a read request always returns immediately?
04:16:37 <calamari> I can do it inside a c program, but it doesn't seem to persist outside it
04:18:18 <thematrixeatsyou> hi calamari
04:18:48 <thematrixeatsyou> what lang are you using?
04:18:51 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
04:19:09 <pikhq> Wouldn't you just set stdin to be unbuffered?
04:19:34 <calamari> pikhq: setting it unbuffered means I can press one char without enter
04:19:54 <thematrixeatsyou> for ASM: MOV dx,0060 ; IN al,dx
04:20:13 <thematrixeatsyou> oh
04:20:32 <thematrixeatsyou> getch() in C, what in what?
04:20:43 <calamari> what in what?
04:20:52 <thematrixeatsyou> what lang are you using?
04:20:54 <calamari> bf
04:21:00 <calamari> egobfi8
04:21:17 <thematrixeatsyou> i use brainfucked
04:21:32 <thematrixeatsyou> very small, very nice
04:21:35 <calamari> maybe it's just something Gregor would have to implement in the interpreter
04:21:41 <thematrixeatsyou> and doesn't buffer
04:21:45 <thematrixeatsyou> yah
04:21:53 <calamari> buffering != blocking
04:22:00 <oerjan> you could probably use a pipe
04:22:50 <oerjan> or maybe not.
04:23:06 <calamari> setting unbuffered is easy, can use stty for that
04:23:14 <calamari> setting nonblocking is hard
04:23:30 <oerjan> how do you set nonblocking in C?
04:23:44 <calamari> oerjan: in C you can do this:
04:23:58 <calamari> long flags = fcntl(STDIN_FILENO, F_GETFL);
04:23:58 <calamari> fcntl(STDIN_FILENO, F_SETFL, flags | O_NONBLOCK);
04:24:20 <calamari> but it seems to stop working once the program exits
04:25:34 * calamari gets an idea
04:27:15 <oerjan> but getc would block anyhow wouldn't it?
04:27:44 <oerjan> are you trying to change terminal settings?
04:27:48 <pikhq> *echm* How, exactly, are you supposed to keep getting input after a program exiting?
04:28:20 <calamari> yay!
04:29:06 <oerjan> you succeeded?
04:29:18 <calamari> yes
04:29:36 <calamari> I continued the C program
04:30:06 <calamari> put in an endless while loop, it reads a char, if its -1 it outputs char 0, otherwiste it outputs the char it read
04:30:21 <calamari> so then I pipe that to the program
04:30:34 <calamari> nonblock | egobfi8 program.b
04:31:23 <oerjan> right. however doesn't that prevent you from detecting real EOF?
04:32:08 <calamari> yeah, I suppose
04:32:14 <calamari> can't have it all
04:33:12 <pikhq> Just if(feof(stdin)) putc(FEOF);, I think. ;)
04:34:10 <calamari> ehh whatever
04:34:27 <calamari> the whole idea of this is that input is from the keyboard
04:34:40 <calamari> so eof doesn't matter
04:34:53 <pikhq> ^D says otherwise.
04:35:19 <calamari> who says I have to accept ^D
04:35:30 <calamari> check your stty manual ;)
04:35:34 <oerjan> you could always check for the value 4.
04:35:51 <pikhq> Then how are you supposed to quite a program?
04:35:57 <pikhq> quit.
04:36:14 <oerjan> unbuffered input doesn't have ^D handling anyhow.
04:36:24 <oerjan> i think.
04:36:39 <calamari> pikhq: run a dos program.. they had many ways of exiting their programs..
04:36:52 <calamari> I'll probably use Esc
04:37:09 <pikhq> I'd prefer, say, EOF.
04:37:24 <calamari> pikhq: lol
04:37:50 <calamari> so which char would you overwrite for eof.. 1?
04:38:00 <calamari> or 255
04:38:01 <oerjan> as i said, check for the value 4 = ^D
04:39:01 <pikhq> Output EOF; it's a declared constant in stdio.h that should *gasp* send EOF down the line. (IIRC)
04:39:29 <calamari> oerjan: yep, 4 works
04:39:50 <calamari> pikhq: dude, bf is 8 bits
04:40:02 <calamari> (usually)
04:40:16 <pikhq> calamari: Dude, let egobfi8 handle the EOF->Brainfuck char conversion.
04:40:22 <pikhq> (it defaults to 0)
04:40:54 <calamari> I'm using 0 already
04:41:04 <calamari> to indicate no input was available
04:41:30 <pikhq> You've got "nonblock" handling EOF->0 conversion, when egobfi8 already handles that.
04:41:49 <pikhq> Seems a bit pointless, doesn't it?
04:41:55 <oerjan> if you are reading from a raw terminal, then there is no such thing as EOF.
04:42:02 <calamari> pikhq: do you have a point or are you just trying to be argumentative?
04:42:12 <pikhq> oerjan: ^D == EOF.
04:42:28 <oerjan> right, so let brainfuck check for that.
04:42:41 <pikhq> calamari: Sure: my point is that converting EOF to 0 in "nonblock" is redundant.
04:43:18 <calamari> pikhq: I'm not converting EOF to anything in nonblock
04:43:20 <oerjan> but if he sets the terminal to raw, then nonblock will not convert EOF to 0, but to 4
04:43:22 <pikhq> Oh.
04:43:56 <calamari> pikhq: when I read from getchar() it returns -1 if no char is waiting. I translate that to 0
04:44:07 <pikhq> Oh. Misunderstood.
04:44:20 <calamari> k hehe
04:44:43 <oerjan> well so did i at first.
04:45:03 <calamari> 4 works fine .. might as well support ^D and Esc
04:45:33 <pikhq> Going to make a Brainfuck BFAudio player that supports forward/back? :p
04:45:57 <calamari> nope! hopefully this will be more fun than that
04:47:11 <calamari> I feel bad it's so linux dependent.. er wait, no I don't screw windows users.. their zombied machines pollute my inbox with spam
04:47:26 <pikhq> Cygwin will probably run it.
04:47:35 <pikhq> As will Mac OS neXt.
04:47:41 <calamari> hmm, maybe so
04:57:51 <Razor-X> For GregorR:
04:58:15 <Razor-X> I feel C should have a unified pointer size, instead of int pointers, char pointers, etc. You can move pointers using pointer arithmetic and sizeof.
04:59:07 <Razor-X> calamari: I can try and port it to Java. I need the experience for the AP test.
04:59:28 <pikhq> So, all pointers should be void *?
04:59:33 <Razor-X> Yeah.
04:59:42 <calamari> Razor-X: port what? :)
04:59:49 <Razor-X> calamari: Whatever that's Linux dependant.
04:59:53 <bsmntbombdood> yay for void pointers!
04:59:58 <calamari> this unportable hack of a program we've been discussing?
04:59:58 <Razor-X> Then you can have something like ptr+= sizeof (char) .
05:00:08 <Razor-X> calamari: I haven't scrolled up far enough.
05:00:30 <bsmntbombdood> Razor-X: sizeof(char) is garenteed to be 1
05:00:35 <calamari> no, you definitely haven't :)
05:00:37 <Razor-X> bsmntbombdood: I know, I know.
05:00:57 <Razor-X> You can also have ptr += sizeof(int) happy ?
05:02:27 <pikhq> And intptr++; for horrible borken unportable code.
05:02:58 <oerjan> well, nothing is preventing you from doing that already by using only void * pointers...
05:03:03 <Razor-X> Well, ptr++ increments the pointer by a byte.
05:03:06 <pikhq> True.
05:03:26 <Razor-X> As it is, int, float, and all of that business is machine dependant.
05:03:44 <pikhq> Only a char has a guaranteed size in bytes.
05:03:44 <GregorR> Razor-X: I believe that would be painful, and would not make anything more intuitive.
05:04:05 <calamari> there we go.. rolled unbuffered nonblocking and no echo all into one horrible prog
05:04:10 <Razor-X> GregorR: Well, I think it makes the abstraction more clean, personally.
05:04:22 <GregorR> It makes the abstraction more clean, yes.
05:04:37 <GregorR> But the current way makes the abstraction easier.
05:04:38 <pikhq> It also adds to Cobolitise.
05:04:52 <Razor-X> As a beginner, it was one of my pitfalls. It took me a bit to realize that pointer arithmetic behavior depends on the type of pointer.
05:05:03 <oerjan> one thing i worried about - won't that nonblock program write a horrible lot of nuls?
05:05:10 <GregorR> I guarantee you that if they changed it the opposite would be the pitfall.
05:05:33 <Razor-X> Hmm... I guess.
05:05:34 <calamari> http://kidsquid.com/files/bf/unbb.c
05:05:39 <GregorR> pikhq: "Mac OS neXt" You sir are a genius.
05:05:47 <thematrixeatsyou> gonna reboot my pc, be back soon
05:05:53 <GregorR> What's this unportable hack of a program that we're discussing?
05:05:55 <pikhq> GregorR: I don't clame any credit.
05:05:58 -!- thematrixeatsyou has quit ("Rebooting PC").
05:06:13 <pikhq> From a friend of mine from the LUG who's a mild Mac fan.
05:06:14 <calamari> GregorR: "<calamari> there we go.. rolled unbuffered nonblocking and no echo all into one horrible prog"
05:07:22 <Razor-X> I think the way Forth handles memory management is nice.
05:07:43 <pikhq> I prefer the Lisp method.
05:07:49 <pikhq> Garbage collection=:)
05:07:52 <Razor-X> Lisp doesen't have memory management.
05:07:57 <Razor-X> -_-vv
05:08:04 <pikhq> Yeah; it's above that. ;)
05:08:06 <bsmntbombdood> list is cool
05:08:08 <Razor-X> But hey, Forth doesen't have any of those annoyances like ``int'' or ``char'' or ``float''.
05:08:31 <bsmntbombdood> doubles taking up two spaces on the stack is annoying though
05:08:37 <Razor-X> That's true.
05:09:11 <calamari> GregorR: like it? :)
05:09:18 <bsmntbombdood> same with strings
05:09:29 <GregorR> calamari: But why? What does it /do/?
05:09:48 -!- thematrixeatsyou has joined.
05:10:02 <calamari> GregorR: well, I needed timing information
05:10:29 <calamari> GregorR: the only way I can think of doing that in bf is to have the user press enter.. wait a predetermined time, then press enter again
05:10:39 <calamari> (while bf counts up)
05:10:55 <calamari> so if the read blocked, obviously this doesn't work
05:11:04 <pikhq> You. . . I. . . GRRRAWRRR.
05:11:36 <Razor-X> So are you using a timer ?
05:11:54 <calamari> I'm making a timer
05:11:55 <Razor-X> calamari: Why not just use select() ?
05:12:01 <calamari> Razor-X: select, in bf?
05:12:10 <Razor-X> In the code, I mean.
05:12:16 <Razor-X> Are you adding a timing extension to BF?
05:12:19 <calamari> that's one of those bf commands I must have missed ;)
05:12:24 <calamari> no I'm not
05:12:51 <calamari> it's standard bf code
05:13:02 <Razor-X> What are you attempting to do, then?
05:13:09 <calamari> implement a timer
05:13:43 <calamari> hmm maybe I should use space rather than enter.. to avoid the whole enter vs return thing :)
05:21:48 <calamari> not working very well yet.. may need to use a different scheme like holding down a key or such
05:22:02 <calamari> probably because it puts the cpu at 100%
05:22:09 <calamari> bbl
05:22:16 -!- calamari has quit ("Leaving").
05:37:21 -!- oerjan has quit ("Good night.").
05:41:03 -!- RodgerTheGreat has quit.
07:02:44 -!- Sgeo has quit (Read error: 54 (Connection reset by peer)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:52:44 -!- thematrixeatsyou has quit (Connection timed out).
09:51:08 -!- puzzlet has joined.
16:14:17 -!- GregorR-L has joined.
16:47:23 -!- wooby has joined.
16:49:58 -!- wooby has quit (Client Quit).
17:09:23 -!- kipple_ has joined.
17:32:34 -!- GregorR has quit (Read error: 60 (Operation timed out)).
17:40:15 -!- EgoBot has quit (Read error: 110 (Connection timed out)).
17:49:18 -!- RodgerTheGreat has joined.
17:50:50 <RodgerTheGreat> hello, everyone.
17:51:06 <bsmntbombdood> hi
17:51:21 <RodgerTheGreat> anything going on here?
17:54:36 <Asztal> there's been some great JOINs and QUITs in the last few hours
17:54:52 <GregorR-L> lol
17:55:04 <GregorR-L> I think a power outage just ruined my bloody uptime.
17:56:03 * Asztal ponders on the way the W3Schools XSL-FO tutorial doesn't really *explain* anything
18:20:04 -!- oerjan has joined.
19:19:55 <SimonRC> tumtetum
19:20:59 <oerjan> i have a rather wicked idea for an esolang
19:22:08 <oerjan> somewhat based on Unlambda
19:22:53 <SimonRC> hm?
19:22:59 <SimonRC> detail (v.)
19:23:57 <oerjan> it would be a higher level language, incorporating some inventions of modern functional languages
19:24:09 <oerjan> notably, monads
19:24:11 <SimonRC> ooh
19:24:43 <oerjan> every object would not just be a function but also belong to a monad.
19:25:10 <oerjan> and the evil part is that application would be replaced by monadic bind
19:25:56 <oerjan> so to know what a ` actually means, you would have to know the monad of its second argument.
19:26:04 <SimonRC> ouch
19:26:23 <oerjan> i'll call it LeMonade
19:30:47 <oerjan> if it can be pulled off, it should have static type (or monad) inference
19:33:08 <oerjan> s would probably be polymorphic.
19:34:41 <oerjan> although a dynamically typed version might have the advantage of being simple enough that i actually get around to implementing it...
19:49:01 -!- oerjan has quit ("Later").
20:21:11 -!- ihope__ has joined.
20:21:17 -!- ihope__ has changed nick to ihope.
20:38:30 -!- ihope_ has quit (Connection timed out).
20:56:13 -!- CakeProphet has joined.
21:44:19 -!- Sgeo has joined.
22:28:24 -!- bsmntbombdood has changed nick to xor_.
22:44:39 -!- oerjan has joined.
23:29:46 -!- Sgeo has quit (Remote closed the connection).
23:36:32 -!- Sgeo has joined.
←2006-11-02 2006-11-03 2006-11-04→ ↑2006 ↑all