< 1216166602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night < 1216167697 0 :tusho_!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1216168523 0 :Corun!unknown@unknown.invalid NICK :Coreina < 1216169104 0 :Coreina!unknown@unknown.invalid NICK :Corun < 1216169241 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1216169409 0 :CakeProphet!n=chatzill@h46.24.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1216171553 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1216171963 0 :ihope!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1216172097 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION comes and sees < 1216172116 0 :tusho_!unknown@unknown.invalid PRIVMSG #esoteric :? < 1216172121 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :O_O oh noes! he knows about us! < 1216172147 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION chases oerjan while screaming, "IT'S GOOD FOR YOU!" < 1216172225 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BUT I'M ALLERGIC TO IT! < 1216172248 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1216172254 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION switches vegetables < 1216172255 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION chases oerjan while screaming, "IT'S GOOD FOR YOU!" < 1216172260 0 :tusho_!unknown@unknown.invalid QUIT :Client Quit < 1216172267 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BUT IT'S YUCKY! < 1216172276 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AND IT MOVES! < 1216172330 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Eating crunchy vegetables is good for me, and it's good for you, so eat them too, something about the bunch! Three cheers for me, Captain Vegetable! Crunch, crunch, crunch! < 1216172360 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats Captain Vegetable to end this travesty < 1216172393 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Yay, Crunchy! < 1216172441 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :My name is Oerjan, and I like coerjan / If it's... um, poured on, gimme some coerjan! < 1216172512 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what the original of that was < 1216172588 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :My name is Andy/Eddie, (and) I like candy/spaghetti / If it's handy/ready, gimme (some) candy/spaghetti! < 1216172623 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Add and and some to taste. And make sure the syllable count remains the same, and all. < 1216172931 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just don't get Huck involved in this < 1216173441 0 :puzzlet_!unknown@unknown.invalid NICK :puzzlet < 1216175538 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think I'm allergic to my damn shoes. < 1216175543 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's pair #4 < 1216175548 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm so tired of shoes. < 1216175605 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Don't wear shoes. < 1216175614 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Find public places that don't say "no shoes, no service". < 1216175625 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I find walking on gravel to be unpleasant without shoes. < 1216175642 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :clearly you need to walk upside down, since you like hats < 1216175731 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :You'll get used to it. < 1216177244 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I find that developing hobbits-feet is handy. < 1216177712 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1216177979 0 :poiuy_qwert!n=poiuyqwe@bas2-toronto47-1242399667.dsl.bell.ca JOIN :#esoteric < 1216178114 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216181003 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1216181482 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1216181498 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I grow weary of working < 1216181499 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1216181506 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I should create a robot < 1216181508 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :that works for me < 1216181545 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Surely there's some mindless task that people still pay other people to do... that I could automate into a bot. < 1216182616 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Surely. < 1216182624 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1216182629 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Zamboni driving. < 1216185166 0 :pikhq!unknown@unknown.invalid QUIT :"leaving" < 1216186301 0 :poiuy_qwert!unknown@unknown.invalid QUIT : < 1216187355 0 :GreaseMonkey!n=gm|--0@122-57-224-9.jetstream.xtra.co.nz JOIN :#esoteric < 1216195199 0 :clog!unknown@unknown.invalid QUIT :ended < 1216195200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1216196103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I got an issue, I think my V and S in STRN are correct (checked what it pushes with gdb), mycology however doesn't agree < 1216196134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: "0987654321"VS isn't 1234567890 < 1216196141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would in the end push the string again < 1216196188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :are you sure the mycology check is correct? < 1216196321 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :one can never be sure of anything < 1216196333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, bbiab, going to swim < 1216196337 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's open source you know, just check what it checks for and check that it's right :-P < 1216197122 0 :lilja!n=ohsohot@a88-113-91-209.elisa-laajakaista.fi JOIN :#esoteric < 1216197999 0 :CakeProphet!unknown@unknown.invalid QUIT :Remote closed the connection < 1216198030 0 :CakeProphet!n=chatzill@h46.24.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1216200077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i recall getting quite strange looks when walking to the shop in the winter without shoes on < 1216200090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :used to dislike shoes a lot < 1216200182 0 :Judofyr_!n=Judofyr@c0F9CBF51.dhcp.bluecom.no JOIN :#esoteric < 1216200208 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :think i went one whole summer without shoes, after which shoes actually hurt... not sure why, perhaps a psychosomatic thing < 1216200513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, i'd forgotten how nice the c++ template system actually was < 1216200522 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just so convenient < 1216201222 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1216201298 0 :Judofyr_!unknown@unknown.invalid PART #esoteric :? < 1216201335 0 :lilja!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1216201735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ah, i'd forgotten how nice the c++ template system actually was < 1216201742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BLERGH < 1216202588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, actually it was an off by one error on my side < 1216202691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hrrm my my mycouser STRN always fails to load, I guess this isn't the last version? < 1216203108 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if there's an "r" instruction somewhere there then it's one of the versions where I forgot an "r" where a "(" should be < 1216203152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216203158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right there was an r < 1216203324 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p134452546.txt <<< changed phase rules a bit, you can now be in multiple states < 1216203332 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :always is just a boolean variable that evaluates to true < 1216203341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so the phase always: is always on < 1216203368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, huh is that for a programming language < 1216203376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1216203416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hello world in it please < 1216203417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that should be a fully legal program in it, except it would do nothing unless actually piped into something that knows how to do the primitive operations < 1216203430 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can't output < 1216203434 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1216203436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216203445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's really a language template < 1216203473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :turing complete language? < 1216203477 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can choose print to be a member variable that's printed < 1216203489 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the program would then be first => print "Hello world!" < 1216203508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ok... what sort of language is this? < 1216203510 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it would once, when the program starts, set print to "Hello world!", then do nothing more < 1216203521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a declarative language disguised as event-based < 1216203527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216203530 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically condition => result < 1216203545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it's kinda OO, you're always describing an object < 1216203552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbiab food < 1216203563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that changes its state and it's member variables < 1216203573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's designed for making bot ai's < 1216203594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically, that would be the thing that changes the bot's state, and queries its surroundings < 1216203623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the actual physics / graphics for a game, or things like that, would be supplied in another language < 1216203655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although you could of course make a language over Ob to give you the graphics shit too < 1216203681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it always needs to be plugged into something eventually, as there is no preset IO functionality < 1216203707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's kinda purely functional, although completely imperative, except, of course, entirely declarative. < 1216203759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well it's not really purely functional in any way :P < 1216203766 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just got caught up in the moment or something < 1216203807 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :about tcness, i have a forall construct /X in the language, so it's superturing :P < 1216203827 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and an exists construct, \X < 1216203928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can do something like {/X: \Y: (length Y) > 1 && (product Y) = X} to test if all numbers are composite < 1216203964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although it doesn't actually have functions yet < 1216204135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually i'm wrong, it already has functions < 1216204158 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually also boolean equality checks are basically calling booleans with other booleans < 1216204176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :state killing: is equal to state = killing: < 1216204195 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just englishier to drop the = < 1216204257 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the language is quite flexible, implicit comments, whitespace based nesting, explicit nesting & lines separators, whitespace based operator precedence < 1216204260 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all that shit < 1216204293 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i haven't really made languages without whitespace based operator precedence after "inventing" it when making graphica < 1216204311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that it's complex enough to need inventing, more like found its sexiness < 1216204797 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1216204812 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(now adding objects without changing syntax, god i'm perverted) < 1216204821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basicaly < 1216204823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*basically < 1216204841 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was thinking objects could be created by "calling" a phase. < 1216204843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1216204859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it's kinda purely functional, although completely imperative, except, of course, entirely declarative. <-- haha < 1216204863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you have the phase "object human:" < 1216204872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"superturing"? < 1216204880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which would normally become active when the variable object is set to human < 1216204883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1216204883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1216204894 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :superturing, can evaluate H() < 1216204899 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1216204907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :H()? < 1216204911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you have the "object human:" phase < 1216204912 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1216204915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :halting test < 1216204918 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1216204918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216204920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you have the "object human:" phase < 1216204923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1216204926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you do something like < 1216204935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :myHuman = object human < 1216204954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it will actually start a new thread that executes the code in the object human phase < 1216204963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh my < 1216204970 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you get an id that links to that thread < 1216204975 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is basically an object < 1216205023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait a mo, i'll add "movement" to that guy i just defined, by using it as an object in another environment < 1216205046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so what about thread sync? < 1216205050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like mutexes? < 1216205145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, are you got at perl regex? < 1216205160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I forgot the syntax for a negative lookbehind < 1216205184 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(? is for an event, : in the end is for a phase, := or = is for setting a variable < 1216205835 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1216205835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :otherwise ignored < 1216205879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps a language should be made where programs are sentences explaining the language in english :P < 1216205913 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the implicit forall is actually quite impure when explained like that < 1216205955 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually, even as a concept it's kinda impure < 1216205974 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216205990 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually not, i guess < 1216206001 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if we forget all practicality for a moment < 1216206015 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now < 1216206022 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :condition X => result < 1216206037 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :means that we try to find an X such that for that value of X condition is true < 1216206056 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :usually this is trivial, but condition here can be any expression, so it can be impossible just as well < 1216206061 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now if we do < 1216206094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!(condition X), we should actually choose an X such that this is not true < 1216206102 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and clearly this is what is often wanted < 1216206123 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like, condition X && !(X\human) < 1216206159 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait, father called... < 1216206397 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Remote closed the previous member app" < 1216206400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i'll continue < 1216206403 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1216206410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if the implicit forall was used here < 1216206456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then this would be always false, if there were any humans, because for some X's, the latter thingie, !(X\human), would be true < 1216206471 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so clearly we usually want an implicit existential quantification < 1216206478 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like in functional programming < 1216206497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well in functional programming the existential quantification is just pattern matching, prolog is a better example < 1216206551 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ic ic < 1216206567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, anyway, i'm going for intuitive in these kind of cases < 1216206582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for most situations, it should do what a stupid programmer might think it does < 1216206612 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, not because i want idiots to be able to use it, it's actually because i like compactness < 1216206699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the "/X: X\human => print X + " is in state " + X.state" line is not right < 1216206708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm going for "do this to all humans" < 1216206721 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but the scope of /X would be the condition < 1216206749 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in which case you could not actually use X on the right side, as you usually can't @ universal quantification < 1216206821 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*nos* < 1216206823 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*nod* < 1216206918 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :father called again < 1216206921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1216207002 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll prolly do like "/X: condition X => result" == "if for all X condition X, then result", and "/X: (condition X => result)" = "for all X for which condition X is true, evaluate result" < 1216207010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is quite intuitive < 1216207040 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically i could just say \X: has only condition scope by default, and you could prolly guess how to extend it like that, and what it would mean < 1216207091 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this only applies when you're using events as expressions in a result thingie < 1216207098 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i am reading < 1216207098 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :btw < 1216207100 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216207113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like, when @ condition => result, result contains a (condition => result) < 1216207117 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tusho: reading what? P: < 1216207118 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216207120 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my rant? < 1216207126 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yea! < 1216207129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe :P < 1216207200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway it only applies there, because otherwise it's not actually defined what order shit happens in, although i'm going to add specific rules where there's an obvious order to do thing in < 1216207221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like, in case there are two conditions on field x, one of which changes x < 1216207225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1216207236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess you'd go with appearance order in that case. < 1216207267 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could perhaps make the evaluation order fully explicit. with the exception you could change it in cases where the result is the same < 1216207305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is not all that rare, and which is quite a stupid thing to explicitly allow :P < 1216207326 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"you can do this differently, if the result is the same" in a spec would be kinda retarded < 1216207334 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oooooooooooooooo < 1216207352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i'm done, need to do some shopping < 1216207375 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tusho: if you wanna know more about the actual language, i'd of course love to explain :P < 1216207388 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1216207409 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216207421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now what if you want to call a state < 1216207435 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps every variable should implicitly be a stack :))) < 1216207442 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you could just d < 1216207443 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o < 1216207448 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :state 1: < 1216207453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :something here < 1216207456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :state 2: < 1216207473 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :condition => push state; state 3 < 1216207476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :state 3: < 1216207480 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :condition => pop state < 1216207489 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although as always, i don't do keywords < 1216207492 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so prolly < and > < 1216207499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as prefix operators < 1216207523 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: maybe you should do a lang with some keywords < 1216207523 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :just to see < 1216207531 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :maybe it's awesome < 1216207532 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well there's straw < 1216207536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it has a lot of them. < 1216207542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although you can't see that from the example < 1216207581 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but in this language, i don't want any keywords, as the user should be able to assume everything that's ascii is either their own, or defined fully outside the language < 1216207598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise there's three separate things a lowercase string can represent < 1216207659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, in oklotalk, doing A!Field yields a reference, so you *can* pass fields around < 1216207668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216207687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can't pass !FieldName around :P < 1216207690 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well actually < 1216207696 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :{_!FieldName} < 1216207794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pixles or pixels? what is the correct spelling < 1216207803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pixel < 1216207811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, in plural too? < 1216207815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pixels < 1216207818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1216207831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although i use the alternative form pixulos < 1216207850 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: pixelli < 1216207859 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually las pixulas < 1216207874 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with a mexican accent < 1216207934 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Pixies. < 1216207964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, there? < 1216208007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in TOYS, should L wrap? < 1216208235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :beware 5 lines of paste < 1216208235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :variable stacks: < 1216208238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Variables can be used as stacks. This is done as Var<> 1 is x / 2 < 1216208757 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so if you want x & 1101 do x % 2, then x / 4, x & 2, x / 2, x % 2 < 1216209424 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216209466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can easily do addition recursively by toying with carries, given binary and & xor & bitshift < 1216209472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you do it the other way around < 1216209486 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with like + and * < 1216209496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :A + B = (A ^ B) + (A & B) * 2 < 1216209500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :clearly < 1216209521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so we get (A ^ B) = A + B - (A & B) * 2, now can you do & with ^ and * or something? < 1216209670 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... i have an idea < 1216209850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn, doesn't work < 1216210019 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :beh... < 1216210035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what about x xor y? < 1216210499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :multiplication < 1216210508 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or just if < 1216210519 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's trivial if you first cut into a list of bits < 1216210610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I think a C function ffi in cfunge would be quite doable < 1216210623 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have read docs on libffi and it doesn't see too hard < 1216210631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just need to figure out how to interface it with befunge < 1216210710 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you befunge people are mad :P < 1216210728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well intercal already got something even worse < 1216210733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's C FFI is worse < 1216210738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :way worse < 1216210748 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while mine would be quite sane in fact < 1216210845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :blergh, libffi can't currently call variable argument functions < 1216211110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't mean the C extension, just the fact your constantly talking about it :P < 1216211221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hm? < 1216211228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm writing some specs for said fingerprint now < 1216211532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1216211535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how to handle pointers? < 1216211547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :marshaling structs will be hard < 1216211621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :say char** < 1216212743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :char** < 1216212779 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :char** < 1216212808 0 :Slereah2!n=hax@ANantes-252-1-90-110.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1216213022 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Slereah2: do it < 1216213337 0 :Corun!n=Corun@cpc1-rdng15-0-0-cust168.winn.cable.ntl.com JOIN :#esoteric < 1216213701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1216213702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1216213735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :does anyone want to read my draft at specs? It is likely to contain contradictions, so please point them out! < 1216213752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/u5HsHE34.html < 1216213763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, tusho, Deewiant ^ < 1216213775 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not a perfect time, sorry. < 1216213779 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1216213782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1216213885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think I managed what is needed to handle about everthing, and if not it could call malloc amd memcpy from inside befunge to construct more advanced structures and pointers < 1216214101 0 :RedDak!n=dak@host65-91-dynamic.55-82-r.retail.telecomitalia.it JOIN :#esoteric < 1216214108 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :int ID of function (from F). < 1216214113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :from F? not R? < 1216214125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh R < 1216214128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was a typo < 1216214143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I renamed F to R < 1216214180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, issue fixed in http://rafb.net/p/sCTJCz33.html < 1216214224 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thought so, as the inconsistence was present in the latter part too < 1216214225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oooooooooo < 1216214300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, what do you mean with that "oooooooooo"? < 1216214311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, nothing. < 1216214318 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, looks okay. < 1216214338 0 :olsner!n=salparot@81-237-210-158-no50.tbcn.telia.com JOIN :#esoteric < 1216214343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216214385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I just want Deewiant, maybe ais if he gets here, and tusho to look at it < 1216214393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, tusho: http://rafb.net/p/sCTJCz33.html < 1216214396 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although befunge isn't exactly that great with, err, id's < 1216214412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, oh? REFC already does that < 1216214419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is there like a variable fingerprint? i mean, so that you'd have a unary space for storing shit < 1216214424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's just a handle that is stored somewhere < 1216214435 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :refc? < 1216214439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not refc < 1216214441 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :REFC < 1216214446 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: refcount < 1216214454 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais will get here, AnMaster < 1216214455 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's just 1pm < 1216214463 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :you're being mislead by the fact i was here at 11am < 1216214464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's refcount have to do with anything? < 1216214464 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216214465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, oklopol : http://catseye.tc/projects/funge98/library/REFC.html < 1216214468 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :instead of 4pm < 1216214471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not refcount < 1216214488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, the id list will work the same here < 1216214547 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, if you load a library, and load a function out of it, you have to pass around that function id in order to call it, right? < 1216214613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes indeed < 1216214619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could store it in some cell < 1216214623 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :p/g intructions < 1216214627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :instructions* < 1216214643 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, but those are a bit bothersome in more than 2-ary funges < 1216214671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe, but FILE fingerprint does the same < 1216214672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://web.archive.org/web/20020816190021/http://homer.span.ch/~spaw1088/funge.html#file < 1216214676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i want a n-ary funge where codespace is defined with graphica < 1216214687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1216214692 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw. solved the problem of infinite structures i had with graphica < 1216214697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: do you know graphica? < 1216214707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't google < 1216214708 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GRAPHICA PSOX ESCO TRDS < 1216214715 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :the best #esoteric memes, and one non-meme < 1216214718 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216214719 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :spot the non-meme! < 1216214719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I think I heard the name before < 1216214726 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well it's my graph definition language < 1216214736 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Correct! The non-meme is "TRDS"! < 1216214748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tusho: do i win if i knew that? < 1216214754 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1216214757 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nice. < 1216214758 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1216214760 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errr < 1216214775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does anyone know the problem with infinite structures in graphica? < 1216214784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, anyway there is no sane way to do this except IDs < 1216214824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically, graphica is about creating nodes, and giving them unique id's withing the namespace given to the construction, and connecting nodes to each other by either recursion, or predefined id < 1216214834 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i know < 1216214838 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's why i asked < 1216214843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1216214850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"is there like a variable fingerprint? i mean, so that you'd have a unary space for storing shit" < 1216214866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, the problem with infinite structures is as follows < 1216214872 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's say you have an infinite grid < 1216214905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216214911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see what you mean < 1216214922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no I don't think a variable fingerprint exists < 1216214935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's trivial to define, just Grid = Node 0 0; Node X Y :: [] <-> Node X+1 Y <-> Node X-1 Y <-> Node X Y+1 <-> Node X Y-1 < 1216214954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, basically, just saying create all nodes to this one, and connect to them < 1216214956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1216214964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*Grid = Node 0 0; Node X Y :: [X Y] <-> Node X+1 Y <-> Node X-1 Y <-> Node X Y+1 <-> Node X Y-1 < 1216214976 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: [X Y] names the cell < 1216214985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1216214990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and? < 1216214999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so when you get to [1 1] twice, you don't actually make it twice < 1216215004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now the infinite problem < 1216215006 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there is not < 1216215008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in general < 1216215025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a way to know whether something will later on make a connection between, say, [0 0] and itself < 1216215041 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1216215043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you mean how to represent arbitrary vectors for n-funge where n may change at runtime you would need < 1216215061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :currently a *funge program using vectors at all can only be written for a specific funge < 1216215062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you'd have to generate all the infinite cells before you could enter [0 0] < 1216215065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you'd know what it links to < 1216215071 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://forums.xkcd.com/download/file.php?id=5799 < 1216215075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, eh? < 1216215103 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now, the obvious solution is to detect when n-ary lists are being used as id's, as in this case, and just check what directions recursive calls can move < 1216215118 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in this case, the moves are [[1 0] [-1 0] [0 1] [0 -1]] < 1216215131 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :these calls, that is: Node X+1 Y <-> Node X-1 Y <-> Node X Y+1 <-> Node X Y-1 < 1216215149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's trivial to see there are no jumps, although this can't be done in general < 1216215150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, that looks like a variant of a "main page" strip < 1216215151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1216215153 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now the clever part < 1216215172 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, it's from the 'make xkcd slightly worse' thread < 1216215177 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :the original has a flash of perl and no crash. < 1216215183 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :( instead of ) < 1216215183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there's only connections of the form ->, after some point in the recursion, you can always stop evaluation of the graph there < 1216215189 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(And he doesn't hit the monitor.) < 1216215191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, yes indeed, link to that thread? < 1216215199 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://forums.xkcd.com/viewtopic.php?f=2&t=22741&st=0&sk=t&sd=a < 1216215210 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because in that case, you know something may later on link to [0 0], but you know [0 0] can never be added an away-from link < 1216215212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, sorry but you totally lost me quite early on and I couldn't catch up < 1216215216 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216215218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you are too smart < 1216215246 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"AnMaster: if you mean how to represent arbitrary vectors for n-funge where n may change at runtime you would need " <<< i'd prolly go for a larger change in semantics < 1216215258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, oh? < 1216215268 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so smart, so smart, nah, i'm just bad at explaining. < 1216215281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it would just be the number of elements followed by the values in each dimension < 1216215282 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where did you drop? i can try to rephrase, this is simple stuff < 1216215300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like: null terminated string vs. a string prefixed by a length value < 1216215306 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i get it, it's just i'd most likely have lists. < 1216215309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : *Grid = Node 0 0; Node X Y :: [X Y] <-> Node X+1 Y <-> Node X-1 Y <-> Node X Y+1 <-> Node X Y-1 < 1216215310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there < 1216215313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1216215325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well there i assumed you know graphica syntax. < 1216215328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I don't < 1216215329 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :smart? i doubt that. < 1216215340 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll explain, should be simple to grasp < 1216215343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1216215344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :k < 1216215350 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that line was just the correction of the earlier one < 1216215353 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, so < 1216215357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Grid = Node 0 0 < 1216215360 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is just < 1216215376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a grid? < 1216215379 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"when you create a grid, actually create the Node 0 0, and return a reference to it" < 1216215388 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is a graph definition < 1216215390 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now < 1216215427 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1216215446 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"Node X Y :: [X Y] <-> Node X+1 Y <-> Node X-1 Y <-> Node X Y+1 <-> Node X Y-1" == "to create a node @ X, Y, create an id entry to the global node id table for it as [X Y], then create all nodes next to it, and interconnect this with all of them" < 1216215469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a bit more complex, ":: tag" just globally names the cell < 1216215492 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"<-> smth" creates the node smth, and connects this to it, with a two-way connection < 1216215497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you do know what a graph is? < 1216215501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's kinda important < 1216215501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216215507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I know what a graph is < 1216215513 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good, good < 1216215518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however that doesn't mean i understand it always < 1216215525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216215529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but well I think I get it now < 1216215536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay. < 1216215538 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, are you not defining a quadtree it seems? < 1216215545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :quadtree? < 1216215548 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's that :) < 1216215559 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Quadtree < 1216215561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216215562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh no. < 1216215564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually no < 1216215572 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's very different < 1216215573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :see < 1216215582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you are defining something like each cell is connected to each other < 1216215586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so not a tree < 1216215599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the thing about graphica is, the seemingly treeform structure actually becomes an arbitrary graph, because you can name cells. < 1216215633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1216215640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm doing exactly that < 1216215644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a 2d grid actually < 1216215664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1216215674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, all of it have to be allocated right now? < 1216215681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or is it allocated as needed < 1216215690 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216215692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(remember I'm a C programmer, I think low level) < 1216215698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's exactly the infinite structure problem < 1216215703 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as you can clearly see there < 1216215706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there is no size limit < 1216215712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I would store it in some sort of hash map < 1216215722 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :currently, my implementation does not allow infinite structures < 1216215734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and evaluates it all right away < 1216215738 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i do that too. < 1216215759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw for an n-ary hypercube http://www.vjn.fi/oklopol/graphica.txt < 1216215775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err not -ary. < 1216215778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :n-dimensional < 1216215779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because you seem to define this: < 1216215781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :struct node { < 1216215781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : size_t datasize; < 1216215781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : void * data; < 1216215781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : struct node * up; < 1216215781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : struct node * left; < 1216215782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : struct node * right; < 1216215784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : struct node * down; < 1216215786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :} < 1216215790 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1216215806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, way easier to read than "Node X Y :: [X Y] <-> Node X+1 Y <-> Node X-1 Y <-> Node X Y+1 <-> Node X Y-1" < 1216215806 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is what i do < 1216215807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216215819 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not really, if you format it correctly < 1216215827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well for a C programmer ;P < 1216215829 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but now i'm getting a deja vu we already had this discussion :P < 1216215835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :we did? < 1216215840 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well anyway, that C definition isn't exactly the same < 1216215845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1216215849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you write that, the actual graph is not generated < 1216215852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's the whole point < 1216215855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait you can access by index < 1216215858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or? < 1216215870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well yes, [X Y] will contain that object < 1216215872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so you need a lookup table to find the node in fact < 1216215876 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there is a global id table as i said < 1216215884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or you need to go from 0,0 downwards then sideways < 1216215891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which would be slow < 1216215905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, in this case all id's a lists of length 2, so it will make a 2d array. < 1216215908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, anyway this is far from an optimal data structure to store funge code in < 1216215911 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*id's are < 1216215916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you want a hash map < 1216215923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that allows negative indexes too < 1216215934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because -1,-1 is valid in Befunge98 < 1216215938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :completely valid < 1216215942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1216215949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"duh"? < 1216215951 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :[-1 -1] would also be generated by that < 1216215956 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216215956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well duh, why wouldn't it be < 1216215962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um < 1216215965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1216215984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, you can store into a 2d grid even with negatives < 1216216035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :either by reallocating, or having multiple grids all extending to different directions < 1216216050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but this is not the programmer's problem < 1216216065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that structure of yours < 1216216078 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is nothing but a thingie, that takes 4 id's and connects to them < 1216216086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it needs more code < 1216216087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can do that with graphica too < 1216216090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to allocate and set it yp < 1216216093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :up* < 1216216097 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Node A B C D <-> A <-> B <-> C <-> D < 1216216108 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's not the actual form of course < 1216216110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i''ll whoe < 1216216112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*show < 1216216115 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*i'll < 1216216121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however no way I would use that type of data structure for befunge, I would use a hashmap of some sort < 1216216154 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p446352642.txt < 1216216162 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a node is something that connects to four given things < 1216216173 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd say that's quite a lot prettier than the C thingie < 1216216176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but whatever < 1216216183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err, that type of data structure? < 1216216192 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :graphica has nothing to do with computers, man. < 1216216198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a language for defining graphs. < 1216216223 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you can't exactly talk about structures, if you're referring to physical representation < 1216216235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :graphica does not define what structure should be used < 1216216292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just like Ob is just a way to add declarative, intelligent events to some preset external functionality, graphica is just a way to define arbitrary graphs for use in some other lower level program. < 1216216311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1216216339 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"preset"? scratch preset. < 1216216356 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well preset for the current use of the language, but just confusing there < 1216216382 0 :atsampso1!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1216216440 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :currently, you can't have values for the nodes, partly because haven't decided on the operator for adding them :P < 1216216457 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric := is redirection, :: is tagging, <-, <-> and -> are connections < 1216216468 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what should be "setting the value of" < 1216216499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps >> could be redirection and = could set the value < 1216216507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although i'd have to change the cube < 1216216608 0 :atsampson!n=ats@7hw.poik.net JOIN :#esoteric < 1216216656 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: anyway, this is what it looks like with newlines and tabbing: http://www.vjn.fi/pb/p466261364.txt < 1216216668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'd say that's pretty darn pretty < 1216216672 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't you think so, atsampson? < 1216216678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1216216712 0 :atsampson!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: in a purely aesthetic sense, certainly < 1216216723 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :atsampson: see a problem with the semantics? < 1216216735 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this should define a 2d grid infinite in all directions < 1216216747 0 :atsampson!unknown@unknown.invalid PRIVMSG #esoteric :what's the language? < 1216216752 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :graphica < 1216216761 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's mine, and the infinity part is not yet implemented < 1216216780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just realized today how it can be done easily, made the language ages ago < 1216216845 0 :atsampson!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: do you have a description of it somewhere? < 1216216878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes where are the specs < 1216216884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have one that's slightly outdated somewhere < 1216216887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216216905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just lacks the infinite structures really, and that's basically an implementation detail as it doesn't change the language < 1216216922 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmmhmm, just wonder *where* i have it < 1216217029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p123363511.txt < 1216217048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was too lazy to write a declarative explanation of the semantics :P < 1216217158 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the two-dimensional grid in those examples is much less pretty, but should be grokkable < 1216217166 0 :atsampson!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's neat :) < 1216217224 0 :atsampson!unknown@unknown.invalid PRIVMSG #esoteric :do you need the [] in the tag in your short example? < 1216217230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216217234 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :probably not < 1216217246 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in the node example, no i actually wouldn't < 1216217255 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it should be semantically equivalent either way < 1216217274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there were no lists actually when that spec was written < 1216217310 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have them now, although functional programming without first-class functions sucks ass :P < 1216217314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1216217351 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/oklopol/graphica.txt < 1216217355 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as you can see, wtf. < 1216217376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that it's that complicated, it's just very hard to read < 1216217388 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and there isn't really a way to abstract it further < 1216217418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically the point is, err < 1216217437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you create the node [0 0 0... 0] < 1216217457 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :where 0 exists n times for the number of dimensions n given < 1216217496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you then do some weird redirection shit to get each node where one zero has been changed [] < 1216217499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-[] < 1216217511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and repeat, until all elements in the list are ones < 1216217538 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should extend that to an arbitrary-size arbitrary-dimentional one, shouldn't be hard raelly < 1216217541 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*really < 1216217600 0 :olsner!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1216217640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually i'm not sure it's that obvious :P < 1216217667 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if anyone wants to give it an attempt, go for it < 1216217688 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although i doubt anyone even gets the hypercube :) i wouldn't < 1216217780 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216217789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hi < 1216217808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi tusho < 1216217810 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure I won that time < 1216217812 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :agh!!!! < 1216217816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523++ < 1216217817 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, I've been here since 11am < 1216217820 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so I wasn't paying attention < 1216217824 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I did plan to get you, though < 1216217825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so what? < 1216217827 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: that's early for you < 1216217827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you still lost < 1216217830 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes, it is < 1216217835 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i normally get on ~4pm < 1216217840 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i decided not to. :) < 1216217841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, tusho, Deewiant: http://rafb.net/p/sCTJCz33.html < 1216217846 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, please check if it makes sense < 1216217934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pokes ais523  < 1216217936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I would have expected P and R to be combined < 1216217941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm < 1216217943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1216217944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and no need to poke me, I'm trying to read it... < 1216217955 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did i mention the infinite graph problem with graphica to *you*, ever? :P < 1216217972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, could be a good idea, however I'm not sure < 1216217979 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I don't think so < 1216217983 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1216218006 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i'll be non-graphica when explaining, you might enjoy the concept anyway < 1216218026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "doesn't must end with a \0 byte."? < 1216218040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err typo < 1216218050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apart from that, seems reasonable < 1216218051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :remove doesn't < 1216218057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"This one must end with a \0 byte." < 1216218097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, as I can't think of a sane way to say that some other parameter or return value contains the size of that one < 1216218127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why not use 0gnirts like everything else in Befunge? < 1216218131 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or are you moving away from that? < 1216218148 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :length-prefix seems like it could be hard to maintain, especially on a stack which can only be edited from the top < 1216218150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes I am in the funge108 standard too < 1216218163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the length is stored on top after all < 1216218167 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the graphica way to create a graph is to create kind of a tree, so that when you call a function F, that function chooses an id to itself, then calls some set of functions that themselves make nodes, and return their id's, then F takes these id's, and connects with them < 1216218169 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IFFI uses 0gnirts < 1216218179 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you get a graph from the recursion < 1216218184 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and for here, well, char* types can be used to pass other stuff than strings, like say structs < 1216218184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: with me? < 1216218191 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I'm not quite sure I understand < 1216218194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that you can later marshall yourself < 1216218197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, if you see what I mean < 1216218201 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :darn, i'll show you the simplest example < 1216218220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: sort of, couldn't you have a separate string and char* though? Then you could do C++ as well < 1216218242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, uh? < 1216218253 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: C++ has a separate string type in the standard libraries < 1216218257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how the heck would I marshall to std:string from inside C code? < 1216218265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no way I'm adding C++ code to cfunge < 1216218273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: by using C++ code to link them, not in cfunge itself just in a linking module < 1216218286 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just like there's INTERCALness in ecto_b98.c in IFFI < 1216218286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I'd rather not < 1216218290 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but not part of cfunge < 1216218291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1216218310 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1216218313 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :you construct a std::string < 1216218315 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :from a char* < 1216218322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: yes, you can, and vice versa < 1216218322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I plan this fingerprint to be part of the official cfunge distribution, but optional at compile time (as libffi can be hard to install on some distros) < 1216218323 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so he's pretty much right < 1216218340 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :basically libffi is both a part of gcc installed when gcj is, and a separate library, both can < 1216218344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can't* be installed at once < 1216218359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on distros like gentoo this cause a slight issue as you may see < 1216218407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure I understand libffi at all, IFFI uses compile-time linking like everything else has done for years < 1216218411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so optional at compile time, I'll use it if it exists (with an option to disable it anyway) < 1216218420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, libffi resolves at runtime < 1216218437 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: does that require both programs to be running beforehand? < 1216218444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the L and R would basically call dlopen() and dlsym() < 1216218446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, eh? < 1216218451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is for library functions < 1216218454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1216218469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://www.vjn.fi/pb/p213633331.txt makes a graph representing a ring < 1216218471 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: libffi just lets you do things like < 1216218473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :first you dlopen(), then dlsym(), then use libffi to marshal the data to the ABI < 1216218481 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :foo = mylib("abc.so"); callfunc(foo, "hello_world", 2) < 1216218484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, like "what thing goes in what register" < 1216218485 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :not that trivial < 1216218487 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but you know < 1216218491 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's basically just dlopen/dlsym < 1216218498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, yes + stuff to handle the ABI < 1216218505 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so #node 0 connects to #node 1 connects to ... #node n, which is tagged as #node 0, so it becomes a ring < 1216218531 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :asdasdasdadsd, i want someone to understand the way to resolve infinite structures :D < 1216218553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: read/got that? < 1216218564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not read it yet < 1216218567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was reading email < 1216218568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me read it now < 1216218581 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :first line has a typo s/the graph a node/a node/ < 1216218597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but yes I guess making R and P one function could make sense < 1216218611 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what there is causing edges to be made between nodes? < 1216218613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :except that there would be a lot of arguments in one go to keep track of < 1216218618 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: -> < 1216218623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it means < 1216218634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, rather 2 functions with 5 arguments each than 1 with 10 ;) < 1216218640 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"-> A" connect this cell to the cell A < 1216218671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, would <-> be a double linked list then? < 1216218677 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1216218681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not list, could be anything of course < 1216218682 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can also do <- < 1216218698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, in this case it would be a double linked list < 1216218702 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*doubly < 1216218708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do you name the connections? < 1216218713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, not currently < 1216218726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so you can't have one called up and another down? < 1216218727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1216218737 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's going to be added < 1216218738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :/*@maynotreturn@*/ uint32_t ick_dounop(char*, uint32_t, uint32_t, int, unsigned long, unsigned long, unsigned long, ick_type32(*)(ick_type32), ick_type32(*)(ick_type32), ick_type32(*)(ick_type32), void(*)(ick_type32, void(*)()), void(*)(ick_type32, void(*)()), void(*)(ick_type32, void(*)()), char*); < 1216218739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or one called previous and another next, and a third down < 1216218741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but not yet possible < 1216218741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ^ < 1216218746 0 :olsner!n=salparot@81-237-210-158-no50.tbcn.telia.com JOIN :#esoteric < 1216218748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yep, that would be nice < 1216218750 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because that is one useful one < 1216218757 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's a real function prototype from C-INTERCAL; as you see, I don't care how many arguments a function has if it needs them all < 1216218758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :could be used to represent brainfuck < 1216218761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a loop has a down < 1216218768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and especially if i add traversing, it would be useful < 1216218768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pointing to the code of the loop < 1216218773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1216218775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1216218788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1216218789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ARGH < 1216218793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's try parsing brainfuck :-) < 1216218800 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, typedef each type of function pointer before < 1216218805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that makes it a bit simpler to read < 1216218830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, for speed you'd want to collapse a [-] into a "set cell to zero" < 1216218839 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: You are talking about a compiler that has a part made of idiomatic perl written in c < 1216218843 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :why would he make it easier to read? Honestly. < 1216218845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and +++ to "3x +" < 1216218847 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it was worse before, comp.lang.c suggested removing the params from void(*)() to get rid of some cells < 1216218857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh < 1216218862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/cells/casts/ < 1216218886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, well making it easier to read would really be a strange action right? < 1216218898 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, so in a round-about way it could be esoteric ;P < 1216218903 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: heh < 1216218941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, I believe it is justify almost any action as esoteric in a way similar to this < 1216218958 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1216218974 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216218991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what was the last you saw? < 1216219004 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : tusho, well making it easier to read would really be a strange action right? < 1216219015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : tusho, so in a round-about way it could be esoteric ;P < 1216219015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: heh < 1216219015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : tusho, I believe it is justify almost any action as esoteric in a way similar to this < 1216219194 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1216219210 0 :Slereah__!n=hax@ANantes-252-1-90-110.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1216219405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, actually I can see reasons to not combine R and P < 1216219414 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p532125636.txt <<< okay, i added named returns, as graphica doesn't have anything for that < 1216219424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1) not combining makes error handling easier, you know a bit more why it reversed < 1216219433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :2) tracking all parameters as I said above < 1216219457 0 :pikhq!n=Pikhq@asst01.asunix.tufts.edu JOIN :#esoteric < 1216219469 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Nodefunctioncall Arg1 Arg2.. Argn ?? Ret1 Ret2 Ret3, although ? in the file < 1216219490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh btw fingerprint will be CFFI < 1216219499 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Ret1.. Retn now become free variables that the function call should set using !! < 1216219511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thus getting a prolog-like named return < 1216219511 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so your fingerprint equals my handprint, but I don't think that will cause problems < 1216219539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed it shouldn't < 1216219547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and with funge108 it will get an url < 1216219560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but cfunge doesn't fully support loading by URI yet < 1216219577 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216219580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh btw you will need to add a library when you build the last cfunge for the ffungi < 1216219583 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-lncurses < 1216219592 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1216219605 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wait, what fingerprint < 1216219610 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: IFFI < 1216219611 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(name) < 1216219613 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216219618 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :why is AnMaster calling it IFFI < 1216219621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1216219621 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :why not CFFI < 1216219622 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm not < 1216219624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1216219625 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the clash is on CFFI < 1216219627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1216219631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : oh btw fingerprint will be CFFI < 1216219632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :.... < 1216219634 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but yours is IFFI < 1216219635 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my fingerprint's IFFI, AnMaster's is CFFI, my handprint is CFFI < 1216219638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see < 1216219640 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :why is your handprint CFFI < 1216219642 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that makes no sense < 1216219642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216219646 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it should be IFFI < 1216219648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: cfunge for intercal < 1216219654 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it should still be IFFI, ais523 < 1216219654 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it was IFFI it would have nothing to do with cfunge < 1216219671 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :uh IFFI is to do with cfunge. < 1216219672 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which I think is wrong, it should at least share some of the letters as it's effectively the same program < 1216219674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets some popcorn and watches the fight < 1216219681 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: shut up < 1216219685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: no, IFFI's for Intercal-like Foreign Function Interface < 1216219691 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which has nothing intrinsically to do with cfunge < 1216219692 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i thought it was just for cfunge < 1216219694 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1216219700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's as it should be, handprint = interp, fingerprint = semantic < 1216219703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/$/s/ < 1216219707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, btw I got an idea, if you want TRDS in cfunge, make a patch < 1216219719 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: like I want to hack your crazy code < 1216219722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if not, just shut up about it < 1216219723 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but it would change every single line of your program, probably < 1216219727 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :nobody would want to touch that with a 10 foot pole < 1216219732 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :p.s. TRDS TRDS TRDS TRDS TRDS TRDS TRDS < 1216219734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yeah not saying I would accept it < 1216219745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;Å < 1216219746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :er < 1216219748 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P* < 1216219818 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay i fixed quite a lot, the first one was total crap < 1216219819 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p251463225.txt < 1216219823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :luckily no one read it :P < 1216219827 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that's a brainfuck parser < 1216219833 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1216219834 0 :Slereah2!n=hax@ANantes-252-1-90-110.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1216219839 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should work now, gave it a but more thought < 1216219849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(::) is the current node id < 1216219851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, where is an implementation so I can test it? < 1216219853 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i'm not naming these < 1216219856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for graphica < 1216219856 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so it's basically recursion, but making a graph as you go along < 1216219864 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, except there's a but < 1216219866 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... that looks like it might compile into Prolog nicely < 1216219874 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can give id's to things < 1216219883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and connect to id's instead of calling a function < 1216219888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you can do stuff like my ring there < 1216219889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, no implementation? < 1216219904 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there is one, but i've added a few constructs to make this work < 1216219911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1216219921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(::) doesn't exist in it, ?? doesn't exist in it, and !! doesn't exist in it < 1216219924 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :specifically < 1216219934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :...and at the end of the day this may win in beauty, but C based implementation will win in speed... < 1216219940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as usual... < 1216219947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(no offence meant) < 1216219963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i don't really see your point, but yeah, that is prolly the case < 1216219976 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :except in C, you'd prolly not parse at all, as it's just so fucking complicated :P < 1216219984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1216219996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, brainfuck is not very complex to parse < 1216220023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you just load it into a tree, doing some on the fly optimizing (combining ++-- and such, >>>>, [-] and some more) < 1216220041 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Interesting esolang! By the way, I wouldn't write any serious programs in it, because it's slower than C. Wow. < 1216220050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, not saying that < 1216220052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1216220063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, erlang is slower than C, yet erlang got other strengths < 1216220082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same for a lot of other non-esoteric languages < 1216220086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is all about what you want to do < 1216220088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i would say graphica is by far the easiest way to make a graph. < 1216220105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i simply don't know any notation nearly as nice for it < 1216220117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that is it's strength then < 1216220122 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I must spec up eodermdrome some time, it has an even nicer (or at least more eso) notation < 1216220134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tell me < 1216220145 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although you can't specify graphs with more than 26 nodes at a time, that should be a clue, but you can combine them to make larger graphs < 1216220154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however I'm just saying, you can't get much more faster than a good C compiler, asm if you are *really good* at it, but I couldn't write faster asm than C < 1216220170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :simply because most of the time the C compiler generates quite good code < 1216220174 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: just a string of letters, each letter represents a node, adjacent letters represent arcs between nodes < 1216220178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus eodermdrome = K_5 < 1216220227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wait, you mean it is like ascii art? < 1216220231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could be a nice idea < 1216220293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : +--------c < 1216220293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : | ^ < 1216220293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : | | < 1216220293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : +->a<--->b < 1216220307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure how to handle crossing lines < 1216220336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also you couldn't have more than 4 connections I guess < 1216220368 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: can't use non-alphabetical? < 1216220369 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(incidentally, that word was invented for that purpose, and not by me) < 1216220369 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :should be 255 < 1216220369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that doesn't sound very extendable < 1216220369 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :err < 1216220369 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :256 < 1216220370 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well you use it to specify bits of graphs, and build them out of that < 1216220370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you show me a ring? < 1216220370 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: abcdefga < 1216220370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you show me a parametrizable < 1216220370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :one < 1216220371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you'd have to get input somehow, eodermdrome's a bit of a tarpit < 1216220371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you'd build it from a small ring by making it bigger < 1216220372 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance you could start with abcdec < 1216220372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway that's the basic idea of graphica too, i will have ways to do that exact thing, except i might not have that nice a notation < 1216220372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216220372 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216220373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and have a rule edcbca edcbcfa < 1216220373 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps i could let you use eodermdrome as a kinda syntactical extension for shorthands, you'd get your name on the credits :P < 1216220373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which adds an extra element to the ring, at the 'tail' I put there to give a starting point < 1216220373 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216220373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rings of various sizes are one way to store data < 1216220373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, it's a rewriting lang < 1216220374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and ideally you use it to write poetry, like in Haify < 1216220374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/Haify/Haifu/ < 1216220374 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah rewriting. < 1216220374 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah that's nice < 1216220374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, the initial string that's rewritten from wouldn't be user-specifiable, but instead thequickbrownfoxjumpsoverthelazydog < 1216220374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the graph that that turns into < 1216220380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf, I lagged a lot < 1216220390 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, it isn't like ASCII art, you can use a letter more than once and it refers to the same node each time < 1216220403 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. eodermdrome has 4 connections to the e, but eodermdromes would have 5 < 1216220413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" ais523: can't use non-alphabetical?" and " well, the graph that that turns into" came at the same second < 1216220426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :must have been some really bad lag there for a while < 1216220436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: probably your connection went strange for a while, that happens to me every now and then too < 1216220443 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what < 1216220446 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't see tusho say that < 1216220455 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i did < 1216220456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1216220456 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1216220457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, quite a bit ago < 1216220458 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :up there < 1216220666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually it wasn't my connection ais523 I think < 1216220675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think it is between freenode servers < 1216220683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or was rather < 1216220705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it isn't ctcp pong... < 1216220707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* Ping reply from ais523: 1.32 second(s) < 1216220710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I got that before < 1216220719 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, why can't I send you a CTCP pong when you ping me/ < 1216220724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/\//?/ < 1216220724 0 :Slereah__!n=hax@ANantes-252-1-90-110.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1216220725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no reason < 1216220733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, except it contradicts the specs < 1216220737 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216220739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and stop spamming tusho < 1216220743 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ctcp has no specs for messages < 1216220745 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's extensible < 1216220756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay: < 1216220757 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :abcdec with edcbca edcbcfa, can you show me how that actually evolves? < 1216220767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can b represent multiple nodes? < 1216220774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :! CTCP flood from tusho, automatically putting on ignore for 5 minutes < 1216220777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hehee < 1216220781 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1216220781 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: the letters only matter within an expression < 1216220784 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :can AnMaster see this < 1216220786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, ctcp ignore only < 1216220788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i know < 1216220789 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :aww < 1216220790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not other types of messages < 1216220795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you show the evolution? < 1216220797 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION can AnMaster see this < 1216220799 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :did you see that AnMaster < 1216220801 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and each letter only represents one node within an expressoin < 1216220802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I did < 1216220817 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so abcdec becomes abcdefc becomes abcdefgc and so on < 1216220820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, and now I removed the ignore for other types of CTCP too < 1216220823 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :forever < 1216220840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need a more complicated rewrite expression to put bounds on it < 1216220847 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it shouldn't be too hard to do, say, a BCT interpreter < 1216220855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BCT? < 1216220861 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bitwise cyclic tag < 1216220864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216220867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION googles < 1216220871 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :out of all the langs I know, it's probably the easiest to implement < 1216220876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[[e:Bitwise Cyclic Tag]] < 1216220881 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :umm... http://esolangs.org/wiki/Bitwise_Cyclic_Tag < 1216220898 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: iota is easy in languages with good functionality < 1216220919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: this is langs with bad functionality I'm talking about, the langs in which even implementing Brainfuck's a stretch < 1216220952 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but if the initial state is abcdec, then how can it even be matched with edcbca? < 1216220973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't b represent the de in c -> d -> e -> c then < 1216220990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: the first expression is a triangle with a two-element tail < 1216221006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whereas the second expression is a Y shape with one side two elements long and the other two one element long < 1216221009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/element/edge/ < 1216221018 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so they match each other < 1216221039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however I got the rewrite expressions a bit wrong, because you can't reuse letters unless they correspond to each other < 1216221046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1216221062 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it should be edcbca edfbfga < 1216221069 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rebooting, be back soon < 1216221071 0 :ais523!unknown@unknown.invalid QUIT :"rebootin" < 1216221085 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right. got it < 1216221136 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :simple to write, but takes a sec to actually read < 1216221156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, didn't ais use BCT for that proof he won a lot of money for? < 1216221172 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :no < 1216221174 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i don't think so < 1216221188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what was it then he implemented in said language? < 1216221193 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why not read the paper < 1216221201 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://www.wolframscience.com/prizes/tm23/TM23Proof.pdf < 1216221204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, well iirc it was BCT, but I may be wrong < 1216221211 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :no < 1216221240 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it involves cyclic systems < 1216221241 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :not bct < 1216221245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216221251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well close then < 1216221260 0 :olsner!unknown@unknown.invalid QUIT :Connection timed out < 1216221284 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :not really. < 1216221307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, two of the words matches ;P < 1216221307 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216221310 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1216221311 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216221316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"The main part of the proof proceeds by showing that the initial conjecture (conjecture 0, that system 0 can emulate any cyclic tag system for an arbitrary number of steps (and a few extra conditions)) is either < 1216221316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" < 1216221319 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is the cyclic tag in your tm23 proof a BCT < 1216221322 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :or another cyclic tag < 1216221325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe not BCT but a CT at least < 1216221332 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that notation is awesome < 1216221339 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi tusho < 1216221343 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: it's just plain cyclic tag < 1216221345 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it could be either < 1216221347 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't read from source, it compiles it into a crazy representation < 1216221349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and BCT is just one particular notation for CT < 1216221363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523: that notation is awesome <-- what one? < 1216221366 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: also you link to wolframprize.org < 1216221369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that graph notation < 1216221370 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that domain does not go anywhere < 1216221372 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :did it ever? < 1216221377 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: yes, it did < 1216221381 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :has it gone down? < 1216221384 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it used to be the main URL < 1216221387 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: WOLFRAM ARE EVIL THEY BREAK URLS < 1216221389 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: my graph notation, I expect < 1216221393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216221401 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i do admit that's a nicer way to represent a certain graph < 1216221408 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: the URL works for me < 1216221410 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :was it ever published in that Complex Systems thing ais523? < 1216221417 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1216221419 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: no, it probably will be eventually < 1216221426 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the paper's still being worked out < 1216221426 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ah, science < 1216221429 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :such a fast-moving world < 1216221429 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216221447 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i love how they link to the mathematica version of the programs right next to your proof < 1216221449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: your lang's probably better for expressing graph operations than mine, I just wanted a tarpit graph-rewrite lang < 1216221451 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :like 'PLESAE IGNORE THE PERL' < 1216221458 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: there are no graph operations < 1216221474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's better for representing the actual graph structures < 1216221482 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: well the Perl's a factor of N faster than the Mathematica, even though I tried to optimise the Mathematica to a decent speed, I just failed < 1216221487 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ah, yes < 1216221496 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: mathematica is based on term-rewriting < 1216221496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1216221499 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that pretty much says it all < 1216221503 0 :Slereah2!n=hax@ANantes-252-1-90-110.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1216221552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you could do something like let you define a starting pattern, then have a syntax for doing substitutions n times < 1216221563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this would make something like a ring easy to do < 1216221594 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216221599 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: I know it is, and tried to optimise for it < 1216221599 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1216221607 0 :Corun!n=Corun@cpc1-rdng15-0-0-cust168.winn.cable.ntl.com JOIN :#esoteric < 1216221666 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216221697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry about that... < 1216221703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[Wed Jul 16 2008] [15:19:08] maybe I should have simulated a linked list; I wonder if {a, {b, {c, {d}}}} is faster to modify in Mathematica than {a, b, c, d}? < 1216221703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[Wed Jul 16 2008] [15:19:26] however in the end I just went with the naive way because all my attempts to modify made things worse < 1216221763 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: something like "1ab1 a1b => a1cb N-3" where numbers let you have concrete handles for convenience < 1216221783 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, that would be more practical (but less tarpitty) < 1216221786 0 :Slereah__!n=hax@ANantes-252-1-90-110.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1216221865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well i'm thinking more in terms of making graph shorthands for graphica atm < 1216221873 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you definitely keep yours as it is < 1216221884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why add that number thing when you can just have tails < 1216221896 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I'd gathered that, just thinking out loud < 1216221903 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pure graphs with no extra information are just so goddamn sexy < 1216221921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well i guess i knew that too, and was just thinking out loud :D < 1216221924 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :eodermdrome's pretty simple, but I don't have much of an idea how to implement it efficiently < 1216221941 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :say, I think I can make that strongly-typed lazy self-rewriting language < 1216221942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because I can't think of a decent way to do graph-matching < 1216221949 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it requires 'chunking' < 1216221951 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but i think it's possible < 1216221971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah, it's a complex subject < 1216222067 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: links go both ways? < 1216222088 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yes, nondirected < 1216222103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although you can direct them by hand using tails and dangling cycles and other little ornaments < 1216222115 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true, true, i know graphs. < 1216222129 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think probably the easiest way to program in eodermdrome is to have your data store of large structures with little things hanging off them to provide information and certain types < 1216222167 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216222213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is there a sort that always uses the optimal amount of swaps? < 1216222247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: interesting, you're going for writing efficiency rather than reading efficiency, and I don't know < 1216222255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, there is of course, but I'm not sure if there's a sane one < 1216222268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bogosort can be adapted to always use the optimal amount of swaps < 1216222295 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216222384 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"you're going for writing efficiency rather than reading efficiency" <<< huh? < 1216222399 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: normally sorts try to do the minimum number of comparisons < 1216222408 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whereas you're trying to do the minimum amount of writing to memory < 1216222415 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or to wherever the data's stored < 1216222418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1216222423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216222439 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is there one that always does the optimal amount of reads? < 1216222442 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right, ofc not < 1216222460 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for a sorted list the optimal amount is 0, so that's kinda trivially impossible < 1216222613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, bogosort? < 1216222631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the original bogosort is to rearrange the data at random, check if it's sorted, if not repeat < 1216222646 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however I was thinking of a modified version where you just try all possible permutations to see which one is sorted < 1216222652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I see, fairly unlikely to be fast < 1216222662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1216222663 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bogosort can fail though < 1216222669 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :assuming a shite random number generator < 1216222671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about quicksort? < 1216222675 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523's would work < 1216222685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no. < 1216222685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's somewhat faster than bogosort < 1216222701 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, there's an article somewhere on the Internet where some mathematicians wrote a paper about optimising bogosort < 1216222702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, a lot I'd imagine < 1216222716 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it still ended up worse than most sane sorting algorithms though < 1216222721 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well it was about a few other pessimal algos too < 1216222732 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all were exponential iirc < 1216222764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there is also, of course, quantum bogosort, which will hopefully never be used as it has a large chance of destroying the universe if the many-worlds theorem turns out to be false, or the anthropic principle does < 1216222767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they plotted sorting times for the test cases, sorting lists of up to length 7 :P < 1216222772 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but in theory it's the only way to do an O(n) comparison sort < 1216222775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Bogosort is on average O(n × n!) < 1216222780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: anyway bogosort isn't trivial to make optimal in this fashion < 1216222782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :according to http://en.wikipedia.org/wiki/Sorting_algorithm < 1216222796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :worst is infinite < 1216222796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yep, O(n) to see if it's sorted and you need O(n!) tries on average < 1216222797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216222865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i guess you could do it, but i think it'd be still much slower than bogosort, as you'd have to try the same permutations many, many times < 1216222888 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and "much slower than bogosort" is not good < 1216222910 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, especially as i think it's in the order of n^O(bogosort) < 1216222916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but not sure < 1216222918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Bead_sort <-- interesting < 1216222938 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if n^(n*n!) is better or worse than 2^2^n < 1216222955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the second is the order of the 2,3 Turing machine, I calculated it a few months ago because lots of people were asking < 1216222972 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://i34.tinypic.com/15ogt4k.png <-- who likeys/not likeys this < 1216222979 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(it's for the top of tusho.org, obvciously (that was intentional)) < 1216222984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: much worse < 1216222994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :2^(n!) is worse than that < 1216222995 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: I like it, but fix the vertical alignment < 1216223003 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's correct, I believe < 1216223008 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ah, of course < 1216223011 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :textedit did it < 1216223011 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216223013 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: it looks off-centre < 1216223021 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in the section sign dips too low relative to your name < 1216223028 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's meant to, I think < 1216223030 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably because the word "tusho" has no decenders < 1216223033 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1216223035 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/decenders/descenders/ < 1216223036 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so that's correct < 1216223045 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: looking right is usually better than being right in graphic design < 1216223047 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :besides, it looks kinda nice this way < 1216223056 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i'm not going for graphic design < 1216223061 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's only a graphic because most people don't have the font. < 1216223064 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(non-OS X users) < 1216223073 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i'm more interested in -typographically- nice < 1216223136 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: which I think it achieves :p < 1216223145 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I kinda like it like this < 1216223290 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the graph rewriting is at least trivial to implement, and i think it's not *that* slow, usually < 1216223292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the gist is < 1216223304 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you have a small number of connections from nodes < 1216223314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then you don't get the exponential search problem < 1216223342 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and if you do have many connections, you can often just drop most of the searching, because a node with N connections must match with one with N connections < 1216223347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :1. abcdec < 1216223349 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :&/sp < 1216223349 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a->b < 1216223352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops. < 1216223365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p152546313.txt using something like this it's at least trivial to implement < 1216223381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heuristics are, always start with the node with the largest number of connections < 1216223398 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's it, the rest is trivial recursion & backtracting < 1216223415 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, if there's no images or they're disabled or whatever, should I fallback to 'tusho' or '(symbol) tusho'? < 1216223418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but of course does not solve the actual problem. < 1216223433 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: use the HTML character entity for the section sign, in the alt text, along with your name < 1216223441 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can put something else in the tilte < 1216223444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/tilte/title/ < 1216223444 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :the image is added with a css background, ais523 < 1216223454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :... < 1216223461 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that's actually better, ais523 < 1216223468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it doesn't give you alt text < 1216223470 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :because an img is for an actual image semantically < 1216223473 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and yes it does ais523 < 1216223475 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :the actual markup is

