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