00:00:15 there is some strange unicode i cannot read on that proto-indoeuropean in http://en.wiktionary.org/wiki/facio#Latin 00:00:24 Now don't tell me the English word "chase" comes from "fugare". 00:01:04 Proto-Indo-European notation is ridiculous. :-P 00:01:15 okay, okay, göa just sounded pretty. 00:01:31 you have to understand, i've been drawing eer diagrams for hours. 00:01:37 Shall I start referring to Agora as Agöra? 00:01:48 with the buggiest drawing program in the world 00:01:52 actually "chase" is from latin "captare", it says 00:02:27 wonder if there's a linux port for paint... i miss paint... 00:02:41 I'd be slightly surprised if the word "capture" didn't come from the same word. 00:02:46 indeed 00:03:32 actually they're both probably derived from capere 00:03:58 And "capital" and "cabeza" both come from the same Latin word, I'd expect. 00:04:13 capital is from caput, i think 00:04:17 = head 00:06:25 cognate with head, more or less 00:06:42 "Old English h.afod, from Proto-Germanic *khaubuthan, from Proto-Indo-European *kauput- (..head, bowl..). Cognate with German Haupt, Dutch hoofd, Swedish huvud; the Indo-European root is also the source of Latin caput." 00:07:31 Wow. 00:07:56 h.afod from *khaubuthan? 00:08:32 that . is e with a bar btw 00:09:12 indo-european k -> germanic h is pretty basic 00:09:46 But then you still have the fod from buthan. 00:09:49 as is p -> f 00:10:10 i don't know how the proto-germanic fits in between 00:10:34 and t -> th which must have been weakened afterwards 00:11:10 Makes sense, I guess. 00:11:22 That "an" on the end was just a passing fad, then. :-P 00:11:31 http://en.wikipedia.org/wiki/Grimm's_law 00:11:40 probably just an inflection yeah 00:13:53 -!- slereah_ has quit (Remote closed the connection). 00:14:14 -!- slereah_ has joined. 00:18:43 there seems to be an entire class of nouns getting vowel+n endings in germanic, in norwegian the ending turns into -e, sometimes called "weak" nouns 00:18:53 german has something of the same, though not in this word (e.g. Name, with occasional -n) 00:18:53 (it's "hode" in norwegian) 00:19:28 äöo. yuao. ööai. {ns} 00:20:40 (some norwegian dialects inflect weak nouns rather differently from strong ones) 00:21:56 that's the case in swedish too i think, e.g. plural -or vs. -ar 00:22:24 your mother is a weak noun. 00:34:37 -!- ihope_ has joined. 00:37:09 aha! the th -> d is http://en.wikipedia.org/wiki/Verner%27s_law 00:37:36 Linguistics? Here? 00:37:45 sure 00:37:46 SimonRC, this is all your fault :o 00:38:14 no mostly mine 00:38:20 Of course! #linguistics doesn't exist--wait, actually, it's much bigger than this channel. 00:38:46 Heh. 00:39:59 It has almost a long novemnonagintilliard people in it. 00:40:35 Which I guess is 10^597. 00:41:05 That's a whole lot of people. 00:41:32 Yeah. 00:45:42 Not as much as a long centillion, though. 00:46:37 Much less a long nongennovemnonagintilliard. 00:46:59 Infinity. Plus one. 00:48:15 -!- timotiis has quit ("leaving"). 00:48:39 Gasp. 00:50:37 Here's a fun word: milliatillion. 00:50:54 10^3003. 00:50:59 Heh. 00:51:24 Although really, above 10^100, things start to get useless. 00:51:43 Above that, it's mostly silly probabilities and theoretical mathematics. 00:52:02 -!- ihope has quit (Read error: 110 (Connection timed out)). 00:54:01 slereah_: graham's 00:54:20 Graham's number, the biggest important number. 00:54:44 -!- calamari has joined. 00:54:47 Hi calamari 00:54:58 Have you been keeping up with PSOX? 00:55:04 no, sorry 00:55:10 One word: wget.b 00:55:22 how big? 00:55:30 http://pikhq.nonlogic.org/wget.b 00:55:30 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 00:55:44 -!- slereah_ has joined. 00:55:46 Actually fairly trivial with Sgeo's SVN; it has an HTTP domain. 00:55:54 (binding HTTP to a file descriptor) 00:55:59 Graham's number isn't very important. 00:56:16 It's the largest important number. 00:56:18 slereah_: the real value is closer to 6, apparently. 00:56:18 Are there any bigger numbers that have any importance at all? 00:56:29 It's at least 11 and probably bigger. 00:56:59 Well, if it's bigger than 11, it shouldn't be too far from Graham's number. 00:57:14 Amusingly, Graham's number is too large to be written in scientific notation. 00:58:34 pikhq, did you have any trouble writing wget.b? If so, what? 00:58:35 hm there seems to be a typo in the Verner article, th -> d should be th -> dh 00:58:37 I think I'll write a program to list out the name of a number. 00:59:20 Sgeo: The cat bit was slightly difficult, actually. 00:59:35 But even that wasn't too hard, since PSOX has decent debugging facilities. 00:59:43 -i? 00:59:51 Yeah; that was really helpful. 00:59:53 :D 01:03:15 It was basically made while trying to chase down a bug which turned out to be a * where there shouldn't have been a * 01:04:33 one thing stupid about psox 01:04:36 is its safety stuff.. 01:04:38 the os provides that stuff alread 01:04:39 y 01:05:17 pretty cool 01:05:36 calamari, PSOX in general, or wget.b, or what? 01:05:40 both 01:05:46 :D 01:05:57 does it require a special interpreter? 01:06:14 calamari, yes, svn co http://svn2.assembla.com/svn/psox/trunk 01:06:34 Well, it's not a BF interpreter itself 01:06:38 oh, so all the existing esolang interpreters/compilers will need to be redone to support psox? 01:06:49 It goes between a standard interpreter and stdio 01:06:52 calamari, not at all 01:07:04 nice 01:07:06 Misunderstood your question, is all 01:07:15 Sgeo: will you remove the safety stuff? honestly, my os is very good at that and its going to be a pain coding the domains i want to with it 01:07:26 ehird`_, it's going to be a pain to do: 01:07:35 if "nogui" in G.SAFETYLIST: 01:07:41 MY_VERSION = 0 01:07:43 else: 01:07:46 MY_VERSION = 1 01:07:49 that's a pain? 01:08:02 Sgeo: the whole idea is a pain 01:08:04 or do you mean ffi? If ffi, just make the domain require ffi as a safety option 01:08:28 Sgeo: the whole idea is a pain 01:08:36 security? 01:08:37 How is it a pain? 01:08:43 oh.. safety 01:08:47 what does it do? 01:08:56 calamari: it is half-assed disabling of certain functions in psox. 01:09:01 G=g64, where g1 = 3^^^^3, and gn = 3^(gn-1)3. . . 01:09:03 that can already be done from within the os 01:09:07 Holy hell, that's big. 01:09:11 calamari, on the command line, if for example, I don't want PSOX to go online, I can give the commandline option -s nonet 01:09:17 Sgeo: or you could tell your os. 01:09:27 Or if I want to allow it to go outside the sandbox, I can give -s fullfileio 01:09:39 idea: if i removed the safety right now, how many people do you think will notice? 01:09:40 :) 01:09:45 ehird`_, I will 01:10:20 yes... because you like the feature; not because of it being any good 01:10:34 I suggest that if you don't want certain functions, you could run it sandboxed or as a less privileged user 01:11:02 pikhq, what's your opinion on the safety debate? 01:11:08 calamari: exactly. 01:11:22 but for windows, that wouldn't work very well :) 01:11:23 alternatively... if you don't want to do that... just remove the import from the code! seriously. 01:11:28 calamari: see what i just said 01:11:30 also 01:11:36 you don't run external code without reading it 01:11:38 if you're paranoid like that 01:11:43 its just like downloading and running a perl script!! 01:11:52 about as readable too. 01:12:25 ehird`_: did you help write PSOX? 01:12:40 calamari: no, but i have svn access since a few seconds ago 01:12:48 and have sat by and complained since forever 01:12:48 calamari, ehird helped shape some parts, and is now trying to redo how I/O is done 01:12:57 and write a gui domain 01:12:58 and an ffi domain 01:13:01 and a domain domain 01:13:02 ehird`_: just seems like you're kinda hostile towards it ..hehe 01:13:10 calamari: just that feature. :-) 01:13:26 calamari, ehird`_ has been less hostile towards it since he pointed out that most of the bitwise stuff could be removed 01:13:34 can it? 01:13:39 calamari: yes. 01:13:41 err 01:13:43 boolean stuff. 01:13:48 I think ehird`_ originally became hostile when some stuff he suggested was removed (TDATA (the "ANY" type)) 01:13:52 boolean sure 01:13:57 right, boolean, not bitwise 01:13:58 Mybad 01:13:59 Sgeo: nah 01:14:00 it was before that 01:14:01 i think 01:14:01 :P 01:14:05 bitwise is hard for bf tho.. and/or/xor 01:14:12 although not impossible 01:14:16 calamari, I meant removed boolean 01:14:33 http://trac2.assembla.com/psox/browser/trunk/spec/psox-utils.txt 01:15:07 Sgeo: can i just remove the safety stuff and we'll see who exactly is going to write a brainfuck virus and regular people who won't read the code will download it, psox, an interpreter, and blindly run it? 01:15:57 ehird`_, I don't see why you're so violently opposed to the safety stuff 01:16:28 Sgeo: it's crap pointless and will make writing stuff harder for no reason 01:16:46 I'm quite fine with the safety stuff as long as there's some switch to disable it. 01:17:02 ihope_, there's really nothing to disable 01:17:10 ihope_: nobody will use it 01:17:11 What is the safety stuff, then? 01:17:21 iit's just pointless and doesn't help devs 01:17:24 seriously 01:17:36 ihope_, putting -s nonet to disable internet acces, or -s fullfileio to not force file I/O to be in a sandbox 01:18:03 ... which is of course useless as your os can do it anyway 01:18:06 and you can just edit the psox code 01:18:07 Sgeo: are these options defined by the libraries, or are they hardcoded into the executable? 01:18:14 File I/O is in a sandbox by default? 01:18:16 calamari: libraries have to go around them... 01:18:17 ihope_: yep 01:18:19 calamari, defined by the libraries 01:18:22 and 'normal users' aren't going to use psox anyway 01:18:27 and people who will use psox 01:18:30 CAN READ BRAINFUCK CODE!! 01:18:40 it is JUST LIKE downloading a Perl program, can't you see that Sgeo? 01:18:44 Or even Java! 01:18:51 Who said I can read Brainfuck code written by others? 01:18:53 How come they don't have any need for it; but PSOX does? 01:19:01 And WHO IS GOING TO WRITE A BRAINFUCK&PSOX VIRUS? 01:19:02 Sgeo: so if I'm writing my own library calamari::blah .. it could add -s abcd to do something? 01:19:09 calamari, yes 01:19:13 Don't you see...? 01:19:17 brb 01:19:20 Are there other safeties that are enabled by default? 01:19:24 Sgeo: that seems fine to me.. *shrug* 01:19:40 Sgeo: Don't you see, though? I honestly don't see how you don't get what I'm saying 01:19:53 If so, it seems that there is indeed something to disable. 01:20:06 ehird`_: if I'm understanding what he is saying.. you don't even need to worry about the safety stuff if you don't care 01:20:20 calamari: you most certainly do 01:20:44 ehird`_: why? if my calamari:: library doesn't want to respect -s nonet, it would just ignore it 01:21:02 calamari: ahh but it needs to respect -s nocalamarilibrary 01:21:08 What calamari said 01:21:13 and also if i want stuff included in the main psox distro 01:21:14 i'd have to 01:21:31 Sgeo: Name one use case for the safety, and tell me how it is different from just running a Perl script? 01:21:40 And also, tell me who will write a PSOX virus. 01:21:48 ehird`_, someone who hated me 01:21:54 ... 01:21:58 or some other PSOX fanatic who is unable to read BF code 01:21:59 ehird`_: if you don't like the standard library, make one without the safety stuff.. problem solved? 01:21:59 well 01:22:10 I HATE YOU SGEO!! Wait.. I know... I'll write a PSOX virus! 01:22:14 MWAHAHAHAHHAHAHAHHAHAHAHAHAHAHA!!!!! 01:22:19 :) 01:22:29 what's psox? 01:22:42 http://esolangs.org/wiki/PSOX 01:22:52 Sgeo: anyway, what if I can't read Perl? 01:22:53 thx 01:22:55 Tritonio_: it's an esolang wrapper that extends its functionality 01:23:10 filesystem functions etc? 01:23:13 ya 01:23:17 Tritonio_, eventually, yes 01:23:26 memory management? 01:23:29 Sgeo: Here are some scenarios: 01:23:32 1. I don't know Perl 01:23:33 wraps around stdin and stdout? 01:23:35 Tritonio_, currently, there are only math utilities and HTTP 01:23:35 2. I download a Perl script 01:23:36 3. I run it 01:23:38 ---- 01:23:43 1. I don't know Brainfuck. 01:23:46 http??? lol. nice... 01:23:48 2. But I have a brainfuck interpreter and PSOX! 01:23:55 3. And I like downloading PSOX programs! 01:24:00 4. And someone has written a PSOX virus! 01:24:03 5. And I download it and run it! 01:24:20 Sgeo: The Perl script is 5 times more likely to be a virus; PSOX just does not have the need for these features. 01:24:52 ehird`_: I like the idea that my code will have the ability to read command line options 01:25:09 calamari: Sure. That's great and all. I'm just highlighting a problem. 01:25:12 Sgeo, why don't you simply map the functions of a high level language? like python... 01:25:26 And PSOX will offer normal command-line argument handling, presumably. 01:25:28 calamari, thing is, there is a virtual command line that a PSOX client can read (-c fakecommandline) 01:25:47 A bit ugly, but I don't know how to do it better 01:25:54 wget.b uses it 01:26:12 Sgeo: that sounds fine.. sh/bash do it that way 01:26:50 calamari, but that weighs in in ehird`_'s favor in the debate, so -s isn't needed for that sort of functionality 01:26:58 so you could do -c -s nogui 01:27:22 Well, I think that would leave the virtual command line blank actually 01:27:26 I'm not sure how it works 01:27:30 hehe 01:27:37 -c "-s nonet" 01:27:54 -c would generally be used for the client to read 01:28:03 but then the program would have to handle it 01:28:10 -s is instructions to the libraries usually regarding what to allow and not to allow 01:28:11 rather than PSOX 01:28:21 right 01:28:48 well how about this? -s HTTP=no 01:28:55 then it'd disable HTTP:: 01:29:12 Hm, I'm not sure how I'd go about coding that 01:29:23 Although that does make sense 01:29:28 isn't HTTP definied in its own file? 01:29:33 I don't know how optionparser works 01:29:41 ahh 01:29:45 but the safety stuff could be stored in a dictionary I guess 01:29:55 neither do I.. haven't really studied perl.. just python 01:30:15 The reference PSOX interpreter is Python 01:30:19 -!- slereah__ has joined. 01:30:21 *is in Python 01:30:21 that's just loading&unloading domains 01:30:21 then the libraries wouldn't have to deal with safety at all 01:30:24 which is fully reasonable 01:30:27 but its nothing to do with safety 01:30:33 calamari, yes they would 01:30:33 ahh cool 01:30:51 Sgeo: no they woulen't 01:30:51 well I can help you then.. I've done a lot with python parsing 01:30:59 anyway 01:31:01 calamari, currently, PSOX.py uses regex 01:31:02 that feature is trivial 01:31:20 http://trac2.assembla.com/psox/browser/trunk/impl/PSOX.py 01:31:59 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 01:32:37 ehird`_, you just removed safety from the trunk 01:32:41 * ehird`_ smirks 01:32:47 I was wondering how long it would take you to notice. 01:34:41 ehird`_ broke PSOX 01:34:46 haha 01:34:47 how 01:34:49 :o 01:34:56 MY_VERSION is required 01:35:52 fixed it 01:36:22 ehird`_, no you didn't 01:36:26 You fixed it in one place 01:36:31 Sgeo: the rest were already fixed 01:36:31 :/ 01:36:34 they all have MY_VERSION 01:36:45 dc_exampledomain? 01:36:51 ah 01:36:53 ok 01:37:04 Also, one of the system domain functions looks at G.SAFETYLIST 01:37:07 okies 01:37:09 i'll fix too :P 01:37:23 ah 01:37:23 well 01:37:25 ehird`_, going to fix the specs too? 01:37:27 that's specifically safety-related 01:37:32 so, i'll comment it out and reserve it for use 01:37:53 and tyes 01:38:09 calamari, pikhq, do either of you find it objectionable that ehird`_ just unilaterally made a change without my permission? 01:38:25 perhaps 01:38:28 but i don't think anyone noticed 01:38:30 because nobody used it. 01:39:21 Sgeo: anyway, all fixed and spec updated. 01:40:20 No, python PSOX.py python testcustdomain.py isn't working 01:40:36 Are you still importing SAFETYLIST? 01:40:40 Sgeo: No. 01:40:43 I THINK i fixed that 01:40:45 Oh, maybe in PSOX.py 01:40:46 XD 01:40:54 no, not in PSOX.py 01:40:59 ok 01:41:00 then time to hunt 01:41:33 ah 01:41:34 exampledomain 01:41:37 thanks grep(1) 01:42:12 should be ok now 01:42:19 Or you could have assigned a blank list to G.SAFETYLIST 01:42:52 Works now 01:42:55 Sgeo: dunno why.. but I gues I had to see something like wget before I woke up and got interested :) 01:43:14 although I'm not completely thrilled by the impl.. seems like it could be simpler 01:43:27 calamari: it could be 01:43:32 you could practically golf it 01:43:56 so if you don't mind.. I may fool around with a fork and see what comes of it 01:44:00 calamari, thank pikhq for wget.b 01:44:14 * Sgeo doesn't mind 01:44:23 then if you like it, could merge it 01:44:29 calamari: please don't add safety... i can't be bothered to have another debate 01:44:30 :P 01:44:38 ehird`_: lol.. 01:44:50 ehird`_, we really haven't finished our debate, you unilaterally removed safety 01:44:52 you agreed with what I had to say about it I think 01:45:01 Sgeo: Would a C psox be a good idea? 01:45:17 ehird`_, not if it would be difficult to implement domains 01:45:18 I mean, as the main impl. Justification: 01:45:21 Sgeo: Oh, no. 01:45:25 You can embed Python and stuff. 01:45:25 ehird`_: C isn't good at dynamically importing stuff, is it? 01:45:31 calamari: dlopen 01:45:37 dlopen? 01:45:39 dlopen. 01:45:45 Sgeo: But I mean, the justification 01:45:49 is that C has the best library support 01:45:52 so the FFI would be the richest 01:46:08 I think that'd tie it down to linux only 01:46:19 or posix or whatever 01:46:21 uhh 01:46:21 no 01:46:24 dlopen is on windows to 01:46:26 too 01:46:44 you can't be suggesting that all os's have the same libraries 01:46:44 No, Linux only is not an option. I complicated retrieving input so PSOX would work with Windows 01:46:57 did you not read.. 01:47:09 calamari: I assume Sgeo isn't actively planning to support VMS. 01:47:17 Sgeo: I just said.. 01:47:23 dlopen is on windows 01:47:39 as long as you write a 3-line wrapper for it 01:47:40 ehird`_: can you give a dhopen example? I am not familiar with it 01:47:47 dlopen, sorry 01:47:48 Can't you embed C into Python? 01:47:48 calamari: eh, google... not off the top of my head 01:47:56 Sgeo: Uh, that's not quite the point. 01:48:03 And no, you can't without a lot of horrid pain. 01:48:29 ehird`_: the advantage of python is that it is cross platform with a standard set of libraries 01:48:37 c is pretty standard. 01:48:43 c has more libraries, too. 01:48:50 also, you overestimate how complex psox is... 01:48:56 and how many libraries it'd need to use 01:49:00 s is.. but besides the std lib, nothing else is standard 01:49:09 s->c 01:49:32 they'd pretty much have to install cygwin to use it 01:49:50 One objection to a C interp as ref is that I don't know C 01:50:57 no 01:50:57 they 01:50:58 wouldn't. 01:50:59 :| 01:51:02 seriously 01:51:14 i can write it as libc with a few wrappers for dlopen 01:51:15 that's it 01:51:20 +python stuff, if wanted 01:51:48 please provide a simple example, even if it's pseudocode 01:52:12 calamari: of what. 01:52:25 ok then 01:52:32 dlopen("foo.so", flag); 01:52:34 or 01:52:40 open_wrap("foo"); 01:52:45 which will call the win32api on windows 01:52:50 thanks 01:52:51 foo.so 01:52:59 that's foo.dll 01:53:03 on windows 01:53:25 but there is no guarantee that foo.so and foo.dll are even compatible 01:53:31 calamari: ... 01:53:33 this is for psox domains 01:53:36 on linux 01:53:38 and posix 01:53:41 they will be compiled to .so 01:53:42 on windows 01:53:43 .dll 01:53:47 and the wrapper will handle it 01:53:51 what is hard to understand about this? 04:03:31 -!- clog has joined. 04:03:31 -!- clog has joined. 04:03:35 Hi clog 04:03:54 because it is more cohesive 04:04:10 now all file I/O can go into a domain 04:04:26 rather than be a PSOX core function 04:04:33 :) 04:05:06 So both you and ehird want the same thing? 04:05:16 re: Shoving I/O into a domain? 04:05:22 so, for example if you imported a domain dedicated to input to 0x01, then you'd say 0x01 "text" 0x00 .. something like that 04:06:11 although it'd probably be more of an i/o domain, with file handling, etc 04:06:25 Why these redesigns now when PSOX is so close to completion of 1.0? 04:06:30 FIXED 04:06:41 oh, I'm not saying you should redesign anything 04:07:10 I'll implement it separately.. and then we can get together and see what we think of it 04:07:27 that way if it doesn't work out, you haven't lost a thing 04:07:33 sound ok? 04:08:34 I guess, but it seems like a lot of effort on your part for something that IMO isn't really needed 04:09:02 I understand 04:10:40 it's 6am here so i am going to sleep. i'll check it thoroughly tomorrow. calamari use this for reading from the table: >[>>>[-<<<<+>>>>]<[->+<]<[->+<]<[->+<]>-]>>>[-]<[->+<]<[[-<+>]<<<[->>>>+<<<<]>>-]<< i think it's ok. but maybe it's not... 04:10:45 goodnight everyone. 04:10:57 G'night Tritonio_ 04:21:51 Tritonio_: ok thanks.. 04:23:43 Tritonio_: dunno if you will see this, but I never used the reading code 04:23:57 I was examining the values directly from BF memory 04:31:19 Sgeo: TDATA is mentioned in psox-types.txt then never defined 04:32:05 calamari, oh right, that's old 04:33:21 VERY old 04:33:34 http://trac2.assembla.com/psox/browser/trunk/spec/psox-types.txt 04:33:38 says it's 2 days old 04:34:02 Nov. 8, 2007 old 04:34:18 Revision 10 old 04:34:26 what is STRINGNL needed for? I see the description, but why wouldn't a STRING work? 04:34:49 A STRING would work, but it's a bit of overhead to have a 0x00 right at the end before the 0x0A 04:35:08 oh, does every command have to end with 0x0A? 04:36:14 I guess it would, since you read lines only 04:38:03 no floating point? 04:38:07 The reason is for any esolang interpreters that only write out on a newline 04:38:11 No floating point 04:40:06 cool, just learned something about python.. j gives you imaginary numbers.. so a=1j, a+=1 gives a=(1+1j) 04:40:35 j=sqrt(1) 04:40:39 err -1 04:41:44 how many bytes is an FNUM? 04:43:05 FNUM(1) is 1 byte, FNUM(2) is two bytes, etc 04:49:23 http://trac2.assembla.com/psox/browser/trunk/spec/psox_net.txt does this look good so far? 04:51:04 I guess? 04:51:10 kinda tired now 04:55:42 Sgeo: did you guys consider another data representation for unknown length, escaped ASCII... where 0x01-0xFF are as normal, 0x00 0x00 = 0x00, 0x00 0xelse=EOF? 04:56:13 calamari, that might not be easy for BF to process 04:56:13 that would possibly incur less overhead than LNUM/LBYTES 04:57:37 it wouldn't be too bad.. you'd use the standard if=0 code 05:00:33 meh 05:00:45 while not eof { data=read_byte; if=0 { data=read_byte; if<>0 { set_eof } }; if !eof { do_something_with_read_byte } } 05:00:50 something like that 05:01:08 meh 05:02:34 what does meh mean? 05:03:06 or is that a way of dismissing what I said without actually coming up with a refutation? 05:03:21 most exquisitly horrible 05:03:35 *e 05:03:53 that's bf for ya 05:04:19 I think I like the easier-for-BF-to-process solution 05:04:39 doesn't seem like it's much different to me 05:05:01 you're still going to need the inner if to decide what to do 05:06:19 while not eof { data1=read_byte; data2=read_byte; if data1=0x01 { set_eof }; if !eof { do_something_with_data2 } } 05:07:07 note that my if<>0 is easy to code up, so that's nothing 05:08:26 see? they are essentially identical.. and now more capable langs don't have to output so much 05:08:32 or read so much 05:09:45 I still hold that the current way is simpler 05:10:17 yes it is slightly simpler at the expense of approx twice as much I/O 05:10:24 for BF only 05:10:30 other langs it is no simpler 05:11:48 Wait, what was your way again? 05:12:31 0x01-0xFF are as normal, 0x00 0x00 = 0x00, 0x00 0xelse=EOF? 05:12:39 00 = ESC, ESC 00 = 00, ESC 01 = END_OF_DATA 05:12:55 01=ELSE.. either way 05:13:42 I thought there was a flaw, but I was thinking of something else 05:14:16 Writing out to that format requires a bit of processing 05:14:37 an if statement is a lot of processing? 05:14:49 I rememeber trying to do something similar, where 0x01 escapes, and unescaped 0x00 is EOF 05:14:59 if data_to_output = 0x00 { output 0x00; output 0x00 } 05:17:32 I'm not saying you need to replace the other.. but it would be nice to see this as an alternative format 05:17:57 although with the way you are doing the processing it might be a pain to add it 05:18:03 Well, there's currently no provisions for clients to choose which format they want to do 05:18:23 And that's basically the only way I can think of adding it 05:18:40 ahh it's all up to the function receiving it? 05:18:57 right, then it'd have to be one or the other 05:20:04 serialization is such a pain :) 05:20:18 -!- ihope_ has quit (Read error: 110 (Connection timed out)). 05:22:23 brb 05:25:10 bedtime.. bbl 05:25:16 -!- calamari has quit ("Leaving"). 05:35:53 Ok, I think I mostly completed the docs for the Net domain 05:36:10 I'll then eventually work on the File I/O domain and base the FTP parts of the Net domain on that 05:39:22 I should probably go now 05:54:06 -!- rutlov has joined. 05:56:42 -!- oerjan has quit ("leaving"). 06:00:06 -!- rutlov has left (?). 06:26:09 0x00 0x08 0x01 0x05 0x00 0x00 0x50 0x0A 06:26:46 ^^ beginnings of an HTTP server 06:27:34 0x00 0x08 0x02 0x00 0x0A 06:27:44 0x00 0x02 0x11 0x04 0x0A 06:27:58 0x00 0x01 0x00 0x0A 06:31:03 0x00 0x08 0x01 0x05 0x00 0x00 0x50 0x0A 0x00 0x08 0x02 0x00 0x0A 0x00 0x02 0x11 0x04 0x0A 0x00 0x01 0x00 0x0A 06:42:47 hey guys, check it out- I wrote a lisp-derivative bingo card generator in postscript: http://www.nonlogic.org/dump/text/1203316480.html 06:43:21 any suggestions for additional words? 07:04:41 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:11:23 -!- BMeph has quit ("calls it a night"). 10:16:13 -!- olsner has joined. 10:24:10 -!- timotiis has joined. 10:35:07 -!- Corun has joined. 10:54:57 -!- es0n00b has joined. 10:55:12 !help 10:55:16 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 10:55:18 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 10:55:21 * slereah_ provides help 10:55:33 howdy do 10:55:44 Moral support? 10:55:50 lol 10:55:52 Hello es0n00b. 10:56:42 !unlambda ```s``sii`ki``s``s`ks``s``s`ks``s`k`s`kr``s`k`si``s`k`s`k`d````````````.H.e.l.l.o.,. .w.o.r.l.d.!kk`k``s``s`ksk`k.* 10:56:52 dunno if it'll work 10:57:16 Me neither. I don't do well on strict evaluation. 10:57:32 maybe it's crashed?? 10:58:03 No idea. 10:59:06 nup, didnt work. oh well. 11:00:42 What was it supposed to do? 11:01:40 it was supposed to do an endless loop print of "Hello World!" 11:01:59 but it's based on unlambdaV3 11:02:12 (copied from http://www.madore.org/~david/programs/unlambda/#lambda_elim) 11:02:36 Well, EgoBot doesn't like infinite loop much 11:02:36 -!- Corun has quit ("This computer has gone to sleep"). 11:02:59 !unlambda ```sii``sii 11:03:00 yeah. just wanted to test egobot's limits 11:03:08 !unlambda ```sii``sii 11:03:52 *** 11:05:02 are all egobots languages obsficated? 11:05:22 Well, esoterics. 11:05:44 Hm. It has malbolge. 11:05:45 i know esoteric doesnt always mean obsficated (or does it?) 11:05:56 I wonder if it would output something with a random string. 11:06:01 malbolge is a nightmare from what i've read 11:06:15 Well, the popular languages are mostly turing tarpits. 11:06:39 And they're usually harder to read than write. 11:06:47 !malbolge é(,hjy_én,hju_ç)éj-ué"(èk87"èk876l4k"-k4'7è_4kl7kn7-"-jk4è-l4 11:06:48 invalid character in source file 11:06:53 Damn you robot! 11:07:12 just wondering which is a ?good? one to try and write an interpreter in 11:07:35 so i could test a prototype language in another language 11:07:54 (good is hard to define in this sense) 11:09:25 unlambda has still got me thinking. i just still cant quite get my brain around it 11:09:27 !malbolge (=<`#9]~6ZY32Vw/.R,+Op(L,+k#Gh&}Cdz@aw=;zyKw%ut4Uqp0/mlejihtfrHcbaC2^W\>Z,XW)UTSL53\HGFjW 11:09:30 Hello, world. 11:09:33 :D 11:09:37 yaay! 11:10:11 unlamba accepts functions, performs functions on them, and returns functions 11:10:26 Well, it also does side effects. 11:11:19 surely, if unlambda is TC, there exists unlambda functions that will return the derivatives, antiderivatives, and inverses of functions 11:12:01 i just cant work out how to represent numbers other than natural numbers 11:12:01 Yes indeed. 11:12:01 eg 1/2, root(2) or pi 11:12:18 Well, you can try to look at the foundation of mathematics. 11:12:47 i understand thats what unlambda is about- mathematical foundation 11:12:47 For instance, rational numbers can be represented as ordered pairs. 11:12:56 And unlambda has ordered pairs 11:13:37 i'm just waiting for the flash of inspiration when i understand exactly what S, K and ` do 11:13:48 Well, what they do is simple 11:14:05 ```sabc transforms to ``ac`bc 11:14:10 ``kab to a 11:14:14 ah, combinatory logic ensnaring yet another wayward soul 11:14:16 ` just means "apply". 11:14:35 It has this simple yet alien beauty 11:14:37 (still dont get it) 11:14:57 There's nothing much more to get, really. 11:15:15 The thing to understand after that is how to change that into something useful. 11:15:59 An easy one is the conditional. 11:16:08 hang on 11:16:14 "True" and "False" can be written as k and `ki 11:16:49 A conditional can be written as ``[condition][A][B] 11:17:05 ```sabc == ``ac`bc. is this the simplest use of S? 11:17:22 If it's true, it transforms to k, and ``k[A][B] converts to A 11:17:53 False, to `ki, and ```ki[A][B] converts to `iB, to B 11:18:03 It's the only use of s 11:18:39 So ``[condition][A][B] is "if condition, then A, else B" 11:18:54 ok, so ```sabc==``ac`bc and ``kab==k define S and K? 11:19:06 *``kab = a 11:19:11 Yes it is. 11:19:26 (sorry ``kab==a) 11:19:55 Or in lambdas, S = ^abc.(ac)(bc), K = ^ab.a 11:20:06 wow - i understand what you mean by trying to make something useful out of it 11:21:14 -!- olsner has quit ("Leaving"). 11:21:59 (trying to absorb unlamdba's if-then-else) 11:22:58 ok -why is k=TRUE, `ki=FALSE? 11:23:22 Conventions, I assume 11:23:54 You could probably work some true-false with something else, but conditionals are easy to do this way. 11:24:05 Logical operator are easy too. 11:24:07 ok. and what does the I in `kI do? 11:24:23 i is the identity combinator. 11:24:29 `iA = A 11:25:03 It's not necessary, since there's also ```skkA = ``kA`kA = A 11:25:07 But it's shorter. 11:25:21 (so used to instructions doing things. is it still right to call them instructions, and say that they do thinks? unlambda is beginning to unravel my understanding of the definition of things) 11:25:51 The madness is setting in :o 11:26:03 Here's a useful fellow : ``s``si`k`k`ki`kk 11:26:16 ok. think i got that part. `iA says perform identity function on A, returning identity(A)=A 11:26:31 It's the "is zero" function. 11:26:41 Returns true for 0, false for something bigger. 11:27:21 example of "``s``si`k`k`ki`kk" plz? 11:27:52 Well, in Church numerals, 0 is ^fx.x -> ki 11:28:07 So ```s``si`k`k`ki`kkki transforms to k 11:28:36 And 1 = ^fx.fx = (through eta reduction) ^x.x = i 11:28:47 so ```s``si`k`k`ki`kki transforms to ki 11:29:38 2 would be something like ``s``s`ksk``s``s`ksk`ki according to my abstraction elimination program, so I'll probably stop there 11:30:29 ok- being able to evaluate x=0 is useful, but evaluating x>0 is more useful 11:30:44 x>0 is longer 11:30:50 And x=y even longer. 11:31:43 a>b is ``b`b``c`t0k``c``bb``b`b``c`t`k0k``c``bb`c`t``c``bc``b`bc``c``bc``b`bb``cb``b`bttkiii in lazy bird, and it's already quite compressed. 11:31:45 x=y, x=0, x<0, etc etc can all be derived from x>0 (the basis of OISC type languages) 11:32:46 Well, if I use the a Which means that 0 Of course, since this is Chuch numerals, it will always be true except for 0. 11:34:40 its annoying, im only half getting it 11:35:02 i get the idea of how it can work, but dont understand the mechanics of how it works 11:36:30 so - it should be possible to compile OISC into unlambda (sort of the definition of both being TC) 11:36:58 by using the x>0 and if-then-else versions of unlamba 11:37:06 Yes, though probably not pleasant. 11:37:41 You can probably tinker some negative number with some ordered pair 11:37:54 the problem would then be trying to find ways of eliminating redundant code 11:37:58 And the operation applied on it will depend on the truth value. 11:38:18 (ie code optimisation) 11:39:03 the idea has been floating around in my head for a few days now, the problem of compiling one Turing tarpit into another tarpit 11:39:18 Well, a simple way is to write first in lambdas, since with lambda calculus, any function f used more than once can be rewritten as (^f.program)function 11:39:35 But lambda calculus doesn't transform to combinators very efficiently 11:43:18 machine translation if fascinating. like transforming english->japanese->english. good for shits and giggles 11:44:28 (too many ideas - too little time and skill to implement) 11:45:29 cant even imagine trig function i unlamba, but i guess they've been explored already?? 11:46:44 thinking of it - even divide seem difficult. 11:47:02 I suppose it's just some iteration of series. 11:47:59 of course! first, define factorial, then use some recursive version of the Taylor series! 11:48:16 Factorials are well known. 11:48:29 It's usually the standard example for the fixed point combinator. 11:50:14 ok. know much about the gamma function (related to factorial, but also valid for non-natural numbers) 11:51:11 Well, we don't use it that much in physics. 11:51:29 http://en.wikipedia.org/wiki/Gamma_function 11:51:45 I know what it is. 11:51:47 gamma(n)=(n-1)! 11:52:22 how wouyld you define the integral version of gamma in unlamba? 11:53:02 Well, my guess would be that first, you have to define reals. 11:53:11 That's where the laugh ends! 11:53:47 Although you could probably scratch up something out of rationals and taylor series. 11:54:28 i worked out a way to define integration by recursion of a function without determining its antiderivative, but it was only valid for bounded integrals 11:54:36 ie wouldnt apply for gamma 11:55:48 I'd advise to first work on simpler programs. 11:56:09 Unlambda isn't the easiest language in the world. 11:56:33 Also often hard to manipulate, since it's hard to keep tracks of variables 11:56:34 (just want to dive in and do things - but understand it aint that easy) 11:57:57 PS: yep. gamma doesnt have an taylor polynomial definition, but there is another non-integral definition that would be an easier approach 11:58:06 I personnaly usually just write my functions in lambda calculus. 11:58:14 (at least not an EASY taylor definition) 11:58:28 And then converts it to combinators. 11:58:49 I keep a small list of functions, plus numbers from 0 to 100 11:59:27 And then, I try to optimise the functions. 12:00:10 thats the sort of line of thinking i was having 12:00:26 Usually by letting them run through Lazy Bird (it can prints the expression at each step, so I can pick the shortest), trying to see by hand what it does, or passing it through the JUGGERNAUT 12:00:41 The JUGGERNAUT is a fucking stupid program, but it works. 12:01:03 Well, on a certain class of expressions at least 12:01:04 read a little about Lazy-Bird. whats that about? 12:01:32 That's my version of unlambda, with lazy evaluation. 12:01:39 I find it easier to use. 12:01:44 Plus, more combinators. 12:02:03 sort of a short-cut version of unlamba? 12:02:34 Pretty much 12:02:39 (easier to read, not difficult to convert Lbird -> unlambda?) 12:02:43 cool 12:02:59 Well, actually, it's probably not that easy to convert to unlambda 12:03:06 -!- sebbu2 has joined. 12:03:51 The Juggernaut will generate all possible combinators (minus some expressions like `iA, since it's the same as A), try them on a bunch of dummy combinators, and compare the result to the original combinator. 12:04:28 For instance, for some dummy combinator A, ```skkA converts to A, and so does `iA, so it will give that answer. 12:05:15 But stuff like ``uuA converts to `A``uuA, so it won't be able to find equivalents without u's in them. 12:05:48 It's also very fucking slow, but it's useful on small bits of code. 12:06:06 !unlambda ``s``s`ksk``s``s`kski 12:06:36 !unlambda `ki 12:06:36 Unlambda expressions without output won't give you much results. 12:06:45 ahh 12:06:58 just trying some basics 12:07:28 !unlambda ``k```.b.u.t.t````.s.t.u.f.f 12:07:34 butstuf 12:07:44 Ah yes, I forgot 12:07:58 guess there are more consise ways of representing large numbers, other than the iterative version like s(s(s(z))) 12:07:59 Or did I? 12:08:22 Large numbers can usually be represented by operations on smaller one. 12:08:42 The most basic is through the successor operator, but there's shorter ways 12:09:03 For instance, http://membres.lycos.fr/bewulf/Russell/Lazy%20Bird/Church%206.txt 12:10:36 The sudden reduction in size of the writing usually corresponds to a power of some numbers 12:10:53 Because the power of a number is the shortest operation. 12:11:33 256 is very short because it's (2^2)^(2^2) 12:11:36 (knew powers would have to feature somewhere in the definitions) 12:12:37 was kind of thinking along the lines of binary is more compact than unary, but other base numbers being more efficient for other nautral numbers 12:12:55 but your page defines that brilliantly. THX!! 12:12:59 goodmorning 12:13:02 Hi. 12:13:27 I actually mostly used the Lazy K reference doc on numbers. 12:13:30 moringing 12:13:35 Except translated from lambdas to lazy K 12:13:40 *bird 12:14:14 ok. how do i get !unlambda to evaluate and output 256=`m`m``sbi. it's going to return it in unary form, right?? 12:14:40 Well, church-to-ASCII is bothersome to write. 12:14:44 (seems like it's going to be too easy to flood the page) 12:15:29 sorry. my question wasn't well defined. lets say i wanted to print 256 asterisks?? 12:15:31 !unlambda ````b``sb`m``sbi``sbi`d.xi 12:15:32 ./unlambda/unlambda: file ./tmp/egobot.0kJFuG: parse error 12:15:51 I'll never understand unlambda. 12:15:59 Ah yes, I'm dumb 12:16:00 That's why 12:16:04 Wrong combinators. 12:16:16 Quick, to the Birdiest! 12:16:35 (Birdiest being Lazy bird -> SKI translator) 12:16:58 translator! coo-oo-ool! 12:17:23 (said with my lasiest owl impersonation) 12:18:27 It just replaces b-c-w-... with their sk equivalents. 12:18:41 !unlambda ``````s`ksk``s``s`ksk```s``skk``skk``s``s`ksk``skk``s``s`ksk``skk`d.xi 12:18:54 No? 12:19:00 !unlambda ``````s`ksk``s``s`ksk```s``skk``skk``s``s`ksk``skk``s``s`ksk``skk.xi 12:19:10 !unlambda `.xi 12:19:25 He's mad at me I think. 12:19:56 -!- sebbu has quit (Connection timed out). 12:20:14 xxxxxxxxxx 12:20:16 xxxxxxxxxx 12:20:18 x 12:20:19 Ah, finally 12:20:31 So yes, there's the unary printing. 12:21:15 !unlamda ```s``s``sii`ki`k.*``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk`k``s`ksk 12:21:18 Huh? 12:21:20 !unlambda ```s``s``sii`ki`k.*``s``s`ks``s`k`s`ks``s``s`ks``s`k`s`kr``s`k`sikk`k``s`ksk 12:21:40 (ok - either fibbonacci or crash) 12:21:53 (i vote for crash) 12:21:58 Heh. 12:22:07 You used some pairing in it? 12:22:27 just copying straight from http://www.madore.org/~david/programs/unlambda/ 12:22:47 but the codes might be for unlambdaV3.0 12:22:53 Fibonacci doesn't stop, too. 12:23:00 So he might not appreciate 12:23:15 so far, none of the codes from that page have worked. at least, not the ones with looping 12:23:26 your right. egobot might not like infinite loops 12:23:39 anyway to kill a bad looping process?? 12:23:48 !help 12:23:50 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 12:23:52 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 12:23:56 !kill 12:24:26 Well, you could either use iterations instead of loop, or you could use v with some conditional. 12:24:46 ok. time to go to bed. and count sheep. in LAMB-da, of course ;) 12:24:58 Bye. 12:25:12 ciao for now. have a good day 12:25:30 -!- es0n00b has quit ("JWIRC applet"). 12:52:36 No such process! 12:53:22 Slowpoke 12:56:00 Hello, world! 13:44:56 -!- timotiis_ has joined. 13:58:00 -!- timotiis has quit (Read error: 110 (Connection timed out)). 15:07:51 -!- helios24 has joined. 15:09:13 -!- jix has joined. 15:26:21 i think they work now... http://inshame.blogspot.com/2008/02/efficient-brainfuck-tables.html 15:47:35 -!- ehird` has joined. 15:48:15 hello, vaguely crazy world 15:48:40 hm 15:48:45 the topic would be clearer with | as the seperator 15:48:46 stands out more 15:49:21 -!- ehird` has set topic: the international hub for esoteric programming language design and deployment | map: http://www.frappr.com/esolang | forum: http://esolangs.org/forum/ | EgoBot: !help | wiki: http://esolangs.org/wiki/ | logs: http://tunes.org/~nef/logs/esoteric/ or http://ircbrowse.com/channel/esoteric | Pastebin: http://pastebin.ca/. 15:49:24 just an example 15:52:25 -!- faxathisia has joined. 15:56:21 hm 15:56:26 does !unlambda not support v3? 15:58:44 Well, since the example used involved infinite loops, I'm not sure that was the problem 15:59:35 yes 15:59:36 just asking 16:18:03 pikhq: what's this about tcl virtual what what 16:50:53 -!- RedDak has joined. 17:04:06 -!- RedDak has quit (Remote closed the connection). 17:16:31 ehird`: Tcl has a virtual filesystem layer, allowing one (with the right module) to just attach a file descriptor to http://pikhq.nonlogic.org/wget.b. 17:16:40 Or to a file in a Tclkit. . . 17:17:36 * ehird` is considering writing a cleaner psox 17:17:43 Socks Pee, or something. :-P 17:18:42 (are you at all familiar with Tclkits, Starkits, and Starpacks?) 17:19:13 -!- RedDak has joined. 17:24:48 pikhq: No 17:30:58 A Tclkit is a full, complete Tcl setup in one file. 17:31:19 A Starkit is an archiving format for Tcl files. A Tclkit can run one directly. 17:31:26 A Starpack is a Tclkit with a Starkit in it. 17:37:51 -!- RedDak has quit (Remote closed the connection). 17:46:37 -!- RedDak has joined. 17:46:51 "(I should be able to manipulate code as a list)." -- Someone, on Scheme. 17:47:52 Sure, go for it. 17:47:57 I don't get it :S 17:48:17 [info proc proc_name] returns the code body of a function. 17:48:19 As a list. 17:48:20 ;) 17:49:54 pikhq: Note scheme. 17:50:02 faxathisia: Well, that's what Lisps are known for.. 17:50:07 You can manipulate code as a list. 17:50:19 just found it funny 17:57:35 -!- Tritonio_ has quit (Remote closed the connection). 17:57:52 -!- Tritonio_ has joined. 17:58:38 -!- BMeph has joined. 18:00:49 -!- olsner has joined. 18:16:16 -!- Corun has joined. 18:26:38 -!- RedDak has quit (Remote closed the connection). 18:32:07 -!- helios24 has quit ("Leaving"). 18:45:08 -!- ais523 has joined. 18:51:14 hello ais523 18:51:17 -!- Endeavour has joined. 18:51:17 Hello, Tcl world. 18:51:17 -!- Endeavour has left (?). 18:51:18 -!- Endeavour has joined. 18:51:18 I almost forgot. This is a test. 18:51:20 -!- Endeavour has quit (Client Quit). 18:52:11 hm 18:52:12 hello ehird` 18:52:13 i'll take that to #endeavour 18:52:14 :P 18:55:44 * ais523 has been trying to write code on some buggy hardware 18:56:01 although the code was originally in C, I ended up having to edit the assembly by hand to get round the machine code instructions that didn't work 18:56:08 and even then it only ran under a debugger... 18:56:18 oh dear 18:56:33 * slereah_ thinks of : http://www.mini-moto.fr/photo%20jpeg%20bon%20format/buggy%201.jpg 18:56:37 hopefully it was just a faulty chip 18:56:42 It would be an awesome code 18:56:49 so I've ordered a couple of replacements to see if they work 18:57:50 (Endeavour, btw, is my EgoBot-alike) 18:58:04 does it run any esolangs yet? 19:00:45 welp 19:00:45 no 19:00:49 i've just started it 19:01:01 in tcl due to pikhq's ... uh, total failure to evangelize it 19:01:06 but at least that means it'll be utf-8! 19:01:25 Will it parse sum unikitten! 19:02:12 maybe 19:05:51 -!- timotiis_ has changed nick to timotiis. 19:10:48 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 19:11:48 -!- slereah_ has joined. 19:14:56 * SimonRC goes 19:29:20 -!- Sgeo has joined. 19:32:52 * ais523 has a new idea for an uncomputable language 19:33:01 share 19:33:05 it's sort of like Prolog, but uses multithreading rather than backtracking 19:33:09 with an infinite number of threads 19:33:19 it starts with a thread for every possible value of every possible variable 19:33:28 and the threads die whenever they reach a contradiction 19:33:37 ais523: you can do that, lazily 19:33:37 i think 19:33:51 it's trivial to write the halting problem in it 19:33:54 and infinite loops are impossible 19:34:04 it's subturing then 19:34:05 :-P 19:34:08 no it isn't 19:34:17 because it oraclises to tell that the infinite loop would happen 19:34:32 Hi all 19:34:51 Oh ehird`, maybe FDs aren't the way to go with a GUI domain, come up with something else? 19:34:57 if it solves *the halting problem*, it's an oracle, if it computes its own halting problem it's an impossible language. 19:35:13 it computes its own halting problem 19:35:15 Sgeo: I'm writing soxp, so maybe not best to ask me 19:35:16 :P 19:35:26 soxp? 19:35:26 but the famous impossibility proof for halting fails on it 19:35:31 because you can't drive it into an infinite loop 19:35:31 Sgeo: Like psox, but soxp. 19:35:40 Are you serious? 19:35:42 Link please? 19:35:49 ais523: I'm pretty sure you can kind of compute that, lazily and non-deterministically 19:35:57 Sgeo: my harddrive 19:36:30 ehird`, why are you wasting effort on your own version of something that already exists? 19:36:43 Sgeo: because soxp is sane -- so it doesn't exist 19:36:45 Russel:-suchthat(X,not(member(X,X))),member(X,X). 19:36:56 not wasting time; 19:36:59 I thought a while about that one before realising it failed 19:37:01 all esolangs are wasting time pretty much anyway. 19:37:04 How is PSOX not sane? 19:37:12 Sgeo: Various ways, none of which you acknowledge 19:37:13 replacing member(X,X) with not(member(X,X)) also causes it to fail 19:37:22 but adding neither, the command succeeds 19:37:23 ehird`, such as? 19:37:30 see logs, Sgeo 19:40:51 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 19:40:59 the reasoning: the notion of a set that contains all sets that do not contain themselves is not a contradiction by itself 19:41:11 but it is a contradiction to assert either that it contains itself or that it doesn't 19:41:14 russel lists = [not (elem x x) | x <- lists] 19:41:20 ehird`, so no GUI domain? 19:41:22 D: 19:41:29 Sgeo: soxp will have one. 19:41:51 PSOX already exists, you know 19:41:58 PSOX sucks. 19:42:08 -!- slereah_ has joined. 19:42:29 russel = filter (\x -> not (elem x x)) 19:42:34 doesn't type, of course. 19:42:59 in my new idea of a language infinite datatypes are entirely possible and even possibly common 19:43:23 infinite datatype in AwesomeHaskell: 19:43:26 ais523: kinda like in haskell? 19:43:35 oklopol: infinite datatypes are no tpossible in haskell. 19:43:37 ais523, do you think ehird` should attempt to redo PSOX in what he believes to be a cleaner way? 19:43:38 that's why my thing doesn't type. 19:43:42 that's why the y combinator doesn't type 19:43:48 "AwesomeHaskell" LOL 19:43:50 and sgeo can't come up with opinions for himself without consulting other people. 19:43:52 ehird`: Haskell syntax inspired much of the syntax of my new language 19:44:01 but it looks more like Prolog because the Prolog syntax is used more often 19:44:05 ehird`: indeed, misread 19:44:09 type InfiniteListType = [InfiniteListType] 19:44:14 infinite datatypes ought to be possible anywhere 19:44:14 ehird`, My opinion is that you shouldn't do it 19:44:23 at least anywhere that doesn't care about efficiency 19:44:27 Sgeo: Yes, because god forbid you get competition 19:44:41 I still want my t -> t -> t -> t -> ... datatype 19:44:42 ehird`, it's needless work on your part 19:44:48 thank you, sgeo, for making me see the light. From now on, since you say I shouldn't do it, I won't. 19:44:50 ais523: trivial: 19:44:53 so I can write sii in Haskell 19:45:04 type Inf a = a -> Inf a 19:45:37 that's easy enough to define in Haskell, only the compilers don't allow it 19:45:47 at least not without the constructor 19:45:52 and the constructor sort of defeats the point 19:46:15 type Fooer a = (Fooer a -> a) 19:46:15 type YType a = (Fooer a) -> a 19:46:15 y :: YType a 19:46:15 y f = (\x -> x x) (\x -> f (x x)) 19:46:20 ^^ I think 19:46:23 ais523: This is awesomehaskell! 19:46:29 infinite types aren't even needed for sii, just the typechecker isn't good enough 19:46:45 for instance, define: 19:46:48 Hmm: 19:46:52 type Fooer a = Fooer a -> a 19:46:57 is that even the first argument of y? 19:47:00 It seems like it should be 19:47:01 churchnumeral2 x y = x (x y) 19:47:02 type Fooer a = a -> a 19:47:18 * Sgeo wonders how likely/unlikely it is for ehird` to ever complete his soxp 19:47:21 then (sii churchnumeral2) has a perfectly well-defined type 19:47:30 Sgeo: Certainly quickly 19:47:33 In fact, I will start a spec now. 19:47:56 I think I'll work on implementing the Net domain now 19:48:12 pikhq, does the Net domain really need FTP stuff other than getting from an FTP URL? 19:48:29 Sgeo: That ought to suffice. 19:48:35 I wouldn't have thought so 19:48:48 pikhq, getting from a URL? ok 19:48:50 A more complex FTP client would want to use the TCP stuff, anyways. 19:49:16 or use a custom FTP domain 19:50:03 Hell, even if ehird creats the world's most awesome API for esolangs, at least Sgeo can claim credit in making the first one that's been fully implemented. 19:50:11 And driving ehird's into existence. ;) 19:50:20 ;F 19:50:22 ;D 19:50:24 :D 19:50:33 ;Y 19:51:54 ;W 19:52:38 very first draft: 19:52:39 http://pastebin.ca/908860 19:55:27 * ais523 prefers the Sgeo I/O design to the ehird` I/O design 19:55:28 oO 19:55:38 but it's a pity that you can't portably have waiting-for-input detection 19:55:50 yes, my io will have a sugar on top of it 19:55:51 or maybe you can... I heard somewhere that Windows is POSIX-compatible 19:56:02 which would mean that select may be available there after all 19:56:08 my model is cleaner conceptually though 19:56:11 and the sugar will make it even nicer 19:56:17 probably with a different name and syntax, knowing Microsoft 19:56:52 ais523, all I know is that the Python docs for select.select() say that Windows can't do it with files 19:57:09 you don't have to do it with files, though 19:57:10 just with pipes 19:57:21 well, pipes I think I meant 19:57:43 select isn't very useful with other types of file-like object 19:57:52 " Note: File objects on Windows are not acceptable, but sockets are. On Windows, the underlying select() function is provided by the WinSock library, and does not handle file descriptors that don't originate from WinSock. 19:57:52 " 19:58:00 http://docs.python.org/lib/module-select.html 19:58:06 I've only ever used it with pipes and keyboard/screen stdin/stdout 19:58:21 and I wonder whether pipes are implemented with sockets on Windows 19:58:52 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 19:58:56 oO 19:59:06 -!- slereah_ has joined. 19:59:32 ehird`: Would I be correct in assuming you'll simplify the type system? 20:00:01 pikhq: Most definately. 20:00:11 ehird`, how would it be simplified? 20:00:24 * pikhq should play with that fancy array code 20:00:32 Sgeo: not being ridiculous 20:08:24 lazy lists in 23 lines of simple, readable ruby. cool. 20:08:33 oh? 20:08:57 faxathisia: oh! 20:09:11 -!- slereah__ has joined. 20:09:30 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 20:10:48 faxathisia: hmm, i was trying to make 'fold' (inject) lazy 20:10:48 haha 20:11:28 ones = LazyList.new(1) {ones} 20:11:50 fold can be lazy in one direction 20:11:59 ones.map {|x| puts x} # this actually prints one 1, until you give it tail. heh. 20:12:07 although admittedly if you try that it will go into an infinite loop if the list is, in fact, infinite 20:13:17 -!- pikhq_ has joined. 20:13:53 pikhq_, should I have sockets flush themselves whenever they're written to? 20:14:04 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 20:14:04 def inject(base, &blk) 20:14:04 blk[head, tail.inject(base, &blk)] 20:14:04 end 20:14:08 think it's worth making that use a thunk? 20:14:31 Sgeo: I know you weren't asking me, but I know from experience that some obscure bugs in code I wrote were traceable to not doing that 20:14:49 ais523, so don't force the client to do it themselves? 20:14:49 ok 20:14:52 combine that with the slow speed of most esolangs, and there's no reason not to 20:15:01 ty ais523 20:19:32 ais523: http://pastebin.ca/908906 weird bug with thunks 20:19:32 :) 20:19:45 def method_missing(*args, &blk) 20:19:45 Thunk.new {@block.call.__send__(*args, &blk)} 20:19:45 end 20:19:49 thus making it return a Thunk 20:19:50 not [a,b] 20:19:53 however 20:19:55 According to #python sockets aren't buffered, so don't flush 20:19:58 if it type-checks that, 20:20:03 I am using sendall() though 20:20:07 then it should go through method_missing, and getting it properly 20:20:09 BUT.. 20:20:13 it uses the internal ruby c api to do it 20:20:14 :( 20:20:28 Sgeo: so in otherwords even the Python devs thought autoflush was a good idea 20:23:59 one thing i wish ruby had was to_b 20:24:04 definable boolean coercion 20:24:05 :O 20:24:41 in C++ it would be your_class_name_here::operator(bool) 20:24:52 you overload the cast operator 20:25:25 yes 20:25:33 but, can you do this in C++: 20:25:39 class TrueClass; def to_b; false; end end 20:25:46 class FalseClass; def to_b; true end end 20:25:57 pretty much 20:26:07 ais523: true.is_a? TrueClass 20:26:08 in ruby. 20:26:23 (ok, admittedly since TrueClass/FalseClass instances (aka true & false) would be handled primitively, that would do nothing, but :)) 20:26:33 class TrueClass{public: bool operator(bool){return false;}}; 20:27:08 ais523: but true isn't a trueclass in c++... 20:27:22 that ruby changes the meaning of true and false 20:27:22 though, as my note says, tahat wouldn't actually work 20:27:32 in C++ you have to know which type each object is at all times 20:27:35 >> true.class 20:27:35 => TrueClass 20:27:40 but you could create a constructor that constructed it from true 20:27:53 thus allowing true to be casted into a TrueClass 20:28:03 yes... but true IS a trueclass, in ruby 20:28:04 no casting 20:28:05 you could even have it throw an exception if you wrote (TrueClass)false... 20:28:08 true is a regular object 20:28:10 an instance of TrueClass 20:28:18 ehird`: what if you have two TrueClasses 20:28:24 with different member functions 20:28:26 you can't.. 20:28:27 with the same name? 20:28:29 there's only one TrueClass 20:28:32 my code snippit 20:28:34 opens up TrueClass 20:28:37 and monkeypatches it 20:28:46 OK 20:28:49 this is how e.g. you can extend Array and stuff in ruby 20:28:56 can be used for evil, but it can also be used for very cool things 20:29:16 who was it who went and created C++ that looked like Lisp by overloading most of the operators? 20:29:20 dunno 20:29:26 I think it was someone in #esoteric, but I can't remember who 20:29:26 ais523: fig? 20:29:34 but, basically, mine reverses the truth values, but of course if ruby actually checked to_b for true/falseclass, it would be an infinite regress, so it wouldn't 20:29:39 figs 20:29:57 he's done a lot of weird shit in c++ 20:29:59 oklopol: that rings a bell 20:32:56 imo, though, 20:33:00 the only thing hideously broken about ruby 20:33:01 is block scope 20:33:09 0x00 0x08 0x00 implemented! 20:33:16 x = 2; something_taking_a_block {|x| ...}; x => the value in the block 20:33:19 this is being fixed for 1.9 20:33:24 as well as huge speed improvements with the new vm 20:43:46 -!- pikhq_ has changed nick to pikhq. 20:46:48 aww damn.... 20:46:53 I can't make 'inject' lazy.. 20:46:58 because the only way is basically this: 20:47:04 * Sgeo wonders if FBF will support PSOX 20:47:16 def inject(base, &blk) 20:47:16 blk[head, (magic thunkify: tail.inject(base, &blk))]; end 20:47:23 but the magic thunkify is basically impossible 20:47:32 because you can't make it be a truly transparent proxy 20:48:29 Sgeo: how can I checkout the PSOX repo? 20:48:30 ais523, svn co http://svn2.assembla.com/svn/psox/trunk 20:48:36 welllllll 20:48:41 or svn co http://svn2.assembla.com/svn/psox 20:48:49 If you want the branches and tags and stuff 20:48:58 thanks 20:48:59 Probably unneeded 20:49:00 yw 20:50:07 heh, esolangs embedded in C++ through operator overloading sounds interesting 20:50:49 * ais523 is thinking about writing an INTERCAL library to make use of PSOX 20:51:06 oO 20:51:38 there are already libraries for other things 20:51:45 including infamously floating-point arithmetic 20:51:50 a d 20:51:55 s/a d\n// 20:52:18 There's no floating-point in PSOX :/ 20:52:32 * Sgeo wonders if floating-point will be in ehird`'s SOXP 20:52:45 maybe 20:52:49 But yeah, support PSOX before even considering SOXP please 20:53:03 Well, nothing can support SOXP yet so there =P 20:54:20 pikhq, once I implement domain 0x08, are you going to write some stuff to test it? 20:54:36 Maybe. 20:54:54 "Conformance with widely-accepted standards was not considered to be a priority for an INTERCAL library. (The fact that the general format conforms to IEEE at all is due to sheer pragmatism.)" 20:55:27 there's also a note stating that pi is represented as #571$#35133 20:55:45 * ais523 is amused at the way that their client assumes that INTERCAL constants are IRC channels 20:56:15 * Sgeo goes to the official INTERCAL PI channel 20:57:15 ' But yeah, support PSOX before even considering SOXP please' you realise how stupid this sounds 20:57:29 'Hello! Everyone ignore Elliott's project, it upsets me. Use PSOX, it's so much better!!!' 20:57:42 For one, PSOX currently exists >.> 20:58:00 it didn't for an awful long time, I add. 20:58:05 For two, double-u tee ef is SOXP? 20:58:21 * GregorR already regrets asking that. 20:58:35 SOXP is ehird`'s hypothetical redoing of PSOX, in a supposedly cleaner way 20:58:43 GregorR: Hmm - you're right, it needs an acronym expansion. SOXP Only eXceeds PSOX 20:59:11 Hey, PSOX doesn't get an ancronym expansion, its name is historical 20:59:50 Yes, SOXP is better than PSOX in that way too. 21:06:31 -!- oerjan has joined. 21:07:46 hi oerjan 21:08:09 please leave logs to learn about ehird`'s latest copycat insanity 21:08:23 :) 21:08:27 hi oerjan! 21:08:31 I'm going to write OXPS 21:08:33 not leave, read 21:08:35 last night was *awesome* 21:08:36 jesus christ Sgeo 21:08:42 It's going to be SOXP -done right- 21:08:50 lol faxathisia 21:08:54 maybe I should write something called SPOX 21:09:03 which has nothing to do with PSOX, OXPS, SOXP, etc., apart from the name 21:09:03 'I AM SO EMOTIONALLY HURT ABOUT SOMEONE DECIDING TO DO SOMETHING SIMILAR TO MY PROJECT THAT I WILL MAKE STUPID COMMENTS ABOUT IT TO EVERYONE TO REAFFIRM PSOX'S AWESOMENESS' 21:09:03 i'm gonna make OXLOPS 21:09:21 who's is/was PESOIX, by the way? 21:09:31 ais523, calamari 21:09:37 I think 21:09:46 Calamari was involved somehow 21:10:20 I want some calamari.. 21:11:02 clearly the time is overdue for PSUX 21:11:54 Does anyone other than ehird` honestly see a point for SOXP? 21:12:31 'Does anyone other than Sgeo honestly see a point for PSOX? I mean, we have PESOIX and EsoAPI' <-- past people 21:12:43 the better you make PSOX the worse SOXP is gonna look.. 21:12:49 faxathisia: exactly 21:12:58 I'd sort of remembered EsoAPI, but only vaguely, so couldn't remember the name 21:13:06 Sgeo: that'll teach you try and make others interested in your projects! :D 21:13:12 right now it just looks like he's insecure about someone thinking PSOX is something other than perfect. So he's stifiling any innovation, because it's not his. 21:13:42 ah yes competition is good, say the free-wheelers, er market people 21:13:58 Sgeo: just accept it, ehird`'s only way to get interested is to take your idea and make it good 21:14:08 haha :) 21:14:17 not good, perrrfect! 21:14:34 i'm still waiting for ehirdphica :< 21:14:37 hmmmm.. 21:14:59 ehirdphica? 21:15:01 * faxathisia wonders how to get ehird` interested in my broken thingymajig 21:15:05 faxathisia: what thingy 21:15:07 ehird`: graphica! 21:15:12 ah 21:15:14 xD 21:15:30 oklopol, what's ehirdphica? 21:15:36 ehird`: Hard to say what's broken.. It's either the self interpreter from the paper, my compiler or my interpreter 21:16:06 graphica never rose that much interest, except for faxathisia, the official non-tc lang enthusiasist 21:16:06 ehird`: but anyway, something doesn't work.. so I can't run the Janus self interpreter 21:16:40 faxathisia: if that's an esolang, could you put a stub with a link on the wiki so I can take a look? 21:17:04 I'm not 100% sure but I think it's an esolang 21:17:19 It's kind of minimal and every program is reversible 21:17:24 * Sgeo wonders if perhaps a layer could be made between a SOXP client and a PSOX server to make them work together.. or the other way around.. 21:17:32 the syntax is like While though 21:17:40 (quiteconventional) 21:17:58 Sgeo: ehirdphica was what ehird would turn graphica into, naturally. 21:18:01 >> ones.dump_to($stdout) 21:18:01 lazy(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... 21:18:26 -!- sebbu2 has changed nick to sebbu. 21:21:05 :D 21:25:29 ais523: anyone: ones = lazy(1) { ones } # comments on this syntax? 21:25:48 ugly.. 21:25:49 :P 21:25:51 * ais523 doesn't really know Ruby 21:26:10 faxathisia: why? 21:26:12 you can also do: 21:26:21 because the 1 isn't the lazy bit 21:26:22 foo = lazy(1,2,3) { foo } 21:26:27 for [1,2,3,1,2,3,1,2,3,1,2,3,...] 21:26:40 * ais523 likes the way lists are implemented in Unlambda 21:26:42 faxathisia: ah. i can make both head and tail lazy if you want, but then it's LazyMegaThing, not LazyList 21:26:49 and my most usual Underload implementation works a similar way 21:27:00 this is meant to fit into ruby well... 21:27:02 like, 21:27:05 ones.map {|x| x+2} 21:27:06 works 21:27:10 ais523: there are many options for implementing lists in Unlambda 21:27:14 nice 21:27:24 faxathisia: you can even print it infinitely like in haskell 21:27:30 though not via 'inspect' since that returns a string 21:27:34 oerjan: infinitely many, perhaps? 21:27:40 oerjan: the one I know is where the list returns its head when applied to one function and its tail when applied to another 21:27:41 oklopol: at least 21:27:52 foo = lazy(1,2,3) { foo }; foo.map {|x| x+2}.dump_to(STDOUT) 21:27:54 and you get: 21:27:59 yeah, that was quite an underestimate 21:28:00 lazy(1,2,3,1,2,3,1,2,3,... 21:30:32 With the Net::urlget function, should I attempt to return the HTTP status code, or don't bother? 21:30:36 pikhq? 21:30:50 Since it might not even be an HTTP url.. 21:34:53 pikhq, changes committed. Want to test sockets? 21:35:30 is pikhq your testing dummy or something 21:36:44 * pikhq says: not ATM. 21:36:54 Gotta finish off homework. ;) 21:37:58 ah 21:41:45 -!- ais523 has quit ("bye everyone"). 21:43:02 -!- slereah_ has joined. 21:44:24 -!- slereah__ has quit (Read error: 110 (Connection timed out)). 21:45:11 It is now fully possible to write a multi-threaded HTTP Server in Brainfork 21:45:26 Well, except for the lack of File access, sorry 21:45:30 A. . . Multithreaded server? 21:45:32 :-O 21:45:32 uh..... 21:45:38 pikhq: Brain*fork*. 21:45:38 uh........ 21:45:41 WHAT? 21:45:42 Besides, fork() isn't threads. 21:45:42 Oh. 21:45:46 fork() is fork(). 21:45:55 oh 21:45:58 mybad 21:45:58 faxathisia: Brain*fork*. 21:46:07 ehrid`: I know 21:46:08 ehrid`: I know 21:46:21 Anyway, Sgeo, that's like saying 21:46:27 "Brainfork multithreaded http server: ''" 21:46:34 "With my MagicalServerEnabler filter." 21:46:45 Anyway, multi-threaded servers suck. You want async io. 21:46:46 ehrid`: How is ti though? 21:46:48 faxathisia: ehrid? 21:46:54 :S 21:47:27 ehird`. 21:47:41 Actually, with the way PSOX works, it would probably make more sense not to use forking, really 21:55:10 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 21:55:19 Hm, ehird`, idea for SOXP: Support threads, e.g. have each thread, when issuing a SOXP command, print out a byte indicating the thread first 21:55:37 ... 21:55:45 i would comment on how that accomplishes nothing at all 21:55:49 but instead i'll just laugh a bit 21:56:11 that gives you threading.. 21:56:16 -!- slereah_ has joined. 21:56:27 Hi slereah_ 21:56:36 It's just that only VM processes are parallel, you don't get extra parallelism in the language 21:56:55 faxathisia, you could use brainfork 21:57:09 Except you'd need to make sure that only one thread issues a command at a time, I guess 21:57:13 yes but you don't extra parallelism 21:57:14 So that's very meh 21:58:05 Well, going to watch Seinfeld/take care of books for an hour 21:58:07 Bye all 21:58:17 bye 22:07:52 -!- jix has quit ("CommandQ"). 22:11:48 -!- slereah__ has joined. 22:21:09 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 22:27:40 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 22:29:51 -!- Corun has changed nick to Corun|pants. 22:37:08 -!- slereah__ has joined. 22:44:23 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 22:46:40 -!- slereah__ has joined. 22:51:48 -!- slereah_ has joined. 22:54:10 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 23:00:34 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 23:02:37 Did I miss anything.. wow absolutely notjing 23:02:55 Can we start talking about PSOX and SOXP again/ 23:03:22 no 23:04:13 -!- slereah_ has joined. 23:07:15 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)). 23:07:23 -!- olsner has quit ("Leaving"). 23:16:16 -!- faxathisia has quit (Remote closed the connection). 23:23:42 -!- slereah_ has joined. 23:24:38 -!- slereah_ has quit (Remote closed the connection). 23:38:02 -!- slereah_ has joined. 23:51:21 -!- BrainF has joined. 23:51:21 Hi 23:51:21 -!- BrainF has quit (Client Quit). 23:51:26 WTF 23:51:43 -!- BrainF has joined. 23:51:43 Hi 23:51:43 -!- BrainF has quit (Client Quit). 23:51:58 WHY is it just saying Hi? 23:52:17 It's fucking with our brain. 23:53:04 lol 23:53:37 -!- BrainF has joined. 23:53:37 Hi all. I wrote this BF program with the help of a horrible horrible generator I wrote. 23:53:37 -!- BrainF has quit (Client Quit). 23:53:41 Yay! 23:53:51 Looks like that generator is really horrible! 23:54:05 Want to see the code for the generator? 23:54:19 Better yet: The generated code 23:55:35 http://pastebin.ca/909224 23:56:21 Comments plz? 23:56:52 It was generated 23:57:04 By this 23:57:04 http://pastebin.ca/909227 23:57:44 That was the script 23:57:47 Oh. 23:58:05 http://pastebin.ca/909228 is the generator 23:58:11 Do you think we're lacking newcomers? 23:58:18 So you're building them yourself? 23:58:53 lol 23:59:05 Just wanted to test/demonstrate sockets from PSOX 23:59:29 Moar liek sockpuppets! 23:59:49 lol