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:55:06 -!- thematrixeatsyou has joined.
02:55:46 <oerjan> hi and beware of the cannibals.
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:18 <EgoBot> 1 thematrixeatsyou: funge93
03:02:30 <EgoBot> 1 thematrixeatsyou: funge93
03:02:42 <pikhq> !daemon cat bf ,[.,]
03:02:50 <pikhq> !cat Welcome back, cat.
03:03:10 <EgoBot> Cannabalism detected: bsmntbombdood was hungry
03:03:22 <pikhq> Besides, glass is nicer.
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:02 <EgoBot> thematrixeatsyou has special powers, admire him
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: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:08 <EgoBot> 2 pikhq: daemon cat bf
03:10:14 <pikhq> If I did that right, it's a Glass Brainfuck program.
03:10:45 <pikhq> If I *didn't* do it right, as I believe I have, it's a bunch of gibberish.
03:11:23 <pikhq> Did it slightly wrong.
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:13:30 <pikhq> I'mma gonna stop the glassing.
03:14:31 <pikhq> Now go and code it.
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:24:16 <CakeProphet> ~ #This is a mouse... a pointer character. Default direction is set to south
03:24:20 <CakeProphet> ! < #continuously append all values in the mouse to all stacks/queues adjacent to the asterick
03:24:24 <CakeProphet> ~ #This mouse represents each value in the input...
03:39:58 -!- Asztal has joined.
04:04:49 * pikhq prefers Dimensifuck.
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: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:21:35 <calamari> maybe it's just something Gregor would have to implement in the interpreter
04:22:00 <oerjan> you could probably use a pipe
04:23:06 <calamari> setting unbuffered is easy, can use stty for that
04:23:30 <oerjan> how do you set nonblocking in C?
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: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: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:31:23 <oerjan> right. however doesn't that prevent you from detecting real EOF?
04:33:12 <pikhq> Just if(feof(stdin)) putc(FEOF);, I think. ;)
04:34:27 <calamari> the whole idea of this is that input is from the keyboard
04:34:53 <pikhq> ^D says otherwise.
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:36:14 <oerjan> unbuffered input doesn't have ^D handling anyhow.
04:36:39 <calamari> pikhq: run a dos program.. they had many ways of exiting their programs..
04:37:09 <pikhq> I'd prefer, say, EOF.
04:37:50 <calamari> so which char would you overwrite for eof.. 1?
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:40:16 <pikhq> calamari: Dude, let egobfi8 handle the EOF->Brainfuck char conversion.
04:40:22 <pikhq> (it defaults to 0)
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: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: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: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:49 <Razor-X> calamari: Whatever that's Linux dependant.
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: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: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:34 <calamari> http://kidsquid.com/files/bf/unbb.c
05:05:39 <GregorR> pikhq: "Mac OS neXt" You sir are a genius.
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:08:04 <pikhq> Yeah; it's above that. ;)
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: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: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:55 <Razor-X> calamari: Why not just use select() ?
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:13:02 <Razor-X> What are you attempting to do, then?
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: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:54:36 <Asztal> there's been some great JOINs and QUITs in the last few hours
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:20:59 <oerjan> i have a rather wicked idea for an esolang
19:22:08 <oerjan> somewhat based on Unlambda
19:23:57 <oerjan> it would be a higher level language, incorporating some inventions of modern functional languages
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: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.