tusho

< 1216223482 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and css gets rid of the text and adds the background < 1216223512 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: that's clever, it'll help in many situations < 1216223556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216223567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually, there's another quick cut < 1216223578 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's say you're matching nodes A and B < 1216223579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1216223579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now < 1216223585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is log n always less than n? < 1216223591 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no. < 1216223606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, they both have N connections, if they had a different amount, you'd backtract already < 1216223607 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1216223630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you take all the connections, follow them, and count the number of connections of each thing found in the other end < 1216223631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now < 1216223633 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that natural logarithm btw? < 1216223647 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: are you sure on that? I thought log n always was less than n, because log 1 = 0, and it's worse on both sides of 1 < 1216223647 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: depends on notation < 1216223660 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: right. < 1216223665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, as in big-O notation < 1216223668 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for all bases > 1, that is < 1216223670 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216223695 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, it's always less < 1216223698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wasn't thinking < 1216223701 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, to continnue < 1216223703 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*continue < 1216223707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about n log n then? < 1216223712 0 :Judofyr!n=Judofyr@c0F9CBF51.dhcp.bluecom.no JOIN :#esoteric < 1216223715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :O(n log n) vs. O(n) < 1216223720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you count the connections of each child of A, and you count the connections of each child of B < 1216223731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you then sort these lists, and do an O(n) comparison < 1216223740 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :only then do you need to start trying to match the children < 1216223748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which i already showed an example of < 1216223774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and, also, if A's children's child counts are [3,3,2,2,1], and thereby B's too < 1216223774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then < 1216223790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :O(n log n) is worse than O(n) for large values of n it seems < 1216223811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: one bit of semantics that you might have guessed but I didn't explain, letters in both sides of a rewrite rule can have additional connections because they're where the rule 'plugs into' the graph, letters on only one side can't have any more connections than are specified in the subgraph in question < 1216223815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just need to try to match #1A to #1B and #2A to #2B < 1216223823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :either one must succeed < 1216223835 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, it is, n log n is always worse than n for large n < 1216223837 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(if both succeed, you better hope the next step fails ofc) < 1216223838 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although it takes a while sometimes < 1216223857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i actually did *not* take that into account. < 1216223860 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about O(n √(log log n)) < 1216223872 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it actually voids this optimization completely :) < 1216223879 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: still going to be worse than O(n) eventually because root log log n is unbounded < 1216223886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm true < 1216223907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well. I guess there is no sorting algorithm with a upper bound of O(n) < 1216223939 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there can be, but only given prior knowledge about the data < 1216223944 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1216223950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance if you know all the data are integers in a given range, you can sort in O(n) < 1216223956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :O(n) is trivial unless it's a comparison sort < 1216223957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about custom hardware, see bead sort for example < 1216223972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yeah but then you need custom hardware right? < 1216224000 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: err, well if you count random access as O(log n), then, err, well still not < 1216224010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but usually random access is considered O(1) < 1216224065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the fastest sorting algorithm (not specialized for a specific data set, but generic) on "normal" PCs < 1216224071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in no special hardware needed < 1216224077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, O(n) is trivial, and the O(n lg_a n) bound for a sort using a O(1) function that sorts a list of a elements is trivially seen from the choice tree < 1216224083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*decision tree < 1216224095 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well the one you linked, for on < 1216224096 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*one < 1216224117 0 :Hiato!n=Hiato@dsl-245-31-70.telkomadsl.co.za JOIN :#esoteric < 1216224130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, um bead sort need custom hardware to be that fast, "O(S), where S is the sum of the integers in the input set: Each bead is moved individually. This is the case when bead sort is implemented without a mechanism to assist in finding empty spaces below the beads, such as in software implementations." < 1216224152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"O(n): The beads are moved one row at a time. This is the case used in the analog and digital hardware solutions." < 1216224176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: bead sort's actually O(n^2) in my opinion, because you're doing n O(n) operations in parallel < 1216224189 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well okay, use a less retarded counting sort then, anyway, it doesn't require much brain power to come up with a O(n) sort < 1216224192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm < 1216224193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think it's cheating to not count each thread separately < 1216224202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: pigeonhole sort's O(n) < 1216224210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but only works on certain data sets < 1216224218 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, that for instance is incredibly trivial < 1216224248 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Having fun with non-comparison sorts? ;) < 1216224270 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yep < 1216224296 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :idea < 1216224296 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My preferred one is bucket sort. < 1216224300 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :multi-threaded sort < 1216224301 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*g* < 1216224311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, in fact we are looking for the fastest one < 1216224313 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mostly because I came up with it before knowing that it was a well-known algorithm. :p < 1216224323 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Many people do./ < 1216224335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is understandable. . . < 1216224355 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It is a fairly obvious algorithm when you start thinking about actually sorting something. < 1216224384 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i like heapsort, because there actually exist people who don't know it < 1216224400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that makes it special < 1216224422 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm surprised how many people don't know mergesort < 1216224425 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Say, what's the unicode char for section-thingymabob? < 1216224436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that it's easy to implement and guaranteed n log n performance < 1216224459 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: 0xA7 < 1216224470 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so §? < 1216224472 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I forget how those work. < 1216224474 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heapsort is a fairly. . . Odd algorithm, IMO. < 1216224476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: yep < 1216224481 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apart from the question mark < 1216224482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well heapsort is rather nice, though slower in practise < 1216224488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that clearly isn't part of the entity < 1216224495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well if one understands recursion, they grasp it in about a microsecond < 1216224505 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it sucks that I even have to use an entity, i should just be able to serve it as utf-8 < 1216224506 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but, you know < 1216224509 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :editors and shit are retarded. < 1216224509 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heapsort, especially when done in-place, takes a while to explain < 1216224512 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Basically, I don't get it just because I don't get the idea of a binary heap. < 1216224517 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :which is an odd sentence out of context < 1216224526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :smoothsort seems nice < 1216224533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: basically < 1216224537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a binary tree < 1216224548 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1216224553 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but for all nodes n with children a and b, n elegance > practicalityu < 1216225249 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*practicality < 1216225252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :blargh < 1216225260 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the bit before the limit could be engineered to work badly < 1216225275 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: anyway, my point was quicksort would most likely be slower than bubble sort in bf < 1216225276 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :p.s. the esolangs wiki tagline is Weirder Than You < 1216225281 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, an interesting subject < 1216225281 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :confirm via Blue Colonge skin < 1216225292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haven't seen much order talk considering esolangs < 1216225292 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Def-BF != Brainfuck. < 1216225292 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1216225313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: isn't it meant for bf translation though? < 1216225319 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1216225325 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: yes, I knew that was the tagline, quite a good one I think < 1216225333 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's meant to be Brainfuck-esque, but for systems programming. < 1216225335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, where can I get Def-BF specs? < 1216225341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and what about implementation? < 1216225345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ah, i guess the name misleaded me < 1216225352 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'd hand them to you, but my bookmark is at home, not at work. < 1216225354 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and the fact you can have brainfuck code in it :P < 1216225360 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And the implementation? I have yet to write it. < 1216225366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: It's a superset of Brainfuck. ;) < 1216225382 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1216225390 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lessee here. . . Array access in Def-BF. . . < 1216225411 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm considerably less interested if it's not compilable to brainfuck :P < 1216225416 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, sensibly < 1216225421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now food -> < 1216225578 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, it is compilable to Brainfuck. . . < 1216225591 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in theory /everything/'s compilable to Brainfuck < 1216225599 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though that would be a minor pain. Especially the bit about having a call stack. . . < 1216225603 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apart from I/O mechanisms < 1216225623 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor's done it in C2BF, so it wouldn't be *too* painful, I guess. < 1216225629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :stacks aren't too hard to implement in BF, though < 1216225652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that's stacks of 8-bit integers or whatever the interp uses, not of call addresses < 1216225709 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, I *think* that I have the Def-BF array access code here. . . < 1216225717 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :function: array[pointer, array_start] [ array_start pointer [ - ; > pointer ]] < 1216225767 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it's hard to understand. < 1216225782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Erm. That's destructive of pointer. < 1216225814 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :function: array[pointer, array_start] [ var: tmp_pointer pointer array_start tmp_pointer [ - ; > tmp_pointer ]] < 1216225820 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Viola. < 1216225972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well if you are there, please take a look at < 1216225974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/V4MrQS18.html < 1216226210 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1216226230 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216226340 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1216226355 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216226741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"In order to build the Ada compiler (GNAT) you must already have GNAT installed because portions of the Ada frontend are written in Ada (with GNAT extensions.) Refer to the Ada installation instructions for more specific information. " < 1216226746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1216226750 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how did they think there? < 1216226754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you have to start from a binary < 1216226761 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just like with many other similar projects < 1216226764 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ghc only builds on ghc < 1216226765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what if there is no binary for a specific arch? < 1216226770 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and then you write the compiler < 1216226773 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :compile it on itself < 1216226774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(cross-compile) < 1216226776 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :then move the binary over < 1216226777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216226777 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: then you cross-compile, obviously < 1216226782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1216226790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance DJGPP only compiles on DOS using itself < 1216226809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you can use a Linux version of gcc to cross-compile it to get a version of DJGPP that runs on Linux and outputs DOS executables < 1216226819 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then compile that with itself to get a DOS version of DJGPP < 1216226828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um, how do you get that djgpp version that works on linux? < 1216226838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait right < 1216226841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you cross compile it < 1216226845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :blergh still < 1216226891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well the first GNAT version couldn't have depended on GNAT I assume? < 1216226926 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :They probably bootstrapped the compiler. < 1216226937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or used some earlier compiler < 1216226944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gnat wasn't the first one afaik < 1216226951 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That's ... what pikhq said. < 1216226955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1216226962 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Writing GNAT in a subset of Ada supported by a simple C compiler is possible. . . < 1216226969 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or even hand-compiling the Ada code. < 1216226969 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why are compilers for a lang often written in the lang itself/ < 1216226972 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/\//?/ < 1216226974 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no long long, ptrdiff_t, size_t, wchar_t, clock_t, time_t, possibly others missing < 1216226975 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It's more fun. < 1216226984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe because people implementing a lang are likely to be proficient in that lang < 1216226986 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and therefore like using it? < 1216226989 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :And, besides, if your language is TOTAL FREAKIN' AWESOMENESS, wouldn't you want to write the complex compiler for it in that lang < 1216226991 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so that it's easier? < 1216226997 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Because it's TOTAL FREAKIN' AWESOMENESS. < 1216226997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ah true, however that isn't easy with libffi, they are missing from there < 1216227002 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, brb, phone < 1216227005 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Also. It gets you major geek points. < 1216227008 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't know about libffi < 1216227014 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gives Gregor major geek points < 1216227020 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm just thinking of C stuff that's missing < 1216227051 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(Plof 2 has multiple implementations: a D interpreter, a Plof->C compiler in Plof, and a Plof->Js compiler in Plof) < 1216227053 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: structs < 1216227118 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :also, especially for a C FFI, just use 0gnirts < 1216227132 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but in general for -98 just use 0gnirts < 1216227136 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :since everything else does < 1216227136 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if i have the time, ill implement a stupid graph matcher / eodermdrome parser tonight, if you have any examples, do gimme < 1216227140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: like Chris Pressey writing Shelta in itself, when the only other interp from it was in asm < 1216227147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: haven't written any yet, maybe I should < 1216227149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just saying because i don't have the time yet < 1216227149 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :YES < 1216227157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/from/for/ < 1216227159 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :unintentional caps < 1216227161 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but i prefer it that way < 1216227174 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, shelta is pretty much the archetypical bootstrapping example < 1216227181 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: just something so i can test parsing and matching < 1216227194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno your rewriting semantics exactly < 1216227198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, actually i think i do. < 1216227202 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's trivial < 1216227212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, one other rule: commas toggle commentness < 1216227217 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :e.g. ,this is a comment, < 1216227223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Haifu has that rule and it works well there < 1216227235 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: comments? In a tarpit? < 1216227247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: BF has comments < 1216227274 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1216227275 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :implicit ones < 1216227277 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that's OK < 1216227283 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's less effort than erroring out on invalid instructions < 1216227288 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: I wasn't really using punctuation marks for anything else < 1216227290 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :thus more tarpitty than explicit comments or explicit errors < 1216227301 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but this way you force people to use leetspeak < 1216227304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: structs < 1216227307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1216227310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is hard to do < 1216227316 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :|-| |= |_ |_ 0! < 1216227316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how to marshall bitfields? < 1216227318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :packing? < 1216227320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1216227326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : but in general for -98 just use 0gnirts < 1216227332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :two reasons < 1216227341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :char * will be useful when the data isn't a string < 1216227356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that allows marshalling structs < 1216227361 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :then separate the two cleanly < 1216227364 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or maybe you already did < 1216227368 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't go through it in that much detail < 1216227374 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but use 0gnirts where it makes sense < 1216227381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm? char * here is just a binary string < 1216227403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as for "gnirts", that is what funge-108 is moving to in new places < 1216227413 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, but where it points to a character string use 0gnirts < 1216227417 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and yes, I know < 1216227427 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes those types you mentioned, some may be useful < 1216227429 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :which is why I explicitly said "for -98" < 1216227431 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: gnirtslen strikes me as being much harder to handle than 0gnirts < 1216227450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? it allows embedding nulls in a string < 1216227458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is kind of important here < 1216227472 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe it should be 01-"gnirts", then < 1216227481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but yes library name could be 0gnirts < 1216227484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also your method bounds string length, whereas mine doesn't < 1216227494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you still have the problem of in-band data < 1216227513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, huh? < 1216227526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you mean to the size of the funge cell type? < 1216227530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1216227533 0 :olsner!n=salparot@81-237-210-158-no50.tbcn.telia.com JOIN :#esoteric < 1216227543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in Funge-98 there's nothing bounding string length AFAICT < 1216227564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this could be important when processing very long documents, the stack's the only place to store them < 1216227564 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if you have strings bigger than size_t you're screwed anyway :-P < 1216227572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes indeed < 1216227578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: not all langs use a size_t < 1216227585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1216227598 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some langs are theoretically capable of unlimited growth in data storage < 1216227601 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if your interpreter doesn't support cells of size_t size then you're also screwed anyway < 1216227607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and Funge-98's one of them < 1216227643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I changed to 0"gnirts" in the places it won't cause loss of functionality < 1216227662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/YKOpiP40.html < 1216227696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway I looked at how to marshal complex types, like structs < 1216227708 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you just have to do it manually < 1216227710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there isn't really a sane way I'm afraid. < 1216227712 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pointer to struct < 1216227717 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pointer to next field of struct < 1216227719 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hence you get the offset < 1216227721 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :etc. < 1216227728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well I need to describe the type of the struct too < 1216227731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like bitfields < 1216227732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1216227743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :stuff which libffi can't always handle < 1216227749 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :bitfields are messy and not necessarily important < 1216227749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :libffi can handle some structs < 1216227763 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :actually, they're usually padded too < 1216227763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I use bitfields in cfunge in some places < 1216227766 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so they're just integers < 1216227778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, sometimes they are merged with the padding of other fields < 1216227788 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, and < 1216227798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which makes it a lot more complex < 1216227813 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how < 1216227821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example: short; int:1; < 1216227836 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :struct foo bar[2]; < 1216227858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, if the int wasn't a bitfield, then there would have been a padding of 2 bytes between < 1216227864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now it is merged into that padding < 1216227867 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :&bar[0] <-- start address < 1216227871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :&bar[0].short <-- address of short < 1216227877 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Anyone want to give me a unicode down-arrow? < 1216227878 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :&bar[0].int <-- address of int < 1216227878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so what interface are you suggesting for it? < 1216227888 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :&bar[1] <-- end of &bar[0] < 1216227905 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :↓ < 1216227912 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :0x2193 < 1216227920 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :without stalk? < 1216227923 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: ↑ < 1216227936 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :... < 1216227938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ? < 1216227941 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :without the stalk. going downwards. < 1216227951 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't know how it would work in practice with befunge, but something like that would work, i.e. manually giving the offsets as addresses < 1216227951 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: I was trying to say that before your request to get you to look up < 1216227966 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216227979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well that needs knowledge of the details of the ABI in question < 1216227997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, otherwise you can't know how a pointer, or a long double would be padded < 1216227997 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's 0x2304 but for some reason I can't paste it into Konversation's text box⌄⌄⌄⌄ < 1216228000 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's just an arrowhead < 1216228014 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :hmph < 1216228018 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I just want a filled v, essentially < 1216228019 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1216228024 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: first of all, the C ABI is standardized. second of all, what does padding matter < 1216228026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess I need a define struct type function < 1216228030 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :â–¼ < 1216228034 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what you want? < 1216228037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, padding matters for where it is in a struct < 1216228052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :U+25BC BLACK DOWN-POINTING TRIANGLE < 1216228059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, because of alignment < 1216228062 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I direct you to my &bar[0] above < 1216228066 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :all the info is there < 1216228069 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: there's â–¾ as well < 1216228080 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is apparently the same thing but smaller < 1216228090 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1216228092 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1216228104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which one do you prefer? < 1216228113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, um I don't get what you mean with it < 1216228121 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :tusho: http://www.fileformat.info/info/unicode/block/geometric_shapes/utf8test.htm and http://www.fileformat.info/info/unicode/category/So/list.htm < 1216228131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about a short followed by a long < 1216228134 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :thanks Deewiant < 1216228135 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216228138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that will differ between 32-bit and 64-bit < 1216228143 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :â–¾ seems right < 1216228144 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can get the position of a field in a struct by taking the difference of &struct.field and &struct < 1216228158 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :U+25BE, then < 1216228161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on x86: short <16 bits padding> long < 1216228174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on x86_64: short <48 bits padding> long < 1216228205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well if it was at the start of a struct, it would be aligned at the start < 1216228208 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and &struct.long - &struct.short will be 16 and 48, respectively. < 1216228211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also this is all about resolving at runtime < 1216228218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so offsetof() doesn't work < 1216228222 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :someone should invent a UTF-1 < 1216228226 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, of course it is at runtime < 1216228234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's already UTF-6, UTF-7, UTF-8 and UTF-9, after all < 1216228242 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and Punycode has been described as UTF-5 < 1216228247 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and taking the address of something works at runtime < 1216228251 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's called 'lea', look into it < 1216228270 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what would utf-1 be? < 1216228277 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: it would be a stream of bits < 1216228277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well I won't know how the struct looks until runtime, so where would I have a prepared struct to do that on < 1216228284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't generate one at runtime and compile it... < 1216228285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is self-delimiting, not split into bytes in any way < 1216228286 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: of zeroes, rather < 1216228292 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's impossible? < 1216228303 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: no, UTF-8 uses 8-bit integers, so UTF-1 would use 1-bit integers < 1216228309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: you just described UTF-0 < 1216228316 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ah, right < 1216228318 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :my bad < 1216228331 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: not impossible, in fact quite easy, you could use base-Fibonacci for instance < 1216228335 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, one assumes that the C program is compiled < 1216228365 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the befunge program can maybe request the info via the FFI, since the C part knows it? < 1216228367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I assumed lea was just a clever way to get the adressing unit of the CPU to do calculations < 1216228376 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/adressing/addressing/ < 1216228391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't do anything that couldn't be done with MOV and arithmetic, I don't think < 1216228395 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, that was its original purpose all along ;-P < 1216228404 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :UTF-1.5849625. < 1216228413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, C library you mean < 1216228429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ihope: what's with those decimals? Base-fibonacci would be about UTF-1.618 < 1216228429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and I can't see how a struct looks from a binary < 1216228430 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't mean anything < 1216228445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the binary doesn't have that metadata unless it contains debug info < 1216228456 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ais523: this is base 3. < 1216228465 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ihope: ah < 1216228474 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... so you're essentially trying to implement something which allows calling C library functions without seeing the corresponding .h file? < 1216228484 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Fibonacci coding, where every string is valid unless it contains a 11? < 1216228488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, of course, that is what libffi does < 1216228491 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: that's ... what libffi does < 1216228499 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't know anything of libffi < 1216228520 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :UTF-log(phi)/log(2), surely. < 1216228522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you tell libffi what parameters a function takes, then it handles the ABI details < 1216228523 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but, so, if you have a function which takes a struct argument... how would you know what to put in, in any other language < 1216228529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like what stuff to pass in registers and so on < 1216228531 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and alignment < 1216228565 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: doesn't answer my question < 1216228590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can tell it about structs too and it fixes alignment, but the interface for befunge code would be painful < 1216228601 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and I guess you read the docs < 1216228622 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :libffi docs? no, I didn't nor will I < 1216228629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no... < 1216228632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :docs for whatever you call < 1216228634 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and yeah, I've essentially been describing such an interface < 1216228643 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and now you tell me that there's already support for that < 1216228648 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so why am I talking again? :_P < 1216228678 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1216228684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I don't parse header files when I use a native function in C#, instead I do something like: < 1216228685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : [DllImport(X52_SO), SuppressUnmanagedCodeSecurityAttribute] < 1216228685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : internal static extern X52Type x52_gettype(IntPtr hdl); < 1216228697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to tell it how it looks < 1216228699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you use C#? I thought you didn't like the Windows API < 1216228707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have used C# + mono < 1216228710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't any longer < 1216228716 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it still uses the Windows API < 1216228721 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or maybe that's how you came to hate it? < 1216228722 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: your point, I do not see it < 1216228726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yep, I used to use it, but I don't use it any longer I said < 1216228743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, my point is: what would I need a header file for!? < 1216228789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I saw how you did some prototypes for C functions in TERM fingerprint (commented out POSIX part, I got TERM to work using those functions btw) < 1216228796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you didn't use the C header file it seemd < 1216228800 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seemed* < 1216228805 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if the docs properly describe the internals of course you don't need one < 1216228809 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so why would not befunge code also declare it's own extern stuff < 1216228812 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but there the docs serve the equivaelnt purpose < 1216228816 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :s/elnt/lent/ < 1216228837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you looked at the header file and translated it for use in D basically I assume? < 1216228838 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the point is that, at some point in time, you have to see what exactly struct Foo contains to be able to call int f(struct Foo); < 1216228843 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1216228851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so the befunge programmer have to do the same < 1216228857 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, exactly. < 1216228882 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so what's the problem with being able to tell libffi via befunge instructions "i haz a struct which contains a char and an int in that order" < 1216228888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then what was the issue? apart from missing ability to declare structs < 1216228895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where I can't come up with a good interface < 1216228898 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: you only need to know how big it is < 1216228905 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :to be able to pass it to a function < 1216228910 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: sure, but I'm assuming we don't know that < 1216228918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and if you want the info out of it, a lot more < 1216228918 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :putting the values in it in the first place might be difficult if you don't know its internal structure, though < 1216228925 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and exactly that < 1216228932 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you beat me to it < 1216228938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that is where I can't come up with a good befunge interface < 1216228947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :apart from bitfields, libffi can do it < 1216228959 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just have a one-to-one mapping between libffi functions and befunge instructions? < 1216228962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess I have to do struct ids < 1216228966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1216228974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not so easy really :/ < 1216228979 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and yeah, so you support at most size_t.max structs at a time, or something < 1216228980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it uses a lot of pointers < 1216228992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I need a lot of unique ids < 1216228995 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, you have to deal with pointers anyway, neh? < 1216228999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1216229001 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how did you do that, actually < 1216229007 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :a pointer doesn't necessarily fit in an int < 1216229014 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what about function pointers, too < 1216229016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see details in specs < 1216229021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" On 64-bit platforms with 32-bit funges this may be stored in some array < 1216229022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : in the interpreter and the programs get an unique ID for it instead that < 1216229022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : will be looked up if a pointer is passed later." < 1216229042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as for function pointers, more unique ids < 1216229058 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you're too specific, "64-bit with 32-bit"... what about 69-bit with 7-bit?? < 1216229066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, same applies of course < 1216229086 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just say it generally "this is an int which represents a pointer value in some implementation-dependant way" < 1216229104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : On platforms with large pointer than funge space cells this may be stored < 1216229104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : in some array in the interpreter and the programs get an unique ID for it < 1216229104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : instead that will be looked up if a pointer is passed later. < 1216229108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe that? < 1216229115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :too specific < 1216229118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, basically it would work about the same as refc < 1216229122 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :why an array, why not a binary tree < 1216229161 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's a spec, you don't have to talk about implementation details < 1216229174 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :unless you want to have subsections like "suggestions for implementers: ..." < 1216229223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I will make it more generic < 1216229260 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just googled "C-INTERCAL" < 1216229269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway generic pointers are useful for 1) you don't care what it contains, 2) you need something too complex to express using the FFI, then you could use memcpy on said pointer later on < 1216229274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and got these as related links from Ohloh (which I've never heard of): CCBI, cfunge, CLISP - an ANSI Common Lisp, GNU Smalltalk, Pike < 1216229279 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the first two I can understand < 1216229285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the other three not so much < 1216229288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well I can't get the other ones < 1216229296 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ohloh is ... < 1216229297 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :uh... < 1216229299 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :inaccurate. < 1216229307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the first two were spot on < 1216229323 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it missed CLC-INTERCAL, but other than that CCBI and cfunge are both pretty similar, probably with cfunge being more accurate < 1216229343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, CLC-INTERCAL doesn't have an entry on ohloh < 1216229354 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm not that surprised < 1216229355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just checked < 1216229389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I think I added C-INTERCAL there some months ago < 1216229404 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why? < 1216229414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why not? < 1216229417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1216229419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was missing < 1216229420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was just wondering < 1216229447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, check my stack size there, for some time I added a lot of stuff that I used < 1216229886 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow... http://www.freebsdsoftware.org/lang/intercal.html < 1216229895 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems that C-INTERCAL's being ported all over the place nowadays < 1216230027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah well I got an idea for structs < 1216230041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does it need porting? < 1216230056 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nah, it compiles out-of-box on FreeBSD < 1216230066 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although I think they fixed the prefix thing independently of you reporting it < 1216230079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :date: 1998/04/17 21:52:16; author: mph; state: Exp; lines: +0 -0 < 1216230082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was the first one < 1216230084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems < 1216230127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is one of the change log entries a poem!? < 1216230131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1.8 < 1216230132 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1216230141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :v. 1.8 < 1216230141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :date: 2003/03/07 06:05:31; author: ade; state: Exp; lines: +1 -0 < 1216230141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Clear moonlight beckons. < 1216230141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Requiem mors pacem pkg-comment, < 1216230141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :And be calm ports tree. < 1216230142 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :E Nomini Patri, E Fili, E Spiritu Sancti. < 1216230144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1216230249 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-DD < 1216230343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway my structs api basically allows converting structs to and from generic pointers < 1216230540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you 1) define a struct type 2) you instantiate a struct object and get a generic pointer 3) you can then set and get individual fields < 1216230555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can also replace step 2 if you get the pointer from a function you called < 1216230565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does the generic idea seem sane? < 1216230617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ? < 1216230623 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :sure, why not, you just use POD functionality but of course it's befunge so I don't think it matters that much :-P < 1216230629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :POD? < 1216230638 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I do do other things you know, just because I don't answer in a minute... < 1216230642 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :plain old data < 1216230647 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1216230655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um... and what does this mean in this contex? < 1216230657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :context* < 1216230685 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it generally refers to how structs don't have any metadata, no vtable or anything, just what the definition says + padding < 1216230711 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in this case I was thinking that since you manipulate them only through pointers they become kinda opaque < 1216230718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well of course, why would they have anything else? < 1216230727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in C they certainly don't < 1216230772 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :they could have vtables to allow inheritance, for instance < 1216230775 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but they don't, and hence they're POD. < 1216230778 0 :sebbu!n=sebbu@ADijon-152-1-88-195.w81-49.abo.wanadoo.fr JOIN :#esoteric < 1216230784 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : < 1216230835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well this isn't a C++ FFI, it is a C FFI < 1216230840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so not an issue < 1216230851 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you're completely missing my point < 1216230853 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :as usual < 1216230855 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1216230861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well what did you mean then? < 1216230861 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :2008-07-16 19:51:50 ( Deewiant) in this case I was thinking that since you manipulate them only through pointers they become kinda opaque < 1216230869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes and? < 1216230884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no sane way other than pointers if you don't know data at compile time < 1216230927 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if it actually matters to be honest < 1216230930 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just came to mind < 1216230939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1216230955 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean, you can still do memcpy and stuff even though it's behind a pointer... < 1216230963 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :shrug, guess it doesn't matter < 1216230973 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :except for efficiency but hey, this is befunge :-P < 1216230989 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I hope that was sarcasm < 1216230999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1216231005 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no, not for me it wasn't < 1216231009 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for AnMaster it might be ;-) < 1216231010 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: well yeah < 1216231010 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216231019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hahah < 1216231039 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well anyway this CFFI isn't efficient < 1216231042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I never said it was < 1216231068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is just about: because I can < 1216231524 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1216231853 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1216232123 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1216232142 0 :ais523!n=ais523@gb01-fap04.bham.ac.uk JOIN :#esoteric < 1216232650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually I can't implement struct stuff until how I understands exactly how it is done in libffi < 1216232652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the rest I can do < 1216232690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I do understand how it passes structs by value, but now how it pass them by pointer < 1216232808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :`ffi_type_pointer' < 1216232808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : A generic `void *' pointer. You should use this for all pointers, < 1216232808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : regardless of their real type. < 1216232814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however I don't get how to convert then < 1216232824 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: by assignment < 1216232836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, sure? it doesn't seem to make sense here < 1216232838 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. if you assign that to a struct foo*, it becomes a struct foo * < 1216232858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well at runtime using libffi I mean... < 1216232870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i'll prolly go offline soon < 1216232871 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1216232885 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do you have any examples / a spec of some sort for the language? < 1216232900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, offline for how long? < 1216232912 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: for an unspecified amount of time < 1216232916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is that important? < 1216232935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't see how anyone could need me :o < 1216232950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: unfortunately not < 1216232954 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's only in my head atm, nowhere else < 1216232968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hope you get back within a few days < 1216232971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if you feel like writing down examples, would be nice < 1216232982 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i will definitely come back within a few days. < 1216233001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, going somewhere without internet? < 1216233003 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, maybe this evening or something, now is not a good type for coding from my point of view, I'm sitting on a wooden chair in a cafe of a library which closes in about 30 mins < 1216233024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, will you move to somewhere else with internet after? < 1216233027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I hope you do :) < 1216233031 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1216233035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :( < 1216233037 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have to get sleep sometime < 1216233040 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'm a bit low on it atm < 1216233044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, did you make the updates for cfunge? < 1216233048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1216233051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1216233083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i will prolly leave like in half an hour. < 1216233089 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well no < 1216233090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1216233094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway the libffi will be optional, and I suspect it could cause issues when used at the same time as IFFI < 1216233099 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm going somewhere where i will not use the internet < 1216233103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is not impossible it does stack tricks you see < 1216233119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ah, have fun whatever the reason is < 1216233121 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and yeah, i don't mind people being nice, it's actually quite nice. < 1216233134 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has always fun < 1216233159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and libffi isn't that common, so yeah optional < 1216233209 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay i'll write the parser now, that should be a trivial task < 1216233272 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I suspect CFFI will be more messy than IFFI < 1216233278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ugh < 1216233279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also it will take quite a bit of time to implement < 1216233288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, haha < 1216233293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well maybe not < 1216233309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, more mess before the preprocessor, but less messy after < 1216233316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however, it will not be feral < 1216233327 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is a main difference < 1216233343 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I suspect it will be less full-featured than IFFI, it doesn't allow calling back into the Befunge from outside for instance < 1216233373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes indeed, as I would need a function pointer to call back to < 1216233405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I can't see how to do that < 1216233469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, however I can't think of a lot of libc functions that I would even think about using from inside befunge, and that accepts callbacks < 1216233472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :qsort maybe < 1216233476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that's it < 1216233486 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but what if you want to use Befunge routines in a C program? < 1216233488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :atexit from in there makes no sense < 1216233493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, um what? < 1216233504 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's not an unreasonable request, surely? < 1216233513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you mean call a befunge program from C? < 1216233518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that isn't what this does < 1216233518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1216233530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is not an intended goal < 1216233538 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the goal here is to call library functions at runtime < 1216233546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>>> parse_eodermdrome("eodermdrome") < 1216233546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :{'e': set(['r', 'm', 'd', 'o']), 'd': set(['m', 'r', 'e', 'o']), 'm': set(['r', 'e', 'd', 'o']), 'o': set(['m', 'r', 'e', 'd']), 'r': set(['m', 'e', 'd', 'o'])} < 1216233550 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: looks correct? < 1216233565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yes < 1216233579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :took a while, since i'm coding straight into the prompt < 1216233586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :too lazy to make a file :P < 1216233595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, make a file now then < 1216233614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :NEVER < 1216233614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i guess. < 1216233616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unless you want to loose your works? < 1216233635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well afk for a few hours < 1216233823 0 :olsner!unknown@unknown.invalid QUIT : < 1216233840 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*lose < 1216233860 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also a few lines of python isn't really that dangerous to lose :D < 1216233882 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :especially as most of it was stuff real languages like oklotalk hace built in < 1216233883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*have < 1216233892 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: betcha python has them < 1216233893 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :what were they < 1216233905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err well a default value dictionary < 1216233920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and dropping all references to a certain object from a data structure < 1216233932 0 :Hiato!n=Hiato@dsl-245-31-70.telkomadsl.co.za JOIN :#esoteric < 1216233978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and do remember the key issue is having them built-in, i don't want to import shit. < 1216234022 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :gosh, a modularized standard library! < 1216234024 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :how evil! < 1216234026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: write me a small example please, i don't wanna think! :P < 1216234029 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :'import x' is so hard < 1216234035 0 :ais523!unknown@unknown.invalid QUIT :"(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"" < 1216234046 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tusho: it's not hard < 1216234051 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's not the point < 1216234710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1216234788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is happy to see someone else than himself being the target for tusho's sarcasm for once < 1216234806 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION rolls eyes < 1216234827 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in fact, module systems are for losers! < 1216234840 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Real men code in C and put all the code in one big file so they don't have to include anything! < 1216234840 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :lament: and assholes < 1216234900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, well I code C but split it into many files, you could call them modules even < 1216234949 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :They're modules because they're multiple files. < 1216234956 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1216234983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is possible to split the c files into a totally non-logical manner < 1216234989 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :say, one function per file < 1216234997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then include all the C files into one main C file < 1216235008 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :tusho: to me, 'module system' implies compartmentalized namespaces < 1216235013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :making sure none of the "modules" work without any other < 1216235018 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :lament: this is called ``sarcasm''. < 1216235031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, ah... well yes I do that most time < 1216235041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have Stack* FungeSpace* and so on for function names < 1216235043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Input* < 1216235053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there are a few in the "global" name space then < 1216235077 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, of course these are not true namespaces like in C++ or whatever < 1216235084 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://article.gmane.org/gmane.linux.kernel/706950 < 1216235087 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :masturbating monkeys! < 1216235095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, seen it < 1216235182 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lament: Real men code in C and put all the code in one big file so they don't have to include anything! <<< exactly, except unlike you i'm serious :D < 1216235271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well tusho you should stop picking on me for using posix_fadvise() ;P < 1216235273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this is worse < 1216235284 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: oklo-coding is art. < 1216235289 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :twisted, outsider art < 1216235290 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but art < 1216235301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, well mine is another sort of art then < 1216235307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :annoy-tusho art < 1216235309 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yeah ... 'awful' art < 1216235314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1216235319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :modern expressionism < 1216235319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216235322 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, me goes, see ya later < 1216235327 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, cya < 1216235329 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :PREMODERN POSTEXPRESSIONISM < 1216235331 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ISM < 1216235354 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm almost finished with eodermdrome, that is, haven't started yet but i'm sure it's trivial < 1216235360 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? Postmodern preexpressionism maybe? < 1216235361 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, you'll see that tomorrow, ais < 1216235362 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right < 1216235365 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not here < 1216235369 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, bye < 1216235370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1216235372 0 :oklopol!unknown@unknown.invalid QUIT :"( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )" < 1216235393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw tusho, why did you change from the nick ehird? < 1216235416 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i had invented it earlier, didn't really like 'ehird', and right to vanish < 1216235430 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :right to vanish is harder if you use your real name. < 1216235434 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216235435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1216235481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway CFFI draft will need some more work < 1216235489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before I can even think about implementing it < 1216235509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it won't work the way I did it, but now I think I can see how to do it properly < 1216235679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, also if you read the cfunge readme you would know that there are a few other fingerprints except TRDS that I won't implement < 1216235688 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :like? < 1216235690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why you haven't bugged me < 1216235693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, see readme < 1216235711 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :like I've downloaded cfunge < 1216235717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, haha :P < 1216235723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I won't say < 1216235729 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that is the only way to find out < 1216235741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heck, even ccbi doesn't implement some of those < 1216235749 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i am so excited < 1216235754 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i will download it immediately to see. < 1216235765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, well one because it contradicts Funge98 specs < 1216235817 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1216235849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes, iirc the mycology readme or the ccbi readme mentions it < 1216235856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mycology certainly doesn't test it < 1216235910 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh wow < 1216235917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, what? < 1216235918 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i just realized that i can't type !!!!!!111 by accident < 1216235925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can't? < 1216235929 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1216235931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :different keyboard layout? < 1216235939 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think it's an OS X feature. < 1216235939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :dvorak or azerty maybe? < 1216235944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, eh? < 1216235946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what?! < 1216235951 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :If i press shift and hold 1 < 1216235955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1216235965 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :once I release shift, it stops typing. < 1216235971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1216235978 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :same with any other key < 1216235992 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :<3 OS X < 1216235992 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1216235994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :clearly Apple want's to kill l33t sp33k < 1216235995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1216235996 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's good behaviour < 1216236001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but a good idea < 1216236013 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's the little things < 1216236016 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's one of those things that seem completely obvious in retrospect < 1216236038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, well I could probably set something in X to cause same effect I think < 1216236047 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :maybe. < 1216236072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think I even seen an option for it < 1216236084 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but with little things, it's very important that the default setting is sane < 1216236111 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and it's all about the little things :) < 1216236112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, defaults? blargh < 1216236124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, but how do you change that on os x < 1216236131 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, case in point: YOU didn't change your X setting. < 1216236132 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: system preferences->keyboard < 1216236133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so the shift thing works as it does on other platforms < 1216236138 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :if it's in there < 1216236139 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :you can do it < 1216236143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, because I don't need it < 1216236152 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: will you ever need the opposite? < 1216236156 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I don't see a good case for it < 1216236162 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, well, nostalgia? < 1216236162 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :safe for games, which already override that stuff < 1216236163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1216236184 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh yes, in games < 1216236191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because shift may mean run < 1216236192 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but games already get keypresses directly < 1216236194 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so they don't get that behaviour < 1216236196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they do < 1216236203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1216236210 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, anyway a reason: nostalgia :P < 1216236216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not a good reason I knoiw < 1216236218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :know* < 1216236234 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yeah see os x is designed for using :-) < 1216236256 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :defaults are important because there's thousands of little things like this < 1216236268 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :none of which, taken individuall, matters a whole lot < 1216236467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I got a better idea for providing the parameter details, basically giving the info as a string of some sort < 1216236470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that I then parse < 1216236473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like say: < 1216236481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"double, double, int" < 1216236497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :easier to write the befunge code than having to worry about integer values for them < 1216236547 0 :olsner!n=salparot@81-237-210-158-no50.tbcn.telia.com JOIN :#esoteric < 1216238333 0 :Slereah2!n=hax@82.126.95.172 JOIN :#esoteric < 1216239983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, a bug in ccbi, I was implementing FRTH and got: < 1216239987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: L rolls value correctly < 1216239990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: P picks value correctly < 1216239993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :both are lies < 1216240001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the functions are still empty < 1216240015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just tested that my D in FRTH worked < 1216240046 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: a bug in MYCOLOGY < 1216240072 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1216240078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1216240080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, a typo < 1216240083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1216240087 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :of course you know that if the function is empty, it doesn't work :-P < 1216240100 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but if it would pop even one value it would detect it correctly :-P < 1216240146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm not clear on what they should do < 1216240148 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in general I assume that the instruction at least pops the right number of arguments < 1216240159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"Forth Roll command" < 1216240163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is the only docs for it < 1216240166 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I can't remember either, read up on FORTH and find out < 1216240169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I don't know Forth < 1216240176 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so look at the forth docs < 1216240181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah well... < 1216240187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or just reverse engineer ccbi < 1216240195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION takes the second, easier, path < 1216240624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ooh I was studying your stack code < 1216240631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems you *do* care about performance < 1216240645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :according to a comment in container.d lines 44 to 58 < 1216240661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pokes tusho to inform him < 1216240667 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1216240715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, http://rafb.net/p/tJYDmC47.html < 1216240723 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1216240733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also, C got /**/, D have /++/ < 1216240743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyone with /%%/ or /--/? < 1216240768 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: /++/ is just nestable comments < 1216240771 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :/**/ works too < 1216240773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216240775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1216240778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and useful < 1216240785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not make /**/ nestable in D? < 1216240802 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :because it's useful < 1216240806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after all D, unlike C++, doesn't aim for supporting C < 1216240815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, how is non-nestable comments useful? < 1216240823 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Think a bit. < 1216240836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess with some crazy macros it could be useful? < 1216240837 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :think a bit, you fucking stupid moron retard. < 1216240862 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I can't think of a place where I used the feature that /**/ aren't nestable < 1216240873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plenty of places where I wanted it nestable (in macros) < 1216240900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, thought, no result returned < 1216240911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe lament can tell me < 1216240912 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :lament: I concur! < 1216240915 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1216240950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, tell me then < 1216240993 0 :Slereah__!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216241008 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i have no clue :D < 1216241016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, haha < 1216241019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so tusho, tell us < 1216241029 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :i'm allowed to be lazy and unhelpful < 1216241029 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: rather, it's because I first implemented a Stack before finding out I needed a Deque. < 1216241030 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1216241044 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :tusho: Stop reopening the bug!!! < 1216241066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok, but why that comment then? < 1216241069 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but sure, I care about performance, I'm just not stupid about it. :-P < 1216241080 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, it explains why we don't just use a Deque all the time. < 1216241091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1216241099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I can see how it would be slower < 1216241106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a stack can be pretty fast really < 1216241117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but if you need to move the base of the stack too... slower < 1216241269 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the reason /**/ isn't nestable in D is because Walter thinks it's a good idea to be as close to C/C++ as possible if the syntax looks like C/C++. < 1216241289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1216241308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, still I'm all for using the other arithmetic operators too! :P < 1216241329 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :a lot of people, including me, disagree about that, but in this case it doesn't matter since we can just use /++/ for nesting. < 1216241335 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216241335 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :sure, but for what purpose? :-P < 1216241351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, to poke fun at Walter < 1216241373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway yes there are good reasons to keep some syntax similar to C < 1216241383 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :less steep learning curve < 1216241384 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that wasn't the point < 1216241389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but non-nestable comments... wtf < 1216241392 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the point was that if the syntax is similar the semantics should also be < 1216241404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that makes sense in some cases < 1216241412 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :often there are good arguments against it though, but Walter's stubborn < 1216241415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but for this. just wtf < 1216241427 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :like said, for this I think it's fine < 1216241432 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :especially since they are useful in some cases < 1216241435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is the D language an ISO standard? < 1216241439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like C is < 1216241440 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no :-D < 1216241447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what a pitty < 1216241457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then just one man can have too much power over it < 1216241469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok, why are non-nestable comments useful < 1216241470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tell me < 1216241474 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, kinda like linux < 1216241490 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :they're sometimes handy in debugging for commenting out large blocks of code < 1216241518 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you just put one */ at some point and keep adding /* earlier and earlier < 1216241528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1216241545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I normally prefer to use gdb < 1216241560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to print the value at each specific time point < 1216241581 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I generally prefer just printf debugging, but that's an opinion < 1216241585 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :there are some cases where you can't use a debugger < 1216241590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1216241606 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for instance, when the code behaves differently with and without -g < 1216241619 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or when you're debugging a concurrent app running on multiple computers < 1216241634 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :to name two cases that I've run into :-P < 1216241744 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : for instance, when the code behaves differently with and without -g <-- thankfully that never happened to me < 1216241763 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or even, differently with or without gdb attached < 1216241765 0 :olsner!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1216241767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway -g wouldn't make a difference, unless your program is actually reading the debug info, say if you are writing a debugger < 1216241771 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :i.e. -g is fine as long as you don't actually debug :-P < 1216241776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and in that case, try core dump < 1216241780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would work < 1216241795 0 :olsner!n=salparot@81-237-210-158-no50.tbcn.telia.com JOIN :#esoteric < 1216241818 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :unless you're on a machine with the hard ulimit for core dumps set to 0 :-) < 1216241835 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I've actually never debugged from core dumps < 1216241853 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't necessarily know what to do with one, I haven't actually looked at one in years :-P < 1216241872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1216241877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you run: < 1216241888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gdb path/to/program path/to/core < 1216241905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that will be like entering gdb just at the time of SIGSEGV or whatever < 1216241919 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ah, handy < 1216241929 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :although, I rarely have bugs that lead to core dumps < 1216241952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is because you don't code much in C I assume < 1216241963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1216241968 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :could be that, but even in C not so much < 1216241979 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the few segfaults that I get I can usually pin down quickly and easily < 1216241980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway wth did I put that music file < 1216241985 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :after that it's just logic errors < 1216241987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :locate can't find it < 1216241995 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so use find < 1216241999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it is because /home is too big to index < 1216242006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes I am doing that atm < 1216242085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm not there < 1216242095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh xine history may have it *greps* < 1216242107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha.... on a partition not mounted by default.... < 1216242115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1216242120 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you need to get organized < 1216242182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, aye, mount | wc -l outputs 37 < 1216242194 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not that < 1216242199 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :although, maybe that too ;-P < 1216242204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because of all bind mounts for 32-bit chroot < 1216242215 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but, keep your stuff in one place < 1216242220 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if it's music, it's on the music partition < 1216242221 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1216242222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a chroot I haven't needed for over half a year < 1216242225 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, music partition? < 1216242233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I got like 100 MB of music at most < 1216242234 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or music directory on the data partition < 1216242237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on the computer < 1216242238 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1216242240 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in one place < 1216242273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well that makes no sense, some music I like is in the src partition, because it is game music from open source games I play (I use svn version of them) < 1216242281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yet I like to listen to that music anyway < 1216242306 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so softlink from your music directory to there, or just copy < 1216242316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm short on disk space too < 1216242324 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so softlink < 1216242337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :too many svn checkouts < 1216242338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1216242340 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So save up $200 and get a terabyte drive. :p < 1216242348 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that works too. :-P < 1216242363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah maybe < 1216242367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :200 U.S. dollars = 1 201.31664 Swedish kronor < 1216242368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1216242397 0 :strokov!n=strokov@190.10.85.31 JOIN :#esoteric < 1216242406 0 :strokov!unknown@unknown.invalid QUIT : < 1216242437 0 :ihope!unknown@unknown.invalid NICK :Normish < 1216242447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :NOT another bind bug < 1216242448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gah < 1216242452 0 :pikhq!unknown@unknown.invalid PART #esoteric :? < 1216242471 0 :Normish!unknown@unknown.invalid NICK :ihope < 1216243048 0 :olsner!unknown@unknown.invalid QUIT : < 1216243357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, blergh < 1216243361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at FRTh < 1216243362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :FRTH* < 1216243381 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :blergh? < 1216243388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes blergh < 1216243394 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :okay. < 1216243395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I can't find docs < 1216243399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Firefox can't find the server at www.google.com. < 1216243402 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :blergh for everyone! < 1216243404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my DNS is broken < 1216243424 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hence, memorize google's IP < 1216243444 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or one such IP, I guess there are many < 1216243448 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :209.85.129.99 < 1216244059 0 :CakeProphet!unknown@unknown.invalid QUIT :"lolwhut?" < 1216244327 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah dns works now < 1216244345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok, this is strange, L that was rather complex to implement worked on first try < 1216244356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however P that looks easy, well I can't manage it < 1216244451 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216244503 0 :Hiato!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1216244579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha I think I got it < 1216245544 0 :Slereah2!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216245820 0 :Slereah__!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216246144 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216246164 0 :Slereah2!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216246419 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216246511 0 :Slereah__!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216246670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, there? < 1216246675 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1216246677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, what do you think of colorforth? < 1216246716 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :charles moore is vaguely creepy and a little insane, colorforth is kind of neat but prone to crashing (its kind of elitist - KNOW WHAT YOU'RE DOING!!!!!!!21212), colorforthray.info reminds me of time cube. < 1216246725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think it sucks, because as far as I understand of how it works it discriminates colour blind people. < 1216246789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, right? < 1216246811 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: lol. no. < 1216246816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1216246818 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :he's written a paper on colorforth using just typography < 1216246822 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bold, underlined etc < 1216246825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1216246834 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :also, rejecting technology just because it isn't available to everyone is pretty crap thinking < 1216246839 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :give it a try before calling judgement like that < 1216246846 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's certainly not a sole reason for anything to suck < 1216246849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, what about those that can only read using braille? < 1216246858 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i hope you're not being serious < 1216246863 0 :pikhq!n=pikhq@c-66-31-43-229.hsd1.ma.comcast.net JOIN :#esoteric < 1216246871 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216246887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, there is a school for blind ppl just a few kilometers from here, so I got quite a few blind friends < 1216246891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so yes I'm serious < 1216246893 0 :RedDak!n=dak@host65-91-dynamic.55-82-r.retail.telecomitalia.it JOIN :#esoteric < 1216246897 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1216246903 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but you can obviously do typography with braille. < 1216246908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1216247085 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216247108 0 :Slereah2!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216247364 0 :Slereah__!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216247620 0 :Judofyr!unknown@unknown.invalid QUIT : < 1216247724 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216247742 0 :Slereah2!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216248087 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216248146 0 :CakeProphet!n=chatzill@h46.24.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1216248473 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bye all! < 1216248535 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1216248537 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1216249575 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :night too < 1216250048 0 :Slereah__!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216250355 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216251823 0 :Slereah2!n=hax@ANantes-252-1-52-172.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1216252185 0 :Slereah__!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1216252594 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1216252603 0 :Slereah2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out)