< 1208390402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, but C++ template's type system (metatypes, basically) can't even handle SKSK < 1208390405 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :but i'm not sure about that, just assuming because of what recursion does < 1208390407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because it has no polymorphism, afaik < 1208390421 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :and ski of course depends on recursion for tcness < 1208390428 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :strongly typed ski is strongly normalizing < 1208390441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, yes, but Haskell's can do some basic things like SKSK < 1208390453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C++'s can't, because the arguments are VERY strong.. < 1208390455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. < 1208390459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the first argument of K must be a type < 1208390462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not a template < 1208390468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so SKSK is invalid < 1208390479 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1208390511 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :```SKSK ? < 1208390546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, yes < 1208390566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, yeah, it's "typename a->typename b->typename a" < 1208390568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not "a->b->a" < 1208390656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Omg < 1208390659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no template typedefs in gcc < 1208390666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyone know of a compiler that isn't a toy? ;) < 1208390780 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ghc ;) < 1208390901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, C++->haskell makes me weep ;) < 1208390920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :especially since it's possible - haskell's type system is TC with ghc extensions < 1208390985 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :C++ templates automatically translated into haskell <3 < 1208390993 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it would be so ugly it would be beautiful < 1208391025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner, in to haskell type-system metaprogramming actually < 1208391028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but thats more practical < 1208391031 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the languages are similar < 1208391266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, doing C++ template cons < 1208391376 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1208391410 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :i would like seeing an automatic tm -> c++-template < 1208391429 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :i've just seen that one paper which says "it can be seen it can be done for any tm" < 1208391446 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :but doesn't actually prove it, or show an automatization < 1208391597 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :automatic tm -> c++-template? < 1208391604 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :An interpreter? < 1208391661 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :add parens around (tm -> c++ template) < 1208391679 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i mean, just an automatic translation < 1208391691 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1208391698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, http://www.blogblog.com/no897/corner_main.gif < 1208391699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1208391704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://osl.iu.edu/~tveldhui/papers/2003/turing.pdf < 1208391743 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, that's what i meant < 1208391765 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :that's just making one translation, and saying one can see it's trivial to do for any tm < 1208391784 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :it's not an automatic translator < 1208391883 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The original Love Machine 9000 was supposed to just be a big program that converted the input into a C program < 1208391898 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But C being the scourge of the earth, I dropped the idea and went to Python. < 1208391945 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :THE C-MAN MACHINE 9000 < 1208391981 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :do it < 1208391981 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :now < 1208392176 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :D: < 1208392207 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, since my main problem was extending the memory when it was full, I suppose I could just drop that idea and just add 36000 cells or something. < 1208392238 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And I could just do a Post machine. < 1208392260 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :you could just double the size if you run out of mem or something < 1208392270 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :and in any case, that's a trivial prob < 1208392288 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :of course, the trivial ones are the ones one doesn't really want to have to solve < 1208392294 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, probably. But then again, that would require me to know how to use those memory commands < 1208392315 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Remember that I'm a terrible programmer D:. < 1208392342 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :there's like 3 of them, and everyone here can help you < 1208392373 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, let's get that Dev C++ thingy back. < 1208392384 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :thazz the spirit! < 1208392401 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And write a Post machine - C translator :o < 1208392412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, malloc(size) - maek something 'size' bytes, return it < 1208392421 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I know of this. < 1208392423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :free(x) - im done with this (always do after you malloc) < 1208392429 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I could never make it work in class. < 1208392436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :realloc(x, size) - i dont have enough xness, give me size isntead < 1208392439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, classes are c++ < 1208392440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not c < 1208392450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208392450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :class < 1208392451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1208392453 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :*rimshot* < 1208392455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, well, basically < 1208392457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :malloc(X) < 1208392460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is of type T * < 1208392461 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wow @ Tree < 1208392465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where T can be anything < 1208392468 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wonderful idea < 1208392476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :malloc(sizeof(T)*N) < 1208392477 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And with realloc, it's important to remember that x can move; I think that's quite a common problem. < 1208392479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gives you space for N Ts < 1208392493 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: btw, if you do C++, you don't even have to understand the memory stuff, necessarily < 1208392511 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I know there's the self-resizing array vector thing. < 1208392522 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But that's when I read about it that I gave up on C. < 1208392538 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So it's just going to be an array limited in size right now. < 1208392545 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1208392561 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :well, just put all array operations behind procedure calls, and you can just add this later. < 1208392577 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :or behind a class interface, in the case of C++ < 1208392622 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :My idea was along the line of writing up something simple, since it's almost 2AM. < 1208392641 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Possibly not even use a folding function :o < 1208392655 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :whuzzat? < 1208392662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, fold=reduce < 1208392696 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. But in math, the folding function is a N -> Z function. < 1208392717 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That way, it's infinite instead of half < 1208392728 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But if I use a limited array, I'm not gonna bother. < 1208392889 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :When they say C++ template, what are they refering to exactly? < 1208392896 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :C++ without the libraries? < 1208393345 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i assumed he meant something else cuz it was c++ < 1208393356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, No < 1208393367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, C++ templates are kind of parametized types < 1208393371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But turing-complete < 1208393371 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: teh typal systemization < 1208393378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Basically it's a kind-of macro language < 1208393381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but turing complete < 1208393384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and operates on types < 1208393385 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :This doesn't look good for me. < 1208393388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so instead of being a macro language over text < 1208393390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its a macro language over types < 1208393392 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :well yeah parametrisized typides < 1208393392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, Yeah, no kidding < 1208393395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You won't need it < 1208393402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Apart from STL < 1208393405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, std::vector < 1208393411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's an instance of std::vector with the parameter 'int' < 1208393415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it means a vector of ints. < 1208393419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :std::vector is a template. < 1208393428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's all you'll need o know < 1208393430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*to < 1208393430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1208393432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i suggest C < 1208393439 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It would be nice if they gave us an actual class on C. < 1208393490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, It's not easy to teach! < 1208393494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I suggest buying the K&R book < 1208393497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The C Programming Language < 1208393505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :After all, they made the language. They're pretty good with it. < 1208393520 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's not necessarily true < 1208393526 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not any good at languages i made up < 1208393527 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1208393538 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :i usually pwn at my own languages :) < 1208393542 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I have it somewhere. < 1208393542 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :south park time! < 1208393543 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1208393556 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, bye bye :) < 1208393558 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But from what I've read so far, it's what I already know. < 1208393558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, hehe < 1208393563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, Hardly! < 1208393565 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1208393566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It teaches almost all of C. < 1208393568 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Wait, we're already tuesday? < 1208393571 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Holy dick. < 1208393581 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I mean. < 1208393583 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Wait < 1208393588 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What's the word. < 1208393593 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Damn English. < 1208393602 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Thursday. < 1208393625 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'd better get on the leeching chan, to DOWNLOAD IT ILLEGALY. < 1208393631 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I mean, download it legally. < 1208393681 0 :GregorR-L!n=gregor@host-246-146.pubnet.pdx.edu JOIN :#esoteric < 1208393703 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :According to Mr Twig, the episode's not for two hours. < 1208393712 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What are you really doing, OkloLIAR < 1208393755 0 :timotiis_!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1208393758 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wtf is Esco? < 1208393764 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, an injoke < 1208393778 0 :timotiis_!unknown@unknown.invalid QUIT :Client Quit < 1208393792 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it looks vaguely serious < 1208393850 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wow, it's written in C++ too < 1208393893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament, its vaguely serious but crap < 1208393900 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Esco is an esoteric interpreter for a variety of languages! < 1208393905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, win < 1208393908 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Such as Brainfuck, Ook, Spoon... < 1208393919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HAHA < 1208393976 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :seems pretty misguided < 1208394009 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm all for it if he writes the interpreter for my Andrei Machine 9000. < 1208394053 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Now I have to remember how file handling works on C. < 1208395087 0 :ehird!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1208395421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION mutters about that being fucking insane. < 1208395456 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :wot? < 1208397731 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1208398378 0 :GregorR-L!unknown@unknown.invalid QUIT :"Leaving" < 1208399106 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: i have all sp episodes on my hd < 1208399162 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Same here. < 1208399184 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Plus, they're all available on mr twig and the south park official website :o < 1208399197 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208399204 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :didn't know < 1208399222 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :They recently put all of them on south park studios < 1208399223 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :i've seen them, all like 5 times though, so i think i'm okay < 1208399235 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :good use of comma there < 1208399238 0 :oklohot!unknown@unknown.invalid PRIVMSG #esoteric :nice work < 1208399856 0 :oklohot!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1208399874 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1208405645 0 :Slereah_!n=Vampire_@ANantes-252-1-94-122.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1208406742 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1208407138 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :G'night all < 1208407333 0 :Sgeo!unknown@unknown.invalid QUIT :"G'night" < 1208412997 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1208413049 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1208413232 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :irc'ing from telnet :P < 1208413352 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'd better join another chan.. dunno if anyone seme or not < 1208413403 0 :calamari_!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1208413415 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :test < 1208413422 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :ahh ok it is working :) < 1208414163 0 :calamari!unknown@unknown.invalid QUIT : < 1208414404 0 :calamari_!unknown@unknown.invalid NICK :calamari < 1208416374 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1208418798 0 :oklohot!n=nnscript@dsl-tkubras1-ff26c300-222.dhcp.inet.fi JOIN :#esoteric < 1208419141 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1208419199 0 :clog!unknown@unknown.invalid QUIT :ended < 1208419200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1208419590 0 :oklopol!n=nnscript@dyn-sparknet-utu.utu.fi JOIN :#esoteric < 1208419610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<: <<:> <<:> <:>>> <<> <> <>> > < 1208419612 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :--- < 1208419614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<: <<:> <<:> <:>>> ><<> <> <>>< > < 1208419616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :==> <: <<:> <<:> <:>>> <> <> <> > < 1208419618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :--- < 1208419623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<: <<:> <<:> <:>>> >><<> <> <>><< > < 1208419624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :==> <: <<:> <<:> <:>>> ><> <> <>< > < 1208419626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :==> <<: <<:> <<:> <:>>> <> > <: <<:> <<:> <:>>> <> > <: <<:> <<:> <:>>> <> >> < 1208419628 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :using negative lists to do *map* < 1208419630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in nopol < 1208419634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actual syntax < 1208419659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if someone can deduce the semantics of negative lists from that, i shall bow deep enough to blow myself < 1208419751 0 :Iskr!n=i@host95-83-dynamic.54-82-r.retail.telecomitalia.it JOIN :#esoteric < 1208419768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nopol is based on explicit tree rewriting, computationally < 1208419788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically, that you have to provide the rewrites as you go < 1208419800 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as normal lists of two elements, < 1208419816 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<:[.:]* denotes a variable> < 1208419821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hi Iskr, you new? < 1208419827 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :quite < 1208419920 0 :oklohot!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1208419999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Iskr: some nopol for you too http://www.vjn.fi/pb/p334263666.txt < 1208420032 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :ehm thanks < 1208420038 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :very ermeti < 1208420039 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :c < 1208420040 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :=) < 1208420049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :look at the list <<> <> <>>, and pay attention to the following two expressions < 1208420062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it is first subtracted a layer of depth < 1208420071 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :rendering it in the upper scope < 1208420112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in the last part, you can see it uppified twice, and it jumps toplevel, spreading its elements one by one in the place where it used to be < 1208420134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so we can implement a generic map just like that < 1208420384 0 :GreaseMonkey!n=saru@122-57-226-168.jetstream.xtra.co.nz JOIN :#esoteric < 1208420504 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :mh ok < 1208420518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208420539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i smell overwhelming interest < 1208420575 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GreaseMonkey: you interested in negative lists? < 1208420596 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :'lo < 1208420602 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :erm... what would that be? < 1208420635 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i must say i'm curious about esoteric languages but i'm quite not able to understand them < 1208420639 0 :Iskr!unknown@unknown.invalid PRIVMSG #esoteric :it's not your fault =) < 1208420717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :negating the list containing a, b and c inside "<<> < > <>>": <<> >>< ><< <>> ===> <<<> <>> <<> <>> <<> <>>> < 1208420729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we kinda flip it inside out < 1208420779 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>...< means unnest the list ..., <...> means nest it one level < 1208420824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so if a contains < >, < >a< > would be < > < 1208420845 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it's lifted into the upper scope < 1208420852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now double-lift < 1208420875 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if a contains < >, < >>a<< > would be << > < > < >> < 1208420940 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>>a<<< would lift up from an even deeper list, but it cannot be done here, because we don't see the surrounding program < 1208420948 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nopol has a fun way of escaping contexts < 1208420968 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where's that ehird when you need him < 1208423841 0 :oklohot!n=nnscript@dyn-sparknet-utu.utu.fi JOIN :#esoteric < 1208423904 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1208424386 0 :oklohot!unknown@unknown.invalid NICK :oklopol < 1208426569 0 :jix!n=jix@dyndsl-080-228-190-134.ewe-ip-backbone.de JOIN :#esoteric < 1208428075 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Unisex." < 1208429949 0 :oklopol!unknown@unknown.invalid QUIT :"( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )" < 1208433946 0 :oklopol!i=oko@dsl-tkubrasgw1-fe3cfa00-63.dhcp.inet.fi JOIN :#esoteric < 1208438913 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1208441255 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1208441613 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bye all. < 1208441627 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'll be back barring any tragic accidents. < 1208441694 0 :Sgeo!unknown@unknown.invalid QUIT :"Bye all." < 1208443464 0 :ehird!n=ehird@91.105.122.127 JOIN :#esoteric < 1208443476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i haev totally pwned j00 < 1208443481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i used the dis module to get oklotalk bytecode < 1208443482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MWAHAHAHA < 1208443484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er. < 1208443484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1208443586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, btw i cant 'import parsing' < 1208443588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AttributeError: 'module' object has no attribute 'set_functions' < 1208443598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or even run it with -i < 1208443612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seems that objects.pyc is the problem < 1208443846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okloping < 1208444077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wow. I just generated the hugerest error ever from a c++ compiler. < 1208444808 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1208445234 0 :jix!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1208445329 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: good for ya < 1208445460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well, fix it < 1208445463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to use the modules < 1208445474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1208445500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well in case for some reason you cannot get the bytecode, why should i care? :o < 1208445524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, because i want to use the modules < 1208445527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but 'objects' won't import < 1208445530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it gives an error < 1208445535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so everything importing objects fails too < 1208445539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the cli works though < 1208445554 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well how the fuck is that possible < 1208445629 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you use Runner? < 1208445635 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's all you need to be able to use < 1208445662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, oklopol < 1208445664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i want to use the parser < 1208445669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1208445673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : i can get the runne < 1208445677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then grab its copy of parsing < 1208445679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's weird < 1208445693 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1208445697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1208445705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i have no idea how that could be possible < 1208445748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :import oklotalk ; p = oklotalk.parsing < 1208445748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208445760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whut's lbd, btw < 1208445764 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that works, but import parsing doesn't? < 1208445793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, bingo < 1208445797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wait no < 1208445799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :import parsing WORKS now < 1208445800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WTF < 1208445802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1208445803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208445807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, 'import parsing; ...' doesn't work < 1208445811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'import oklotalk; import parsing; ...' DOES < 1208445823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, do you use 'set_functions' anywhere in yoru code? < 1208445842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208445850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what does import parsing say? < 1208445858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : File "C:\Users\oklopol\Documents\pythonal\oklotalk\objects.py", line 548, in < 1208445858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AttributeError: 'module' object has no attribute 'set_functions' < 1208445888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208445889 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208445934 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have functions.set_functions(dyn_vrs) < 1208445940 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in objects < 1208445949 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is quite fun < 1208445955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>>> import functions < 1208445955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Traceback (most recent call last): < 1208445955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : File "", line 1, in < 1208445955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : File "C:\Users\oklopol\Documents\pythonal\oklotalk\functions.py", line 4, in < 1208445955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : File "C:\Users\oklopol\Documents\pythonal\oklotalk\objects.py", line 548, in < 1208445956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AttributeError: 'module' object has no attribute 'set_functions' < 1208445958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :have no idea why this happens < 1208445960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, oh lawd, is 'dat sum circular dependency? < 1208445966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :functions uses objects < 1208445969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but objects uses functions < 1208446033 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a lot of circular dependsncy < 1208446035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*dependency < 1208446045 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in oklotalk.py, i do a reload an all modules < 1208446047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is that is? < 1208446054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, probably < 1208446063 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :have you submitted it yet? gimme the source and let me fix it :P < 1208446068 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh no < 1208446087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i could fix it myself if i care even the teensiest bit < 1208446088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208446093 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*cared < 1208446131 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there is no reason why i'd want people importing parsing < 1208446139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yeah -- I want to write an oklotalk compiler < 1208446142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe even oklotalk->c < 1208446148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :surely that would be a good use < 1208446166 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sounds like fun < 1208446175 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, well, the parsing is trivial :o < 1208446183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yeah but mine is broken < 1208446193 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1208446209 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i say have fun fixing, is that okay? :P < 1208446217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, no :P < 1208446219 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1208446224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, oh and should i add compile-time stuff < 1208446225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1208446238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (+ 2 2)) < 1208446240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is evaluated at compile time < 1208446244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then '4' is put in its place < 1208446258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :go for it < 1208446300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, untuplify=?? < 1208446304 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208446321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what about untuplification? :) < 1208446337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whut does it do < 1208446345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD < 1208446350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good enough answer? < 1208446355 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1208446359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you're an unhelpful bastard < 1208446362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208446370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, well, i'll retry < 1208446374 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1208446384 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for some reason, i have no idea why, i first parse into tuples < 1208446391 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :something like sexps, but python lists < 1208446395 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then < 1208446413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have a separate untuplification phase to put stuff in Apl's and Lst's etc < 1208446482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my ways to implement stuff are usually completely random, it was only after i'd made it i realized there is no use for the intermediary step < 1208446495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's more verbose, more error prone and... well fucking ugly < 1208446616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok but to write a compiler i want the tuple form < 1208446618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't i < 1208446623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208446625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1208446626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208446649 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty simple too < 1208446658 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw. what was wrong with your parsing? < 1208446688 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or was it simply too awesome and imploded < 1208446689 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1208446705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or was it just the comments, i mean < 1208446724 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because you can always just have a separate comment-removal stage < 1208446939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, it was a few things < 1208446951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but my oko->c is gonna be so awesome < 1208446961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, real oklotalk will be so awesome won't it < 1208446969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean it'll come with an interpreter and a compiler and all sorts of things < 1208446971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right? <__< < 1208447007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, btw, is there actually a complete okoprogram written? < 1208447031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a program in oklotalk? < 1208447046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the only "program" is the one quicksorting rational < 1208447046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :s < 1208447095 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's a few (trivial) additions i need in order to actually make the imperative part a bit more rational (also a few less trivial ones) < 1208447112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but after that i'll prolly make something to test it < 1208447199 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right! < 1208447203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i almost forgot < 1208447212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i mean one that does outn and stuff < 1208447213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: did you read the logs? i invented negative lists! < 1208447229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i was there < 1208447231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but answer me :P < 1208447237 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(i had only actually invented uplevel lists, or "zero depth lists" before) < 1208447242 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you were there? < 1208447243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208447270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208447270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like, interaction with the user etc? < 1208447271 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't have anything for that < 1208447287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've usually had all my interaction in the program source :) < 1208447304 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mainly, ofc, because i usually write programs for myself exclusively :D < 1208447310 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1208447335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i think i'll just try (outn "hello world") < 1208447340 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1208447346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, oklotalk cli might be fun < 1208447357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, in oklotalk naturally < 1208447370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: did you understand how i did map with a negative list? < 1208447391 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's really the only useful thing i can think of yet :D < 1208447400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it's kinda neat, anyway < 1208447425 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No I wasn't there for all of it oklopol < 1208447437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208447439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, oklotalk doesnt have eval does it? < 1208447444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1208447448 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but trivial addition ofc < 1208447464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps an interface to both run() and Runner() < 1208447486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, right, don't add it just yet < 1208447491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to be able to generate small executablse < 1208447492 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208447493 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, why? < 1208447496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :feel free to write oko-in-oko though < 1208447499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1208447501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'cause if you do that < 1208447504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you have oko-in-c < 1208447505 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208447509 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that would be fucking awesome < 1208447512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, and oko-in-oko is much nicer than oko-in-c amirite ;) < 1208447524 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1208447554 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you calling oklotalk oko? < 1208447579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wonder if i should change the official suffix to that < 1208447584 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've been using ot < 1208447671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, .ot is a good extension < 1208447677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but oko is a good name for referring to oklotalk < 1208447681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1208447731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so, my thing is really tupletree->C < 1208447736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or should it be untuplified->c < 1208447784 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno, dunno... < 1208447810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how compilatious a compilation are you going to make? < 1208447821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the semantics aren't exactly compilation-friendly < 1208447840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, pretty much totally < 1208447844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, and how aren't they? < 1208447849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a pretty regular message-sending language < 1208447939 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess < 1208447955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, but yeah which form < 1208447980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you cannot access the code or the ast at runtime atm, so i guess it's not that bad yet < 1208447988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which form? < 1208447989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, also, is 'outn' special cased or do strings respond to outn < 1208447995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, tuplified or untuplified < 1208448007 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :outn is a function on strings < 1208448014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1208448018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, there are no functions < 1208448019 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just a function < 1208448023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208448028 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well it's not an atom < 1208448030 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a thing < 1208448033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, outn IS an atom < 1208448035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just tested < 1208448047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208448049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in fact < 1208448052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it is not. < 1208448053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so shoudln't (outn "abc") send $outn to "abc"? < 1208448061 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it does not < 1208448064 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it is not an atom < 1208448067 0 :jix!n=jix@dyndsl-080-228-190-134.ewe-ip-backbone.de JOIN :#esoteric < 1208448095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, :| < 1208448100 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :currently, there is no $str for standard string representations, but primitive funcs do it. < 1208448114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208448115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, why not make outn a message? < 1208448121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then things can define how they should be printed < 1208448124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and $str is just a stringio-thingy < 1208448125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :having that would basically just mean to add a line of code to outn :D < 1208448148 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... i prefer outn to ask for $str < 1208448161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ah, but that fails on infinite lists < 1208448164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and similar < 1208448167 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and is also slower < 1208448225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fails on infinite lists in oklotalk-- < 1208448227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not oklotalk < 1208448250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : where's that ehird when you need him < 1208448253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we have a special bond <3 < 1208448255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1208448257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe :P < 1208448263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BUT YEAH < 1208448266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :untuplified or ... tuplified < 1208448286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i figured you might be willing to take the minute to see how negative lists worked.รถ < 1208448298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah i don't get them < 1208448300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thinking about it tho < 1208448315 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i explain it a few times, try reading < 1208448322 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's basically < 1208448346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208448351 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that trivial to explain.. < 1208448395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, also, name my intermediate compilation stage < 1208448406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the point is, that a negative list L is converted to a list of its context (surrounding lists) multiplied into lists that are like the original ones, but where L was, one element of it is < 1208448407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm thinking OKINTERMEDIATE < 1208448407 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208448434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :especially with that capitalization, i'd say that's perfect < 1208448439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208448519 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :< ((< >)) > ==> < ( ) > ==> << > < > < >> < 1208448522 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, my ide ais that: < 1208448526 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where () is the negative list syntax < 1208448531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{(-> a a)} < 1208448534 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1208448534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in OKINTERMEDIATE < 1208448536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it something like < 1208448538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*is < 1208448542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's actually >...<, but that's just to make it more confusing, ofc :) < 1208448549 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208448570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[('thing',('match',('atom',0),('atom',0)), ('name','a')] < 1208448571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1208448585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't know, it just tries to make it something more malleable to C < 1208448614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :'atom',0 ? < 1208448618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the zeroth atom? < 1208448621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yeah < 1208448624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the rest of the list is the atoms < 1208448628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, because, there is only one $a < 1208448633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you'd do loads of allocatering < 1208448641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, there's just one < 1208448672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okotypes: < 1208448682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :atom, thing, int, string < 1208448685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :missed any? < 1208448707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well if you wanna separate built-in types, list..? < 1208448714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1208448719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, atom,thing,int,string,list < 1208448731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :your rtf says thats right < 1208448744 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1208448754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so i need 3 bits on a pointer < 1208448754 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Read That, Fucker! < 1208448792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :000=integer, 001=string, 010=list, 011=atom, 100=thing < 1208448825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, the base data type is 'OKO' < 1208448826 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1208448859 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :0x0C0 < 1208448878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha, oklopol < 1208448902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I love tags in pointers < 1208448903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define TAG_OF(x) ((x)&4) < 1208448915 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define VAL_OF(x) ((x)>>3) < 1208448926 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also my tagging macro is ENTAG < 1208448946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define ENTAG(x,t) (((x)<<3)+(t)) < 1208448961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why 4 < 1208448988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, 4 types < 1208448991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :000...100 < 1208448994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so 4 = 111 < 1208448996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1208448997 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so not 7? < 1208448999 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :4 = 00000000000000111 < 1208449006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, 4 will extract the tag < 1208449010 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :4 = 0b100, actually. < 1208449016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yeah yeah < 1208449021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, the tag is stored in the lowest 3 bits of the poitner < 1208449027 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so perhaps 7? < 1208449032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why 7? < 1208449035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208449036 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1208449044 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Because 7 = 0b111? < 1208449047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno, just don't see.. why 4 < 1208449057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why not 111 so you get them three lowest thingularities < 1208449058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, int,string,list,atom,thing < 1208449063 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0=int < 1208449064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1=string < 1208449064 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208449065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2=list < 1208449067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3=atom < 1208449068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :4=thing < 1208449079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :TAG_OF returns either 4 or 0 < 1208449084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, no it doesn't < 1208449084 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you have two kinds of tags. < 1208449087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208449088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you are wrong < 1208449090 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :x&4 extracts one bit: the third-lowest. It's not physically possible for x&4 to have more than two values. < 1208449092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, & is bitwise < 1208449097 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then the universe has changed since yesterday < 1208449101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Err, you're right < 1208449101 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure < 1208449102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :&7 < 1208449104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D sorry < 1208449108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but oklopol is still wrong < 1208449109 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so perhaps 7? < 1208449117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208449120 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208449122 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good < 1208449126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :was jsut wondering about the 4 < 1208449128 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*just < 1208449138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :((("foo")<<3)+(3)) /* this is how an atom "foo" is initialized in the header - expanded from ENTAG("foo",tag_atm) :DDDDD */ < 1208449144 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how was i wrong? < 1208449162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, acknowledge that <<3 on a literal string is awesome < 1208449183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i agree < 1208449189 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but how was i wrong? < 1208449209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1208449221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :template.c:17: error: invalid operands to binary << < 1208449223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stupid fucker < 1208449225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :need a cast < 1208449227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so i was right, but you want to feed my paranoia? < 1208449254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#define ENTAG(x,t) ((OKO)((((int)x)<<3)+(t))) < 1208449256 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh.. you're also shifting out the topmost three bits of the pointer; if they happen to be nonzero, VAL_OF will not recover it. < 1208449259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDd < 1208449271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Yes, there's nothing you can do about that with type tags in the pointer. < 1208449297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :apparently, < 1208449298 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Typically you just align all pointers to a multiple of 8 or so, and use x&~7 to extract the value. < 1208449298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OKO atm_0 = ((OKO)((((int)"foo")<<3)+(tag_atm))); < 1208449301 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not shifts. < 1208449303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is not valid because it's not constant :(( < 1208449309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Haven't seen that done. < 1208449316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Example for ENTAG,TAG_OF,VAL_OF? < 1208449336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :I WAS NOT WRONG < 1208449339 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ENTAG being x|tag, TAG_OF being x&7 and VAL_OF being x&~7. < 1208449348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION starts tearing stuff apart and turns green < 1208449351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Do I need to do anything special or will that Just Work? < 1208449421 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, you need to have all your x's aligned so that the three lowest bits are always zero. And those were for types where the value is a pointer. < 1208449453 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want to stick an "immediate" (n-3)-bit value in there, you'll of course want to use shifts. < 1208449504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, WELL, I do believe I need to think of a better stratergy. < 1208449521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh you low-level geeks < 1208449530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, http://www.accesscom.com/~darius/hacks/ichbins.tar.gz This compiler is what I stole the tagging from! < 1208449537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just open python < 1208449540 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and forget about it < 1208449562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static Tag get_tag (obj x) { return 3 & x; } < 1208449563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :static obj entag (Tag tag, unsigned value) < 1208449563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : { return tag | (value << 2); } < 1208449570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and untag is an assert then x>>2 < 1208449715 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, there it works, since the "pointers" are indices to that 512*1024-sized 'heap' array, so they have lots of zero high bits. < 1208449720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :binary stuff is so sexy < 1208449742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Would you consider that a practical implementation strategy? < 1208449745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't seem like it to me. < 1208449748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need to leave now, have fun < 1208449751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But I do need a heap if I want to gc.. < 1208449753 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1208449753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, bye :) < 1208449757 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bies! < 1208449772 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Any reccomendations? < 1208449782 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah wait a second! < 1208449991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Hmm, no. need suggestions < 1208450277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, OK < 1208450279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have an idea < 1208450285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We only use the very lowest bit < 1208450288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1 - immediate < 1208450289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0 - pointer < 1208450296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no wait < 1208450297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1208450301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :every odd number is immediate < 1208450304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :every even one pointer < 1208450310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If pointer, the rest of the thing is a pointer to the tag. < 1208450314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then +1 is the data. < 1208450318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, the tag is the tag. < 1208450351 0 :Sgeo[College]!i=897d6877@gateway/web/ajax/mibbit.com/x-2b838ac3ec925aea JOIN :#esoteric < 1208450449 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Hi all < 1208450450 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes; from what I've seen, it's quite "traditional" to do tagged pointers so that one of the tag values is reserved to pointers to structures that contain first the type, then the value. < 1208450464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Yeah. I can't figure out a good way to do all this, though. < 1208450481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, tagging a literal "string" < 1208450598 0 :oklohot!n=nnscript@dsl-tkubrasgw1-fe18fa00-131.dhcp.inet.fi JOIN :#esoteric < 1208450624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OKO test = &(struct STRING){TAG_STR, 0, 0, "hello"}; < 1208450627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :getting there < 1208450632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, hello < 1208450672 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, I've seen it done with a two-member struct, where the first member is the type label, and the second one is an union of values of all possible types. < 1208450709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Yes, but that sucks for immediates. < 1208450755 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you're not C99-averse, given enum type { type_string, type_blob, type_foo }; struct obj { enum type t; union { char *v_string; blob *v_blob; foo *v_foo; } v; } you can have literals like (struct obj){ .t = type_string, .v.v_string = "foo" } < 1208450793 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe it has to be { .t = type_string, .v = { .v_string = "foo" }}. Not quite sure, haven't used the syntax much. < 1208450852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I'm pretty C99-averse. < 1208450853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :However < 1208450856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :union BASE_CAST {OKO o; struct BASE b;}; < 1208450866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :int main() {return ((((union BASE_CAST)(test)).b).t);} < 1208450868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that actually works < 1208450869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208450872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I love union casts < 1208450882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Err wait < 1208450883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't work < 1208450885 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Dmanit. < 1208450898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OH < 1208450898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1208451004 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, structure/union literals are pretty C99-only. Of course it's a GCC extension too. < 1208451013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Can't find a simple solution to tag both structures, strings and integers. < 1208451014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sigh. < 1208451177 0 :oklopol!unknown@unknown.invalid QUIT :Connection timed out < 1208451248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Beh < 1208451524 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure if it's really much of a problem not being able to have literals of other types than the ints. So one could go with the simple way of doing (v<<1)|1 to construct an integer, x&1 to test if it's an integer or a pointer-to-a-labeled-struct, x>>1 to extract an integer and a simple cast to get a usable pointer for the other types. < 1208451562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Well, atoms are constant things. < 1208451571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There's only a string because it's nice to be able to print 'em. < 1208451748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, :| < 1208452068 0 :oklohot!unknown@unknown.invalid QUIT :No route to host < 1208452996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I'm concentrating on more interesting things < 1208453000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like oklotalk->OKINTERMEDIATE < 1208453003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is the step before ->C < 1208453010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it basically removes all nested structure from the code < 1208453017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dividing it into code, atoms and functions < 1208453021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it is essentially stack based < 1208453035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its the most work of the compiler < 1208453291 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Be back soon all < 1208453295 0 :Sgeo[College]!unknown@unknown.invalid QUIT :"http://www.mibbit.com ajax IRC Client" < 1208453539 0 :Sgeo[College]!i=897d6896@gateway/web/ajax/mibbit.com/x-bd6d996518b47588 JOIN :#esoteric < 1208453545 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :back < 1208453729 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric ::)test < 1208453732 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1208453736 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Hiok < 1208453841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you're back! < 1208453844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$hello is equiv. to "hello" < 1208453848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is that intentional < 1208453857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello is ('var','hello') < 1208453862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$hello and "hello" are ('str','hello') < 1208453971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean they are equivalent < 1208453975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, same parse tree < 1208453981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :$hello is ('atm',"hello") < 1208453991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no its not < 1208453994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> parsing.parse("$asd") < 1208453994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :('lbd', [('atm', 'asd')]) < 1208453994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> parsing.parse("\"asd\"") < 1208453994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :('lbd', [('str', 'asd')]) < 1208454000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :o wait < 1208454002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ur rite. < 1208454004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1208454007 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208454007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okay, are strings immutable? < 1208454013 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1208454018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, will they always be < 1208454024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208454025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1208454036 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208454037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okay < 1208454040 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they will be in oklotalk-- < 1208454044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i can't cache them anyway < 1208454045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, but < 1208454046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... it's not that simple in oklotalk < 1208454053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you can't create atoms at runtime right? < 1208454057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1208454061 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you cannot < 1208454061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(but obviously you can strings) < 1208454065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, good. i hope it stays like that < 1208454066 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1208454072 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it will stay like that < 1208454075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hope too < 1208454076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'cause i statically allocate all atoms right now < 1208454080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okintermediate is going quite well < 1208454082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, yeah < 1208454164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, < 1208454164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :({(outn "hello") (-> $hello 2) (-> x x)} $hello) < 1208454169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it can compile that save for the (-> ...) < 1208454191 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to what? < 1208454278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, to OKINTERMEDIATE < 1208454331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hmm, dunno how to handle matches < 1208454331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because < 1208454334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(-> X ...) < 1208454335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the X there < 1208454338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :requires AST at runtime < 1208454343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, because it's not oklotalk, the X, it's a DSL < 1208454345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1208454353 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1208454397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dsl? < 1208454403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, domain specific language < 1208454405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a mini-language < 1208454407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :embedded in oklotalk < 1208454409 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1208454410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for pattern matching < 1208454410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well kinda. < 1208454411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208454423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, (: (: a b) (: c d)) < 1208454424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1208454426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can compile that to < 1208454438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a b : c d : : < 1208454440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(in stack form) < 1208454449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where all the calls are.. < 1208454450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208454452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this needs thinking < 1208454462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, right now < 1208454463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in < 1208454464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b c) < 1208454465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i compile to < 1208454468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :b c a < 1208454469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208454472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :b c a CALL < 1208454480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, but i should just do 'a b c CALL' shouldn't i < 1208454485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was just thinking, since a is what I dispatch on.. < 1208454485 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :prolly < 1208454517 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :currently, the dispatching rules are very stupid, and i could just do (func arg arg) < 1208454539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is why i'm not very interested in another oklotalk-- implementation :P < 1208454547 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i guess that one can be extended just as well. < 1208454579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, why aren't you very interested? < 1208454580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1208454582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i made a cons cell < 1208454583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but what about < 1208454590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'ehird liked it so much he made a compiler to C' < 1208454590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208454594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208454601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, also, you have to admit that oklotalk-- IS okolicious < 1208454606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208454617 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's nice, but i want the oklotakl dispatch rules... < 1208454620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*oklotalk < 1208454648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well, we can dothat < 1208454652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ONCE MY COMPILER IS DONE < 1208454652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i'm just too lazy to implement myself (prolly like half an hour of coding), and too stubborn to tell you what they are before i've made them < 1208454653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DDD < 1208454655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208454662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey, MY compiler will be open source < 1208454662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;)) < 1208454678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, pattern matches only appear in -> right < 1208454719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hmm wait, 2-argument calls to listification, but you don't know which arguments to list until you find out which one 'wants' to do it, right? < 1208454852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208454870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, soo < 1208454871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in (a b) < 1208454873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i compile to < 1208454876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :b a CALL1 < 1208454879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in (a b c) < 1208454880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i compile to < 1208454890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :b c a CALL2 < 1208454895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, does that look right to you? < 1208454904 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1208454908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i do < 1208454917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's fine < 1208454918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, because the first thing you try to dispatch on is the first arg right? < 1208454930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm wait, the first thing you try in (a b c) is tell 'a' to 'b' < 1208454934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err no < 1208454936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b c): < 1208454937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah you can do rpn conversion with oklotalk-- < 1208454939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tell 'a' to [b c] < 1208454941 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in oklotalk, it's impossible < 1208454943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tell 'b' to [a c] < 1208454946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tell 'c' to [a b] < 1208454949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, is that right? < 1208454958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the language is basically designed so that no one can compile it :) < 1208454960 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208454972 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1208454979 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you don't do that last one at all, yet < 1208454986 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there was a reason... don't remember what < 1208455007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so < 1208455008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b c) < 1208455010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tell 'a' to [b c] < 1208455013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tell 'b' to [a c] < 1208455015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :return $f < 1208455017 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but the dispatch rules are really retarded. < 1208455021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208455022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, is that the right rules? < 1208455023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208455024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1208455026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1208455029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1208455035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in case both are atoms < 1208455036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, return $f is just return the last telling < 1208455037 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :return a < 1208455038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which < 1208455039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1208455039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208455041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so < 1208455047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what is both < 1208455048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a b and c < 1208455050 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or a and b < 1208455051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or .. < 1208455053 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c is not checked < 1208455056 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just a and b < 1208455075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okay < 1208455076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SO < 1208455080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1208455087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so (a b c) is just (a [b c]) < 1208455088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although what you described there will be done once the rules are made a bit cleverer < 1208455088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait no < 1208455089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's wrong < 1208455093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208455094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right < 1208455096 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :think i've got it < 1208455098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, verify these two: < 1208455118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b) => if 'a' and 'b' are atoms, return a. Otherwise, tell 'a' to 'b'. If that fails, return $f. < 1208455139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b c) => if 'a' and 'b' are atoms, return a. Oherwise, tell 'a' to [b c]. If that fails, tell 'b' to [a c]. If that fails, return $f. < 1208455147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, What about ({2} $foo) < 1208455151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of $f that should be 2 right? < 1208455160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So... the $f behaviour is just (->) returning $f on fail. < 1208455167 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :almost, except you try both (a b) and (b a) < 1208455178 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as in lisp application < 1208455198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1208455199 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1208455208 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the notation was lisp, call a with b, then b with a < 1208455211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okay < 1208455221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, am i right abut the {2} thing < 1208455225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208455228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it should be 2 < 1208455242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so no expressions, as in {}, is $f < 1208455247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and (-> a ...), when failing, returns $f < 1208455252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no! < 1208455258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay whut < 1208455261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :last evaluated expression is returned < 1208455265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes < 1208455271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and (->a ...) returns $f on failure < 1208455272 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(->) just changed the path of evaluation < 1208455273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so if it's the last expr < 1208455277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it returns $f < 1208455289 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope! $f is just the expected return value < 1208455301 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so if ->'s fail, the function does nothing, and thus return$f < 1208455305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*returns $f < 1208455305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> $foo 2) 3} $a) < 1208455305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1208455305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::: ({(-> $foo 2) 3} $foo) < 1208455305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1208455309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you are sooo wrong < 1208455310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see? :D < 1208455321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :..? < 1208455325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where did it return $f < 1208455346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, nowhere, see? < 1208455346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1208455346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :here's what i'm saying < 1208455347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1208455352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm prolly misunderstanding you bad. < 1208455359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(-> a ...) means 'if a matches, break through evaluation and force a return of ... - if it fails, evaluate to $f' < 1208455369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{...} means 'return the value of the last expr evaluated' < 1208455382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so if your match is the last expr and fails, that results in $f being returned < 1208455391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that's why $f is the call failure < 1208455399 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :asadasdad < 1208455403 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1208455443 0 :oktabot!n=oktaboto@spark.turku.fi JOIN :#esoteric < 1208455461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i tested this in the cli < 1208455478 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: ({_ (-> [] 0)} 5) < 1208455478 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :5 < 1208455481 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :. < 1208455498 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if i understood what you mean, $f should've been returned < 1208455523 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*meant < 1208455551 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also the cli may be a bit outdated, although no crucial features have been changed (i think) < 1208455578 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i'll get on nopol now :o < 1208455640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok, (->) is confusing < 1208455645 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208455646 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1208455658 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just think of it as an uplevel expression < 1208455668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where in fact you should be thinking about it as something that redirects program flow < 1208455690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, let me rephrase, -> is hard to compile < 1208455690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1208455699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::=) < 1208455702 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that may be < 1208455762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okay, i can think of it in a kind of rewriting sense < 1208455769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, nopol parsing, god it's sick < 1208455778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps even sicker than the negative lists themselves < 1208455781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if the match succeeds, -> does act as an uplevel expression, and forces the uplevel to return its blah blah blah < 1208455782 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean... < 1208455788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it the match FAILS, -> *disappears* < 1208455792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :< ><> <>< ><> <>< > < 1208455793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. like it was never in the source code < 1208455796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right, oklopol? < 1208455798 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208455809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208455812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, it means that your example reducse to ({_} 5) < 1208455817 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1208455820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and if the match succeeded, then the 'last expr is returned' kicks in < 1208455825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, yes, nopol < 1208455828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is nopol compileable? < 1208455834 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm :\ < 1208455842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :have no idea... it's basically tree rewriting < 1208455842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1208455857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, < 1208455861 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tree rewriting can be used for lc quite easily < 1208455866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Opening test.ot... < 1208455866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Parsing code... < 1208455866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :('lbd', [[('lbd', [('var', '_'), [('var', '->'), ('lst', []), ('int', 0)]]), ('int', 5)]]) < 1208455866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Compiling to OKINTERMEDIATE... < 1208455866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :koed: [('lbd', 0)] < 1208455867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :atoms: ['_'] < 1208455869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :funcs: [[('int', 5), ('lbd', 1), ('call1',)], [('var', 0), ('lbd', 2), ('PLACEHOLDERFORMATCHINGEXPR',), ('match', None)], [('int', 0)]] < 1208455873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, that's what it does for ({_ (-> [] 0)} 5) < 1208455882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as soon as i get that placeholder fixed, should work well < 1208455883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::))0 < 1208455889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, can you see how it 'flattens' it out? < 1208455894 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :('lbd',x) refers to the xth element in funcs < 1208455895 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i was wondering if one would be able to do *continuations* with tree rewriting + negative lists :o < 1208455897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208455905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'var'/'atm' like that for the atoms list < 1208455922 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, oh < 1208455927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the reason there's an extra func < 1208455930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is that (-> a b c d) < 1208455931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :turns into < 1208455937 0 :RedDak!n=dak@host214-86-dynamic.6-87-r.retail.telecomitalia.it JOIN :#esoteric < 1208455937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{b c d} a -> < 1208455946 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1208455962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, that probably messes up bare (->) :-)))) < 1208455973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but -> anywhere but in the root of {} is invalid, right oklopol ? < 1208455974 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1208455983 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh no :) < 1208455993 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DSDSDSDDD < 1208456024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, damnit < 1208456025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :->'s expression args are evaluated as normal uplevel statements. < 1208456025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1208456026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::((( < 1208456060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not just pattern matching, it's s unification of pattern matching and imperative program flow < 1208456066 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it contains "blocks" < 1208456085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes but what's wrong with (->) being invalid anywhere but in {} < 1208456087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this will all be so much clearer when oklotalk appears in all its glory. < 1208456090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1208456094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just (->) ? < 1208456098 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or a ->-expression < 1208456126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ->-expression < 1208456149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :_ can be reset for explicit pattern matching, and it's not bad practise to do that < 1208456156 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(look at cise for elegant uses of that!) < 1208456162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hmm can you use oklotalk-- in patterns < 1208456163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1208456172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(-> (: a {(-> $foo $bar)}) ...) < 1208456177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or similar obscenities < 1208456191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, and doesn't that mean you need to be able to find out whether an expr is a pattern matcher or a regular expr?? < 1208456201 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if a pattern match on an application should fail, the application is evaluated. < 1208456226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pattern match on application == [$pb $stuff]... < 1208456242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, :(((((( that means i can't compile it easily < 1208456249 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208456251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have to compile everything in a patmatch as both a pattern and an expr < 1208456258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as i said, it's not a very compilable language < 1208456273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it's exactly the pattern matching that made me quit < 1208456313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, tbh i wasn't really trying, i more realized it might be better first to make a stupid implementation using just python < 1208456326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, got any ideas for compiling it properly? < 1208456328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :current idea: < 1208456334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PATMACH(foo) || (compiled) < 1208456336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's dumb < 1208456336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1208456419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ummum, i think i'll compile it properly in my own implementation whenever i feel like doing that :) < 1208456423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but no... i can't help you < 1208456428 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1208456442 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the prob is < 1208456473 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's decided at runtime whether an application is evaluated, and checked for equality, or whether it's used to split the obj < 1208456515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yus... < 1208456526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, also, what about < 1208456533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(: a (... some function call...)) < 1208456539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is the funcall evaluated if it isn't a pattern amtch? < 1208456542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if so, very hard < 1208456609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :normal recursive matching < 1208456620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hm explain < 1208456625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the object matched is split on :, left part matched on a, right part on that function ll < 1208456626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :call < 1208456634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the function call can be, for instance, another split < 1208456652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we are basically doing reverse function calls here < 1208456713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, crappity -- i could compile this apart from the pattern < 1208456721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well I could compile it but it'd be ugly < 1208456775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, pmatching is the hard part < 1208456791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wel < 1208456792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208456802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :was trivial done the way i did it, ofc < 1208456824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it is hard to do if you want to do it, well, compiled-like < 1208456866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok, give me something more interesting to do than compile oklotalk < 1208456893 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is it my responsibility to come up with stuff to do for ya? ;) < 1208456935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whhhell, you can compile nopol... because programs do absolutely nothing, the least we can do is make them fast!! < 1208456935 0 :lament!unknown@unknown.invalid QUIT :"Ducks!" < 1208456943 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ducks. < 1208456972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hmm, nopol.. < 1208456974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :introduce me < 1208457019 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :semantics aren't ready yet < 1208457024 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i have some stuff < 1208457031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for instance, the negative list thingie < 1208457033 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's for nopol < 1208457055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I don't get negative lists. < 1208457058 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's still some semantics unclear on cartesian products when you have multiple negative lists on the same level and suchamathing.... < 1208457059 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1208457062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Explain it in words of four letters or less. < 1208457067 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208457070 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's try < 1208457085 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you take the list that is neg < 1208457088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and call it L < 1208457106 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :negd lsts have a dpth < 1208457112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208457113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you are so cheating < 1208457113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208457116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1208457116 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1208457117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whats a depth < 1208457119 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208457120 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how does it relate to this < 1208457122 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208457128 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : < 1208457133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a is 1 deep < 1208457138 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so the list's depth is 1 < 1208457143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so .. it's a list of length 1 < 1208457143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1208457146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a is 0 deep in "a", on the other hand < 1208457158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1208457162 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it's 2 deep in <> < 1208457165 0 :RedDak!unknown@unknown.invalid QUIT :"Killed (NickServ (Comando GHOST usato da DIO))" < 1208457182 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what this means is we have kinda taken the whole it lives in, and deepened it < 1208457184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, OK continue < 1208457184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now < 1208457189 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if we have the list < 1208457200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and we put it in the middle of < 1208457206 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we get y> < 1208457217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, yes we do < 1208457220 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now, unnesting the list, or lifting it < 1208457222 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we get < 1208457225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : < 1208457230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this would be a list of depth 0 < 1208457233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes < 1208457238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it can jump out of the slot given < 1208457241 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and expand in the same list < 1208457253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now, let's see how negative depth lists behave < 1208457255 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1208457261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we start with y> < 1208457268 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lift abc up once < 1208457274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to get < 1208457297 0 :Sgeo[College]!unknown@unknown.invalid QUIT :"http://www.mibbit.com ajax IRC Client" < 1208457305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now, when we further lift it up (we would have lost context at this point, so we have to do both lifts simultaneously ofc, but this is just demonstration) < 1208457327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we get < 1208457340 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :< > < 1208457365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, weird < 1208457369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kind of like a hybrid zip < 1208457372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the idea is, the if certain elements are atop others surrounding them, they need to somehow surround those elements without jumping out of the list < 1208457383 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so i imagined the correct thing to do would be to me something like this < 1208457388 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also < 1208457398 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :turned out there's at least one thing it can do < 1208457402 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the map function < 1208457404 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quite neatly < 1208457420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok, now what about negative length lists < 1208457421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DDD < 1208457426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208457433 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i've thought about adding those too < 1208457447 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... well, i haven't have an epiphany about those :P < 1208457459 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps my next walk to the uni will tell me how they work. < 1208457466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :currently, my problem is parsing < 1208457474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i will help tlel you how they work < 1208457475 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because < 1208457477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's unhard! < 1208457483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, we first need a notation < 1208457489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'll just go with it < 1208457489 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i want >...< to be the neglist syntax :))))) < 1208457497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok, watch this: < 1208457501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and... well... you see how that becomes a problem < 1208457503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b c) is a list of length 3 < 1208457514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :() is a list of length 0 < 1208457528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{} is a list of length 0 too because there's no -0 < 1208457529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1208457532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{a} is a list of length -1 < 1208457534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{a b c} -3 < 1208457538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, with me so far? < 1208457540 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1208457545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1208457546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now < 1208457554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b c) + (d e f) = (a b c d e f) < 1208457565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{a b c} + (d e f) = () < 1208457576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{a b c} + {d e f} = {a b c d e f} < 1208457577 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1208457584 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i disagree. < 1208457588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{a b c} + (d e f g h) = (a b c) < 1208457595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, think of them as their lengths < 1208457599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-3+5=2 < 1208457616 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :explain last one < 1208457626 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1208457627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :correct < 1208457651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yeah < 1208457656 0 :lament!n=lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1208457657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-3 + 5 = 2 < 1208457659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i interpret that as < 1208457663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'we bring 2 things from the -3' < 1208457665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1208457667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that shoudl be < 1208457668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a b) < 1208457672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{a b c} + (d e f g h) = (a b) < 1208457693 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem is substraction without the possibility of failure for ordered tuples isn't all that intuitive. < 1208457699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, (d e f g h) + {a b c} = (d e) < 1208457705 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't think this is the optimal way < 1208457706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because concatenation isn't concatenative < 1208457711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's how i interpret the length arithmetic < 1208457715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok, come up with a better way < 1208457754 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps at some point < 1208457754 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1208457764 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right now i'm going to concentrate on negative depth < 1208457767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1208457782 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need two types of lists, evaluated ones, and non-evaluated onees < 1208457783 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*ones < 1208457798 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, perhaps <:...> could be negative < 1208457807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i seriously can't figure out negative-length lists < 1208457810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<>:. is the nopol charset < 1208457810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i need halp :D < 1208457827 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(my favorite characters in ascii) < 1208457842 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1208457850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: lbd,var,str,int,atm, and lists which are calls < 1208457857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, that is the oklotalk-- tag-set < 1208457858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1208457861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(in your parsetree) < 1208457865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd say so < 1208457880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lst < 1208457882 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also < 1208458002 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-- >...< = <-...>, clearer neglist syntax < 1208458003 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<> <> <> == <> <> <> < 1208458003 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :< >< >< > == < <-> <-> > < 1208458029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what whitespace semantics are < 1208458039 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they're just kinda intuitive < 1208458040 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208458049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have some idea, but i don't know exactly < 1208458166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, does oklotalk-- have runtime errors? < 1208458177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. non-syntax < 1208458180 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my implementation has some < 1208458190 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but they are implementation defects < 1208458192 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't have < 1208458202 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :before continuations that is < 1208458227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, which ones < 1208458237 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm < 1208458243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (* "asd" "asd") < 1208458244 0 :oktabot!unknown@unknown.invalid PRIVMSG #esoteric :f < 1208458250 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll check src < 1208458278 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :else: < 1208458278 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :raise "This should've been caught at parsing, IMO." < 1208458280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1208458293 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if len(ptrn.val)>0 and ptrn.val[0]==Atm("any"): < 1208458293 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if not isinstance(ptrn.val[1],Lst): < 1208458293 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :raise "$any should always have a list as the second expression." < 1208458298 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1208458312 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (-> [$any $thing]) < 1208458313 0 :oktabot!unknown@unknown.invalid QUIT :Remote closed the connection < 1208458319 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1208458321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1208458328 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't i catch anymore < 1208458332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok, since i'm using your parser, i will prepare for runtime errors < 1208458337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :won't trigger them right now though < 1208458358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ERROR ot(int p, OKO *r) {...} < 1208458358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or < 1208458365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OKO ot(int p, ERROR *e) {...} < 1208458367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, which? :P < 1208458371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :usage of both: < 1208458389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OKO r; if (ot(0, &r) != OK) { error } else { use value in r } < 1208458389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OR < 1208458392 0 :oktabot!n=oktaboto@spark.turku.fi JOIN :#esoteric < 1208458394 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: (-> [$any $thing]) < 1208458405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ERROR e; OKO r = ot(0, &e); if (e.. < 1208458405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1208458409 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i prefer the latter < 1208458426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208458431 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1208458432 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :letter < 1208458434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1208458435 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lutter < 1208458487 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol. < 1208458498 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm raising strings as exceptions, even though it's deprecated < 1208458504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i'm catching exceptions. < 1208458655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, should work now, but the ghost will never die. < 1208458815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oktabot, question < 1208458823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should i convert oklotalk functions to c functions < 1208458827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or put them in one big function < 1208458836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ot(funcid, ref-to-result) < 1208458837 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno... < 1208458839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of < 1208458842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ot_funcid(ref-to-result) < 1208458847 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1208458850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208458853 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208458856 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno :D < 1208459130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, :D < 1208459149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, wanna see it so far? < 1208459183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, http://rafb.net/p/NnBcX448.html a lot of the stuff there is just WRONG or placeholder, but still < 1208459238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :looks like fun < 1208459258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you can see the okint there < 1208459263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :give it a try on some code < 1208459270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you should see it mostly 'flatten out' < 1208459294 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :NEVER! < 1208459300 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps after going to the shop < 1208459305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need something to eat < 1208459321 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1208459331 0 :jix!n=jix@dyndsl-085-016-179-050.ewe-ip-backbone.de JOIN :#esoteric < 1208459901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, i have a fun brain < 1208459913 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thought about nopol for like an hour here < 1208459917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no idea how to do the parsing < 1208459925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then i go to the shop < 1208459930 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it's all clear :D < 1208459999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if a bracket *can* close the last opened bracket, then it will, if it is not separated by whitespace from the last token < 1208460004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :otherwise it will open < 1208460026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is like 10 lines of code with : and . < 1208460029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1208460043 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i've deserved my south park time < 1208460119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hmm, < 1208460124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do i need to have a var of the last evaluated expr? < 1208460124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think yes < 1208460138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for e.g. matching < 1208460140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whuddyamean? < 1208460191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, like < 1208460193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a b c < 1208460195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at 'a' < 1208460197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :last = $f < 1208460197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at 'b' < 1208460198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :last = a < 1208460200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at 'c' < 1208460201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :last = b < 1208460215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so like matches, at the end of their compiled stuff, do 'return last;' < 1208460247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh wait cool < 1208460249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its stack based < 1208460251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so i don't haev to < 1208460313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, http://rafb.net/p/VLqSCG93.html < 1208460316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :prototype of compiler output < 1208460321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i think my matching sematnics are ok < 1208460328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ignore the fact that i don't push the match-expr there < 1208460373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, obviously MATCHES pops the matching expr < 1208460377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so if it fails, it's like it wasn't there < 1208460406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :looks about right < 1208460432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, need to handle no-expr = $f though < 1208460439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, anyway are you interested in this? if not i might stop < 1208460440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1208460454 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure i am < 1208460462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you said you weren't that interested in another ot-- < 1208460467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1208460477 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno :D < 1208460489 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :different kind of not interested x < 1208460490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1208460531 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna make a compiler later anyway, never hurts to have competition < 1208460536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, okay < 1208460545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, show me my cons/nil plz? < 1208460547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :want a bigger thing to test on < 1208460557 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also turned out my nopol parsing semantics WERE NOT PERFECT :|| < 1208460562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay. < 1208460568 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait-o < 1208460596 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p244334413.txt < 1208460599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :extract < 1208460857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i wish you could force strings to prettyprint with "doublequotes" < 1208460858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in python < 1208461166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, bah, this is boring right now < 1208461337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, negative length lists < 1208461401 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mmhmm? < 1208461459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, explain them < 1208461459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1208461471 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know anything about negative length :D < 1208461488 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all i can think of is negative *sets* < 1208461522 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208461539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually multisets where objects can be stored negative times. < 1208461550 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically, a mapping from objects to their amounts < 1208461559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, negative length! think about it :P < 1208461565 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1208461720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, :( < 1208461851 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, i'll be back in like. an hour < 1208461856 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okily < 1208462345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<>< <> <> <> ><> <>< ><> === <<-> <> <> <> <- <> <>> <->> < 1208462363 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the parsing system simply didn't do what i wanted < 1208462368 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need to rethink :< < 1208462371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :asasdasda < 1208462495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1208462509 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :another source of ambiguity, that was the reason < 1208462516 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, wasn't really a surprise < 1208464736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :< >< <> <> <> ><> < >< ><> < 1208464736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(+ (-) (+) (+) (+) (-)) (+ (-) (-)) < 1208464761 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :works, but making the syntax less ambiguous also made it less intuitive < 1208464769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, i think that's a good thing. < 1208464777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :less ambiguous? i mean unambiguous < 1208465398 0 :RedDak!n=dak@host214-86-dynamic.6-87-r.retail.telecomitalia.it JOIN :#esoteric < 1208466295 0 :Iskr!unknown@unknown.invalid QUIT :"Leaving" < 1208466645 0 :Tritonio_!n=Tritonio@150.140.227.158 JOIN :#esoteric < 1208468950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :back oklopol < 1208468975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, make it depend on whitespace < 1208469097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1208469098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :< >< <> <> <> ><> < >< ><> < 1208469103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is < 1208469140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(+ (-) (+) (+) (+) (-)) (+ (-) .. something) < 1208469149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1208469151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, that is intuitive. < 1208469219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well < 1208469222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should be < 1208469233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(+ (-) (+) (+) (+) (-)) (+ (-)) (+) < 1208469235 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so almost < 1208469504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, :D < 1208469656 0 :oklohot!n=nnscript@oklopol.yok.utu.fi JOIN :#esoteric < 1208469728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, hi < 1208469732 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1208469839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, hi < 1208470325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, < 1208470601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, okoping < 1208471364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, ok < 1208471946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ping < 1208472312 0 :kwertii!n=kwertii@c-71-202-121-102.hsd1.ca.comcast.net JOIN :#esoteric < 1208472448 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1208472492 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1208473509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, < 1208474180 0 :timotiis!unknown@unknown.invalid QUIT :Connection reset by peer < 1208474195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklohot, < 1208474286 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :DOOD MY NEW TSHIRT RULES < 1208474290 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :IT RAWX UR HAUS < 1208474313 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :DONT U WISH U HAD IT?! U SO DO SO BUY IT http://www.cafepress.com/bizarregeek.250445859 < 1208474314 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1208474500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.cafepress.com/products/additional_photos/152_c6_1.jpg < 1208474531 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1208474542 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION agrees. < 1208474550 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1208474626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :shrug < 1208474697 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Was that your way of declaring that you bought seven? < 1208475226 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1208475481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Haha < 1208476047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, I just found it funny < 1208476056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It would have ben better if I could have actually included the image into my message. < 1208476064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But alas I don't think IRC allows that ;) < 1208476098 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That ... doesn't really explain the 7x post. < 1208476265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, Just imagine a page full of that image. < 1208476269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, I find it funny. < 1208476299 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... wow. < 1208476553 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, My sense of humour is ... unique.