00:01:10 i am 00:08:33 poiuy_qwert, any comments? 00:09:13 i dont understand Longstrings, how does that work? 00:09:37 There are indicator bytes 00:09:41 i d i d i 00:09:51 (indicator data indicator data indicator) 00:10:03 An indicator of 0x01 means a data byte follows 00:10:14 an indicator of 0 means that no databyte follows 00:11:12 -!- ehird` has quit. 00:14:00 but why do you need longnums, what does 1234 represent? unicode character 1234? 00:15:15 Because otherwise PSOX would only be able to transmit numbers 0<=n<=255 00:16:32 oh i see. having string in the name confused me 00:17:24 Incidentally, 0x02 as a starting indicator for longnums mean the number is negative. This is not supported with Longstrings for obvious reasons 00:31:06 -!- RedDak has quit (kornbluth.freenode.net irc.freenode.net). 00:31:07 -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net). 00:31:08 -!- lament has quit (kornbluth.freenode.net irc.freenode.net). 00:31:08 -!- Overand has quit (kornbluth.freenode.net irc.freenode.net). 00:31:09 -!- Chton has quit (kornbluth.freenode.net irc.freenode.net). 00:31:09 -!- Eidolos has quit (kornbluth.freenode.net irc.freenode.net). 00:31:09 -!- Tritonio has quit (kornbluth.freenode.net irc.freenode.net). 00:31:09 -!- Sgeo has quit (kornbluth.freenode.net irc.freenode.net). 00:31:10 -!- g4lt-mordant has quit (kornbluth.freenode.net irc.freenode.net). 00:31:10 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net). 00:31:10 -!- tokigun_ has quit (kornbluth.freenode.net irc.freenode.net). 00:31:11 -!- sekhmet has quit (kornbluth.freenode.net irc.freenode.net). 00:31:11 -!- poiuy_qwert has quit (kornbluth.freenode.net irc.freenode.net). 00:31:11 -!- ihope has quit (kornbluth.freenode.net irc.freenode.net). 00:31:11 -!- RodgerTheGreat has quit (kornbluth.freenode.net irc.freenode.net). 00:31:12 -!- puzzlet has quit (kornbluth.freenode.net irc.freenode.net). 00:31:12 -!- SimonRC has quit (kornbluth.freenode.net irc.freenode.net). 00:31:12 -!- mtve has quit (kornbluth.freenode.net irc.freenode.net). 00:31:12 -!- bsmntbombdood has quit (kornbluth.freenode.net irc.freenode.net). 00:31:13 -!- oklokok has quit (kornbluth.freenode.net irc.freenode.net). 00:31:13 -!- pikhq has quit (kornbluth.freenode.net irc.freenode.net). 00:32:00 -!- sekhmet has joined. 00:32:00 -!- poiuy_qwert has joined. 00:32:00 -!- Tritonio has joined. 00:32:00 -!- oklokok has joined. 00:32:00 -!- pikhq has joined. 00:32:00 -!- Sgeo has joined. 00:32:00 -!- ihope has joined. 00:32:00 -!- RodgerTheGreat has joined. 00:32:00 -!- puzzlet has joined. 00:32:00 -!- g4lt-mordant has joined. 00:32:00 -!- SimonRC has joined. 00:32:00 -!- GregorR has joined. 00:32:00 -!- bsmntbombdood has joined. 00:32:00 -!- Chton has joined. 00:32:00 -!- mtve has joined. 00:32:00 -!- Eidolos has joined. 00:32:00 -!- tokigun_ has joined. 00:32:19 -!- bsmntbombdood has quit (Remote closed the connection). 00:32:21 -!- bsmntbombdood` has joined. 00:32:36 -!- RedDak has joined. 00:32:36 -!- cmeme has joined. 00:32:36 -!- Overand has joined. 00:32:36 -!- lament has joined. 00:33:02 PSOX functions probably shouldn't return XStrings though, unless the client already knows what type it will be by specifying it somehow 00:33:12 woo netsplit 00:33:26 PSOX sounds... um... 00:33:29 Complex. 00:33:55 Couldn't you just slap a bunch of compatibility layers on top of the basic interface? 00:34:24 ..? 00:35:41 Make the system calls and an API available to the program. 00:35:53 ..Isn't that what PSOX _is_? 00:36:10 Maybe. :-P 00:36:16 Do you have a spec for it? 00:36:29 Yes, but it's not finished 00:36:41 * Sgeo will add the strings now, then work on Safety 00:37:21 Safety? 00:37:36 Oh, also: re: Might some Python BF interpreters ask the user for one character at a time when doing ',', and discard the rest? 00:37:54 Safety: Unsafe functions might write files or read files or connect to the net.. 00:37:54 -!- RedDak has quit (Remote closed the connection). 00:38:04 Although I will make a Safe File I/O domain 00:38:27 * ihope nods 00:39:13 * Sgeo wonders if he should *gasp* exclude Safety from PSOX 1.0, and make no unsafe functions 00:40:20 So safety is for keeping programs from doing bad things? 00:40:29 yes 00:40:35 Without the user's permission 00:41:19 Should I exclude it from 1.0 for now? 00:41:35 Add the string stuff and some clarifications, and declare the Core done? 00:41:42 I'd think *1.0* would need just that. 00:41:44 Still seems silly to me. 00:41:52 pikhq, hm? 00:42:06 1.0 ought to be fairly feature-complete. 00:42:52 * Sgeo works on the safety specs 00:43:04 Declare that what you have now won't change in 1.0, but that more will be added? 00:44:29 * Sgeo might be able to get 1.0 Core finished tonight, even w/ safety 00:44:55 (Core = basic PSOX framework, but not builtin domains other than 0) 00:45:28 Questions: Should I allow custom domains to accept arbitrary data, as opposed to forcing them to have functions? 00:46:57 Might not really matter... 00:47:18 Imean, a domain designer, if they want something similar, can always do 0x00 DOMAIN DOMAIN 00:47:24 and shortcuts? 00:47:39 Should I allow functions to be binded to odd domain numbers? 00:47:47 Maybe not in 1.0? 00:50:22 How's this so far? 00:50:24 http://sgeo.diagonalfish.net/esoteric/psox-safety.txt 00:51:37 * Sgeo pokes ihope and pikhq 00:51:42 and oklokok 00:51:44 and poiuy_qwert 00:52:36 anyone there? 00:53:22 psox has not a point 00:53:32 -!- SEO_DUDE has joined. 00:54:05 Hi SEO_DUDE 00:54:07 bsmnt_bot, hm? 00:54:16 bsmntbombdood`, hm? 00:54:27 wtf?!!??? 00:54:31 why do i have a ' 00:54:34 *` 00:54:45 -!- bsmntbombdood` has changed nick to bsmntbombdood. 00:54:59 bsmntbombdood, what do you mean by it doesn't have a point? 00:55:00 brb 00:55:06 i mean FOO 00:57:59 Sgeo: Oh, Calling it Psox 1.0 Core? *That* I approve of. 00:58:15 You don't need much of anything except your bare-bones suggestions, and the *possibility* for more domains. :) 01:00:46 Sgeo: Better idea for safety. . . Require that each unsafe function be declared as follows: 0x00 0x00 unsafe_function_declare DOMAIN FUNCTION 01:01:08 require no unsafe runctions 01:01:10 use mondas 01:01:42 If used without such a declaration, or if the unsafe function is not approved, then the unsafe function will only output on stderr "Unsafe function foo attempted without approval." 01:02:03 bsmntbombdood: Think "jailbox", not functional programming. 01:02:14 s/jail/sand/ 01:02:14 +[] is UNSAFE FUNCTION 01:04:20 pikhq, how is that different from what I'm doing, except that using the function counts as a declaration? 01:04:40 erm, I mean, except your way doesn't have the prefilled arguments.. 01:04:57 prefilled arguments are optional btw.. but they might add complexity.. 01:05:19 Sgeo: It looks to me that each call requires a declaration in your spec. 01:06:19 That's wrong.. how to clarify.. 01:06:33 Maybe just state that each unsafe function implicitly requests approval for that specific call? 01:06:45 without a predeclare? 01:07:06 argh 01:07:24 Thus, 0x00 0x02 REMOVE "foo" would respond with "Program requesting to delete foo. Approve? [yes/no/all]" 01:08:25 http://sgeo.diagonalfish.net/esoteric/psox-safety.txt clarified.. 01:08:44 No 'all' 01:08:55 That's what 0x00 0x00 0x06 is for 01:09:34 "Allow program to (do X| do anything) with (file x|any File)?" 01:09:53 Depending on the predeclare unsafe functionality call 01:10:13 Oh. 01:10:34 *That* spec is much clarified. 01:10:37 I approve. 01:12:12 More clarification 01:12:16 http://sgeo.diagonalfish.net/esoteric/psox-safety.txt 01:14:29 pikhq, like it with the extra clarification? 01:14:55 Yeah. 01:24:42 "Unsafe functions MUST, for the first byte, return a Safety status code. The byte is 01:24:42 0x00 if it failed because it's not allowed, or 0x01 if the function was allowed. 01:24:42 PUF also returns a safety byte with similar semantics, but 0x01 may also mean that the user selected 'ask'." 01:25:04 i.e. the app can't tell the difference between 'ask' and 'yes' >.> 01:25:10 at least with PUF 01:25:49 * Sgeo pokes pikhq 01:26:34 * pikhq approves again. 01:27:04 :)( 01:27:06 :) 01:59:41 * Sgeo pokes pikhq and ihope with http://sgeo.diagonalfish.net/esoteric/psox-safety.txt 01:59:49 -!- SEO_DUDE has quit (Remote closed the connection). 02:07:01 pikhq? 02:15:13 What's PSOX for, exactly? 02:15:56 It's to allow esolangs that are restricted to stdin/stdout to do other things, like reading the command line, file I/O, and network access 02:16:00 and anything else you can imagine 02:18:20 * Sgeo will BBL. MSG any comments to me, or they may not be read. 02:24:05 -!- SEO_DUDE has joined. 02:56:24 * Sgeo is back 02:56:26 Hi SEO_DUDE 03:02:32 -!- Tritonio has quit (Remote closed the connection). 03:29:49 -!- ihope has quit (Read error: 110 (Connection timed out)). 03:40:56 Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C. 03:41:48 http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 03:41:57 torvalds++ 03:46:41 bsmntbombdood, eh? 03:46:54 eh what? 03:47:02 Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C. 03:47:02 http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 03:47:02 torvalds++ 03:47:09 i just said that 03:47:23 * Sgeo meant 'explain' 03:47:57 without any extra information from you, an explaination will just be a repost 04:07:43 Note to self: stdin/stdout switching 04:29:26 pikhq, still up? 04:29:32 Just checking 04:29:35 BRB 04:30:03 No. 04:33:01 I'll take that as a yes. 05:09:46 * Sgeo pokes pikhq and oklokok and Eidolos and GregorR 05:09:52 and RodgerTheGreat 05:09:57 http://sgeo.diagonalfish.net/esoteric/psox.txt file descriptors! 05:10:01 hi, Sgeo 05:10:08 Hi RodgerTheGreat 05:10:23 I would appreciate it if you didn't modify my memory 05:10:31 eh? 05:10:36 POKE 05:10:39 ala basic 05:11:08 sorry 05:11:12 * pikhq PEEKs 05:11:25 'sokay 05:12:02 I'm buffered with some noncoding segments and repeated vital code blocks- I'm more or less error-tolerant 05:13:02 while(1)*++RodgerTheGreat = rand(); 05:13:42 this is why I'm glad I'm a paper- we're pretty strong against things like a dwarf. 05:13:57 I have no fear of primitive bombers 05:14:04 * pikhq eats the paper 05:14:13 any comments on file descriptors? 05:14:27 * RodgerTheGreat covers pikhq's intestinal lining 05:14:34 got you now, bitch! 05:14:40 Sgeo: like metadata? 05:14:41 * pikhq throws up 05:14:56 RodgerTheGreat, did you read the spec? 05:15:00 * RodgerTheGreat reforms, T1000-style 05:15:08 just got here- what am I reading? 05:15:13 TROGDOR!!!!!! 05:15:20 http://sgeo.diagonalfish.net/esoteric/psox.txt 05:15:37 stupid, frickin, KNIGHTS! 05:15:52 * RodgerTheGreat reads 05:16:29 * Sgeo hastily adds support for extended function names to psox-safety.txt 05:16:54 So that a suggestion by the one and only bd_ can be implemented sanely 05:17:45 hm... 05:17:52 sounds interesting so far 05:20:39 Any questions/comments? 05:24:31 hm 05:24:50 I will ponder it, but for now I must sleep. I'll contact you tomorrow if I think of anything 05:24:57 G'night 05:25:37 c'yall 05:26:40 -!- Sgeo has changed nick to IdleWilde. 05:27:01 -!- IdleWilde has changed nick to Sgeo. 05:28:09 -!- oerjan has joined. 05:29:50 * pikhq is called to sleep 05:29:58 G'night pikhq 05:29:59 Hi oerjan 05:30:16 * Sgeo pokes oerjan to http://sgeo.diagonalfish.net/esoteric/psox.txt 05:33:03 Any questions/comments? 05:33:33 no 05:52:04 G'night all 06:09:06 -!- Sgeo has quit ("Ex-Chat"). 06:16:56 -!- calamari has joined. 06:20:20 -!- puzzlet has quit (Remote closed the connection). 06:20:45 -!- puzzlet has joined. 06:35:47 -!- poiuy_qwert has quit. 07:01:34 -!- oerjan has quit ("leaving"). 07:01:34 (Sgeo) Oh, also: re: Might some Python BF interpreters ask the user for one character at a time when doing ',', and discard the rest? <<< i have no idea what you were referring to, but one of mine did that... 07:01:34 and you aren't here 07:01:34 -!- calamari has quit ("Leaving"). 07:23:03 i woke up at 6, went back to sleep, immediately started another dream where i walked about 10 meters and jumped over this little stream, then woke up 07:23:10 it was 7 then. 07:23:58 guess my mind is trying to answer me wondering whether dreams go the same speed as irl 07:24:33 "hey, i already know, you idiot, i do that every night, remember?" 07:24:45 -!- oklokok has changed nick to oklopol. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:18:40 -!- sebbu has joined. 09:29:41 -!- ehird` has joined. 09:30:15 -!- ehird` has quit (Client Quit). 09:30:35 -!- ehird` has joined. 09:31:16 -!- ehird` has quit (Client Quit). 09:50:04 -!- ehird` has joined. 11:32:17 -!- tombom has joined. 11:39:13 -!- Tritonio has joined. 11:52:53 -!- pikhq has quit (Read error: 110 (Connection timed out)). 12:40:57 -!- pikhq has joined. 13:10:39 -!- RedDak has joined. 13:42:07 -!- ehird` has quit (Remote closed the connection). 13:42:32 -!- ehird` has joined. 14:00:52 -!- Figs has joined. 14:02:17 !bf ++++++++++[>+++++++<-]>++.+. 14:02:20 HI 14:06:33 !bf +++++++++++++++++++++++++++++++. 14:06:39 w/e 14:08:48 lol O.o 14:09:03 oh 14:13:33 !bf ++++++++++++++++++++++++++++++++. 14:13:35 14:14:03 You like me, don't you egobot? Yes you do~o... good bot! 14:14:37 * Figs pats egobot on the ... *bot equivalent of a head* 14:22:29 !bf ++++++++++++++++++++++++++++++++. 14:22:32 14:22:51 egobot just said "you like me" /before/ digs patted egobot.. 14:24:36 dig? 14:24:54 :P 14:25:06 figs 14:25:07 :p 14:25:25 !bf +[>+++<+>[-<+++++++>]>]< XD 14:26:35 !bf +[>+++[<++>-]++++[<++>-]] 14:26:43 !ps 14:26:46 1 Figs: ps 14:27:36 >>> bf >,[>,]<[.<] << Hello World! 14:27:42 oh 14:27:52 no ololobot 14:32:25 :< 14:32:55 oklomagicman! 14:33:20 it doesn't wanna join it seems... 14:33:27 -!- ololobot has joined. 14:33:30 haha 14:33:33 i just failed 14:33:46 :P 14:33:58 (16:32:02) (oklopol) >>> join #esoteric 14:33:58 (16:32:10) (oklopol) >>> join #esoteric 14:33:58 (16:32:43) (oklopol) >>> raw join #esoteric 14:34:39 !bf [+]. 14:34:52 !bf +[+]. 14:35:05 !ps 14:35:07 !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 14:35:10 1 oklopol: ps 14:35:12 C 14:35:27 ah okay 14:36:21 do we have a !C yet? 14:36:31 what's that? 14:36:38 runs C code? :P 14:36:56 aaaaah :P 14:37:50 it could automatically nest everything that's not a function into main, and run 14:38:06 geordi in ##C++ does C++ 14:38:15 :O 14:38:18 we should get our own geordi going... 14:38:41 show how it works 14:38:44 or is it !C? 14:38:47 or... 14:38:49 !c++ 14:38:52 Huh? 14:39:22 geordi << int main{ for(int i =0;i<10;i++) { cout << i << " ";} } 14:40:42 (geordi) expected primary-expression before 'int' 14:40:51 (oklopol) geordi << int main(void){int i; for(i =0;i<10;i++) { cout << i << " ";} } 14:42:09 ... it's C++ :P 14:42:43 you have to screw something up or it just isn't right. 14:43:08 i can't find the error... 14:43:10 -!- Figs has changed nick to FreshCaek. 14:43:15 it gives that error after my cix 14:43:16 *fix 14:43:32 std::cout prolly 14:43:42 nay 14:43:50 nay? 14:43:53 okay 14:43:54 then what? 14:45:28 no idea. 14:45:35 -!- FreshCaek has changed nick to Figs. 14:47:07 http://home.nvg.org/~oerjan/esoteric/intercal/unlambda.i 14:47:11 i don't understand 14:47:14 how can anyone code thisd 14:47:43 oh 14:47:44 () 14:47:56 + I already did << 14:47:57 :P 14:47:58 >.< 14:49:02 -!- jix has joined. 14:49:57 howdy 14:50:12 howdy do-da day :) 14:51:25 -!- RedDak has quit (Remote closed the connection). 14:54:41 -!- Figs has changed nick to geodi. 14:54:59 -!- geodi has changed nick to Figs. 14:57:32 -!- Sgeo has joined. 14:58:51 tombom: oerjan is a demigod 14:59:30 http://home.nvg.org/~oerjan/esoteric/interpreter.unl <<< though i guess this provides the other half... 14:59:50 this is where bsmntbombdood says that's trivial to do, though 15:04:08 hm? 15:04:09 Hi all 15:04:22 Hi oklopol 15:05:21 hi 15:09:13 hi Figs 15:09:17 hi. 15:09:31 this conversation is moving. 15:09:36 lol 15:11:09 * Sgeo is tired 15:12:07 Must.. keep.. working.. on.. PSOX.. 15:14:11 -!- Figs_ has joined. 15:14:26 -!- Figs has quit (Nick collision from services.). 15:14:29 -!- Figs_ has changed nick to Figs. 15:15:22 re Figs 15:16:34 y0 15:16:39 -!- ihope has joined. 15:16:45 It slayed me. 15:16:51 evil nodefree. 15:17:15 live node evil free no. yes? 15:17:29 Compile or die; 15:17:35 (dies) 15:18:47 whgat ius psox 15:19:02 http://sgeo.diagonalfish.net/esoteric/psox.txt 15:30:38 try talking without using that char by 'w', 'd', 'r', and '3' 15:30:55 (looks similar to 3 backwards.) 15:31:11 Why? 15:31:15 it's hard. 15:32:03 * Sgeo ruins it by having a nick that is what it is 15:32:08 :P 15:32:25 that contains it, anyway. 15:32:58 I'm going to violate it now so I don't feel compelled to twist my words when talking about PSOX 15:33:28 I should put goo on that writing-button to stop my inclination to it.... 15:35:59 It will twist your writing around... 15:36:14 I don't want that when discussing PSOX 15:36:24 :P 15:37:29 But it will look so cool if anybody finds it... or it could just look awkward... 15:37:36 *shrug* 16:10:48 -!- Nightrose has joined. 16:11:33 -!- Nightrose has left (?). 16:18:33 -!- Sgeo has changed nick to Sgeo|Testing. 16:26:06 -!- Sgeo|Testing has changed nick to Sgeo. 16:27:08 http://video.google.com/videoplay?docid=-7038656109656489183 16:27:13 plan 9 from outer space 16:27:16 awful. 16:36:09 -!- poiuy_qwert has joined. 16:40:05 Hi poiuy_qwert 16:44:12 -!- pikhq has quit (Read error: 110 (Connection timed out)). 16:50:24 hi Sgeo 16:53:45 bbl 16:53:46 -!- Figs has left (?). 16:58:51 -!- SEO_DUDE has quit (Remote closed the connection). 17:09:21 -!- pikhq has joined. 17:10:42 -!- SEO_DUDE has joined. 17:11:02 Hi pikhq and SEO_DUDE 17:29:55 -!- pikhq has quit (Connection timed out). 17:42:55 -!- tombom has quit. 17:45:29 Must..work..on..PSOX.. 17:51:56 -!- poiuy_qwert has quit. 18:00:46 -!- oerjan has joined. 18:06:24 -!- sebbu2 has joined. 18:09:36 -!- Tritonio has quit (Remote closed the connection). 18:14:55 Hi oerjan 18:15:06 IMPORTANT QUESTION TO THE FUTURE OF PSOX!!!!: 18:15:17 BOW TO ME YE MORTALS! 18:15:35 If I have a pipe to a processes stdin, can I tell when it's requesting input, or does stdin not work that way? 18:15:41 * oerjan is reading the logs 18:16:15 That is, if I'm running BF interpreter as a subprocess, will I be able to find out when the BF program does a `,`? 18:16:16 i think that depends on buffering 18:16:28 oerjan, explain more 18:16:59 -!- Figs has joined. 18:17:00 http://www.eatliver.com/i.php?n=2350 18:17:02 :D 18:17:21 Figs, do you know about stdio stuff? 18:17:34 tiny bit 18:18:01 I don't know what you want with pipes though 18:18:10 If I have a pipe to a processes stdin, does that process request things from stdin, or are things placed on stdin? 18:18:28 both, with a buffer on each side 18:18:47 How do I determine when a process requests stuff from stdin? 18:19:04 I'm surprised you didn't ask me how I knew you were going to talk about pipes... 18:19:11 you can try non-blocking I/O on one end 18:19:17 Figs, hm? 18:19:35 How? Reading the logs? 18:19:40 Or some other way? 18:19:44 yeah, I had the log open 18:19:48 however if the BF uses line buffering say, then you will not get any new information other than at line ends 18:19:51 that's how I saw people were talking in here 18:20:23 oerjan, I won't get new information about when it's requesting input? 18:20:33 sometimes I prefer to have a tab instead of a window... 18:20:36 it blinks less 18:21:00 if the BF side is line buffered then , will read an entire line into the buffer when it is empty 18:21:27 and does it let whatever's on the other side of stdin know this somehow? 18:21:33 if it is block buffered then iiuc it will read a fixed size 18:22:05 i am not sure 18:22:09 iiuc? 18:22:17 if I understand correctly 18:22:20 ah kk 18:22:20 the writing side would need to turn its buffering off at least 18:23:02 I thought stdout went to the next process in the pipe list? 18:23:08 or are we talking about something else? 18:23:16 like x|y|z 18:23:38 When a program requests something from stdin, does it tell stdin, or does whatever's sending put and leave stuff there? 18:25:01 i think possibly you should talk to a real Unix hacker :) 18:25:18 Where? 18:25:19 -!- sebbu has quit (Connection timed out). 18:25:27 ##C? 18:25:27 And this stuff would still apply on Windows somehow 18:25:31 er, i would assume we have some 18:25:54 I'm taking a look on wikipedia, of all places :P 18:26:12 i am sure windows may do it in some completely different way :/ 18:27:04 I *assumed* that the first program would run, and then produce some output which is fed into the second program 18:27:21 if we're doing something like x|y|z 18:27:32 say, cat foo|grep ... 18:27:36 i am assuming we are talking about PSOX 18:27:57 and that PSOX wants to handle _both_ stdin and stdout, which makes things even hairier 18:28:19 it isn't unidirectional? 18:28:44 I assumed the stdin/stdout were one way communicaiton 18:28:48 *communication 18:29:01 but I'm no unix hacker ;) 18:29:02 the simplest thing is to use a request/response method, i think 18:29:41 so that PSOX only responds to requests from the interpreter, and doesn't need to worry about buffering so much 18:30:52 PSOX could use non-blocking input in case it want to do other things between requests 18:30:58 *wants 18:31:02 but `,` causes the interpreter to request on stdin 18:31:15 sgeo: http://www.pixelbeat.org/programming/stdio_buffering/ 18:31:18 is this relevant? 18:32:25 i mean, the simplest protocol is not to allow the interpreter to read without sending a request first 18:32:54 however, that of course makes mixing in ordinary I/O awkward, i guess 18:33:50 how is PSOX different from POSIX? 18:34:12 are they unrelated and just made to sound similar to confuse me? 18:34:59 "P S O X" "P Eso X" PESOX was the original name, coming from PESOIX, and "incrementing" the IX 18:35:23 kk 18:37:33 if you read in, but there is no data... wouldn't the program just stall while waiting for data? 18:37:53 unless you've defined it to allow for async 18:38:03 (like with non-blocking sockets) 18:38:11 (or whatever) 18:38:26 Ok, just for clarification, this is why I don't want to just put stuff from regular stdin to the prog's stdin: 18:38:49 If I buffer up characters, e.g. "aaa\n" 18:38:57 the prog might do 18:39:09 ,.(some function call that returns stuff) 18:39:16 but I wouldn't want the next , to be 'a' 18:39:34 returns stuff to where? 18:39:42 the BF interpreter 18:39:50 from where? 18:39:58 the PSOX server 18:40:05 that doesn't make sense 18:40:16 What do you know about PSOX? 18:40:21 Did you read the specs? 18:40:25 http://sgeo.diagonalfish.net/esoteric/psox.txt 18:40:25 De nada :) 18:40:33 but it doesn't make sense to me 18:40:53 how/why would you have a function call there? and how would it get there? 18:41:13 * Figs is trying to understand your project 18:41:51 It lets a language such as BF do things with the outside world 18:42:08 the BF might call a function by outputting 0x00 0x02 0x00 0x01 or whatevre 18:42:13 And that might return something 18:42:34 oh, I see. 18:42:40 I knew the first bit 18:42:50 (we've babbled with each other on this before) 18:43:04 I don't want to just put the return stuff in stdin with stuff from the outside world 18:43:19 why not have a different stream in? 18:43:24 Figs, hm? 18:43:31 it's just files 18:43:33 To the BF interpreter? 18:43:46 so you open a new connection/pipe/file/whatever 18:44:00 By "BF Interpreter" I meant a black box for any esolang 18:44:10 I can't modify it 18:44:40 the only other way I can see it working is if you make stdin say where the data is coming from 18:44:54 hm 18:44:59 (which would make programing in bf, etc much harder) 18:45:07 ex, each byte is really 2 bytes of input 18:45:13 first is a description of where it is from 18:45:21 I was thinking, if I absolutely HAD to, I could make the reply wait until a newline 18:45:32 00 = regular, 01 = return from psox special... 02 = whatever 18:45:35 The BF program would have to loop until 0x0A 18:46:29 hm, actually, I'm not sure if that would even work.. 18:46:43 well, you could reduce the amount of bytes needed that way 18:46:48 in terms of description 18:46:57 ie, after an 0x0A, next byte is descriptor... 18:46:59 I mean, I'm not sure how that could be implemented either 18:47:28 Although.. 18:47:41 you have a current buffer in use flag, and then before loading next buffer line, you see if you have a message waiting, process all messages, then load up the next one? 18:47:49 (in your PSOX server or whatever) 18:48:37 But what if I check to see if I have a message waiting before the BF program or whatever outputs that it wants to do something? 18:48:56 ? 18:50:22 How do I tell the different between ,.(function call) and .(functioncall),(get result)? 18:50:33 er 18:50:41 How do I tell the different between ,(regularinput).(function call) and .(functioncall),(get result)? 18:50:59 the first byte is the source? 18:51:29 it doesn't really matter what the program gets back, it has to figure out how to handle it, doesn't it? 18:51:43 if you say where it is from 18:53:11 icky complexity 18:53:43 true, but I don't see how else you can get around it without providing another source of input and shoving it to the interpreter writer to comply 18:53:58 then again 18:54:04 I am no expert on Unix. 18:54:55 Hell, I don't even own a computer than runs a Unix/Linux/etc system 18:54:58 :P 18:55:11 what about eunuchs? 18:55:42 ... 18:56:02 :P 18:56:08 ok, maybe this will help explain: My wrapper program needs to put one thing into the other apps stdin if the other app retrieves information at one time, and something else if it's a different time 18:58:01 do you have the format you want to return the data in? 18:58:10 hm? 18:58:16 what about a rapper program? 18:58:20 I was just speculating on how to return the data 18:58:33 did I miss the forest here? :P 18:58:48 It depends on the function being called, and can be arbitrary if it's from regular stdin 18:58:49 (yes figs, you missed the whole friggen planet!) 18:59:16 what I assumed made sense was you'd have something like 18:59:29 [description byte] data data data \n \0 18:59:32 as a message 18:59:39 and each message would be contained 19:00:02 (it doesn't make sense to me to fragment a message) 19:00:15 hm maybe 19:00:25 but that's still a PITA for the BF or whatever programmer 19:00:34 PITA? 19:00:38 oh 19:00:39 :P 19:00:52 I guess I assumed it would be regardless? 19:01:10 BF wasn't made to be easy... :P 19:01:21 (for the end user, anyway) 19:01:24 -!- ehird` has quit (Remote closed the connection). 19:01:26 (or end coder?) 19:01:35 http://sgeo.diagonalfish.net/esoteric/psox-newline-demo.b 19:02:23 see where there's the ,, and ,,, I don't want to make response retrieval insane 19:02:54 I assumed you'd retrieve most responses with something like 19:03:04 >,[>,] 19:03:18 then <[<] 19:03:19 -!- ehird` has joined. 19:03:35 Figs, that could be used if you want to store responses 19:03:37 >[ /*handle it*/] 19:03:41 -!- Tritonio has joined. 19:03:53 But it would still be a PITA to work with if extra stuff is added.. 19:03:58 hm 19:04:29 0x00 0x00 0x01 to retrieve data from stdin up to the next newline with a courtesy 0x00 after it? 19:04:40 and , would then be used for responses? 19:05:07 well, I'd think the first byte you'd pull off should tell you where it's from 19:05:28 hm, then I could make 0x00 0x00 0x00 be go into output mode 19:05:45 *shrug* ok 19:05:55 and then regular commands would not need an escape thing 19:06:04 a bit convoluted though 19:06:08 But should still be usable 19:06:11 yay! 19:06:14 Except how would binary IO work? 19:07:41 make the first byte output describe what it does 19:07:57 if it's a binary output 19:07:59 then 19:08:13 you write the size after that 19:08:18 in # of bytes that follow 19:08:23 do it in 7-bit mode 19:08:28 so like, 19:09:04 I can describe formats for strings w/ NUL 19:09:11 yeah 19:09:15 but for binary 19:09:17 you need a length 19:09:21 you can do it like midi does 19:09:30 one of which is terminate on unescaped NUL, and 0x01 escapes 19:09:40 using a bit to say last size 19:10:03 like if you had Mddd dddd Mddd dddd 19:10:13 where M is either 1 for more or 0 for done 19:10:30 assuming that *typically* you'd want a small amount of output 19:10:35 another is something like indicator bytes: 0x01 if a byte follows, 0x00 if no byte follows 19:10:40 (if that's not the case, then switch it) 19:10:44 0x01 some byte 0x01 another 0x00 19:11:03 you can do that too 19:11:13 I already have the strings defined, just not down in the specs 19:11:25 This is going to be another complete change in PSOX 19:11:47 drive people crazy you will, :) 19:12:09 but eh, it's meant to be confusing isn't it? this *is* #esoteric after all... 19:12:19 * Sgeo didn't WANT it to be confusing 19:12:24 oh :'( 19:12:33 I guess I've been doing too much obfuscated C 19:12:38 getting to my head :) 19:13:43 You know, last night, I was assuming I'd be done with PSOX in some hours 19:14:32 I'm going to special case domains 0 and 1 19:14:36 and 2 will be system 19:14:42 though that will be awkward 19:15:47 (1<:"0 0"] <<1)+3; 19:15:59 eh? 19:16:12 that's 67 (or ascii c) 19:16:15 *C 19:16:37 it does look awful though, doesn't it? :P 19:19:37 well it's basically (1["0 0"] << 1)+3 which is ("0 0"[1] << 1)+3 which is (' ' << 1) +3 which is (32 << 1) +3 which is 64 +3 which is 67 19:19:49 yes :) 19:20:02 it's not very complicated 19:20:11 that's just an appearance hack :P 19:20:16 It's very complicated to someone who doesn't know C 19:20:35 What's <:? 19:20:40 its the same as [ 19:20:48 for people who have keyboards that don't have [ 19:21:01 but the trick is <: ] work together 19:21:08 <: :> is how you'd usually write it 19:23:17 PSOX will be line buffered 19:23:36 ok 19:23:40 cool 19:23:43 g'luck :) 19:23:50 ty I need it 19:24:58 actually, scrath that maybe 19:28:11 * Figs scratches 19:28:46 -!- poiuy_qwert has joined. 19:39:52 -!- poiuy_qwert has quit. 19:48:51 -!- Sgeo has quit ("Ex-Chat"). 19:49:56 -!- sp3tt has quit (Read error: 104 (Connection reset by peer)). 19:50:05 -!- ehird` has quit (Remote closed the connection). 19:50:17 -!- ehird` has joined. 19:55:43 -!- sp3tt has joined. 20:59:17 -!- RedDak has joined. 21:33:41 -!- pikhq has joined. 21:40:19 -!- RedDak has quit (Remote closed the connection). 21:42:11 -!- Figs has left (?). 21:46:28 -!- RedDak has joined. 22:15:08 aaagh 22:15:18 what's a symmetric monoid? 22:16:34 symmetric? 22:17:29 "(N/=, +, 0) is a symmetric monoid" 22:17:40 where = has 3 lines 22:18:38 well i guess it could either be an analogy to symmetric group, or a misspelling of commutative 22:21:20 http://www.lfcs.inf.ed.ac.uk/reports/91/ECS-LFCS-91-180/ECS-LFCS-91-180.ps 22:21:22 page 8 22:22:04 i'm not set up to view postscript 22:22:53 http://abacus.kwzs.be/~bsmntbombdood/ECS-LFCS-91-180.pdf 22:25:48 my hunch is that it means "commutative" 22:51:03 -!- sebbu2 has changed nick to sebbu.