00:00:03 exactly 00:00:13 although 1. why the fuck would you and 2. if you have any interest in speed, you do cmpl Function 00:00:13 maybe gradually over time you should tone it down a bit :-) 00:00:22 hehe :D 00:00:35 by the way, does oklotalk have to look like those mindmashers? 00:00:37 i think it'll be much less grandioso once i actually start implementing it... 00:00:44 show me some clean understandable more-than-one-char-var-names oklotalk :P 00:00:46 actually, it can look quite nice 00:01:23 example please :P 00:01:55 i can show you the somewhat public thingie, if you promise not to publish it / say it's not speccy enough, it's just like the haskell factorial website, but with oklotalk, and with explanations 00:02:15 a lot of explanations, but no full formal spec. 00:02:31 that's what always happens when i start writing something. 00:03:38 i won't publish it :-) 00:03:53 Well, I can input a file on the first tape. 00:03:55 by the way, my implementation is called C-oklotalk :P 00:03:59 imaginative i know 00:03:59 Onto that BF interpreter. 00:04:02 I want to see this website 00:04:05 oklofok 00:04:19 the haskell one? 00:04:22 it's great 00:04:25 no the one with oklotalk 00:04:27 but i can't find it 00:04:36 oh... goddammit 00:04:43 :) 00:04:50 you are popular oklofok :-) 00:04:57 why don't you just trust little old #esoteric :P 00:05:40 there is not website for the oklotalk one, which is why it's just semi-public 00:05:48 i've basically jsut sent it to a few ppl 00:05:50 *just 00:05:55 guess i'll upload it.... 00:06:07 but i warn ya, it's *not* that interesting 00:07:25 i find oklotalk extremely interesting 00:07:28 lol, this isn't ready for publishing... 00:07:32 i'm going to implement all my programs in it okay :p 00:07:40 like, my continuation-based webframework 00:07:43 and stuff 00:07:58 basically some scribble i made for the heck of it, and to get some thoughts sorted 00:08:00 http://www.vjn.fi/pb/p551122163.txt 00:08:01 but there it is 00:08:08 it's Oklotalk then 00:08:10 not OkloTalk 00:08:11 or oklotalk 00:08:16 Oklotalk, definitely. 00:08:28 to differentiate between my nick 00:08:40 because, it's a somewhat different origin 00:08:53 very slight somewhat, and i'm not getting into that 00:09:05 wonder what i pasted there.... 00:09:28 ' Because everything is everything in oklotalk,' 00:09:33 hehe 00:09:36 what's factorial+5 00:09:42 umm 00:09:48 that's (factorial (+ 5)) 00:09:51 in lisp notation 00:09:57 i mean, the function factorial, + 5 00:10:06 Factorial + 5 then 00:10:06 * ehird` renames C-oklotalk to C-Oklotalk 00:10:13 Factorial + 5 = ? 00:10:13 wait 00:10:47 that would mean, factorial gets as args the list [#: + 5]... depends on the pattern matches what happens then 00:11:00 most likely they will all fail, and it'll return void 00:11:12 or None 00:11:25 #z to be spesific. 00:11:57 no 00:12:03 functions are first-class in oklotalk right 00:12:06 "guess function" is a bit stupid for a term 00:12:13 sure they are 00:12:17 well 00:12:26 there's just lambdas, but no difference 00:12:38 hmmmm question 00:12:49 please pick something other than + for concat 00:13:00 (x+y)+z = x+(y+z), and x+y = y+x 00:13:04 none of these apply to concatentation 00:13:05 err 00:13:07 the first does 00:13:08 but not the second 00:13:13 oh, the "return" function's explanation has a flaw, which a friend of mine noticed, but anyway, the "return" call is just for show, and it's actually identity there 00:13:17 and, + should be flippable, so. 00:13:36 nope, you can actually specify these rules separately for different types. 00:14:30 and theoretically, by using explicit typing, let the interpreter know it can optimize with the knowledge (x+y)+z == x+(y+z) 00:15:00 yes but x+y is y+z, and this does not apply to concatentation 00:15:04 thus + is a bad name for it 00:15:12 nope 00:15:46 also, x+y for numbers produces a numerical value... does this mean it can't be used for other types unless that too produces a numerical value? 00:15:58 what exactly is the use of having those identities always hold? 00:17:12 operator input and return types should not be constant 00:17:16 but properties of application should be 00:17:24 why? 00:17:28 (Overtalk, an Oklotalk successor? oh fuck no) 00:17:32 :)) 00:17:41 oklofok: it means you can reason about programs better 00:17:47 and is simply cleaner 00:18:07 nah, oklotalk is too dynamic for that to be true 00:18:18 and too conciseness-oriented 00:18:26 still 00:18:27 it's nicer 00:18:35 what could i use then? 00:18:40 (also, Oklotalk should not be actor-based. actor model == function model) 00:18:44 (for the mostpart.) 00:18:52 (see: why scheme was created, to test that hypothesis) 00:18:59 oklofok: depends what you have unused 00:19:03 .. 00:19:03 nothing, really 00:19:03 ~ 00:19:08 .. would work well 00:19:13 that's for ranges 00:19:25 although i'd use ¨ if it was more standard. 00:19:43 errr why should it not be actor based? 00:19:59 because mostly actors are equiv. to functions 00:20:03 and? 00:20:09 well, it makes it pointless :) 00:20:23 by the way, is 3 spaces the standard Oklotalk indentation width? i like that, it's crazy :P 00:20:26 well, everything is equivalent to everything. 00:20:55 err i actually use 3 there :) 00:20:57 errrrr 00:20:58 i mean, 4 00:22:39 do you? damn 00:22:42 3 would be cool 00:23:00 hmmmm, there's some obsolete strictness information there... 00:23:31 can you make oklotalk standard 3-spaces? pleeeez? :P 00:23:39 it says ´(...) != (...) when it comes to strictness, but that would make no sense, since ´ and ` never do but okenity changes 00:23:45 yeah, i can :P 00:23:59 :D 00:25:11 {|...} i think is the dynamically scoped lazily evaluated list... hard to keep up, really ;) 00:25:43 i change the scope types quite often, since there's always something wrong with them... 00:25:47 does oklotalk allow multiple return values? 00:25:54 i'm pondering the best way to implement return values 00:25:54 you can return a list 00:26:04 by the way a while ago you posted a parsing spec, where's that? 00:26:18 F={1 2} returns 1 and 2 00:26:28 ummm, that's actually somewhat lost. 00:26:41 if you recall the date, i can find it though. 00:26:56 ooooh 00:27:26 http://www.vjn.fi/mb/?p=oklotalkspec operators are wrong, and i'm not sure about the rest either. 00:27:45 what is that interface written in? xD 00:28:05 "Nesting basically means making a list of tokens one single token with information about how it was nested." wait, what :) 00:28:09 Comments can be handled in a separate phase before the actual parsing (even before tokenizing) by just replacing every comment with a space (' '). nuh uh what about strings :-) 00:28:30 wtf have i been smoking. 00:29:01 heh, i actually realized that later myself 00:29:14 ¤ 00:29:14 ¨ I CAN'T TYPE THESE :P 00:29:19 the one online isn't the newest, just almost 00:29:23 heh, perhaps :) 00:29:29 nor ´ 00:29:37 ´ is kinda crucial :) 00:29:53 i might make an emacs mode that lets me type that stuff :P 00:30:01 oklotalk-mode.el! 00:30:03 each time you need to use a function as first-class, you need ´ 00:30:15 hahahah imagine trying to syntax highlight 00:30:17 well, just when you actually create a lambda on the fly 00:30:21 :D 00:30:26 hmm, i guess what i could do is write a program in oklotalk which hooks into the parser 00:30:33 -!- puzzlet has quit (Remote closed the connection). 00:30:34 and returns an s-expression parse tree 00:30:35 -!- puzzlet_ has joined. 00:30:40 hehe 00:30:42 so that i can simply call it and use emacs lisp's parser 00:30:48 now, can you let me code for a while? :P 00:30:58 invalid syntax ofc would be a problem but i would just make it highlight them as 'error' regions or something :P 00:31:04 -!- helios_24c3 has quit ("Leaving"). 00:31:11 invalid syntax, what's that? 00:31:43 i've been considering an ide that actually runs the code in the background to check for errors... 00:31:58 -!- jix has quit ("CommandQ"). 00:32:11 oklotalk is definitely not user-oriented 00:32:28 which is kinda lame since it's not really efficient either :) 00:33:09 i'm mainly going for as much theoretical freedoms as possible, conciseness, and as much madness i can fit in. 00:33:19 now, i need to get back to graphica 00:33:21 oklofok: invalid syntax will exist in oklotalk as much as you try and make that not happen 00:33:23 it just will exist 00:33:34 really? 00:33:35 also, what if i wrote a program to delete the hd 00:33:36 :P 00:33:53 oklofok: and yeah, because 'everything makes sense' can not be true without making your language useless 00:33:56 safety is actually easy to do in oklotalk 00:34:26 everything doesn't make sense semantically, but every string will definately a correct oklotalk program 00:34:27 *definitely be a 00:35:09 DSA:P{}AWO)(_)(U)(~*(HE(AJHWEC }}LÅ’Í”ÒÎ{:!@"E:OP$U)($)($)(@£_$(_+ 00:35:15 that's valid syntax? 00:35:18 sure 00:35:23 i can parse that for ya 00:35:28 well, there'll be something that's invalid 00:35:48 oklofok: actually, the nested braces implicitness, please remove that... it means it's impossible to do matching-brace-highlighting 00:35:55 also, typos could cause weird semantic errors 00:36:13 sorry, i wont remove that, one of my favorites ;) 00:36:35 also, what would incorrect parens do without it! 00:36:42 cause an error 00:36:51 also, what if i forget to type a brace and it ends up thinking it's in the wrong place? 00:37:00 and what about matching brace highlighting in all good editors? srsly :< 00:37:10 heh, sorry, i ruin my language as i please :) 00:37:38 answer my questions! :P 00:38:08 well, i don't really care about those :) 00:38:17 not my prob 00:39:19 anyhow, just do code~[\"("´'")"|"{"´'"}"|"["´'"]"] 00:39:36 and you'll know whether it has the correct digits 00:40:17 or something close to that, i don't remember which operator does string matching :P 00:40:47 at least make it runtime-disableable :P 00:40:53 by the way, oklotalk file ext is .ot right? 00:41:01 prolly 00:41:17 i'll make a strict.ot which disables some of the crazier things :-) 00:42:19 the parser is (supposedly...) fully accessible at runtime, and somewhat parametrizable, you can just include a parser at the beginning of your program and start coding "on top of" that 00:42:57 there are multiple syntaxes for oklotalk, mainly differentiating on tokenization 00:43:01 would you reccomend a strict.ot for use or is it anti-Oklotalkian? :-) 00:43:45 if strict is an oklotalk program parsing your code as you write it, i'd say definitely oklotalkian 00:43:57 no 00:44:05 it is an emacs mode? 00:44:12 strict.ot is a file that you include in your oklotalk programs, like perl's "use strict" 00:44:16 ah 00:44:19 it does things like disabling implicit parens 00:44:27 just to make the language a bit saner 00:44:44 sure, the built-ins should provide such parser modes anyway. 00:46:04 but actually using it, is that oklotalkian or do real oklotalkers just deal :P 00:46:43 real oklotalking uses the K philosophy, it's originally designed to be write-only. 00:47:03 the parenthesis thing is partly because of conciseness 00:47:40 -!- cherez has joined. 00:47:59 -!- cherez has left (?). 00:49:21 so real oklotalking = no strict.ot :P 00:49:49 i'd say so 00:50:07 the paren precedence doesn't *always* make things look bad 00:50:27 especially if you add some more complex whitespace enhanced parsing 00:50:49 like out 4 + somfunc(otherfunc(soidf(oier(value 00:51:15 it makes auto-indentation basically impossible 00:51:52 perhaps, but say what you will, it stays, and i gotta code graphica now :P 00:53:58 oklofok: aww come on :P 00:54:01 how about 00:54:06 making the implicitness optional 00:54:10 and turned off by default, but stil lthere 00:54:47 by the way, using pattern matching in oklotalk, how do i match on multiple params? 00:55:16 F={A B -> A*B}; 4 f 2 -> 8 00:55:52 A = { 0 n -> n+1; m 0 -> '(m-1 1) m n -> '(m-1 '(m n-1)) } 00:55:54 correct? 00:56:21 you can spesifically match for a certain arity with F={#1 A B -> A+B;#2 A B -> A*B}; f 2 3 -> 5; 2 f 3 -> 6 00:56:24 hmm 00:56:37 ackermann? 00:56:43 Yes. 00:56:46 Using the definition: 00:56:46 A(0, n) = n + 1 00:56:46 A(m+1, 0) = A(m, 1) 00:56:46 A(m+1, n+1) = A(m, A(m+1, n)) 00:56:48 you need a ; there 00:56:55 apart from that 00:57:04 then, almost :) 00:57:09 you need to have vars uppercase 00:57:19 why 00:57:23 and m-1 1 needs a comma or something. 00:57:42 because lowercase variables are considered funcokens and are used as operators :) 00:57:49 youch 00:57:50 ok :P 00:57:52 A = { 0 N -> N+1; M 0 -> '(M-1, 1); M N -> '(M-1 '(M, N-1)) } 00:57:54 m-1 == (m (- 1)) 00:58:05 M-1 == (- M 1) 00:58:26 how do i mutate a variable in OT? 00:58:31 that's a bit weird, and oklotalk will definitely need a bit special ide anyway... 00:58:48 well, = is the only thing you can actually change a var with 00:58:55 i mean, the contents of a variable 00:59:11 everything else is sent to the object like [oper params] 00:59:16 in a list like that 00:59:19 also, emacs can handle oklotalk, mostly 00:59:26 since it can do turing-complete things for language modes 00:59:36 oklofok: how do i do IO? 00:59:42 out and in 00:59:43 specifically, there is a concept of ports or streams right? 00:59:50 and printing to them is generic? 00:59:58 so a socket has the same interface, etc? 01:00:02 as a file, or stdout 01:00:13 yes, although there is not *byte* in oklotalk, really, well, there is, but you don't see it. 01:00:18 *is no 01:00:30 i mean, any stream will have to handle any object. 01:00:43 uh 01:00:46 that's barely possible 01:00:47 so... no, there isn't a stream in the sense you mean, proly. 01:00:49 *prolly 01:00:52 :) 01:00:54 can you wrap that around a low-level byte based interface? :P 01:01:03 we need to interact with the real world with our programs here 01:01:10 hehe, outn will call str() for the object prolly 01:01:19 well, byte OR character 01:01:23 oklofok: it is unicode, right? 01:01:30 strings are unicode, files are read as unicode, etc 01:01:35 with of course bytes and bytestrings 01:01:36 i haven't actually thought about that, but i think it is. 01:02:34 yaaaay 01:02:43 what about loading files 01:03:16 also, i have the tentatively-named ehirdtalk to implement too :P 01:03:55 :D 01:03:56 fact<-{<3->1=>*$-1} is factorial, iirc 01:04:03 more clearly: 01:04:03 you can add the sanity i lack :) 01:04:11 ah, i recall that 01:04:26 stream / code flow oriented 01:04:35 fact <- { ((_ < 3) -> 1) => (_ * ($ (_ - 1))) } 01:04:37 at least those were the things you explained back when i first saw that 01:04:43 and naw, not really 01:04:50 but the evaluation is weird 01:04:51 just a guess 01:05:03 hmm that should be: 01:05:12 fact<-{<3=>1->*$-1} 01:05:13 i think 01:05:20 well the pattern matching is crazy 01:05:38 as you can see, since -> or => or whatever 'if' is matches on a tuple on the left side 01:05:47 but it doesn't do it by matching on the tuple (which would mean it'd already be evaluated) 01:05:52 it matches on the call to the tuple constructor 01:06:03 that fact is wrong 01:06:08 errr 01:06:11 or am i wrong... 01:06:18 err, you are right 01:06:23 you have <3 in both 01:06:26 fact<-{<2->1=>*$-1} is factorial, iirc 01:06:34 hmm 01:06:53 what implies the implicit _ after => there? 01:07:00 the * binary operator 01:07:10 ah, not everything can be any-ary 01:07:25 should've known 01:07:25 any left-out dangling params are _ 01:07:32 i know 01:07:55 i forgot how i did param names :( 01:09:44 hmm 01:10:00 an actually clear ehirdtalk program: 01:10:02 fib <- { 0 -> 0 => 1 -> 1 => > 1 -> $(-1) + $(-2) } 01:10:03 err 01:10:11 with newlines 01:10:12 fib <- { 01:10:15 0 -> 0 => 01:10:20 1 -> 1 => 01:10:27 > 1 -> $(-1) + $(-2) 01:10:29 } 01:10:42 hmmmm 01:10:46 i don't buy that 01:10:54 - can't be unary? 01:11:11 _ is unary negation 01:11:14 ah 01:11:20 or you could just do 0- 01:11:22 then i do buy that 01:11:37 yeah 01:11:55 though i am going to remove some of that stuff 01:12:00 because fact<-{*1..} should work 01:12:21 maybe ? 01:12:35 fact<-{?<2->1=>?*$?-1} 01:12:43 you could do like K 01:12:48 what does k do 01:13:13 \ is a primitive that does map when preprended to an oper 01:13:17 / does reduce 01:13:20 io think 01:13:22 *i think 01:13:28 it's 3 years since i looked at taht 01:14:13 ooh i know 01:14:15 {} matches on tuples 01:16:47 oklofok: gimme a call/cc in oklotalk 01:18:00 that is: (call/cc f) is (f k), where k is a function with a saved call stack from the point of call/cc, which on call with an argument restores the call stack and returns its argument as the return value of call/cc 01:18:09 also, k is callable multiple times 01:18:16 hmm... @@ may be the current continuation... i recall i had to make a new one because ' was clearly unoverloadable 01:19:52 oklofok: would cps-transformation of oklotalk be possible 01:19:54 you can do `'@#vars to get the current namespace, but without a state list, you can't make a goto without the explicit current continuation @@ 01:20:25 i'm going to make it possible if it's no yet 01:20:28 *it's not yet 01:20:36 everything must be possible 01:20:59 I think I have a BF interpreter now. 01:21:08 cool 01:21:12 oklofok: just make the call-stack accessable 01:21:14 in what language? 01:21:18 But writing the + and - function in full is awfully boring. 01:21:22 Turing machine. 01:21:36 specifically, you can access the current call stack, replace the current callstack, and unwind with a return value to a certain point 01:21:42 then, you can implement continuations in about 3 lines 01:21:59 so basically add a global callstack object that you can assign to, and give it an 'unwind' operator 01:21:59 bf interpreter in what Slereah? 01:22:05 ooh sorry 01:22:07 I didn't notice 01:22:17 cool :D 01:22:24 What does it look like"? 01:22:41 ehird`: yeah, if you can access the exact point where you are at the code 01:22:48 the code pointer to be exact 01:22:59 So far, http://paste-it.net/5460/raw/ 01:23:05 dont need to do that oklofok 01:23:17 i don't? 01:23:18 why 01:23:21 The + isn't complete, there's no - yet, and it's not wrapping so far. 01:23:34 It also isn't in ASCII, but well. 01:23:58 (It's also on a Turing machine with 3 tapes, because I don't want to do a 1 tape version now) 01:24:34 ah, indeed, the call stack would hold the points of return anyway :) 01:24:35 silly me 01:31:31 so, any callcc oklofok ? :) 01:31:45 right, f@@ 01:32:08 (f current_continuation) 01:32:13 (call/cc f) 01:32:41 what's the implicit paramater name in oklotalk 01:32:43 you call-with-current-continuation by calling with the current continuatino 01:32:49 ? 01:32:51 _ 01:33:02 call/cc = {_@@} 01:33:13 almost 01:33:14 feel free to give a more concise definition :P 01:33:33 CallCC = {`_ @@} 01:33:39 oh 01:33:51 actually, that will use the continuation in CallCC :) 01:33:57 i need to ponder about this a bit. 01:33:58 hehe 01:34:25 oh, actually doesn't matter, i think 01:34:33 oklofok: oklotalk booleans 01:34:35 what are they 01:34:38 since callcc will return what was returned anyway 01:34:45 you usually use the atoms #t and #f 01:35:16 hey, schemeish 01:35:17 i like it 01:35:28 errr actually §t and §f... it seems i've added another set of atoms for typing and then mixed them up :o 01:35:59 #<...> should be reserved for stuff you don't actually need to see, but you *can* 01:36:00 ffffffff do i really have to type that char 01:36:06 :) 01:36:09 what about \ 01:36:11 \t \f 01:36:19 i've never seen a keyboard without it. 01:36:25 in one press 01:36:28 i've only seen one keyboard with it 01:37:18 so oklofok what is the simplest way just to print a number to the screen then a newline 01:37:30 heh, well, dunno, need to think about the charset later 01:37:44 there are lots of chars not everyone can type in use.å 01:37:50 eh? 01:37:51 -!- GregorR has quit (Remote closed the connection). 01:37:53 just tell me the ismplest way :P 01:38:03 ...simplest way? 01:38:33 just the oklotalkian way to print a number then a newline 01:38:45 outn5 01:38:47 err 01:38:48 outn 5 01:40:38 my repl prompt will be awesome 01:40:54 it will have both nesting depth and line count 01:41:17 oklofok: does 'x = y' return y? 01:41:31 no. 01:41:34 it's not that simple 01:41:50 actually... 01:42:15 yeah, works exactly as in c 01:42:49 is there a standard way to pretty-print, e.g. a continuation? 01:43:02 currently i'm just planning on doing either #[a continuation] or (a continuation) 01:44:18 fact={{_<2}->1;_*'$_-1}; Fact!5=1; fact 6 -> 6 01:45:16 a function can be either a rule or a hashmap, you can assing any value to it, and it will be considered a new pattern match, with the greatest precedence. 01:46:44 oklofok: are there to-end-of-line comments? 01:46:49 no. 01:46:56 not currently, at least 01:46:59 pretty pleez :( it'd make my repl display nicer 01:47:03 -- will do that, prolly. 01:47:12 aww 01:47:17 why not ;; 01:47:17 <--...--> and --... 01:47:26 nah 01:48:00 -- could be ambigiouuuuusssss 01:48:02 and ;; is scheme 01:48:02 y 01:48:26 " -- " to be exact. 01:48:55 anyway, oklotalk is not meant to be comment-friendly. 01:52:17 hijacking your pastebin: http://www.vjn.fi/pb/p615162456.txt 01:52:20 continuations! 01:53:38 hmm 01:54:14 where's your fact-tutorial again? 01:54:23 up there 01:54:46 http://www.vjn.fi/pb/p551122163.txt 01:54:59 hmm make test Test 01:55:38 hmm, 01:55:42 a function object 01:55:45 i.e. {.....} 01:55:48 what do i know about it? 01:55:52 that's no problem if test has no initial value... although you don't wanna get into the details of that ;) 01:55:53 i.e. what info can i get about the function 01:56:00 hmm 01:56:03 what do you mean? 01:56:14 can i get arity? 01:56:16 a name? 01:56:17 etc 01:56:27 some way to say something more useful than [a function] 01:56:32 name cannot be accessed, for functions don't have names 01:56:52 it could have no name, or a million names 01:57:12 arity can be accessed, although i'm not sure how. 01:57:19 btw. the test function doesn't work as you wan 01:57:21 *want 01:57:26 it basically doesn't do anything... 01:57:31 oh, wait 01:57:44 ah 01:57:52 x = y returns y :-) 01:58:04 just use TehContinuation <- instead of = 01:58:18 <- is for setting a new value without making the var local 01:59:14 correct otherwise 01:59:35 ok 02:00:47 so how should i pretty print a function, oklofok? 02:00:58 [N-arity function] ? 02:01:13 i must be able to give more info than that 02:03:09 str F may provide the actual code of an uncompiled function 02:03:16 although i haven't specified what it does. 02:03:29 can't it just prettyprint the parse tree? 02:03:34 i guess that might lead to ugliness 02:03:37 sure 02:03:53 i don't wanna speficy that now 02:04:02 since i haven't thought about it 02:04:50 is [...] used for anything 02:05:05 or can i safely prettyprint [helpful info] 02:05:13 [] is for lists that are evaluated lazily, but that don't have their own scope. 02:05:40 [] is for lists, that is. 02:05:54 () is for lists too, as is , and juxtaposition. 02:06:19 also {} can be a list, although you need to apply it 02:06:25 ...since it's a lambda 02:06:48 give me some unused braces! 02:06:58 :D 02:07:11 <|...|> 02:07:14 xD 02:07:15 dunno 02:07:33 also, what exactly are you doing? 02:08:20 well, when you use a REPL 02:08:25 it has to show a result somehow 02:08:26 so. 02:08:34 like python does 02:08:49 indeed, just wondering whether you're making a repl or just playing you are one. 02:09:48 i will make one when c-oklotalk is written 02:10:05 so really i just need some unused pairable markngs :P 02:10:32 <> are just used as normal operators... 02:10:44 but i don't see how that's better 02:12:15 i guess i can do <-- --> 02:12:32 true 02:12:57 * ehird` wonders what untaken symbol to use for last-thing-evaluted 02:15:05 Well, there it is me think : http://paste-it.net/5461/raw/ 02:15:15 To use with this thing here : http://paste-it.net/5462/raw/ 02:15:46 And possibly this chart handy, since I can't do good ASCII on it : http://paste-it.net/5463/raw/ 02:15:55 oklofok: http://www.vjn.fi/pb/p422433545.txt 02:15:58 pretty nice looking imo 02:17:03 :o 02:17:12 nice work, i see no syntactic errors 02:17:25 i mean, nothing that would behave incorrectly :P 02:17:30 except for ht fib 02:17:31 *the 02:17:32 I'll try the 99 bottle program to see if it works, after some conversion. 02:17:38 N-1, N-1 02:18:13 Slereah: working bf interpreter in a turing machine? that's quite awesome 02:18:14 what's wrong with the fib oklofok 02:18:21 can i see the newest one? 02:19:02 ehird`: it's wrong 02:19:08 oh yes 02:19:09 :P 02:19:11 :P 02:19:12 Well, I'm not sure on the working part yet. 02:19:25 I only tried little programs so far. 02:19:26 oklofok: so does that look like a session with a respectable oklotalk system to you? :P 02:19:31 (don't say implementation. Say system!) 02:19:36 ehird`: looks great 02:19:50 I thought the loops would be harder to do than that, though. 02:19:54 oklofok: my prompt is crazy :D 02:20:09 #1 why would you want to know your current input number 02:20:16 #2 can't you tell the nesting by indent? 02:20:42 i think the returning the info as a <----> is a fun idea, perhaps i should make <----> a first class annotation or something! 02:21:40 haha 02:21:56 it should parse the english inside 02:22:53 heh, i was thinking it'd behave as an empty list except would produce it's contents when str()'d 02:23:09 no, it should produce <-- contents --> 02:23:10 :D 02:23:13 self-evaluyating 02:24:38 back tomorrow 02:24:46 -!- ehird` has quit. 02:27:30 Hm. 02:27:54 Either there's an error or it takes forever! 02:28:10 hmm, is your code infinite? 02:28:46 I just entered some random big BF program. 02:29:13 Which would at best display random chars, since it's not the same code, or plain old errors, but I wasn't expecting nothing to happen. 02:32:06 Bood thing I can just display the tape! 02:32:09 G 02:33:36 Although it is painfully long to watch. 02:36:51 -!- Slereah- has joined. 02:38:43 >:| 02:42:35 What program would be a good way to test a BF interpreter? 02:42:35 I already did text display and cat. 02:43:03 lost kingdom 02:43:13 there's a digit root by keymaker 02:43:18 you can google it 02:43:30 I know of Lost Kingdom. 02:43:48 But since so far it's not in ASCII, I'm not tickling that one. 02:44:43 I made some local version of hello world with some loops in it. Seems to work. 02:50:21 "Random byte generator" is awfully slow and gives me a whole lot of empty chars. 02:50:41 Damn. 02:50:49 -!- GregorR has joined. 02:52:56 Hi GregorR 02:53:36 I guess I'll have to write a program to write the + function for ASCII! 02:53:38 * Sgeo might write the first lines of a PSOX interpreter tonight 02:53:48 'cause I'm not writing the 256 lines for it. 02:54:33 Sgeo: /* 02:54:44 :D 02:54:45 -!- Slereah has quit (Read error: 110 (Connection timed out)). 02:54:46 Oh, lines 02:54:53 /* 02:54:59 * A PSOX interpreter 02:55:07 hehe 02:55:20 Incidentally, that doesn't work 02:59:25 *silence* 03:00:00 sorry for breaking the silence 03:03:17 No one's going to guess/already knows why I said that it wouldn't work 03:03:40 * faxathisia assumes you're writing in python but doesn't feel the need to mention this 03:04:08 faxathisia, but you DID mention it >.>.. incidentally, that is the reason 03:05:49 I can't seem to copypasta the \000 char. 03:05:56 Suddenly, I want to write a program along the lines of the Lego drag-and-drop programming stuff, except with a functional "programming language" instead of imperative. 03:06:11 -!- User333 has joined. 03:06:23 Hi everyone~ 03:06:28 Ello. 03:06:31 Hi User333 03:06:34 Hello. 03:06:38 I found this place through "searchIRC" 03:06:41 what's it about? 03:06:59 Programming languages that are intentionally weird somehow, more or less. 03:07:10 why the "esoteric" tag/ 03:07:24 Do you know the meaning of "esoteric"? 03:07:35 yes 03:08:10 There's not much I can say, then, really. 03:08:46 oh..well im not a programmer, i thought all of it was within the same language 03:09:27 If you consider yourself a nerd at all, try it :-) 03:09:54 mv: cannot stat `./../include/d/4.1.3/object.d': No such file or directory 03:09:56 oh i see, i was looking for esotericism 03:10:10 this is it 03:10:19 Esoteric languages, ahoy. 03:10:21 no, esotericism is mysticism 03:10:43 Indeed, esoteric programming and esotericism aren't the same thing. 03:10:51 * pikhq suspects that searchIRC needs to include the word "programming" with that. 03:11:42 so you are the guys who worship movies like "I, Robot" instead of LOTR 03:12:04 hehe just playing 03:12:15 I like TRON more 03:12:38 have you guys found this? http://nerogame.org/ 03:13:13 Hmm, looks interesting. 03:13:17 its supposedly an advanced "evolution" game where you can shape your own robot teams "unique intelligence" 03:13:42 i had a hard time with it, since im not a programmer lol... all my robots learned was to run around a wall 03:15:11 so wait a second... isnt esoteric programming very closely related to hacking? 03:15:30 I don't think so. 03:15:32 Define 'hacking'. 03:15:59 "finding ways around barriers" or "finding new ways to infiltrate" 03:16:19 I don't think that's a good definition of hacking.. 03:16:40 I'm going to beg to differ with any definition that involves breaking into computers, myself. 03:16:42 In that case, esoteric programming can be hacking. 03:16:58 But I'd say it's quite separate from breaking into computers. 03:17:04 Hacking, (v): "Being creatively clever (especially in terms of programming)" 03:17:16 More like trying to overcome "limitations" in the programming language. 03:17:22 ex: "I'm hacking together a D build environment." 03:17:41 how many of you have OCD? 03:17:48 Not I. 03:17:55 are you sure? 03:17:58 :) 03:18:11 Any OCD that I may have is completely unrelated to computer use >.> 03:18:18 Oh bloody hell. 03:18:32 im just asking because you seem compulsive about correct grammar 03:18:33 Quite certain, yes. 03:18:37 The BF interpreter is too long to input in the Python interface. 03:18:45 I'll just have to use the dreaded files! 03:18:46 lol 03:18:53 how is there a limit? 03:19:02 I'm not sure. 03:19:16 That much comes as a result of doing a lot of programming; computers are compulsive about correct grammar. 03:19:18 Any OCD that I might have is almost certainly unrelated to grammar.. 03:19:21 But whatever is the case, it's annoying to enter. I'll just input it as a file. 03:19:51 (It's also just a bit distressing how badly media vandalised the word hacking an created associated problems) 03:20:05 I suspect that most computers, parsing "foo := 'abc'", would not accept "flimble" as a foo token. . . 03:20:07 THEY ARE HACKERS ON STEROIDS 03:20:17 you should meet my friends, they think hacking is memory editing 03:20:32 That's amusingly horrid. 03:23:02 Oh bloody hell. 03:23:12 so..have any of you hacked server sided aspects of games? 03:23:49 * pikhq suspects that User333 is remarkably confused about what we do. 03:24:03 Quick, bring out the discussion of the merits of SKI combinator calculus! 03:24:19 No PSOX? 03:24:27 Sgeo: Alright, PSOX works. 03:24:29 -!- Slereah has joined. 03:24:37 wb Slereah 03:24:37 every 'bit string' of SK terms is well typed? 03:24:39 Fuck ASCII. I'll stick with my interpreter. 03:24:51 Although you need to implement a SK namespace. :p 03:24:54 * Sgeo should start writing the PSOX code now 03:25:03 wait a min I want trees not bit strings.. 03:25:23 Mmm. Turing-complete with a small amount of symbols. . . 03:25:57 * faxathisia strives for turing-incompletness :S 03:26:04 That's trivial. 03:26:12 but! 03:26:16 * Slereah is totally Turing complete 03:26:17 Just be sure to have your only method of storing data be a single stack. 03:26:24 also capable of doing large amounts of interesting calculations 03:26:36 I guess I really mean, everything termiantes and that kind of things 03:26:45 Unless you're so friggin' insane that you implement two stacks in a single stack. 03:26:46 the langauges are rare 03:26:50 In which case, I salute you. 03:29:45 so wait...wheres the money behind finding if something is turing-powerful 03:30:09 Well, that got Turing an article for a start! 03:30:42 Sorry; all the money behind proving Turing-completeness went to ais523. :-P 03:30:49 lol 03:30:56 Damn him and his 2,3 machine money! 03:32:19 you guys should look into Korean programming, most confusing stuff ever... 03:32:57 I've seen Malbolge this afternoon. I doubt that it will even approach that level! 03:33:10 -!- User333 has quit ("Leaving"). 03:33:12 *Nothing* is as evil as Malbolge. 03:33:58 Since I barely know what a register is, I'm pretty screwed! 03:34:53 Hm. 03:35:01 I'll write a ROT13 program! 03:35:17 Malbolge makes grown men cry. Including men who write code using a hex editor and nothing else. 03:35:18 "proof by implementing brainfuck in the typesystem" 03:36:01 Slereah, if you can write a ROT13 program, you are officially the best Malbolge coder in the world. Bar none. 03:36:20 Not in Malbolge. 03:36:26 I need to test my BF interpreter. 03:36:36 Oh. 03:36:44 Much saner. 03:37:19 I am somewhat sad that people didn't chose to comment their ROT13 BF programs. I can't just change the ouchy parts. 03:38:47 * Sgeo really should be doing stuff like taking care of cats right now :/ 03:38:50 A Turing machine isn't an efficient BF implementer. You can't just increment the symbols like that. 03:39:49 Slereah: please try to keep the surprises more subtle, i almost had a heart attack. 03:40:08 Heh. 03:40:25 I'll stop bitching about it. 03:41:20 nah, just trying to be funny 03:41:26 "funny" 03:42:10 Then again, 5 AM isn't the best of time to program in BF. 03:42:11 -!- Slereah- has quit (Read error: 110 (Connection timed out)). 03:42:22 It can wait another day. 03:42:30 indeed, and 5:46 isn't the best time to be coding. 03:43:03 Anyone want to write a Malbolge program that takes advantage of PSOX features? 03:43:17 Is that a threat? 03:43:37 "Do what I say, or you'll code in Malbolge with PSOX features!" 03:43:43 I don't want to write a Malbolge program. 03:43:50 lol Slereah 03:45:01 -!- ihope has quit ("CGI:IRC"). 03:45:44 I want to see a computer with a Malbolge CPU. And spikes on it. 03:45:54 The computer, not the CPU. 03:46:08 With the skulls of the foolish on top 04:05:02 http://paste-it.net/5472/raw/ 04:05:15 Here it is commented. Does it seem okay to you? 04:17:22 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 04:17:46 ret2[$:UPUPRI:com;1:ERLEUPUPLE:ret]] 04:17:50 great stuff 04:17:58 although all i get out of it is cheap laughs :) 04:18:12 as always with this kind of line noise 04:18:27 oh, comments 04:18:59 I don't know. I find it somehow easy to read and write. 04:18:59 i guess those might be readable, but the font is too small for my eyes 04:19:16 prolly, once you have *any* idea what *anything* there means. 04:19:58 Well, it's mostly the notation of Turing, but with 2 characters per instruction. Easier on the interpreter. 04:21:28 LE is left, RI is right, UP is up (tape above), DW is down (tape below), ER is erase, Px is print x (on the tape), DI is display (on the screen), CH is the choice instruction (prints the keyboard input on the tape), LF and TB are just fancy "print new line" and "print tab". 04:22:57 The state itself (for instance, 1[#:P@RI:com;cr:LE:1]) is to be read as : "In the state 1, if the current cell is #, print @ and go right and to state com, if the current cell is any other character, go left and to state 1". 04:23:17 (cr is for "remaining characters", roughly) 04:26:51 If you want line noise, I have the 4 characters version! 04:27:05 Although it can't input, or output for that matter. 04:27:13 But you can watch the tape as it goes. 04:31:23 cool, graphica seems to work now :o 04:31:57 Graphica? 04:32:41 my graph specifying system 04:32:44 http://www.vjn.fi/pb/p241624426.txt 04:32:55 the first one is how the code will look like before parsing 04:33:03 the second is what i parsed it as, manually 04:33:12 then, there's the graph in ascii form 04:33:18 it's 04:33:19 ooh :D 04:33:21 node: 04:33:34 node_it's connected_to, another_node, etc 04:34:00 just bidirectional edges implemented atm 04:34:19 not sure whether unidirectional ones will work with the same evaluator 04:34:40 but it's quite nice after i get the parser working, since it produces a normal python dict 04:34:48 Lisp-related language? 04:35:06 not really 04:35:14 I see a whole lot of parenthesis! 04:35:23 well, the second one is, since i parse into lisp-like syntax 04:35:31 the second one is python code 04:35:36 i did parsing manually, you see 04:35:46 I barely know what parsing means. 04:35:50 ah 04:35:51 sorry 04:35:56 No matter. 04:36:02 like, if you have 3*31+5*7 04:36:09 it's very hard to evaluate 04:36:23 so, you can parse it into (+ (* 3 31) (* 5 7)) 04:36:29 which will be trivial to evaluate. 04:36:36 if there's list support 04:36:51 also, 3 31 * 5 7 * +, and you just need a list 04:37:06 Heh. 04:37:10 you got a blob of text and you can turn that into structured data, where the data is in the shape of the meaning' 04:37:12 of the code 04:37:21 (and a stack..) 04:37:29 Reminds me of that lambda calculus thingy I tried to implement. 04:38:41 Unfortunately, I'm not very good at that parsing of nested parenthesis. 04:38:43 http://projecteuler.net/index.php?section=problems&id=68 04:38:58 that's the one my code describes 04:39:13 * faxathisia thinks that parsing is terribly hard unless you have logic programming or a combinator parser :S 04:40:13 * Slereah does all his programming on Python 04:40:26 faxathisia: wanna stretch your brain a bit and tell me if you can see how the code of mine relates to that gon ring 04:40:34 also Slereah 04:40:44 Slereah: python AND turing machines 04:40:52 Well, yes. 04:40:58 But a Turing machine on Python! 04:41:02 heh 04:41:13 oklofok; Well I'd want to know why there is no <-> before Ring68 n-1 m 04:41:25 I tried to do it on C originally, but it was too much of a pain in the ass to have an infinite tape. 04:41:28 ah 04:41:34 the <-> applies to that too 04:41:45 it's just not necessary, since it's indented 04:41:49 ahh ok 04:41:52 it assumes <-> is meant for that too 04:42:10 parsing isn't fully specced yet... which is why i had to parse manually 04:42:36 i was actually quite surprised the trees+tagging thing worked so well :o 04:43:00 it's a very intuitive way to produce graphs 04:43:04 i think.. 04:43:22 mm I think it's wrong :p 04:43:32 oh, where? 04:43:34 maybe this should be Ring68 0 m :: #Mid m <-> #Outer n 04:43:42 or am I confused? 04:43:45 it chmm 04:44:00 err 04:44:01 hehe 04:44:11 :: T means tag this as T 04:44:34 so... the nodes produced are always tagged as #mid + their id 04:45:08 and, they are connected to a node called #outer their_id, plus the next node in the middle ring. 04:45:40 the recursion only goes through the middle ones, the outer ones are created without recursive calls 04:46:16 ah 04:46:26 sorry, i now realize what you said :) 04:46:34 nope, it's correct as is 04:46:48 you see, once the last node in the middle ring is tagged as m 04:47:00 the evaluator realizes it's the same as the first one 04:47:14 and the first one alrady has the connection to the outer node 04:49:28 faxathisia: did you get it now? :D 04:49:29 ahh I understand 04:49:31 this is very cool 04:49:33 I just evaluated ti http://rafb.net/p/jRexrI17.txt 04:50:32 in fact, it's so cool i'm pretty sure it's been invented multiple times before me. 04:51:19 but, until oerjan joins and tells me he vaguely recalls seeing it somewhere, i'm going to enjoy it 04:51:57 hehe 04:54:56 i need the parser, could try making an n-dimensional grid or something 04:55:40 unfortunately, the parsing isn't as trivial as it seems, i tend to add lots and lots of hard-to-implement details in everything :\ 04:55:50 can't you use haskell as the parser? 04:56:06 like just define some functions and then it parses oh wait :: you couldn't use 04:56:18 it's not haskell syntax 04:56:32 Hm. Using only single-chars state names, the bitchanger interpreter is under 4 lines on the Machine. 04:56:36 if it's close enough I always recommend abusing some existing parser :p 04:56:47 hehe 04:56:55 nah, i make my parsers raw 04:57:02 like a MAN. 04:58:33 i've made a few parsing libs, and i have about 3 parametrizable evaluators for basic prefix+infix expressions, one allowing regexes for everything 04:58:51 and still, i always try to do everything with a few splits and cuts :) 04:59:16 woah 04:59:30 what sort fo parsing libs 05:03:27 "it doesn't take most people very long to notice that I am not in fact crazy" 05:03:31 lol, esr is funnt 05:03:34 *funny 05:05:09 faxathisia: not good ones, and none parse very generically 05:05:29 I like the mixfix stuff in Agda2 05:05:39 misfix? 05:06:04 I can write if_then_else_ :: Bool -> a -> a -- or something 05:06:07 then define it like 05:06:16 if cond then do else other = ... 05:06:27 and use it like that from then on 05:06:37 oh 05:06:41 interesting 05:07:04 i wouldn't wanna parse that :) 05:08:37 http://cvs.coverproject.org/marcin/cgi/viewcvs/Agda2/examples/Introduction/Operators.agda?rev=HEAD&content-type=text/vnd.viewcvs-markup 05:10:05 * faxathisia will probably steal their parser if I want a langauge that looks like that 05:24:38 Oh bloody hell. 05:27:37 My interpreter confuses between UP followed by ":" with "P:" 05:31:16 Either I get a great idea, make some temporary fix or weasel my way out by changing "UP" to something without P's. 05:31:17 Hm. 05:36:49 Temprary fix here I come. 05:43:42 -!- calamari has left (?). 05:45:18 http://paste-it.net/5473/raw/ 06:10:39 http://www.vjn.fi/pb/p554531552.txt 06:11:14 lol, 1.5 hours of thinking whether i should make the parser, then 40 minutes of making it :D 06:11:28 not that it's ready yet, it just parses that program. 06:12:26 but the rest is just 1. making an infix expression parser 2. making a lisp(ish) evaluator 3. making it support recursion, didn't put it in since i don't need it there 06:13:01 Slereah: what does tha tdo? 06:13:03 that do 06:13:38 Well, I changed it when I noticed that it needed one instruction less, but it's a Bitchanger compiler. 06:13:59 cool 06:14:33 Although I have no way to check for much accuracy, because my attempts at making an OR gate with it havebeen futile so far. 06:14:35 hmm, sun rises soon, i think it's time for some sleeps -> 06:14:43 I know the feeling. 06:14:48 I should go too. 06:33:54 -!- oerjan has joined. 06:42:09 Hello, oerjan. 06:42:32 * pikhq can now act on behalf of 3 second-class players and 2 first-class players in Agora. Insane. 06:44:15 Agora's Child, The Association of Federated Organizations, The WALRUS, myself, and Steve Wallace. 06:55:30 well, you are not the first person to go through a period of Agora overachievement :) 06:55:53 just don't suddenly disappear and bring the game to a near crash like some of the former ones :) 06:56:24 (this is a vague recall (TM) btw) 07:00:51 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 07:01:23 -!- bsmntbombdood has joined. 07:01:59 It's not overachievment until I take the office of rulekeepor. 07:02:05 :p 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:44:11 Heh, I set up Trac and Mercurial (with commit) on a server where I have no SSH, that doesn't have Python installed >: ) 09:30:08 -!- oerjan has quit ("leaving"). 10:59:07 -!- helios_24c3 has joined. 11:40:10 -!- Hiato has joined. 11:47:41 hello again, everyone :) 11:57:27 -!- helios_24c3 has quit ("Leaving"). 12:00:55 -!- RedDak has joined. 12:08:24 -!- RedDak has quit (Remote closed the connection). 13:06:33 -!- Hiato has left (?). 13:35:38 -!- helios_24c3 has joined. 13:36:14 -!- jix has joined. 13:41:56 -!- jix has quit ("CommandQ"). 14:11:45 -!- ihope has joined. 14:12:04 pikhq: whose side are you on, then? :-P 14:47:20 * Slereah needs a catchy name for his language. 14:47:33 Donald Knuth was right, it is the hardest part! 14:49:46 What's an important feature of the language? 14:50:36 Turing completeness? 14:50:50 The isomorphism to the Turing machine is the identity function! 14:51:12 Call it Yet Another Turing Language or YALT, then. 14:51:22 Acronyms that don't quite match up with what they stand for are always fun. 14:51:43 Heh. 14:52:27 "ISO" stands for "International Organization for Standardization", after all. :-P 14:52:57 Yes, but the ISO is greek IIRC. 14:53:30 iso means big 14:54:00 A cross between "isos", "IOS" and "OIN". 14:57:53 What's a good function to tell Python to wait n milliseconds? 15:00:00 sleep(n/1000), possibly. 15:00:06 In the time module. 15:07:30 http://paste-it.net/5480/raw/ 15:07:34 Success! 15:07:42 -!- puzzlet_ has quit (Remote closed the connection). 15:07:47 -!- puzzlet has joined. 15:40:36 -!- oerjan has joined. 15:41:13 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 15:43:12 -!- puzzlet has joined. 15:45:04 * oerjan vaguely recalls "ISO" was a compromise between English and French. the French got the acronym, the English the expansion. 15:45:54 If it was French, it would start with an O. 15:45:55 or was that SI? perhaps both. 15:46:12 Organisation des standards internationaux, or Organisation internationale des standards. 15:53:47 ah, "ISO is not, however, an acronym or initialism for the organization's full name in either official language. Rather, the organization adopted ISO based on the Greek word .... (isos), which means equal." 15:55:26 er, are you sure you used my line literally? 15:55:39 * oerjan throws an axe after Mr. Wong 15:56:51 Axes! 15:56:55 My one weakness! 15:56:58 How did you know! 16:23:50 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 16:25:45 -!- puzzlet has joined. 16:57:00 -!- Hiato has joined. 17:05:30 -!- wooby has joined. 17:09:58 -!- helios_24c3 has quit ("Leaving"). 17:12:44 Hello. 17:12:56 Hi Slereah 17:27:13 -!- Hiato has left (?). 17:28:53 -!- helios_24c3 has joined. 17:35:24 -!- Hiato has joined. 17:36:10 Ok all, the links are now fixed and the news typo was fixed, so everything is working now at http://full0.8tt.org 17:36:39 so you can get the interpreter and view the source (the links for which were both broken before) 17:43:57 * pikhq returneth 17:44:13 Welcometh backth. 17:44:21 Ditto-eth 17:45:00 Pikhq, I fixed up all the links on the site, you can now get the interpreter and the source (they were broken beofre) 17:59:53 -!- wooby has quit. 18:06:44 * pikhq nods 18:06:44 I'll have to set up a Pascal compiler sometime; currently waking up, and soon going to try getting Plof working. 18:19:38 sure 18:20:00 well, you can download the .exe and use wine or whatever 18:20:49 -!- helios_24c3 has quit ("Leaving"). 18:21:49 * Slereah tries to make an actually good parser for the Love Machine 9000 18:21:56 Or whatever its name may be. 18:22:02 More of a pain than just compiling a Pascal compiler. 18:23:01 The P instruction is bugging me. 18:24:19 * pikhq tosses Slereah YACC 18:24:54 Unless you're insane like Gregor, and code your parsers by hand, you'll like YACC. 18:25:08 YACC? 18:25:18 Yet Another Compiler Compiler 18:25:39 You give YACC some input vaguely like Backus Naur Form, and it outputs a parser to parse that syntax. 18:25:53 Combine with lex to get the tokenization right, and voila. 18:26:10 You may already have them installed: look for GNU Bison and GNU Flex on your system. 18:26:19 But that might mean having to rewrite most of the Love Machine 9000! :O 18:26:36 GNU? I don't have Linux on little man 18:27:08 What *do* you have? 18:27:13 Windows XP. 18:27:30 I once tried to install some Kubuntu, boy, did I regret it! 18:27:33 Here's some rope, a chair, and instructions on tying a noose. 18:27:39 :D 18:27:49 I mean err.. amm 18:27:54 shame (?) 18:28:11 If you want to use that system sanely, at the *very* least, get Cygwin. 18:28:24 What doth that be? 18:28:33 Cygnus' GNU for Windows. 18:28:48 It's a port of most of GNU to Windows. 18:29:15 And makes Windows POSIX-compliant. That, in itself, is an astounding feat. 18:30:35 Will it be possible to use the function sys.stdin.read on python and it works? 18:30:52 Oh, you're coding in Python, not C? 18:31:05 Well, I'm sure Python has a YACC-alike out there. . . 18:31:11 Didn't you get that from my long line of Python related questions? 18:31:17 Didn't see them. 18:31:28 * pikhq shoves C down Slereah's throat first 18:31:39 I tried writing the Love Machine in C. 18:31:53 But making an infinite tape in C is bothersome. 18:32:02 Not really. . . 18:32:29 Maybe for you people with an actual knowledge of code! 18:32:33 Just make a doubly-linked list; when you reach the end of the list, just add a new node. 18:32:43 Trivial. 18:33:30 i recall someone here used a parsing library for Python 18:33:43 it was more the combinator kind 18:34:02 I could ask a minor-Python-diety friend of mine when he wakes up. 18:34:25 Ok, here's a little taste of my next esolang: {/(<<)[^<]:>:>^>>>v<|v->{<^^>)[^<]:=:}} 18:34:25 I have _no_ idea what that does, but it is syntactically correct. Comments? 18:34:39 A Python deity? Can he touch my code to make it perfect? 18:34:46 He may. 18:34:54 Hiato: I love the syntax. Truly. 18:35:02 I'm glad 18:35:06 I like it too ;) 18:35:16 It has a lot of smiley faces. 18:35:33 oh, huh well that just happened to be that way 18:35:49 oerjan: Hiato seems intent on pleasing the people here who want non-Brainfuck-based Esolangs. 18:35:57 His are brilliantly creative. ;) 18:36:12 thanks :) 18:41:01 In case anyone's interested, the language has 13 symbols and 6 commands 18:43:25 Fairly sparse. Good so far. 18:43:32 Slereah: PLY. 18:43:35 -!- cherez has joined. 18:47:26 Wut? 18:48:37 That's the Python YACC-like thing. 18:48:50 And I'm *still* going to recommend you learn UNIX and C. ;) 18:49:08 I have my share of C, don't worry. 18:49:24 Then why did you think implementing a *tape* in C was so hard? 18:49:31 That's the language we have to use in the sort-of CS class I have. 18:49:47 Well, it's the infinite part I was worried! 18:49:55 Just make it automatically resizing. 18:49:58 Simple. 18:50:17 I can just do .append on the snake, but I saw some worrying malloc and such in C. 18:50:27 Like I said before: dual linked list, when you reach NULL on it, malloc a new list node. Simple. 18:50:46 There's two words I can't recognise in that statement. 18:50:49 Please parse it. 18:51:05 Do you not know what a linked list is? 18:51:20 My major is in physics, not computer science. 18:51:39 A linked list is kinda computer science 101. 18:52:01 Describe it. Maybe I've heard of it, but don't know the translation! 18:52:18 A linked list has any number of nodes. 18:52:28 "Node" is the second mystery word. 18:52:32 Each node has a pointer to another node, and a pointer to the data. 18:52:46 A dual linked list has a pointer to the previous and the next node. 18:52:52 http://en.wikipedia.org/wiki/Linked_list 19:02:05 Hm. 19:02:16 PLY is in a .tar.gz 19:02:43 Ah, Winrar can do it. 19:05:09 Don't complain about Tarballs. It's a decent format for us Unix-types. 19:07:27 Never fear. I'll have to install the damn Linux eventually. 19:34:47 Ok, first programme done: 19:34:47 {{>>}~~~~~~~~~~{{-<~}<<}/{{(<){{[<<]}}}}:>:~{>>{<<}}~{<<{>>~<<}>>}~{<<{>>}}\{>>v}~{^}~~~~~{<}~{<{~}v>}~} 19:34:47 It outputs "T" using the 10th number of the Fibonacci sequence - 4 (which is then 84). I could have done the boring 84 additions, but recursion and conditions are way more fun :) 19:35:06 *- 5 19:37:15 :-O 19:37:43 I'm going to guess that {} contains a loop? 19:37:59 nope, sorry ;) the / and \ do 19:38:54 Ah. 19:39:26 the stuff immediately after the / is the condition stuff ending at :>: meaning greater than 19:40:55 -!- puzzlet has quit (Remote closed the connection). 19:41:08 -!- puzzlet has joined. 19:41:22 {{>>}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{v<<{~}}} 19:41:26 would work identically 19:41:34 except it's just 84 additions 19:43:35 Hmm. 19:44:42 is that a no? Should I modify the language, anything you hate, replace a symbol etc... 19:47:04 Nothing I hate. 19:47:15 I'm just curious what everything does. :p 19:51:28 -!- jix has joined. 19:56:08 -!- sebbu2 has joined. 20:00:12 -!- ihope has quit ("CGI:IRC (Session timeout)"). 20:13:09 -!- sebbu has quit (Read error: 110 (Connection timed out)). 20:22:23 -!- Sgeo has joined. 20:22:58 * Sgeo will start writing code for PSOX today! 20:23:05 Sure, no prob :) I just wanted feedback 20:23:33 yes please Sgeo so that I can include (?) PSOX in my new esolang, check above for examples 20:24:00 "above"? I just got here >.> 20:24:11 lol, sorry, I meant above in the log 20:24:16 or I can paste again 20:24:16 oh 20:24:18 if you like 20:24:26 * Sgeo opens log 20:25:30 11:34:47 20:25:55 actually it starts at 10:34:25 20:26:00 brb 20:26:06 PSOX doesn't need to be included in the specs of the esolang or anything. It's mostly language neutral 20:26:08 hb 20:27:05 Is it ok if types in PSOX 1.0 are regex-based? 20:27:13 * Sgeo pokes pikhq and oklofok and random other people 20:27:17 Possible. 20:27:52 Also, there's quite a bit of overhead with the VARG(LNUM) and VARG(LBYTES) types 20:28:09 Suppose a function is expecting a VAR(LNUM) 20:28:24 and you want to add 3 bytes together: 0x01, 0x02 and 0x03 20:28:39 This would be the input to the function 20:29:06 0x01 0x01 0x01 0x00 0x01 0x01 0x02 0x00 0x01 0x01 0x03 0x00 20:29:18 No, it's 20:29:22 0x01 0x01 0x01 0x00 0x01 0x01 0x02 0x00 0x01 0x01 0x03 0x00 0x00 20:29:41 Want the explanation? 20:30:55 0x01(varg indicator) 0x01(lnum indicator) 0x01(data) 0x00(li) 0x01(vi) 0x01(li) 0x02(d) 0x00(li) 0x01(vi) 0x01(li) 0x03(d) 0x00(li) 0x00(vi) 20:31:19 Does this need to be fixed somehow? How can this be fixed? 20:32:15 pikhq, thoughts? 20:32:39 I have none ATM. 20:32:53 * Sgeo wants to finalize the spec soon 20:35:11 As in, if I don't get ideas very soon, it's staying that way >.> 20:37:46 Finalise it. Implement it. If problems show up when coding using it, then fix them. ;) 20:39:19 * Sgeo makes the first commit in a while 20:39:23 Just moving a parenthesis 20:47:29 back, if you missed me :P 20:50:14 Well, I think my code works now 20:52:50 And the brainfuck sorting program works, yay! 20:53:06 :) 20:53:31 Thank you dbc. 20:53:41 w00ts. 20:53:55 dbc? 20:54:16 dbc sent me a PM of a BF program that works regardless of encoding. 20:55:35 Incidentally, due to the way that PSOX works, it will mean EOF=0 20:55:46 well, that's simplifiying 20:56:00 -!- jix has quit (Read error: 113 (No route to host)). 20:57:25 cool, Sgeo, I don't suppose that you will write PSOX in anything bu Python (My python is equivalent in skill to sand), perhaps C/C++/Ruby/C#/Lua etc (or am I holding my breath for something that will never come) Perhaps a .dll or .lib even? 20:57:28 dbc is a diety of Brainfuck coders. 20:57:52 Among other things, he wrote a Brainfuck interpreter in Brainfuck. 20:57:58 wow 20:58:00 Heh. 20:58:04 now that's impressive 20:58:06 You only really need to know Python if you want to write an implementation for a domain.. 20:58:15 And Python is not hard to pick up. 20:58:20 meh, ok 20:58:20 My hat off for dbc. 20:58:29 pikhq, when PSOX comes out, will he write a BF-in-BF interpreter for PSOX? 20:58:29 Mine too :P 20:58:31 What does "equivalent in skill to sand" mean? 20:58:51 :p 20:58:53 It means that his skills in Python are equivalent to ground up quartz. 20:58:54 well, it means that a handful of sand could write better code in Python than me 20:58:59 lol, also tru 20:59:04 ahh I like this expression 20:59:04 *true 20:59:09 :) 20:59:25 You don't need skills to write in python silly man 20:59:30 Hiato, of course, if you want, you could implement PSOX in those other languages >.> 20:59:35 You think of something, and bal, you write it! 20:59:53 Really? Is it as simple as Ruby (9.times do hrmm....) 21:00:07 Thanks for the honour, Sgeo :P 21:00:11 I don't know 21:00:24 Ruby is fugly. 21:00:45 well, it's easy and that makes up for it to me ;) 21:00:49 Heh. Reminds me. A friend wrote an early version of the Love Machine 9000 on Ruby 21:01:09 what is this Love Machine 9000 of yours? 21:01:20 * pikhq shall go back to Plof 21:01:41 Where everything is an object, defined in terms of Plof. ;p 21:01:59 :) I want 21:02:02 * pikhq wonders if he should do a Function.opCastTo(). :p 21:02:22 lol 21:02:28 -!- ihope has joined. 21:02:29 The Love Machine 9000 is what I call this language I have yet to find a name for. 21:02:57 It's pretty much a fancy version of the original Turing machine notation. 21:03:01 Aha, I see, any pre-pre-docs or something? I'd like to see what you have come up with 21:03:13 Well, the interpreter already exists. 21:03:19 awesome :) 21:03:23 I just have a hard time finding a snazzy name. 21:03:30 *cough* link *cough* 21:03:42 I like Love Machine 9000 :P 21:04:03 http://paste-it.net/5482/raw/ 21:04:21 If you want to see the basic syntax, just type "help". 21:04:44 cool, is this Python or what 21:04:51 A whole lot of it. 21:05:07 * faxathisia is impressed 21:05:12 aha, where can I grab an interpreter (I'm unfortuantely on a windows box) 21:05:13 (never saw python that looks like this..) 21:05:17 -!- RedDak has joined. 21:05:19 (ditto) 21:05:28 (actually, never saw python) 21:05:32 http://paste-it.net/5483/raw/ 21:05:38 Here's the BF interpreter. 21:05:46 wicked 21:05:50 how did you write that? :D 21:05:57 Just replace the c:/e.txt at the end by the textfle you want. 21:06:02 Write what? 21:06:07 BF interpreter 21:06:31 Here's a somehow commented version of it : http://paste-it.net/5472/raw/ 21:08:35 wow, that is seriously impressive. Awesome job and wicked language (from what I can tell) 21:08:45 Thanks. 21:09:00 The [ ] were much easier than I thought they would be. 21:09:23 It's the + and - that are the big problem 21:09:50 I made a bitchanger interpreter. It looks much nicer. 21:09:51 * Sgeo implements major version checking 21:10:52 * Sgeo forgot that it's "elif" not "else if" 21:11:09 same in Full 0, it only takes this much code to do the [ and ]: 21:11:10 @{5}[($a0$a1=?[)([($a4$a5>0)({4}[35])]{1}[a6])]@{5}[($a0$a1=?])([(a6>0)({3}[a6][35])]{6}[($a4$a5>0)({2}[a6] 21:11:10 @{5}[(a6>0)({3}[a1]{3}[(0>a1)({1}[(a1)(999)]{1}[a0])]@{5}[($a0$a1=?])({2}[a6])]@{5}[($a0$a1=?[)({3}[a6])] 21:11:10 @{2}[!-21])]{3}[37])]{3}[35])]@{5}[($a0$a1>-1)({4}[35])] 21:11:10 but his much for just + and -: 21:11:10 @[a1]@{5}[(a1>999)({1}[(a1)(0)][a0])]@{5}[(a5>999)({1}[(a5)(0)][a4]{4} 21:11:11 [(a4>?z)({1}[(a4)(a2)]{6}[(a5)(a3)])])]@{5}[(a3>a5)([(a4=a2)({1}[(a5)(999)]{6} 21:11:13 [(a4)(?z)])])]@{5}[(a5/>0)({1}[(a5)(999)]{1}[a4])]@{5}[($a4$a5>255)({1} 21:11:15 [($a4$a5)(0)])]@{5}[(0>$a4$a5)({1}[($a4$a5)(255)])] 21:11:19 sorry for spam :( 21:12:14 I tried to make an actual ASCII version of the BF interpreter, but the Love Machine 9000 doesn't seem to be able to understand that much strange characters. 21:12:31 I also can't copypasta the NUL char. 21:12:58 yeah, is there no way to say #0 or literal 0 21:13:27 I also don't want to have the NUL char on the machine. 21:13:46 ah, yes 21:13:58 If I want to look at the tape and there's nothing printed for NUL, it will be hard to read 21:14:03 -!- helios_24c3 has joined. 21:14:40 (If you want to look at the tapes, just replace nd by d10 for instance, or d and any number) 21:14:57 Checking minor ver not implemented yet 21:14:59 woohoo! 21:15:39 true, the problem with tape like systems.. 21:16:53 Best I can do is print "NUL" on the cell for the NUL char. 21:16:53 hah, just beat me to it :) 21:17:00 argh 21:17:54 Well, I seem to have the concept behind opening a subprocess down.. 21:18:35 lol : This programmer does not support empty programs as quine 21:18:35 awesome 21:18:41 :) 21:19:13 Plus, it prevents the program to crash if I type enter by mistake. 21:19:30 true. But that is still awesome :D 21:20:19 IS http://trac2.assembla.com/psox/browser/trunk/impl/PSOX.py fugly? 21:20:55 Slereah, there is a problem with your BF interpreter 21:20:59 If you find a #print "butts" somewhere, it's just a marker I use. 21:21:03 What is it? 21:21:28 +++++++[>+++++++<-]>. 21:21:29 this should produce a 1 but I get an "M" 21:21:44 That's because it's not in an ASCII encoding. 21:21:54 ? 21:21:58 Here's the chart : http://paste-it.net/5463/raw/ 21:22:18 Aha 21:22:18 As I said, I couldn't make a +/- in ASCII. 21:22:20 that helps 21:22:35 sorry, I must have missed that 21:22:40 Here's the local hello world : 21:22:40 >++++++[<+++++++>-]<++.>>+++++[<+++>-]<.+++++++..+++.<<++++[>+++++<-]>-.>++++++++.--------.+++.------.---- 21:22:40 ----.<++++++. 21:22:54 Oops 21:22:55 >++++++[<+++++++>-]<++.>>+++++[<+++>-]<.+++++++..+++.<<++++[>+++++<-]>-.>++++++++.--------.+++.------.--------.<++++++. 21:22:57 There. 21:23:51 I think I will do an ASCII version, but with the 1 through 8, 11 through 31 abd 126 through 255 as something else. 21:24:12 cool, no prob 21:24:15 Maybe those musical notes I was thinking about. 21:24:20 lol :) 21:24:25 there is another problem though 21:24:33 http://paste-it.net/5480/raw/ 21:24:38 I can't runt the interpreter more than once in a row 21:24:39 anyone going to comment? 21:25:02 SyntaxError: invalid syntax if I try 21:25:27 I have to close IDLE a run it again 21:25:35 Well, the BF interpreter halts when it reaches an empty char. 21:25:38 if I need to run the prog more than once 21:25:53 Sgeo : I can't read much of it. 21:26:13 I see, but it returns me to the main prompt ie Help works fine and Instructions etc 21:26:21 but I can't run the BF interpreter again 21:26:31 woops 21:26:32 wait 21:26:37 that's the python help 21:26:42 tralalalalaallalalala 21:26:45 Heh. 21:27:08 Forget I said any of that 21:27:21 If you want some moar obfuscation, there's a minimalist version of the love machine 9000. 21:27:41 wicked (the harder to read, the better it looks :P ) 21:27:46 Slereah, hm? 21:27:58 http://paste-it.net/5459/raw/ 21:28:12 Although it cannot stop at all. 21:28:37 oh well 21:28:43 lets see this puupy 21:29:51 The syntax is roughly : http://farm3.static.flickr.com/2384/2144871414_67e1245e41_o.jpg 21:30:25 aha 21:30:47 well this was probably supposed to happen, but 21:30:48 Traceback (most recent call last): File "C:\Love Machine 9000.py", line 332, in sys.exit("Initial m-state " + fstate + " does not exist") SystemExit: Initial m-state q0 does not exist 21:31:15 PS: What you are doing Slereah is beyond me at his time of night 21:32:47 Maybe you didn't type the program as one line. 21:33:03 probably the problem 21:33:16 (Haven't found a way to strip the new lines so far, so everything is in one line) 21:33:25 Ok, I see 21:34:59 If you have some algorithm to solve the halting problem, I might be able to use it to halt the 4 symbols program! 21:35:20 Otherwise, it just runs forever. 21:35:27 :) lol 21:35:41 Slereah, you mean stripping newlines in python? 21:35:43 well, why don't you just register at a fortune teller website :P 21:35:46 Yes. 21:35:59 somestring = somestring.replace("\n", "") 21:36:22 Let's see! 21:37:00 It works, thankies. 21:37:05 yw 21:37:29 (Just put prog=prog.replace("\n", "") on line 167 of the love machine) 21:38:32 roger 21:38:38 It will be easier to type those damn programs 21:39:44 Hrmm, I still get n error though: Traceback (most recent call last): File "C:\Love Machine 9000.py", line 205, in sys.exit("Direction required") SystemExit: Direction required 21:39:58 with the minimal version of the love machine 9000 21:40:12 That's because you must add a left or right instruction. 21:40:15 < or >. 21:40:21 woops 21:40:22 ok 21:40:39 hah 21:41:07 I could just make a version with a "do not move" instruction, but where's the fun in that! 21:41:37 True 21:41:56 Compicated is fun (as is the case with my new Esolang) 21:42:22 I could even make a retarded version. 21:42:29 * Sgeo doesn't want PSOX to be too complciated :/ 21:42:38 ALthough the current specs mean a LOT of overhead 21:43:01 Switch the *+<> symbols to numbers, convert it to base ten, and make a version with just a long line of "+" to reach that number. 21:43:03 Lol, no thanks. Sgeo, Hiato also doesn't want PSOX to be com[plicated 21:43:27 starting to sound like Malbolge a bit there (don't scare me ;) ) 21:43:35 * Sgeo doesn't know how to make the specs less scary 21:43:59 (add pictures of rabbits and such :P ) 21:44:01 Well, I mostly use the version that you saw before, the one with less scary syntax. 21:44:07 Did I mention the huge overhead of sending 3 bytes to add together to a function expecting VARG(LNUM)? 21:44:12 yes, and I am thankful for that too 21:44:36 0x01 0x01 0x01 0x00 0x01 0x01 0x02 0x00 0x01 0x01 0x03 0x00 0x00 21:44:50 yip 21:44:55 If you want some classic program for the love machine : http://paste-it.net/5484/raw/ 21:44:59 unfortunately ;) No sleep for the wicked 21:45:24 cool, lets see what this baby does 21:45:26 There are 3 bytes of data in that line. The rest is overhead :/ 21:45:33 Hiato, scary? 21:45:52 oh yeah, you bet 21:45:57 :( 21:45:57 (no sarcasm) 21:46:22 I'm probably going to freeze that into the specs though :( 21:46:38 Oh bloody hell. Something happened to it between the versions of the LM. 21:46:43 Slereah, that's awesome ! Except for the fact that it goes 99, 68, 67 21:46:46 It goes from 98 to 68. 21:46:47 but hety 21:46:50 its beer 21:46:54 its alowed 21:46:56 :P 21:47:00 Goes down smoothly! 21:47:00 *hey 21:47:06 I think I know what went wrong. 21:47:08 :) 21:47:27 Good idea Sgeo, shame though 21:47:29 I had to disallow the syntax character::newstate for conveniance reason 21:47:51 Thing is, BF should be able to process that format smoothly.. 21:47:53 ahh (no idea where that is in the programme) but well spotted 21:47:53 So I made a big replace "::" by ":DN:" 21:48:13 Probably nicked something. 21:48:26 Sgeo : that is scary still 21:48:29 Good thing I have a commented version somewhere. 21:48:31 Sgeo: of course, 10 bytes of overhead is quite often not significant. 21:48:48 Slereah : Only you know what's going on deep within the bowls of this beast :P 21:49:13 vs. 3 bytes of data, it's not significant? 21:49:36 Hell, I'm not even sure! 21:49:40 (I'm no expert here, but sounds like a lot to me) 21:49:46 If you only send this once, nobody will notice. 21:49:46 lol 21:49:54 (so we hope) 21:49:57 But well, since it's a Turing machine, I can just visualize the tape! 21:50:04 If you send it a million times, that becomes 10 megabytes of overhead for 3 megabytes of data, which probably is significant. 21:50:08 See what happens. 21:50:12 true, and a useful feeature too :) 21:50:23 Agreed 21:50:27 Although it takes an awfully long time for that program. 21:50:36 Maybe it will be fixed in PSOX 1.1 21:50:50 well, good luck then Slereah, god speed ;) 21:51:10 Take one down, and pass it around! 21:51:14 What is this overhead, anyway? An initial handshake? 21:51:19 * Slereah goes back to the counter 21:51:20 Well, I don't real;why mind that much Sgeo. But as iHope pointed out, it can become alot 21:51:23 99! 21:51:25 *really 21:51:30 It's the VARG(LNUM) format 21:51:33 * Slereah goes back to the end of the tape 21:51:40 Indicator bytes to show when the data ends 21:51:42 (lol) 21:52:22 once again, I'm no expert but can't you demarcate a data stream? 21:52:47 0x01(vi) 0x01(li) 0x01(d) 0x00(li) 0x01(vi) 0x01(li) 0x02(d) 0x00(li) 0x01(vi) 0x01(li) 0x03(d) 0x00(li) 0x00(vi) 21:53:01 What's that SADOL-like number format where a number is the length of the number followed by its digits? 21:53:13 Where vi is VARG indicator bytes, li is LNUM indicator bytes, and d is data 21:53:25 ihope, I doubt that BF could process that easily.. 21:53:26 oh, well I understand it now 21:53:42 Agreed, Sgeo (if's aer a pain) 21:53:43 Oh. 21:53:44 *are 21:54:16 So, is that craptastic, or acceptable? 21:54:23 State 16a is the troublemaker! 21:54:38 Acceptable as long as you provide a lower-overhead alternative, I'd say. 21:54:59 lower-overhead but less powerful :/ 21:55:10 There was a double ; in state 16a. 21:55:11 adding only two bytes at a time, for instance 21:55:15 Cancer of the semicolon. 21:55:15 Yes, make them suffer for using hard languages 21:55:17 :P 21:55:30 But, no, if it is absolutely necissary, I truly think it's acceptable 21:55:47 Incidentally, there is overhead before being allowed to accept input 21:55:49 Well found Slereah, and look, were still in 07 :P 21:56:20 For instance, in BF, where a "," would normally go, you'd put "[-].+..+++++++++.,,," 21:56:32 meh, oh well Sgeo, it'll have to do (and anyways, its your library thing, not ours and I don't mind that much) 21:57:12 actually though, on second thought, it seems to me to be a rather nice challenge 21:57:16 now that I think of it 21:57:17 Is that craptastic? 21:57:24 tbh, I can see no alternative.. 21:57:29 Depends on how many times you have to execute it and whether there's an alternative. 21:57:49 No alternative, although you can request multiple bytes, or a line at a time 21:58:01 well, I think that the real problem will be TCP communication where allot of data is sent and then the overhead accumulates 21:58:08 but it doesn't truly mtter 21:58:18 I consider this a gift to the Eso community 21:58:23 ty Hiato 21:58:27 to be able to acces the web from malbolge :P 21:58:41 np 21:59:56 Reading in a line: "[-].+.-.++++++++++.,,[>,]" 22:00:06 (Assuming there are no 0x00 in that line) 22:00:09 yeah, that's not bad at all 22:00:18 (ah, catch 22) 22:00:44 If you want it to work even if there's a 0x00, you need to check for 0x0A at the end 22:00:58 I see, so there are means and ways 22:01:10 therefore now worries, be happy man ;) 22:01:58 Also, that code overwrites the EOF indicator, so you won't know if that's the last line, or if the 0x0A really was present.. 22:02:31 hrmm 22:04:07 Incidentally http://trac2.assembla.com/psox/browser/trunk/spec/psox.txt#L155 is the relevent part of the spec 22:05:50 wow, that is allot of hard work done there. Well done on that. :) 22:06:30 I really like this r"((?:\x01" + some_type_regex + r")*?\x00)" 22:07:46 ty Hiato 22:08:23 ps: it is also well thought out, so don't be too worried about my inexperienced opinion on handshakes and overheads ;) 22:09:15 Handshake is 7 bytes by the client, 2 by the server 22:09:26 erm, 3 by the server 22:09:39 sounds find to me 22:09:42 :) 22:10:45 Hm. I think that by using never referenced states, I could make comments for the love machine. 22:11:08 That would be both nice, and helpful :) 22:11:10 * Sgeo is almost done writing the handshake-processing code 22:11:17 (wicked) 22:11:20 Something like comments[a:"comments":a] 22:11:42 yes, that would be very useful (and the beer is a prime example :P ) 22:11:55 Well, actually, it could be much shorter. 22:12:11 For that program, I used a one state-one instruction kind of thing. 22:12:18 the easier for commenting, the better 22:12:20 Each letter printing takes one state. 22:12:26 oh, I see 22:12:38 But I could just use PbRIPoRIPtRI.... 22:13:25 I won't doubt you on that (its now way too late to concentrate on that) ;) 22:13:33 Hey, once PSOX is done, will anyone be writing domains and implentations for domains for it? 22:13:38 implementations 22:13:53 I can give it a bash 22:13:56 (literllay) 22:14:04 *literally 22:14:32 * Sgeo would like to see an IRC domain, which would mean Brainfuck IRC bots! 22:14:37 * oerjan wonders if "literally" means what Hiato thinks it means 22:15:16 lol, woops 22:15:48 I told you, too late :P 22:16:05 lol, that's actually really funny :) :) 22:16:30 * Sgeo won't write the domain himself though, at least not until PSOX 1.0 is released.. 22:16:54 PSOX 1.0 will provide File I/O and HTTP access, and that's it, unless others write domains.. 22:17:01 Yeah, BF chatbots w00t :) 22:17:06 The comment idea works oka. 22:17:18 good to hear Slereah :) 22:17:31 Cool, well I/o and HTTP is more than enough for an initial realease 22:17:39 without a doubt 22:22:43 alright, well its late again here. Cheers all 22:23:06 and once more, anything Full 0 related, let me know hiato1@gmail.com (this time all the links are valid and working) 22:23:14 http://www.full0.8tt.org 22:23:23 -!- Hiato has quit ("Leaving."). 22:28:09 * Sgeo adds the concept of PRIs 22:29:25 domain longnames are PRIs 22:29:30 What else would be a PRI? 22:29:42 Anyone paying any attention? 22:32:09 A PSOX Resource Identifier. Can either be a valid URI, or a string registered on http://esolangs.org/wiki/PSOX/PRI 22:34:27 Comments on http://trac2.assembla.com/psox/changeset?old_path=trunk%2Fspec%2Fpsox.txt&old=15&new_path=trunk%2Fspec%2Fpsox.txt&new=16 ? 22:37:29 pikhq, oklofok oerjan ihope GregorR faxathisia anyone? 22:37:42 I don't know howto comment on that 22:38:44 do you mean PESOIX's? 22:38:53 What's that stand for 22:39:05 PSOX is his own project. 22:39:18 Meant to fulfill the role of PESOIX. 22:39:19 PESOIX is PSOX's "spiritual ancestor" 22:39:25 ah alright 22:39:35 I support the PRI, myself. 22:40:15 If you're sufficiently insane, you could even provide a way to get new domains via a PRI. 22:40:47 You mean implementations? 22:41:08 Sounds like something of a security risk.. 22:41:48 Here's the commented version. Somehow. 22:41:49 http://paste-it.net/5486/raw/ 22:42:43 Half of this program is made to handle less than 10% of the display. 22:42:55 Incidentally, PSOX File I/O takes place in a sandbox unless "-s fullfileio" is specified 22:48:56 -!- ehird` has joined. 22:48:59 Hi ehird` 22:49:06 Hello sir. 22:49:16 Updates to psox.txt : http://trac2.assembla.com/psox/changeset?old_path=trunk%2Fspec%2Fpsox.txt&old=15&new_path=trunk%2Fspec%2Fpsox.txt&new=16 22:50:16 fsfsfdfdfs 22:50:18 oklofok! distract me from annoyance with oklotalk talk 22:50:36 Hm 22:50:44 OKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLOOKLO 22:50:48 I might end up preventing a PSOX 1.10 from existing.. 22:50:50 :O 22:50:55 IT IS LIKE LOOK 22:51:10 I mean, 1.9 and 1.11 but no 1.10 allowed :/ 22:51:22 Or I'll just fix the issue before 1.10 22:51:26 ehird`: i can grant some graphica talk later 22:51:27 * Sgeo opts for that route 22:51:34 once i make the parser complete 22:51:35 oklofok: graphica= 22:51:50 ehird`, why don't you like PSOX? 22:51:58 the graph defining language i made yesterday 22:52:16 Sgeo: you bikeshed with it 22:52:22 bikeshed? 22:52:56 Arthur. 22:52:56 i do agree, although i do that myself all the time 22:52:58 Bikeshed. 22:53:01 Jackson. 22:53:04 not that i knwo what bikeshedding is. 22:53:06 ,@define bikeshed 22:53:09 *know 22:53:10 wait, it isn't here 22:53:11 fsdfsdfsdfdsf 22:53:21 * Sgeo reads wiki 22:53:42 You mean asking for trivial opinions? 22:53:45 erm, opinions with trivial impact? 22:53:46 no 22:54:18 http://www.bikeshed.com/ 22:55:56 "Parkinson shows how you can go in to the board of directors and 22:55:57 get approval for building a multi-million or even billion dollar 22:55:57 atomic power plant, but if you want to build a bike shed you will 22:55:57 be tangled up in endless discussions. 22:56:07 People. I need to build an atomic power plant. 22:56:34 Slereah: you shall need a bikeshed 22:56:46 No need ehird`. 22:56:55 Nuclear powered cars. 22:57:07 nuclear powered bikes 22:57:08 How awesome would that be! 22:57:14 duh 22:57:27 Wadler's law may also be relevant 22:59:34 I don't like the color of bikeshed.com. It should be changed. Why didn't the maker of that page ask for input? (j/k j/k j/k) 23:00:05 "In any language design, the total time spent discussing a feature in this list is proportional to two raised to the power of its position. 0. Semantics 1. Syntax 2. Lexical syntax 3. Lexical syntax of comments 23:00:13 say oklofok 23:00:24 what would you say to an implementation of oklotalk in scheme 23:00:26 it'd be less horrific than doing it in C 23:00:47 hehe 23:01:32 apart from MLs are there are languages specifically designed for writing other languages in? 23:03:04 ML? 23:03:15 Oh, meta language. 23:03:18 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 23:03:20 faxathisia: lisp 23:03:22 -!- puzzlet has joined. 23:03:29 * Sgeo keeps working on the handshake code 23:03:47 * Slereah shakes the hand of the world. 23:03:48 Hi puzzlet. If you care about PSOX, did you see http://trac2.assembla.com/psox/changeset?old_path=trunk%2Fspec%2Fpsox.txt&old=15&new_path=trunk%2Fspec%2Fpsox.txt&new=16 23:03:49 Hello world! 23:04:26 Will this handshake language include high fives? 23:04:31 hehe 23:05:03 Maybe the high-five command terminates the program or something. 23:05:20 0x00 0x02 0x00 n 0x0A is terminate program 23:05:34 0x^5 23:05:35 with error code n 23:12:44 sgeo@ubuntu:~/dev/psox/trunk/impl$ python PSOX.py bf test.b 23:12:44 Client's reported minimum version: 9 23:12:44 Client's reported maximum version: 0 23:12:46 What does 0x00 0x02 0x00 n something-else do? 23:13:06 ihope, fails to be proper PSOX 23:13:19 IllegalPSOXError 23:13:37 the 0x0A is at the end of all functions to make sure the client's interpreter sends it properly 23:13:40 I take it there's a good reason the terminate command isn't just 0x00 0x02 0x00 n. 23:13:45 Ah. 23:14:13 Thing is, PSOX doesn't send a 0x0A to make sure it gets received properly :/ 23:14:48 * Sgeo isn't sure if that's much of an issue, but GregorR brought up the possibility that interpreters only send when they hit 0x0A 23:15:17 If you just write printf(), it'll work that way. 23:15:26 And lots and lots of interpreters do that. 23:15:40 Therefore, requiring a newline = more portable. 23:15:56 -!- RedDak has quit (Remote closed the connection). 23:15:58 But they don't read line-by-line, they read character-by-character? 23:18:17 -!- helios_24c3 has quit (No route to host). 23:18:55 -!- oerjan has quit ("Good night"). 23:20:08 Sgeo: you are really unix-naive aren't you 23:20:30 the console hangs on until 23:20:47 eh, unrelated 23:20:47 but, yeah 23:33:37 * Slereah will now try to implement some m-functions on the love machine 9000, since the parser is now working correctly 23:33:47 http://www.vjn.fi/pb/p412226441.txt 23:33:49 2d grid 23:34:11 output of the graphica interpreter 23:34:40 an interpreter now? :D 23:34:42 in what 23:35:04 well, "interpreter" 23:35:16 it's in a sense a language. 23:35:23 since it may well be tc already 23:35:53 i have no idea how to actually draw a graph so that it makes no sense, it's quite hard to algorithmically determine whether the edges overlap *too much* 23:36:48 anyone wanna pitch a more complex graph so that i need to continue my parser :P 23:36:53 everything i come up with can already easily be represented :< 23:36:56 what language is the interpreter in ? 23:37:08 python 23:37:14 can I try it? :D 23:38:11 you need to inject the program in the actual code... i'll make it read the prog from a file first, i don't like people touching my code. :) 23:42:54 lol 23:43:18 not as easy a conversion as i though, since my parser can't handle the parsing of the actual expressions yet :D 23:43:50 so, okay, you need to put the code in the variable ptrns, it's clearly marked, and the exp needs the initial node 23:44:00 which you will have to parse manually... i think 23:45:37 faxathisia: http://www.vjn.fi/pb/p334611515.txt 23:46:02 i can help you with the syntax, and the variables ring and grid hold the two example progs i've made 23:47:13 i'll make the parser complete tonight, after that it'll handle lisp and math style computation with numbers, and possibly a few other primitive datatypes, in case that doesn't take long. 23:47:26 doesn't take long to make 23:49:47 heh, guess i should stop waiting for you to respond and actually begin writing the parser ;) 23:51:05 oklofok, begin writing the parser 23:51:30 i'll promise to start before you start writing psox ;) 23:51:38 unless you already did. 23:51:48 I started the PSOX.py interpreter already 23:51:49 gotta get some coke first 23:51:50 -> 23:51:50 =P 23:51:56 oh, darn :P 23:52:05 well, i did write the part that's in the link yesterday 23:52:08 So far, it can recognize the handshake 23:52:15 it does some parsing already 23:52:20 ------> 23:52:35 Although it violates PSOX spec in that it exits if the program isn't PSOX or is an unsupported version.. 23:52:50 PSOX spec says it keeps going and gives info *shrugs* 23:52:56 I'm violating my own spec :/ 23:53:30 And there's already a known bug that won't affect anything in the near future: It vomits on receiving a claim that it's e.g. PSOX 1.10 23:53:34 Or 10.x 23:54:24 Incidentally, handshake implies that clients have a version a.b-c not just simple a.b 23:55:36 Anyone going to respond? 23:55:59 <------ 23:56:06 can't, parsing time -> 23:59:36 -!- ehird`_ has joined.