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