< 1205366652 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1205367046 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :MRyaaaaaaaaaaaaaaaaaaa < 1205367053 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :that is alll < 1205367133 0 :timotiis_!unknown@unknown.invalid QUIT :"leaving" < 1205367260 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a cruel bastard. . . < 1205367283 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In the FRC: should you become temporally disjoint from the bus, you should calculate G while waiting for the bus to find you again. < 1205367286 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1205367309 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :shall i dare to ask what G is? < 1205367320 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed i shall. < 1205367323 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what is G? < 1205367330 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Graham's number. < 1205367338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1205367352 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was hoping for the gravitational constant < 1205367369 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, but I like the up-arrow notation. :p < 1205367623 0 :ais523_non-admin!unknown@unknown.invalid QUIT :"Bye!" < 1205367642 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :knuths arrays are basically the hyper operator? < 1205367674 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: Pretty much. < 1205367679 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Different notation for the same. < 1205367693 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i invented the hyper oerator as a kid, thought it was a new idea until like last year :P < 1205367696 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :*operator < 1205367727 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's a fairly trivial concept to *grasp*. < 1205367729 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i guess there's not much to invent < 1205367734 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But a bit harder to use *usefully*. ;) < 1205367735 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :/ grasp < 1205367768 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well, i was mainly trying to find the hyper operations for reals as well < 1205367773 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should have done A(G, G). . . < 1205367783 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :but it seems it hasn't been done yet in a meaningful way < 1205367784 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You were. . . Trying to extend hyper to the reals? < 1205367788 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Bastard. < 1205367792 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :yeah, hasn't everyone < 1205367793 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205367830 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not I. < 1205367837 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But, then, I'm only in high school. ;) < 1205367837 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :"The family has not been extended from natural numbers to real numbers in general for n>3, due to nonassociativity in the "obvious" ways of doing it." < 1205367850 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well, this was when i was in elementary school < 1205367852 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm your age < 1205367855 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1205367871 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it's not like i was a super math genius or anything < 1205367883 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i just have a lot of weird ideas < 1205367905 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205367915 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm only a *moderate* genius at math. ;p < 1205367930 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205367937 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm not practical enough for math < 1205367946 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :requires perfection, unlike say programming < 1205367997 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what the derivative of ^{x}e is. . . < 1205368004 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what does that mean? < 1205368009 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Tetration. < 1205368011 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :lambda x : e? < 1205368014 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1205368024 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or e\uparrow\uparrow x. < 1205368027 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is a LaTeX junky. < 1205368113 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205368149 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1205368156 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what's x^x? < 1205368158 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1205368161 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :D(x^x) < 1205368195 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well, x^f(x) really, then just extend that < 1205368207 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1205368232 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm, i think i should wait until i'm *not* watching something < 1205368242 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm not good at multitasking really < 1205368281 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1205368282 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what < 1205368288 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :e up up x? < 1205368304 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :right, i misparsed you still < 1205368304 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not familiar with Knuth's up-arrow notation? < 1205368313 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In it: e^x = e\uparrow x. < 1205368318 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1205368322 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1205368448 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i think i got it, not derivable :P < 1205368484 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :e upup x where x = real doesn't exist, right? < 1205368489 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sure it is! It's a smooth curve and everything. < 1205368501 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Image:Real-tetration.png < 1205368506 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1205368519 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :that's a matter of definition then, lessee < 1205368540 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205368544 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just because it's not derivable in terms of elementry functions does *not* make it not derivable. ;p < 1205368563 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it cannot be derivable if it does not have a definition for reals < 1205368572 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it seems it does, but where is it? < 1205368577 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205368598 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :e upup x. < 1205368609 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What part of that says it's *not* defined on the reals? < 1205368621 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what't e upup 0.5? < 1205368623 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :*what's < 1205368637 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :e^{1/4}. < 1205368647 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think. < 1205368668 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1205368672 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i doubt that < 1205368676 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's not. < 1205368687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's e^{{1/2}^2}. :p < 1205368722 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :the fact you can possibly extend the array-notation definition using your intuition doesn't make it a real definition. < 1205368739 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :the array-notation only works for integers with the definition there < 1205368786 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well < 1205368789 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You're confusing e^^x and hyper(e, x, x). ;P < 1205368806 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i am not < 1205368825 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :e^^x = e^e^...^e where e is there x times < 1205368841 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :if x isn't an integer, that makes no sense < 1205368842 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. What about that definition prevents e^^x from being defined on the reals? < 1205368858 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what is e^^0.5? < 1205368890 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :you can definitely define it for reals, i'm just saying the page doesn't do that. < 1205368918 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :for instance, you can just define e^^x where x isn't an integer to be zero. < 1205368952 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :exponentiation does real exponents using the inverse operation < 1205368968 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :perhaps that could also be created for the array notation < 1205369012 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm just saying i'm physically not seeing a definition for real arrow-exponent < 1205369021 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205369027 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :have i been saying "array"? < 1205369029 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Repeated multiplication doesn't define, say, e^0.5, yet it still exists as a real. < 1205369032 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1205369045 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: as i said, defined via the inverse for reals < 1205369047 0 :BMeph!n=chatzill@adsl-76-212-192-175.dsl.sndg02.sbcglobal.net JOIN :#esoteric < 1205369062 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :because you can use the inverse function for the denominator of the exponent. < 1205369088 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Having trouble finding an *exact* definition, but it's *about* 1.5. < 1205369097 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :and define reals to be the limit of doing that where the rational number representing the exponent ...gets closer to the real exponent < 1205369115 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't help at all < 1205369124 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :you could define it in many ways < 1205369144 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Likewise, you could define 1+1=50. I fail to see how that's relevant. < 1205369159 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Blargh. < 1205369171 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it's relevant in that if it doesn't have a definition, the derivative doesn't have a definition < 1205369178 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That Wikipedia page says there's no commonly accepted solution to extended tetration to the reals. < 1205369186 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :thought so < 1205369219 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :but it could prolly be done using something like the inverse function way exponentiation uses, as i already said two times i guess < 1205369230 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'll look into that after this episode < 1205369243 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I think I like the super-logarithm solution. < 1205369274 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :super-logarithm solution? < 1205369283 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :exponentiation uses the other inverse :) < 1205369310 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1205369328 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The problem being: the super-logarithm on the reals is not defined, either. XD < 1205369335 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the only obvious equation to start with would seem to be e^^(x+1) = e^(e^^x) < 1205369365 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: doesn't help, we still need e^x where x in [0..1] < 1205369368 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1205369372 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :e^^x < 1205369391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1205369476 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there might be one solution that was particularly nice in some way < 1205369550 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Define it in terms of the square-super-root. ssrt(x) = e ^ {W(ln(x))}, where W is the inverse of f(w)=we^w. . . < 1205369563 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(can't prove: Wikipedia claims it to be so) < 1205369672 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205369692 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anyways, that provides a fairly *elegant* extension to the reals. < 1205369696 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: You agree? < 1205369707 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i do, that's what i suggested right away < 1205369712 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205369725 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :is there a nice way to compute w? < 1205369733 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Taylor series. < 1205369739 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :myah < 1205369748 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm too lazy to google, sry :P < 1205369756 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The Wikipedia page gives some C source code for W(x). ;) < 1205369791 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aye < 1205369818 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1205369871 0 :pikhq!unknown@unknown.invalid TOPIC #esoteric :- From Brainfuck to extending tetration to the reals. < 1205370024 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1205370030 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :nightie < 1205370031 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :s < 1205371294 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205371318 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1205371981 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1205372296 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1205372355 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I was curious, so I got the free HTML version of the posix spec and convereted it to PDF.. thousands on pages.. wow < 1205372359 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :on->of < 1205372380 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :calamari: Wow. < 1205372401 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But that's specifying the behavior of all of UNIX. . . < 1205372418 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I think there's a hidden spec out there < 1205372419 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just my collection of *man pages* would probably cover a thousand pages. < 1205372426 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :undefined of course < 1205372441 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :"what's good enough to get gcc working with configure scripts?" < 1205372445 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(info pages? Hell, that's probably got the POSIX spec in there two times over) < 1205372473 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :probably a lot less strenuous a goal < 1205372486 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Of course. < 1205372511 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :btw you mentioned that porting gcc over wasn't a big deal.. what's the process? < 1205372511 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You need a shell, make, gcc, and libc. < 1205372552 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Assuming you use an executable format that GCC supports? Port libc. Compile a GCC cross-compiler. Use that to make a GCC native compiler. < 1205372565 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The 'port libc' part is the hard one. < 1205372621 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :thus newlib < 1205372633 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION can't wait to one day do uname -a and get 'i686-pc-mykernel-newlib' < 1205372650 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :oh so you're doing it for your regular pc? < 1205372657 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1205372663 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I was hoping this was some custom system you built out of parts or such < 1205372666 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Although my *regular* PC is actually x86_64. < 1205372676 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That makes it a bit harder. < 1205372682 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You then have to retarget GCC. < 1205372688 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A royal pain. . . < 1205372689 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1205372704 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But at least GCC just does RTL->assembly. . . < 1205372712 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(for the architecture-specific stuff, that is) < 1205372716 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :it'd be a new backend < 1205372730 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :and assembler < 1205372736 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, yeah. < 1205372755 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm mostly saying 'Thank god GCC has all the frontends go to the same language.' < 1205372766 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1205373169 0 :Corun!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1205374056 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :http://www.atmel.com/dyn/products/product_card.asp?part_id=3755 < 1205374070 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ARM, so gcc is ready to go < 1205374138 0 :oklokok!unknown@unknown.invalid QUIT : < 1205374882 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Anyone up for a seemingly np complete problem? < 1205375539 0 :Tritonio_!n=Tritonio@150.140.229.8 JOIN :#esoteric < 1205375978 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1205376053 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: Sure. < 1205376061 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just because its NP doesn't mean it can't be solved. < 1205376069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just that it can't be solved efficiently. ;) < 1205376099 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh hi all < 1205376190 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: You have a block of memory, and a new order, some locations are duplicated, some are no longer used, but they refill the same block, design an algorithm to find the least number of movements needed. < 1205376234 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So you have [a b c d e f] and it needs to be transformed to an arbitrary new order, for example: [a b e e f c] < 1205376254 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :You have access to extra space. < 1205376269 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorting algorithm. Lower bound is O(n log n). < 1205376281 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It is _not_ sorting. < 1205376289 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'Some locations are duplicated' < 1205376293 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Whaddya know. It's not. < 1205376312 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :some are no longer used < 1205376320 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Why would you need the minimum amount of movements? < 1205376340 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It is a compiler that needs to generate optimal code. < 1205376368 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Sorting does not need to remain in the same memory block. < 1205376382 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The thing is: you don't necessarily need to generate *optimal* code, if that's too hard to do. What you need to do is produce *pretty good* code. . . < 1205376391 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is usually a much easier problem. < 1205376402 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Less fun. < 1205376419 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And besides: finding the lower bound of your movement algorithm there won't help because *you still don't have said movement algorithm*. ;) < 1205376444 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1205376450 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Reread that. < 1205376458 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, a more *useful* question is "How can I efficiently move things around like this: ..." < 1205376475 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I need the least number of movements. < 1205376486 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Why do you need that? < 1205376500 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Because it stays in the same block... < 1205376509 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What you're asking for is the lower-bound of the efficiency of an algorithm that does that. < 1205376518 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What you need is the algorithm itself. < 1205376555 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just like asking "How many steps does it take to sort a list?" is useless when you actually want to sort. < 1205376558 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The algorithm does not need to re-arange, the algorithm generates code that will re-arrange. < 1205376617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is not that much different, algorithmically. . . < 1205376637 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Yeah it is. < 1205376651 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I still have no clue why you need to know the efficiency of such an algorithm, but not the algorithm itself. < 1205376653 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Because you can bruteforce until you find the algorithm that has the least movements. < 1205376654 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1205376663 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1205376667 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You're doing it wrong. < 1205376668 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1205376678 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Or you are understanding me wrong. < 1205376721 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I suspect, though, that you could trivially adapt a sorting algorithm to that. < 1205376824 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Alright, a language privative is to convert [a b c d] to [a a b d] the code generated should not do the same ineffective algorithm every time, the compiler should do a lot of work once so that it has a perfect algorithm every time it is run. < 1205376828 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Does that make sense? < 1205376914 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Are those two orders always the same between calls to the same language primitive with the same argument? (that is, would "transform(abcd, aabd)" do the same thing every time?) < 1205376969 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1205377034 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1205377036 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :And the only allowed operation of movement? < 1205377053 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is still tempted to say 'sorting algorithm'. . . XD < 1205377061 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It is manipulating arguments. My language is capable of using the same memory block to keep args in for every function, but a function has many of the same args as the function that called it. < 1205377120 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So lets say foo( a b c d) calls bar(a a b d) < 1205377121 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: Is the only allowed operation is a[i] = a[j]? < 1205377124 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The compiler should optimize that. < 1205377126 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Doing it wrong. . . Use the C calling convention on your system of choice, for crissake. < 1205377136 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Dude. < 1205377151 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :That would take the whole esoteric part out of it. < 1205377164 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Is this for tail recursion? < 1205377165 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :cherez: I am trying to generate optimal asm. < 1205377184 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If I ever did PEBBLE->assembly, I'd use the C calling convention. . . < 1205377188 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :And movl is really the only call that should be needed. < 1205377196 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't remove the esotericness of language. . . < 1205377205 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It just makes your *compiler* purely insane. < 1205377206 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :cherez: Sortof, not exactly. < 1205377213 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Indeed. < 1205377214 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Your implementation doesn't have to be esoteric. ;) < 1205377221 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :cherez: The language does not have return values. < 1205377225 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :And therefor the stack does not change. < 1205377226 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Well, if every operation must overwrite, it's only possible if it's the same output or no variables are dropped. < 1205377247 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :cherez: He allows temporary storage. < 1205377263 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :My language is purely continuations. < 1205377269 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :No returning, no stack frame. < 1205377276 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1205377281 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, the C calling convention won't work. < 1205377283 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Carry on. < 1205377289 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :So reordering the stack then jmp? < 1205377293 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So c calling is hardly even feasible, and possibly the least optimal thing imaginable. < 1205377295 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205377299 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :cherez: Yes < 1205377311 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I need the compiler to generate perfect algorithms that reorder the stack. < 1205377338 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Once again: you need the compiler to generate *good* algorithms that reorder the stack, not perfect ones. < 1205377343 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1205377348 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1205377355 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :But perfect is preferable. < 1205377362 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Brute forcing should be possible. < 1205377369 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So it should be able to find the perfect algorithm. < 1205377400 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think that you're going to have a max of however many arguments you have to each function. . . < 1205377405 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I *think*. < 1205377414 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/max/min/ < 1205377430 0 :Tritonio_!unknown@unknown.invalid QUIT :Remote closed the connection < 1205377442 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :No, a b c d ~> a b c d has no movements < 1205377450 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The compiler needs to be able to figure that out. < 1205377463 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1205377483 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But it's obvious that the compiled code is going to be doing that in O(1). . . < 1205377521 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Genetic algorithm? Stable sorting algorithm? < 1205377552 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It should be like O(0) < 1205377554 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :With O(n) temporary storage, I'd think this is probably O(n) or O(n^2). < 1205377559 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It is JUST a goto then. < 1205377577 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :No movement. < 1205377593 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: O(0) means that nothing happens at all. ;p < 1205377600 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If anything at all is done, then it's O(1). < 1205377603 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Nothing does happen. < 1205377605 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Nothing does happen. < 1205377606 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :No movement? < 1205377612 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No jump? < 1205377612 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It happens at compile time, not runtime. < 1205377615 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :A jmp is damn well something. < 1205377617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just 'hlt'? < 1205377624 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :You can try to convince your program counter otherwise. < 1205377633 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Well, I suppose it depends on the processor architecture. < 1205377636 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :jmp is not part of the translation algorithm. < 1205377657 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The compiler does not generate any translation if it is not needed. < 1205377663 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So yes, O(0) < 1205377671 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Remember, the indexes DO NOT CHANGE < 1205377691 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :indices < 1205377705 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :It is all compile time. < 1205377715 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So the program directly knows what to do. < 1205377762 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tosses Deformative "The Art of Computer Programming" < 1205377768 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Have fun; I'm sure you can figure it out. < 1205377776 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1205377784 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I told you it is a weird problem. < 1205377812 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :The hard part is showing a solution is optimal. < 1205377816 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Because you are not trying to solve the problem exactly, you are trying to design the perfect solution given limitless time. < 1205377841 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :I can think of quite a few ways to generate good algorithms, but I can't think how you could prove optimal. < 1205377862 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Least number of movl ? < 1205377898 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :I can't think of a polynomial way that I can prove has minimum movl. < 1205377928 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :If you cannot even count them, how do you generate the code? :) < 1205377972 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Well, I can easily see how you could write an O(n) algorithm to produce O(n) movl. < 1205377985 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :That's certainly countable. < 1205378001 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :But I'm also certain there are more efficient ways. < 1205378030 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Let me try to get some of my ideas into words. < 1205378042 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :First, make a list of indices no longer needed. < 1205378119 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Next make a list of indices that are at the same place in beginning and result. < 1205378214 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Then generate every possible combination to reach the result, and in each combination count the movls. < 1205378241 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :To generate the combinations, you need to check over every single index and see where they need to go. < 1205378249 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Eh, and here is where I am stuck. < 1205378275 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Data can be moved to places where that data is no longer needed without any negative effects. < 1205378299 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So that is constant in all of the possible combinations. < 1205378306 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :cherez: See where I am trying to go? < 1205378332 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :That is roughly the NP algorithm I came up with. < 1205378358 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :I'd say it's probably NP-Complete, but I'm not certain. < 1205378411 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I just need to find an algorithm for generating all possible combinations. < 1205378433 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Even if it is npcomplete, it will generate perfect code, so that is not a problem if the algorithm I come up with is bad. < 1205378453 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It also risks *never completing*. < 1205378466 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :NP-complete algorithms take quite a bit of time. ;) < 1205378522 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :An algorithm is easy. < 1205378567 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Make a queue of operation sets, put an empty set of instructions on it. < 1205378635 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :While the operations do not produce the desired result, for every possible action that can be taken, add a new operation set that is the one retrieved, plus the new possible action. < 1205378659 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Basically just enumerating the possible actions and executing them in sequence. < 1205378722 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1205378782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm < 1205378873 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I think that might be polynomial. < 1205378916 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :A huge polynomial, but polynomial all the same. < 1205379018 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :No, that's nonpolynomial. < 1205379042 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :O(((n^2)^n)^2) < 1205379052 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Jebus. < 1205379066 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Oh well. < 1205379085 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The generated apps should be ridiculously fast. < 1205379090 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Let's see, at each step there are O(n^2) branches, and there are at most O(n) steps. < 1205379171 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :So O(n^(2n)) total branches. < 1205379181 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :Thus as many vertices. < 1205379194 0 :cherez!unknown@unknown.invalid PRIVMSG #esoteric :The search is O(v^2) < 1205379273 0 :adu!n=andrew@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1205379325 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Well, I have exams tomorrow, so I should sleep. < 1205379344 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I'll be back tomorrow or such. < 1205379357 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1205382679 0 :andydude!n=andrew@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1205382701 0 :adu!unknown@unknown.invalid QUIT :Connection timed out < 1205382737 0 :andydude!unknown@unknown.invalid NICK :adu < 1205384761 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1205385669 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1205387724 0 :adu!unknown@unknown.invalid QUIT :Remote closed the connection < 1205387849 0 :adu!n=andrew@pool-71-178-14-80.washdc.fios.verizon.net JOIN :#esoteric < 1205388486 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1205390070 0 :adu!unknown@unknown.invalid QUIT :Remote closed the connection < 1205392532 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1205393835 0 :Judofyr!unknown@unknown.invalid QUIT : < 1205393904 0 :BMeph!unknown@unknown.invalid QUIT :"calls it a night" < 1205395199 0 :clog!unknown@unknown.invalid QUIT :ended < 1205395200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1205400692 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1205409353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err, wtf, looks like *code* memory is corrupted, anyway the output makes no sense < 1205410189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, there? < 1205410191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: the top of the stack after y isn't equal to what 1y pushes < 1205410195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf does that one mean < 1205410200 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :isn't it obvious < 1205410201 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it does y < 1205410203 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and then it does 1y < 1205410210 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and it expects the top 2 elements of the stack to be the same < 1205410319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205410343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to fix my y and I end up with heap or stack corruption :/ < 1205410352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fixed that part at least < 1205410353 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :isn't it fun to program in C ;-) < 1205410381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha got it < 1205410395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :==12040== Conditional jump or move depends on uninitialised value(s) < 1205410395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :==12040== at 0x40565E: ExecuteInstruction (interpreter.c:197) < 1205410395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :==12040== by 0x405EBB: interpreterMainLoop (interpreter.c:440) < 1205410395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :==12040== by 0x405FC7: interpreterRun (interpreter.c:472) < 1205410395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :==12040== by 0x404C9D: main (main.c:121) < 1205410402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay for valgrind :D < 1205410434 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yay for not initializing variables by default < 1205410502 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1205410532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well no that wasn't the issue < 1205410545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was an array index off by one issue < 1205410552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or rather < 1205410555 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yay for not having array bounds checks ;-) < 1205410556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of by a lot < 1205410566 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :basically unsigned int < 1205410577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wrapped, and ended up with 71634721834 or something like that < 1205410583 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :whatever you say, I can spin it into a pro-D anti-C argument if I try hard enough :-P < 1205410588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print tmp->top - request < 1205410588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$1 = 18446744073709551610 < 1205410589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205410594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, indeed I know < 1205410598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still I'm slightly faster < 1205410601 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fortunately, I don't have to try very hard ;-) < 1205410603 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my y is not optimized < 1205410636 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm convinced by now that the only significant difference is the function pointers versus switch-case < 1205410662 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :consider the noOperation function that I showed yesterday :-P < 1205410670 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's called through a function pointer every time z is hit < 1205410674 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :even though it's just {} < 1205410709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes, and that's just silly < 1205410711 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and I suspect PaX does some sort of checking related to function pointers, which results in extra slowdown on your comp < 1205410719 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think the code is cleaner this way < 1205410721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I don't think it does < 1205410731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :PaX just does NX and such < 1205410735 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I read some docs on PaX design and they mention something to that effect < 1205410743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my gcc does stack smash protection though < 1205410750 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-fstack-protector-all < 1205410755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :likely slows things down < 1205410762 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :something like that, anyway < 1205410799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.610s <-- debug build < 1205410913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw for ccbi mycology list command line arguments backwards < 1205410923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it supposed to do it that way? < 1205410944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :say ./ccbi mycology.b98 some other things < 1205410955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : That the command-line arguments were: [ "things" "other" "some" "mycology.b98" ] < 1205410966 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hrmh < 1205410980 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not sure whether that's a CCBI or Mycology issue ;-) < 1205410983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while mine do: That the command-line arguments were: [ "mycology.b98" "some" "other" "things" ] < 1205410996 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :might be CCBI then < 1205410997 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :lessee < 1205411004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so I want to know if I should push them in the other order or not < 1205411022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I got no idea what one is correct on this thing < 1205411026 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well it's an interpretation issue I think < 1205411031 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The first string is the name of the Funge source program being run. < 1205411039 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :does "first" here mean topmost or the one that was pushed first < 1205411078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, good question < 1205411082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it's a UNDEF? < 1205411089 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'd say so, yes < 1205411100 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :most of y is strictly speaking UNDEF < 1205411108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe mycology should test it in "Here's how your interpreter deals with some possibilities unmentioned in the specification..." section? < 1205411128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(if you got room there) < 1205411141 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :naw, because that's uncontrollable - would need the user to pass some command line args < 1205411148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah true < 1205411151 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and to be frank there's a lot of "possibilities unmentioned in the specification" < 1205411159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh yes < 1205411161 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that was more like a roundup of stuff that is likely to crash/infinite loop your interpreter < 1205411174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1205411179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: y acts as pick instruction if given large enough argument < 1205411180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1205411186 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or that was the original intention, anyway :-) < 1205411212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, currently my interpreter may be slightly slower, due to a non-optimized y instruction heh < 1205411220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I actually create a second stack atm < 1205411294 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what do you push for team number btw :-P < 1205411302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :0 I think < 1205411310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because I got no idea what to do there < 1205411315 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeap < 1205411343 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a remnant of Befunge-97 but I'm not sure < 1205411352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : -p, --disable-fprints Run as if no fingerprints were implemented. < 1205411354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : -p, --print-fprints List all supported (and knowingly unsupported) < 1205411356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205411362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you got that messed up in ccbi --help < 1205411369 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know, I updated that < 1205411376 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you've still got the old version :-) < 1205411491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay (while maybe slower atm, don't know): all good or undef < 1205411494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :\o/ < 1205411502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no fingerprints yet of course < 1205411889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually there is one thing left, but mycology doesn't test it < 1205411903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that the size of stacks for y actually pushes a value for each stack < 1205414636 0 :faxathisia!n=ultravio@137.195.250.2 JOIN :#esoteric < 1205415448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, on 64-bit it actually runs slightly faster with int_fast64_t than int_fast32_t, but almost the same speed < 1205415486 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Um ... on a 64-bit environment, shouldn't int_fast32_t == int_fast64_t? < 1205415510 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, hm likely < 1205415524 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :fastX = the type at least this large that's fast on this system, which on a 64-bit system should always be 64-bit. < 1205415527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc -std=c99 -fbranch-probabilities -D_GNU_SOURCE -Isrc -combine -march=k8 -pipe -O3 -fwhole-program -Wl,-O1,--as-needed,--hash-style=gnu -Wall -Wextra -o cfunge08 lib/libghthash/*.c src/*.c src/*/*.c src/funge-space/b98/funge-space.c -lgc -lcord < 1205415533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that line rocks anyway :D < 1205415544 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :profile based optimizing < 1205415664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, you are right < 1205415678 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Of course I am :P < 1205415680 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with int32_t I get faster actually < 1205415690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ time ./cfunge08 mycology.b98 > /dev/null < 1205415691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.266s < 1205415691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m0.074s < 1205415691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.017s < 1205415698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, madly optimized < 1205415704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for mycology < 1205415705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205415738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :way faster than ccbi < 1205415765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ time ./ccbi --disable-fprints mycology.b98 > /dev/null < 1205415765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.513s < 1205415765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m0.173s < 1205415765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.005s < 1205415768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1205415781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course the latter is the binary Deewiant provided < 1205415792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as I can't compile ccbi successfully here < 1205415810 0 :Slereah!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205415822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, CCBI being written in D btw < 1205415875 0 :faxathisia!unknown@unknown.invalid QUIT :"If there are any aliens, time travellers or espers here, come join me!" < 1205415910 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That explains why you can't compile it *haw haw haw* < 1205415930 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205416370 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, haheh :D < 1205416373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha* < 1205416608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :got it down even more < 1205416619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.132s < 1205416619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m0.078s < 1205416619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.021s < 1205416628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc -std=c99 -fprofile-use -D_GNU_SOURCE -Isrc -combine -march=k8 -pipe -O3 -fwhole-program -Wl,-O1,--as-needed,--hash-style=gnu -Wall -Wextra -o cfunge08 lib/libghthash/*.c src/*.c src/*/*.c src/funge-space/b98/funge-space.c -lgc -lcord < 1205416632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is my final command line < 1205416633 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205416638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for gcc < 1205417308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.127s < 1205417318 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205417335 0 :Slereah!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205417655 0 :slereah_!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205417747 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205418367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1205418977 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION received "From Frege to Gödel" < 1205418983 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :650 pages of logic :o < 1205419047 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Heh. Begriffsschrift is funny looking. < 1205419128 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Ah yes, "Building blocks of logic", by Schönfinkel. < 1205419128 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Full of combinators :D < 1205419737 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205419749 0 :slereah_!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205420395 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205420517 0 :slereah_!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205421612 0 :sekhmet!unknown@unknown.invalid QUIT :Remote closed the connection < 1205421893 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: your month in y is off by one < 1205422157 0 :sekhmet!n=pez@adsl-76-204-93-25.dsl.mdsnwi.sbcglobal.net JOIN :#esoteric < 1205424200 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1205425329 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205425430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok possible < 1205425557 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fixes < 1205425892 0 :sekhmet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205425917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, pushed fix (as well as make cmake nicer, to actually check for existence of boehm < 1205425921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1205425943 0 :sekhmet!n=pez@adsl-99-154-3-20.dsl.mdsnwi.sbcglobal.net JOIN :#esoteric < 1205425982 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: btw, if you want to fix a typo in Mycology, change line 188 column 110 (should be a space just to the left of a <) to a ; < 1205426050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what does that typo do? < 1205426079 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's a typo, not a bug < 1205426082 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :i.e. it only affects output < 1205426085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205426089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in what way? < 1205426114 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: run cfunge08 on the unmodified mycology and there should be a messed-up message where it tests k with a negative argument < 1205426115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"a space just to the left of a <" < 1205426116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205426118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is a > there < 1205426121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not a < < 1205426126 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :right, my bad < 1205426129 0 :slereah_!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205426137 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :see how easy it is to make typos? ;-) < 1205426159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205426169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway can't see anything about negative k in output? < 1205426191 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: at the place where it's testing stuff unspecified, right before fingerprints < 1205426203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah now I see it < 1205426243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1205426251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you want to upload a fixed version < 1205426255 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :already did < 1205426266 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just thought it'd be easier to tell you to fix it than to have you unzip it :-P < 1205426274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I got like 5 copies of mycology around in different places all different versions < 1205426279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1205426280 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205426283 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just keep one copy < 1205426288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yes < 1205426405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw does the standard say if months should be 0-indexed or 1-indexed < 1205426410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the y result < 1205426440 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :BTW, if I remove the fflush(stdout)s from cfunge08, it's consistently 25% faster than CCBI. otherwise, CCBI beats it when not outputting to dev/null < 1205426454 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: don't think so, but all the interpreters agree that they're 1-indexed ;-) < 1205426463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, heh indeed < 1205426482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok I'll change that to only flush at newlines or something < 1205426502 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and IMHO that should be the default if unspecified anyway, only programmers use 0-indexed values < 1205426502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :isn't that was ccbi does? < 1205426506 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205426521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well who would use befunge, except programmers? < 1205426545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gmtime that I use to split the date up, uses 0-indexed month < 1205426550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just FYI ;P < 1205426598 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :which is messed up IMO < 1205426598 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because it has a 1-indexed day < 1205426619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1205426848 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205426856 0 :slereah_!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205427088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw using 32-bit versions on 64-bit platforms make it *EVEN* faster ;P < 1205427097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in using 32-bit data types < 1205427103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but compiling for 64-bit < 1205427297 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Bullshit. < 1205427414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, what? < 1205427418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I did profiling :P < 1205427420 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... < 1205427425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on my app < 1205427426 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Comparing what to what? < 1205427459 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, same program compiled to use 32-bit data types and 64-bit data types. However of course the code was 64-bit still in either case < 1205427464 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1205427479 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: are you talking about int_fast32_t versus int_fast64_t? < 1205427489 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That makes sense, then. . . I think. < 1205427492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, int_fast64_t vs. int32_t in fact < 1205427493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205427501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because int_fast32_t = 64-bit on amd64 it seems < 1205427505 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :thought so, because int_fast32_t should be the same < 1205427523 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Try it in assembly, though. < 1205427527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I'm making some ifdef for them < 1205427538 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, no way I'm going to write a befunge98 interpreter in asm < 1205427540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just no way < 1205427557 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That's just to satisfy my curiosity about what the hell is making it faster. < 1205427576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, try gcc -S to make it output asm < 1205427579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, anyway: < 1205427580 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Reading a few chunks of assembly code doing the equivalent thing with its data types would help that. < 1205427595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc -std=c99 -fprofile-use -funsafe-loop-optimizations -Wunsafe-loop-optimizations -fvisibility=hidden -D_GNU_SOURCE -Isrc -combine -march=k8 -pipe -O3 -fwhole-program -Wl,-O1,--as-needed,--hash-style=gnu -Wall -Wextra -o cfunge08 lib/libghthash/*.c src/*.c src/*/*.c src/funge-space/b98/funge-space.c -lgc -lcord < 1205427596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205427627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-ffast-math made it *slower* in fact < 1205427628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea why < 1205427638 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that's just overkill :-P < 1205427646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the line? < 1205427648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1205427653 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm not talking 'all of Befunge', just "mov %eax, $foo" vs. "mov %rax, $foo". < 1205427653 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;p < 1205427666 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: For the love of God, don't do -ffast-math. < 1205427668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, very likely it is due to how I handle them < 1205427676 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's almost as bad as -funroll-loops. < 1205427679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I don't do any floating point maths at all < 1205427687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Still: don't. < 1205427697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and I do optimizing with profile feedback < 1205427707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that *DOES* activate -funroll-loops, based on profile data < 1205427711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see man page < 1205427715 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just stick with -O2, for the love of God. < 1205427724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, normal is -O0 -ggdb3 :P < 1205427732 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1205427739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just working on beating Deewiant's CCBI :D < 1205427743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at speed < 1205427744 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :-O2 is the most optimization you can do sanely. < 1205427747 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1205427755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, yes but I'm the author of cfunge < 1205427760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I know what I can do safely < 1205427761 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, in that case, don't distribute those binaries without saying 'stupidly optimised', and carry on. < 1205427762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P:P < 1205427766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1205427770 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In that case, just carry on. < 1205427774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, heheh < 1205427786 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And beat everyone else that tries that without grokking his/her code. < 1205427788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, of course I'm well aware of that things may break < 1205427805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and indeed likely will if I'm not 100% sure of what I'm doing right now < 1205427813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and verifying result with test suite < 1205427825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, the normal way I compile it with is -O0 -ggdb3 after all :D < 1205427829 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION grabs an assembler. That's how we optimise code. . . < 1205427836 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And I walked up hill both ways! In the snow! < 1205427838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, nah, I let gcc or whatever do it < 1205427840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha yes < 1205427851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, work 25 hours / day? < 1205427855 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Of course! < 1205427866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :having to clean out the lake you live in before you woke up? < 1205427873 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But, on a more serious note: as cool as assembly is, x86 assembly makes it such a pain that you damned well better not. < 1205427881 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm in Colorado. What lakes? < 1205427884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION remembers that mony python thing < 1205427920 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I thought it was a reference to a Monty Python sketch (spelling?) < 1205427931 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION returns to reality. . . < 1205427933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, no way I'm doing x86 asm < 1205427952 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think -ffast-math makes the floating point code go through the x86 FPU. . . < 1205427955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1) I'm on x86_64, 2) I only done some ams for PIC < 1205427963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, aha, I see < 1205427969 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The problem being that, by default, and floating point code goes through SSE2, which is faster. < 1205427974 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/and/any/ < 1205428001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1205428007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, thanks for that information < 1205428067 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, that is, that's the default on x86_64, since every x86_64 chip does SSE and SSE2. < 1205428086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, so I should do -mfpmath=sse then? < 1205428094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as well as -ffast-math :D < 1205428097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION runs < 1205428182 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, you shouldn't do either... < 1205428196 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Since gcc is compiling for x86_64, it does SSE2. < 1205428220 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's the fastest you can guarantee your floating point code is running, unless you can assume SSE3. < 1205428232 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In which case, just do -msse3. < 1205428283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I do have sse3 in my sempron in fact < 1205428302 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If you're on Gentoo, add -msse3 to your CFLAGS and recompile your stuff. ;) < 1205428304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I use a old gcc, 4.1.2 < 1205428314 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :gcc (GCC) 4.1.2 (Gentoo 4.1.2 p1.0.2) < 1205428314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea if it makes use of it < 1205428316 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So do I. < 1205428320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, yep I got it in CFLAGS < 1205428323 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1205428328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc (GCC) 4.1.2 20070214 ( (gdc 0.24, using dmd 1.020)) (Gentoo 4.1.2 p1.0.2) < 1205428355 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, GCC newer than 3.something uses -msse3. < 1205428444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder, should I use gcc __builtin__ stuff for vector addition < 1205428447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only x and y < 1205428452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably not worth it < 1205428495 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.107s <-- and that is with profile generation code heh not using the profile feedback < 1205428520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.104s using profile data < 1205428532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and this is using the flush the way ccbi does it < 1205428558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, add -msse3 to your CFLAGs. < 1205428564 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Should make your vector code faster. < 1205428571 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(read: single operation. ;p) < 1205428604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, well I actually do it like this now: < 1205428615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ip->delta.x *= -1; < 1205428615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ip->delta.y *= -1; < 1205428626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or < 1205428632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ip->position.x += ip->delta.x * steps; < 1205428632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ip->position.y += ip->delta.y * steps; < 1205428696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.097s < 1205428697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1205428703 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1205428703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :slightly less than 0.1 second < 1205428707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :\o/\o/ < 1205428708 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Spiffy. < 1205428720 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, for the required part of mycology test suite < 1205428728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :average is still around 0.104 or so < 1205428848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, btw this is using 32-bit data types < 1205428863 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmm. < 1205428890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still "very fast" with 64-bit < 1205428916 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I bet caching is a bit harder with 64-bit data types or something. . . < 1205428918 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm just happy that I'm only about 25% slower given that I implement much more than you do :-) < 1205428924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, probably < 1205428939 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Especially since you're on a Sempron. < 1205428940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well that is with reflecting on fingerprints I assume < 1205428946 0 :slereah__!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205428946 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Those usually have somewhat small caches. < 1205428959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpu[1 x AMD Sempron(tm) Processor 3300+ (AuthenticAMD) @ 2.00GHz w/ 128 KB L2 Cache] < 1205428963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed :( < 1205428974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with 64-bit data types: < 1205428975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.159s < 1205428982 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still fast I'd say < 1205428983 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My Sempron is a 2800+. < 1205428988 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: sure, but there's still a lot of overhead just from the fact that fingerprints and mini-funge exist at all, whether they're enabled or not < 1205428991 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :256KB L2 cache. < 1205428998 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205429005 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and don't forget that I still do file IO there, since I have i and o. and then there's concurrency. < 1205429007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not the way I plan to do it, if they are not enabled, do not check < 1205429013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm < 1205429024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I know my hash table isn't very efficient < 1205429034 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and wrapping with cardinal could be made faster < 1205429049 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :considering that I think mine still has potential < 1205429052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205429068 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I just use what's built-in to D, it's hardly optimal < 1205429072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'll do some gprof analysis later < 1205429106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just I find gprof output exceedingly hard to parse < 1205429135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl food < 1205429378 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you do realize there are frontends to gprof :-) < 1205429542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, tried kprof < 1205429555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :know any good frontend? < 1205429562 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no, haven't used gprof much < 1205429678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I got an idea for how to make support for fingerprints almost as fast as without fingerprints when they are disabled < 1205429688 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :instead of mapping each to reflect I got a better idea < 1205429897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how does the last version perform for you now < 1205429916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ccmake should now show a use 64-bit option < 1205429946 0 :sekhmet_!n=pez@adsl-75-42-233-125.dsl.mdsnwi.sbcglobal.net JOIN :#esoteric < 1205430064 0 :sekhmet!unknown@unknown.invalid QUIT :"Reconnecting" < 1205430110 0 :sekhmet_!unknown@unknown.invalid NICK :sekhmet < 1205430175 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :looks like it's about twice as fast as CCBI < 1205430570 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, currently yes < 1205430580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course file IO would make it slower < 1205430589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1205430632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and I know the hash library I use is not very performant indeed < 1205430646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and there is room for lots of optimizing in wrapping code < 1205430654 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's probably more performant than the D internal one, which I know to be quite poor < 1205430663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1205430685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, problem is, interally, the hash library mallocs once for each cell, to store some data < 1205430703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you compile with debug, you can see that from gdb, by doing: call GC_dump() < 1205430710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :A LOT of output of small allocations < 1205430846 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the D one probably does that too, although it might be smarter in that it allocates in blocks < 1205430850 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :don't know < 1205430961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well the values I allocate in blocks, but the key data it does internally into small blocks < 1205430981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know a better hash library, but I think it may have license issues < 1205431048 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :speaking of licenses, I don't see CCBI's license anywhere in cfunge08, although you've even copied a comment directly from it ;-P < 1205431069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes but isn't it BSD? < 1205431076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you said that before < 1205431082 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, and what does the license say < 1205431095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that means it is leegal to relicense it under GPL in fact, afaik? < 1205431097 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer." < 1205431101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205431114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'll change the comment if you want though < 1205431117 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so just slap CCBI's license.txt in COPYING and you're good from my point of view < 1205431129 0 :sekhmet_!n=pez@adsl-76-204-90-133.dsl.mdsnwi.sbcglobal.net JOIN :#esoteric < 1205431163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is the 3-clause BSD license? < 1205431173 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1205431183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the one with the advertisement rule? < 1205431189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION changes the comment < 1205431195 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no, that was the 4-clause one < 1205431198 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205431225 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: just cat COPYING license.txt > COPYING :-P < 1205431239 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, afraid there may be an issue with doing that < 1205431245 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how's that < 1205431246 0 :sekhmet!unknown@unknown.invalid QUIT :"Reconnecting" < 1205431265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, would be confusing and probably not ok according to either your license or GPL < 1205431277 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, that's exactly how it's done < 1205431291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, show me some other software doing that < 1205431294 0 :sekhmet_!unknown@unknown.invalid NICK :sekhmet < 1205431302 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: just say "cfunge08 uses some parts of stuff based on CCBI, which is licensed thus:" < 1205431305 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: windows, for instance :-P < 1205431311 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it has parts of BSD's network stack < 1205431313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well open source software doing it < 1205431351 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you want me to go through random src projects looking for something which uses multiple projects' code? < 1205431356 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :s/src/open src/ < 1205431365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh ok no < 1205431439 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :google finds some stuff < 1205431445 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://www.j-dom.org/download/README for instance < 1205431452 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :don't know what that is but it has it the way it should be < 1205431456 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"The Hypersonic SQL license means that we must include the following, which applies only < 1205431460 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :to the files in hsql.jar: < 1205431461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, just rewrote comment locally anyway before you mentioned it her < 1205431462 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and such < 1205431473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's shorter now < 1205431478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : // The weird stuff below, is, as described by CCBI: < 1205431479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : // Instruction executes *at* k < 1205431479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : // If the instruction k executes, changes delta or position, we are finished. < 1205431479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : // If it doesn't we should jump to *after* the instruction k executed. < 1205431485 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but you've still been reading my source and basing much of your stuff on it :-) < 1205431499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yeah, true, and will even more for fingerprints < 1205431528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, problem is, it's hard to pinpoint where exactly is steeling your stuff < 1205431540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a line or algorithm here and there < 1205431549 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so just say "some of this stuff, you don't need to care what" < 1205431568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok good idea < 1205431795 0 :slereah_!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205431795 0 :slereah__!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205432060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, pushed change. Hope you are now happy < 1205432122 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeh, looks good to me :-) < 1205432178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Contents of section .data: < 1205432178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 606128 00000000 00000000 00000000 00000000 ................ < 1205432178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 606138 305e6000 00000000 0^`..... < 1205432181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what that is < 1205432196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :almost all is .rodata < 1205432205 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205432214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess some static variables < 1205432233 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1205432236 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And string constants. < 1205432246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, nop they are .rodata < 1205432249 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/constant/literal/ < 1205432254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so are literals < 1205432261 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1205432352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, btw I looked at the gcc -S output for the optimized binary and compared with the -O0 one < 1205432363 0 :sebbu!n=sebbu@ADijon-152-1-75-250.w83-203.abo.wanadoo.fr JOIN :#esoteric < 1205432368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the optmized almost all lines are just register operations < 1205432388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the -O0 one, there is a lot of push and pop < 1205432388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205432825 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does anyone compile befunge < 1205432825 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1205432831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or anything < 1205432860 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I found a reference to a "real" befunge compiler on google but the page is gone < 1205432886 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it might be quite simple, but you need to do compilation at runtime too < 1205432914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do making a native compiler would basically require you to include something like gcc < 1205432924 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in every runnable prog that is < 1205432938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*so < 1205433140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, JIT should be possible < 1205433204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, indeed, do one if you want < 1205433212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you would be even faster than mine :) < 1205433223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course you need to pass mycology as well < 1205433272 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"MCBC is an MS-DOS only Befunge-93 compiler" < 1205433274 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :there was ajti befunge compiler < 1205433276 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :jti < 1205433278 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :jit < 1205433282 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :somewhere < 1205433284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205433298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I doubt it supports p < 1205433333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :without p (or in 98, s as well) it would be doable < 1205433334 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: all the pages which link to it say it's fine < 1205433343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: for almost all programs, there will be no compilation at runtime. < 1205433343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205433347 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: the wiki page actually talks about compilation < 1205433355 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just programs that require it can always be writen < 1205433358 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*written < 1205433362 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"The Betty compiler, for example, treats every possible straight line of instructions as a subprogram, and if a p instruction alters that subprogram, that subprogram is recompiled." < 1205433366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I use p a lot in my code < 1205433367 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's JIT < 1205433376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, yep < 1205433379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sounds nice < 1205433383 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: do you change code at runtime? < 1205433387 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i was going to write a befunge compiler like that < 1205433392 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but, lazy < 1205433395 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that appears to be the only reference to betty, though :-/ < 1205433403 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that Google can find, anyway < 1205433403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes in befunge I would < 1205433444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1205433449 0 :faxathisia!n=ultravio@amcant.demon.co.uk JOIN :#esoteric < 1205433470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://quadium.net/funge/tbc/ < 1205433472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is that I find < 1205433487 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :doesn't count < 1205433505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm true just standalone interpreter/code bundler < 1205433513 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :with befunge you can do either threaded code or JIT < 1205433524 0 :ehird!n=ehird@91.105.73.126 JOIN :#esoteric < 1205433533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, threaded code would be same as interpreter? < 1205433540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just came up with awesome ideas for the underload compiler \o/ < 1205433542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1205433548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1205433551 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: interpreter is a main loop that looks at individual instructions < 1205433556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, aye < 1205433566 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: threaded code is each instruction is a piece of executable code, that executes and then passes control to the next instruction < 1205433567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like ccbi and cfunge does it < 1205433577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, sounds weird < 1205433581 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1205433583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not weird < 1205433589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205433600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: forths uses it < 1205433603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the firs tforth, for example :) < 1205433607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it dates back to at least the 70s < 1205433611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, maybe weird < 1205433615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but not in the 'new and crazy' sense < 1205433619 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's the normal way to compile forth, and it's how my brainfuck to smetana compiler worked :) < 1205433621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually you don't need to compile befunge, you can just make a CPU that executes befunge < 1205433625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :try one in VHDL < 1205433626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1205433628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205433630 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why do you think forths are really, really damn fast? < 1205433635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because of threaded code, mainly. < 1205433637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no idea that they were < 1205433643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(and the whole 'damn minimal semantics' thing) < 1205433652 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :forth is such a lovely language. i wish it were usable. < 1205433655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.forthfreak.net/index.cgi?BashForth < 1205433656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :slow? < 1205433658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205433667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: gosh, I wonder < 1205433677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: insert oblig. factor propaganda here < 1205433685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads reddit too much, mind b0rken :( < 1205433691 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1205433695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205433698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :StringThreadedCode < 1205433716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that sounds AWFUL < 1205433716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205433716 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all&lang=bigforth&lang2=gcc < 1205433718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh my god < 1205433719 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i have looked just a little at factor, and it seems to be much less lovely < 1205433720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you just basically store the code < 1205433721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205433733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: well duhhhh < 1205433735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean traditional forths < 1205433743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and also never compare anything to gcc < 1205433749 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: uhhhhh? < 1205433751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gcc has millions of people micro-optimizing it < 1205433755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm working on fingerprints atm, well mine will be virtually as fast when they are disabled, and even virtually as fast as long as no finger print is loaded, but it will be slower if they are loaded, then on same speed as CCBI I guess < 1205433756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it will always win :) < 1205433759 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bigforth is on optimized compiler < 1205433762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205433764 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't need that < 1205433767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean traditional, old forth compilers < 1205433768 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :besides forth is really low-level < 1205433770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are blazing < 1205433773 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so for benchmarks < 1205433779 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you should be able to hand-optimize < 1205433782 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: all depends on what fingerprints you implement. :-) < 1205433786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: not the point < 1205433788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bad compiler choice. < 1205433793 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand < 1205433802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes indeed, but I mean fingerprint mechanism in general < 1205433807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am talking about old, traditional forths < 1205433810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they -are- blazing < 1205433814 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you're saying biforth is worse than those? < 1205433818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: Yep. < 1205433824 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you're ntus < 1205433830 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and i'm not even gonna correct that typo < 1205433848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: it doesn't even use threaded code < 1205433850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :from what i can see < 1205433888 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bigforth website is amazing < 1205433896 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it was created in 1997 and the design was never changed < 1205433903 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so in that way, it's like Factor :) < 1205433911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: factor had a redesign like a year ago < 1205433912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1205433926 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: http://factorcode.org/slava/ < 1205433956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: oh, yes, that. < 1205433964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(i am assuming you know that was created *recently* :p) < 1205434085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1205434091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :translating functional stuff to a c-style syntax is amusing < 1205434095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :U[] map(U(T) func, T[] lst) < 1205434120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is still wondering about a befunge CPU < 1205434121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1205434125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coded in VHDL < 1205434129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1205434141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not very interesting, really < 1205434148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'd need to translate it to 1d before execution < 1205434155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to 1d? < 1205434158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1-d < 1205434164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why? < 1205434179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it could represent memory as 2D < 1205434183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not impossible < 1205434190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for befunge93 at least < 1205434209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could make a custom computer architecture for it < 1205434253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what is the point of the NULL fingerprint? < 1205434308 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: easy unloading of whatever's currently loaded? < 1205434317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :behh, I have to write a b98 interp now < 1205434324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: is it painful or just tedious :( < 1205434324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but whatever is currently loaded would be loaded under < 1205434337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why do you want to write one? :/ < 1205434337 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I found it quite fun, actually < 1205434342 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but some of the fingerprints were painful < 1205434345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why do you? < 1205434349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: TIME TRAVEL! < 1205434352 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I mean load whatever, then unload NULL < 1205434355 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yeah, that one in particular. < 1205434363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: it'll be a fun day with \8, I guess. Or do you really need ncurses? < 1205434385 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :only if you implement the NCRS fingerprint :-) < 1205434404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and yes quite fun apart from three things 1) stack stacks 2) wrapping 3) y instruction < 1205434407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :those are painful < 1205434412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: hmm. doesn't that require interpreter support? < 1205434416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fingerprints I'm working on atm < 1205434419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: like, you can't just ad-hoc add it < 1205434422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you must design for it < 1205434434 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you could ad-hoc NCRS I think < 1205434449 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ncurses, or fingerprints < 1205434450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CCBI certainly does < 1205434471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: nc < 1205434479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-- also jeez, befunge 98 needs a gc? < 1205434484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this'll be tons of fun ;) < 1205434490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(of course I will write my own! :p) < 1205434496 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the interface is such that the befunge program starts up NCRS, so it can be added "ad-hoc" < 1205434501 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: and no, you don't need GC < 1205434502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, however two things I can see would require redesign: time travel, and the hover mode stuff, < 1205434515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why would you need a gc? < 1205434517 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and IMAP < 1205434519 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and possibly others < 1205434522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is just that a gc is so much easier < 1205434527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what is IMAP one? < 1205434538 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: remap instructions, like swap 5 and 4 for instance :-) < 1205434549 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok won't do that one then < 1205434562 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but "redesign" is a bit overstating it, I think < 1205434570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I thought you hated gc < 1205434576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: eh, that's not too hard < 1205434579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just more indirection! ;) < 1205434579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I hate it with GUI apps < 1205434586 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :they just need adding data to the IP structure and some extra handling in all instruction execution < 1205434590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: change of heart < 1205434610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, or rather, I love it when it works, and hate it when it doesn't < 1205434610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205434639 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway anything requireing any exensive core change I won't do < 1205434659 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and "extensive" is a bit pushing it, as well :-) < 1205434670 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :MODE is somewhat extensive for queue and insert mode < 1205434675 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :TRDS is definitely extensive < 1205434680 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205434681 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the rest, I don't think so < 1205434683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and IMAP would be too < 1205434684 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :can't recall anyway < 1205434690 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not IMO < 1205434694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as I use a switch case < 1205434708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I will continue to do that for anything but A-Z < 1205434712 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: basically it's "instruction = ip.mappings[instruction];" < 1205434725 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :before you head in the switch-case < 1205434727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: how many fprints does ccbi implement? < 1205434732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes and that would make it slower :/ < 1205434737 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, lots < 1205434739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :almost all < 1205434744 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: all that I know of except WIND and SGNL < 1205434751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and FNGR < 1205434751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: what does TURT use? < 1205434752 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and TERM on non-Windows, unfortunately < 1205434752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205434754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever it was < 1205434762 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: FNGR? < 1205434768 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: outputs an SVG file < 1205434768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, RC/Funge crap < 1205434774 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: oh yeah, that one < 1205434776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you said it in your readme < 1205434782 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: oh sheesh < 1205434783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that sucks < 1205434783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205434786 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: crap indeed, it contradicts the spec < 1205434793 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I found it the easiest option actually < 1205434796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mine will be EXTENSIVEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE < 1205434798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't plan to do TURT < 1205434798 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's up to you < 1205434806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: mine will do SDL, SVG, PNG, ... :D < 1205434810 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1205434810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :configurable! < 1205434826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, just FILE and let befunge program output those themself < 1205434838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, however do NOT change specs for TURT < 1205434843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you need some variant < 1205434845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :totallyfreakingawesomebefunge98 --fprint=TURT,--sdl < 1205434852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ehm, why would i need to < 1205434854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah that would work < 1205434856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just a command line op as you see there :D < 1205434861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course --fprint will be a horrible hack < 1205434865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, allow the program to set output type? < 1205434869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :--fprint=NAME,FOO... < 1205434872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :replaces , with ' ' in FOO < 1205434874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, eww < 1205434877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :parses the options < 1205434882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and sends them off to NAME finger print < 1205434882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can't use getopt then :( < 1205434887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: thank god < 1205434890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, getoptlong is evil < 1205434893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205434894 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is GNU only < 1205434896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so is getopt < 1205434898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1205434901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's ridiculous < 1205434902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I use getopt :) < 1205434905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsds implement it nowadays < 1205434907 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :gnu is evil!!! < 1205434916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, hah not sure about that < 1205434923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what language will you code yours in? < 1205434930 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I want Aquarius :( < 1205434931 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: malbolge? :-) < 1205434935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: writing one in python with numpy for fungespace at first < 1205434937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then, C. < 1205434941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :micro-optimized, of course. < 1205434945 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, haha < 1205434947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, C99? < 1205434948 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you're all insane :-) < 1205434951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i hope to have the ugliest sprawling mass of befunge interpreter that exists < 1205434954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: K&R represent! < 1205434956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean, C89. :) < 1205434966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :--fprint=TURT,--svg=foo.svg,--sdl # MULTIPLEXINGF < 1205434970 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, offers some nice restrict keywords to ehird for further micro-optimizing < 1205434972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205434976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :C99 feature < 1205434979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P:P:P < 1205434982 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: __asm__ represent < 1205434987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not portable < 1205434991 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: how about fortran-77 < 1205434991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: x86 represent < 1205434996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, if it doesn't work on amd64 as welll < 1205435003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 286 represent < 1205435008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, look my current one can use 32-bit numbers if you want < 1205435019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: NIH represent < 1205435023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :NIH? < 1205435027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not INvented Here < 1205435036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-_- < 1205435073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway I'm wondering about a 128 bit integer mode, iirc there is some __int128 type of gcc? < 1205435079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would be slow of course < 1205435083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but just as an alternative < 1205435093 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :beats me, and go ahead < 1205435101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205435106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does the spec permit bignums? < 1205435107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205435111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, they do < 1205435113 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not very well < 1205435116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: damn < 1205435120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, as long as you can say how many bytes it is < 1205435120 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :there are some grey areas < 1205435122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so like all programs would break? < 1205435126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: -1 < 1205435126 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but it is explicitly said that it's allowed < 1205435136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: will programs break, though < 1205435136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well that's my plan as well < 1205435144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, wait < 1205435150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :extend the numbers < 1205435151 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pushing -1 would kinda suck for programs that test for a minimum size of 6, for instance :-) < 1205435151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, for funge08 standard < 1205435152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can say infinity < 1205435152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205435153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe 09 < 1205435155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'll see < 1205435172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hah < 1205435172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: but seriously -- do programs tend to assume infinite bitsize? < 1205435190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, they tend to assume 32-bit or better I think < 1205435193 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I guess most programs would be happy with 16-bit integers :-P < 1205435215 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not sure, you would need to store handprints and such in one < 1205435229 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'm not sure what you mean by 'tend to', since there aren't that many written programs ;-) < 1205435231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, btw, the handprint CFUN is in use < 1205435234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :by mine < 1205435238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just so you know < 1205435242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and don't try to use the same < 1205435281 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :there's already been a fingerprint overlap, two different SOCKs < 1205435284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, in my funge08 specs that I'm working on I decided to allow trinary funge or in fact n-nary funges < 1205435290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ouch < 1205435304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, we really need a new register < 1205435308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe you want to host it? < 1205435309 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but fortunately the only difference is that one includes SCKE and the other doesn't < 1205435323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: mine was called cfunge before yours : < 1205435324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, SCKE? < 1205435324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1205435328 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: another fingerprint < 1205435329 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it wasn't < 1205435335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i named it while tyou were just considering bash < 1205435341 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: adds a few funcs, meant to be used in conjunction with SOCK < 1205435342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so nyah, CFUN is miiine :D < 1205435350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, nop, I already had planes on cfunge back then < 1205435353 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :meh, awfully creative names there :-P < 1205435359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: welp, sorry, i'd already had a directory up < 1205435361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so HAH < 1205435361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway mine is released < 1205435371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1205435371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1205435371 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and CFUN is my handprint < 1205435376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tough. :p < 1205435381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for you yes < 1205435392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no.. i had the directory tree and handprint before, just not released < 1205435405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :('tough for me' -- I guess the befunge police are going to raid my house) < 1205435415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :handprints & fingerprints are broken anyway. < 1205435421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're centralized and overlaps are too easy. < 1205435421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well they are indeed < 1205435430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well just call your CBEF < 1205435433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a URI would be nicer < 1205435437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nooo, you do that :D < 1205435441 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I don't < 1205435446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://elliotthird.org/b98/cfunge < 1205435451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I plan to provide unefunge version < 1205435452 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I agree with ehird, the whole handprint/fingerprint mechanism is a bit messed up, shouldn't need centralization < 1205435452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as well < 1205435457 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but I don't know if it can be solved well < 1205435460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, I am supporting N-dimensionals < 1205435460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, indeed < 1205435463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, 404 < 1205435467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 404, gosh really < 1205435469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that was an example URIprint < 1205435470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1205435477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes that would be a good idea < 1205435496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: anyway, since i support any N dimensions, I have the right to CFUN < 1205435498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205435520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl food < 1205435561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: URIprints might be a bit verbose though < 1205435594 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and they can overlap as well, just takes time < 1205435610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: no, that's not the point < 1205435622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :URIs specific purpose are unique, global identifiers < 1205435623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205435638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's better, sometimes they're URLs. then humans can utilize them -- like loading it via http < 1205435642 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, they should be that, but they aren't always :-P < 1205435654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: sure, but it is far better than the current system < 1205435661 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :agreed < 1205435666 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :besides, the odds of clashing and then someone else doing a different ext --- it is just far too unlikely :) < 1205435680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :here is what would cause a clash < 1205435686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- someone releases an ext under a uri < 1205435697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- it is a very very common uri < 1205435700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- someone else thinks it's good < 1205435705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now I dunno about you but that seems HIGHLY unlikely < 1205435706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, good idea, one for my funge08 specs < 1205435708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1205435712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in the case where it's a URL: < 1205435718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- someone has a URL probably on a domain < 1205435720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- releases ext < 1205435733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- the domain expires --NOTE AT THIS POINT THE URI IS STILL FINE! It's not a URL, even if it's identical. < 1205435753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, along with gnirtsn (string with size in front) < 1205435753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- someone else gets it, also a befunger < 1205435753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- they make another fprint < 1205435753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- and release it under the same uRI < 1205435755 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that's what I was thinking < 1205435757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :both of those will basically never happen < 1205435758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ever < 1205435758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205435762 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because, in 99% of cases, they will be URLs. < 1205435765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: yes. < 1205435768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but even so < 1205435773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the likelyhood of the above < 1205435778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is .. < 1205435779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1205435784 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1205435797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ccbi.d:319: Error: cannot implicitly convert expression ((helpRegex.test)(s)) of type int to bool < 1205435798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whut < 1205435798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205435813 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :old compiler, old tango? < 1205435819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: 4.1 < 1205435822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and dsss'd tango < 1205435827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lunix, x86 < 1205435837 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :4.1 doesn't mean anything, which version of GDC is it :-) < 1205435849 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and is that all it says? < 1205435864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gdc (GCC) 4.1.3 20070831 (prerelease gdc 0.25, using dmd 1.021) (Ubuntu 0.25-4.1.2-16ubuntu1) < 1205435869 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :could be too new a tango, actually < 1205435871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: it had some ncurses foobar but that doens't happen now < 1205435871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so. < 1205435874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1205435875 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'll have a look see < 1205435875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the tango is the latest < 1205435895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, cfunge 0.1.0 released, just making a tar ball for it < 1205435896 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :nope, test should return bool still < 1205435902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: tough. CFUN is mine < 1205435905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205435907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no it isn't < 1205435930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because denying something i said on irc will cause the befunge police to come and get me? :) < 1205435937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, nop < 1205435943 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that's /all/ it says? if so, just put cast(bool) before it and hope it works :-P < 1205435943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just because I released first < 1205435990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, just because you're an ass and didn't ask the channel if anyone had used the fingerprint before using it, won't stop me using it.. < 1205435997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I did < 1205436000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you weren't here < 1205436012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well then, now i am < 1205436020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and now it's too late < 1205436020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, sorry for not being present 100% of the time < 1205436024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and no it isn't < 1205436032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it takes about 10 keypresses to tap over a string literal. < 1205436040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it does for you < 1205436044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but release is made < 1205436054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: release is made!12121 < 1205436063 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is now set in stone, and i will just have to weep, because i wasn't there. < 1205436067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION = horror and shame < 1205436103 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what's with all the trolling :-P < 1205436111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: reactionary trolling < 1205436113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to trolling < 1205436114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205436148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :welp, i'll keep using CFUN, because i've been using it for longer than AnMaster has, and just because i wasn't there on one specific date doesn't mean that he now has the right to it < 1205436163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if AnMaster would like to complain, maybe he could move to a fingerprint that wasn't in use when he chose it < 1205436170 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :timestamps or it didn't happen < 1205436178 0 :olsner!n=salparot@cust.fiber-lan.vnet.lk.85.194.50.194.stunet.se JOIN :#esoteric < 1205436194 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :except that the damn things can be falsified, d'oh < 1205436207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I don't think thoughts can be timestamped. however, if he had asked earlier, I would have been happy to tell him that yes, it was in use. < 1205436232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rage.kuonet.org/~anmaster/cfunge/ < 1205436250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 'my heart has been ripped out and filled with dread. I think I will cry myself to sleep.' < 1205436255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am not sure what kind of response you are aiming for. < 1205436281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that no one complained when I announced I would use CFUN < 1205436300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because I wasn't here. does this kind of thing not process for you? < 1205436301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant (iirc, or maybe ais, even said it was a good choice) < 1205436309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can hardly say it was in use when I wasn't there < 1205436317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and expecting me to and using that as justification is ridiculous < 1205436344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, same is expecting me to believe you actually had selected than handprint before < 1205436358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: uh, yes i did < 1205436374 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(other response that you seem to expect: 'YES! It is a befunge conspiracy of epic proportions. how did you figure me out?!') < 1205436374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :expecting me to and using that as justification is ridiculous < 1205436375 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as well < 1205436396 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I grepped the logs, a quick check suggests he's said nothing of the kind < 1205436427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: that is correct. < 1205436430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, who? ais? < 1205436445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I do not see why I would mention it when the question of usage was not asked. < 1205436462 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: anybody :-P < 1205436484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mar 11 18:50:24 CFUN eh < 1205436484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mar 11 18:50:33 Deewiant, er yes? < 1205436484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mar 11 18:50:36 is it in use? < 1205436484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mar 11 18:50:47 don't think so < 1205436484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mar 11 18:51:02 most use BEF or something instead of FUN < 1205436485 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mar 11 18:51:14 FUN as in FUNGE < 1205436502 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I said I don't think it's in use < 1205436515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and no one else complained < 1205436530 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you can't expect people to be watching IRC all the time < 1205436533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you haven't announced the handprint before either btw < 1205436537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[18:28] you can't expect people to be watching IRC all the time < 1205436538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1205436567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and there is absolutely no way I can prove that I had CFUN before you, because that's physically impossible < 1205436584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only thing you can do is make the assumption that i'm not lying for the fun of it, and believe it < 1205436591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or.. decide that i must be lying < 1205436597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for some crazy reason < 1205436602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but you got a suggestion for other handprint < 1205436604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is as good? < 1205436624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and would still work with the name cfunge < 1205436635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no it's not. you suggested CBEF < 1205436642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is an N-funge interpeter. < 1205436654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and I don't like that much, because I will add more dimensions < 1205436659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :besides, CFUN is fine and I was using it prior to you. < 1205436669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why should i have to change the fingerprint that I already used? < 1205436705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same for me < 1205436707 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: for what it's worth if it's only in your head, I'd suggest it was in fact AnMaster who "was using it" < 1205436723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: well, no. it is probably somewhere on my harddrive < 1205436735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but released *shrugs* < 1205436738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :still, the point is -- if I was there when he asked, I could have honestly answered 'yes. it's in use.' < 1205436752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: sticking a tarball on http is not a way to seal your ownership of something.. < 1205436758 0 :jix!n=jix@dyndsl-091-096-061-211.ewe-ip-backbone.de JOIN :#esoteric < 1205436996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, see what Deewiant said < 1205437047 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and in any case, I'd say whoever releases something first is the one who can claim rights to the name < 1205437057 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but whatever, fight it out amongst yourselves :-P < 1205437065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm not going to fight < 1205437091 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: since you're going bignums why not just make the handprint "CFUNGE", nobody's claiming they have to be 4 bytes :-) < 1205437095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't simply care of ehird wants the name, he didn't announce it, nor release it, first < 1205437109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, create idea! < 1205437111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :greate* < 1205437112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :great* < 1205437117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'll just state that I was going to use CFUN before you even started working on Bashfunge, and will continue using it. there is nothing to do with 'wanting the name' because I'll just release with it. < 1205437126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can argue with that if you'd like; fin < 1205437127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e < 1205437160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway I'm also using the name cfunge for the interpreter, or cfunge08, both are valid names for it < 1205437224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Why not use CF08? < 1205437239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Since you're not implementing strict Funge-98, you indicate that it's your standard. < 1205437256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, maybe, I will implement strict 93, 98 and 08 < 1205437262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as standard modes < 1205437268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I already got some code in place for it < 1205437273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just not functional yet < 1205437280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, the interpreter is called cfunge08 is it not? < 1205437284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :therefore, CF08 is a good fingerprint < 1205437288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :handprint < 1205437299 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is, but well ehird: for what it's worth if it's only in your head, I'd suggest it was in fact AnMaster who "was using it" < 1205437305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and in any case, I'd say whoever releases something first is the one who can claim rights to the name < 1205437314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you don't accept those arguments of Deewiant ? < 1205437331 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's obvious he doesn't care < 1205437353 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Hi all. < 1205437365 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: got a spec written yet? < 1205437383 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I have it started. < 1205437398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so even sayiung that CF08 is a good handprint, you don't want to use it because.. < 1205437410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, because I'm convinced of what Deewiant said < 1205437424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, CF98 would be good for your one in that logic < 1205437431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hardly.. < 1205437437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it would < 1205437444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because all currennt fingerprints are funge-98 ones < 1205437449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so yours is the one that needs explicit clarification < 1205437453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :besides, mine isn't called cfunge98 < 1205437455 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway 98 is the standard mode for me < 1205437456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yours IS called cfunge08 < 1205437458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mine* < 1205437504 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl implementing fingerprints < 1205437546 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: http://deformative.hosting.arsfides.com/upload/files/1/spec.txt < 1205437613 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"ignored args" - ah, of course, I was wondering how that'd look otherwise :-) < 1205438097 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1205438342 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Reordering the args is quite an interesting problem. < 1205438359 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Discussed it for a long time yesterday if you have logs. < 1205439334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :CHALLENGE < 1205439334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# define UL_DISCARD foo = UL_stk->prev; free(UL_stk->top); free(UL_stk); UL_stk = foo; < 1205439340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :write that without the temp var'foo' < 1205439341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205439354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impossible i think < 1205439436 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Did you see the challenge from yesterday? < 1205439588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: No, < 1205439610 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: if you're feeling lucky, just remove foo and then do UL_stk = UL_stk->prev at the end ;-) < 1205439621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: haha < 1205439633 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it'll probably work in most cases < 1205439639 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and crash the program in others ;-) < 1205439662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is rewriting the Underload2C prelude < 1205439669 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Want me to post it? < 1205439985 0 :slereah__!n=slereah@ANantes-252-1-53-134.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1205440101 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205440503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: k. < 1205440515 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :http://members.iif.hu/visontay/ponticulus/images/szovegek/begriffsschrift.jpg < 1205440516 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1205440534 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :For some reason, this notation was never used again, as far as I know! < 1205440765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm < 1205440771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :' Please insert your fruit here.' < 1205440777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's what i'm putting in the prelude for the compiler to replace < 1205440778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205440797 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it'll probably work in most cases < 1205440797 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : and crash the program in others ;-) < 1205440798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1205440819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it would crash in cases where the system mmap mallocs < 1205440835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like both glibc (for larger objects) and openbsd (for all objects) does < 1205440851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it will unmap it on free < 1205440869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, that IS one thing the world needs... < 1205440878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :symntax for template sin c commands < 1205440878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what? < 1205440879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205440879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comments < 1205440880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1205440885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/ foo < 1205440888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ://foo < 1205440890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1205440890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205440891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/*$ foo */ < 1205440896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err what? < 1205440901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 'templates' < 1205440905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :syntax for templates in c commands < 1205440910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. a widely accepted way to do it < 1205440916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there are no templates in C afaik? < 1205440920 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's a C++ feature < 1205440927 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not C++ templates you dummy < 1205440929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/*$ foo */ means 'replace this comment with the value of foo' < 1205440935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205440945 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, see: #define < 1205440950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: haahahahahaha < 1205440954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean for interpolating from EXTERNAL sources. < 1205440958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205440960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like the underload compiler does its compiler < 1205440962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*compiling < 1205440964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then stuffs it into the prelude < 1205440966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at the right place < 1205440973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could put /*$ blimps */ in the prelude < 1205440979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1205440979 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then, it would do something like: < 1205440985 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :launch the missiles < 1205440988 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and blimps fall from the sky < 1205440992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interpolate textOfPrelude [("blimps",compiledCode)] < 1205441003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then that marker would be transformed into the compiled blimps < 1205441009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :we < 1205441010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :w/e < 1205441011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* < 1205441030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 'i am going to tell you to use #define and be confused about your idea, then just say "whatever" when it is complained' < 1205441052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no, I just gave up trying to understand it < 1205441061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interpolate textOfPrelude [("blimps",compiledCode)] < 1205441062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let's say < 1205441071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :textOfPrelude = "void foo() { /*$ blimps */ }" < 1205441071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you replace text at a marker? < 1205441074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1205441078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :compiledCode = "foobar" < 1205441080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would return < 1205441086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"void foo() { foobar }" < 1205441090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, just a regular template language < 1205441095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BUT, it's in c comment syntax < 1205441097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1205441103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, interesting < 1205441103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so its highlighted correctly < 1205441106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and is still valid C etc < 1205441116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's just like how /** ... */ is accepted as docs < 1205441118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and highlighted thus < 1205441130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, bah /** */ is for doxygen iirc? < 1205441135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, everything < 1205441142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :emacs highlights /** */ differently < 1205441143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :try it < 1205441148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes I know it does < 1205441153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it could do something similar for interpolation stuff < 1205441160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only problem is, /*$ ... */ is ugly < 1205441160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205441170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but I only seen it used for doxygen comments < 1205441177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/*$ blimps $*/ could work I guess < 1205441185 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :use /*/ ... */ and confuse people < 1205441196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: heh < 1205441204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hah < 1205441204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205441206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : /*< blimps >*/ < 1205441209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is highlighted differently by gcc < 1205441222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :gcc? O_o < 1205441222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :by gcc? < 1205441226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :errr < 1205441227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :emacs < 1205441228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XDDD < 1205441230 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1205441231 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :what's this for? < 1205441232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hah :D < 1205441236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: the underload compiler < 1205441241 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :same author.. < 1205441249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all the compiled blimps need to be stuffed into the right place in the prelude < 1205441256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes but why does emacs highlight /*< >*/ differently? < 1205441257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm just devising a nice way for templating in C < 1205441257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205441260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I have no goddamn idea < 1205441264 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ok cool < 1205441264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it works out nicely < 1205441266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205441270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could be even more fancy, < 1205441271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is probably used for something else < 1205441277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you risk a collision < 1205441277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and let the templating language do the numbering < 1205441278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like thus: < 1205441306 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric : 7 < 1205441315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/*< foreach blimps blimp >*/ case /*< blimp.num >*/: /*< blimp.code >*/ break; < 1205441316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205441317 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : 6 < 1205441317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205441320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and an endforeach < 1205441321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205441337 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :why is it inside comments o_o < 1205441344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: so it stays valid c. < 1205441345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :duh. < 1205441345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205441349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well my example isn't valid < 1205441349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1205441350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but still < 1205441350 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :doesn't look like valid C < 1205441354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it SCANS as valid c < 1205441358 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205441362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and editors highlight it OK < 1205441363 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1205441367 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :Yeah cool < 1205441368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also indent it ok < 1205441372 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :It's a good idea < 1205441376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway the reason for /*< >*/ by emacs, is PROBABLY it is already used < 1205441382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: who cares < 1205441383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205441387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I suggest you check so there won't be a collision at least < 1205441396 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, then just use /** */ for it :P < 1205441403 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :it's more likely a bug in the hilighting < 1205441429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then I will report that to emacs ppl so they fix it for next version :D < 1205441465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :embeddedness < 1205441467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : /*< foreach blimps as blimp: 'case $blimp.num: $blimp.code break;\n' >*/ < 1205441468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1205441475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i should just embed lua in there < 1205441519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, my emacs highlight it the same way btw < 1205441524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :using emacs-23-pre < 1205441567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :emacs-22 does it differently though < 1205441594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err wait, emacs-23 does it differently to, had wrong major mode < 1205441610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I think I know what it is < 1205441615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, one line comments < 1205441619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for doxygen < 1205441626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I've seen it in structs < 1205441627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like < 1205441637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/*< blah blah */ < 1205441663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/*< for i=0,blimpc do out("case ", i, ":\n", blimps[i], "\nbreak;") end >*/ < 1205441665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hee < 1205441714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway (real world example): < 1205441716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : typedef struct { < 1205441716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : size_t i_items; /**< The current number of items in the table */ < 1205441735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so just as a warning < already got a meaning in start of comments < 1205441747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nuh uh < 1205441750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/**< < 1205441752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not /*< < 1205441763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, but I think I've seen /*< too < 1205441767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure though < 1205441775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and emacs highlights /** the same way as /*< < 1205441875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, there? < 1205441876 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :ehird: http://deformative.hosting.arsfides.com/upload/files/1/spec.txt Sorry it took so long, I sorta fell asleep. < 1205441889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, should fingerprints be local to ip in concurrent funge? < 1205441905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and, should they inherit over t? < 1205441998 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :all specified in the spec < 1205442005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :070100002c0000000000000000000000000000000000000000000000000000000000dd8fff010000dd8f27000000fb02ef07000000fb01ef070000000000bc8f8800040000bc012f65746300 < 1205442015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hex of a VAX program to rename /tmp to /etc < 1205442047 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually, the latter is unspecified < 1205443870 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1205443883 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Looks like you guys are re-inventing Objective C. :p < 1205444526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Eh? < 1205444615 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Objective C is implemented as a fairly thin templating system over C. ;) < 1205444626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Heh. < 1205444633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :CFront! < 1205444643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Though, of course, Objective-C doesn't actually compile into C..) < 1205444665 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You can implement Objective C with just a preprocessor into C. < 1205444672 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(GCC used to do just that) < 1205444693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Same with anything. < 1205444694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1205444698 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :what more is a compiler? < 1205444703 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Touche. < 1205444736 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Objective C is, interestingly, a strict superset of C. . . < 1205444743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Not interestingly -- sanely. < 1205444747 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1205444752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Objective-C is really well designed like that. < 1205444758 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unlike C++. < 1205444761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bingo. < 1205444775 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :higher order C < 1205444787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: hee < 1205444799 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :int lambda (int x) { return ++x; } < 1205444802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm actually working on a little language which is the marriage of C and functional stuff < 1205444804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :be very afraid < 1205444818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: in mine that's: (x) => { return ++x; } < 1205444819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for now < 1205444823 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1205444838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205444848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or < 1205444849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :typed: < 1205444853 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :does it compile to ML or something? :P < 1205444858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :int (int x) => { return ++x; } < 1205444866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: naww < 1205444886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: I managed to find a anice way to represent generic types < 1205444887 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You could actually probably get GCC to handle anonymous functions with ease. . . < 1205444891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Here's id :: a -> a: < 1205444894 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Already, they support *scoped* functions. ;) < 1205444896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :T id(T a) { return a; } < 1205444905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is, UpperCase = generic type. < 1205444911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Looks C-ish, which is a Good Thing. < 1205444922 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, I decided that for passing around functions, Declaration Is Usage failed miserably. < 1205444923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So: < 1205444926 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :int main(){int foo(int *bar){++*bar;};int baz=0;foo(&baz);} < 1205444938 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :^ Perfectly valid GNU C, does what you expect. < 1205444939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :U[] map(U (T), T[]) < 1205444950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :U[] map(U (T) func, T[] lst) // with arg names < 1205444957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not sure about that function type syntax yet < 1205444957 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :-frnested-functions is needed though < 1205444959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it seems good < 1205444966 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: Or -std=gnu99. < 1205444968 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah, really first class closures requires GC < 1205444973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes < 1205444981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, also.. < 1205444985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have both 'void' and 'unit' :-) < 1205444992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mostly you use 'void' - for IO-only functions etc < 1205445000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unit is just there for.. mathematical nicety, I guess. < 1205445022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh yeah, and algebriac data types in da house. < 1205445025 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :void = False, unit = True < 1205445049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data LL { nil, cons(a, LL) } < 1205445050 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1205445055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that raises problems with generic types < 1205445060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But I don't want to use 'a < 1205445061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's ugly < 1205445062 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::S < 1205445064 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION considers that Haskell could have used Void instead of () for things like IO () if Void had been thought of at the time < 1205445068 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :what is <..>? < 1205445081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: that's the new syntax for parametized types < 1205445084 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::S < 1205445086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data LL a = Nil | Cons a (LL a) < 1205445089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :translated to haskell < 1205445089 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :can't you do bettec? < 1205445093 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :than C++ < 1205445095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: precedent in C-alikes: C++, Java < 1205445102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it looks alright, anyway < 1205445140 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :however, I do need to solve that generic thing < 1205445154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data list_t { nil, cons(a, list_t) } < 1205445156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would work < 1205445157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but.. < 1205445167 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205445171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data list_t { nil, cons(a, list_t) } < 1205445174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205445175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data list_t { nil, cons(T, list_t) } < 1205445180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that would produce < 1205445186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :list_t nil < 1205445186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1205445192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err wait < 1205445193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :list_t nil < 1205445194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1205445201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :list_t cons(T, list_t) < 1205445203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, just right < 1205445215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: I haven't figured out 'T a' vs 'T a()' yet. < 1205445224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the most elegant way to do it < 1205445229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I considered: < 1205445239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'T a = b;' is short for 'T a() { return b; }' < 1205445248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and zero-arg functions don't need () to call < 1205445279 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Convince him to stop. < 1205445285 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Show him the ways of D. < 1205445296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Heh, hardly. D is nothing like the thingy I'm making. < 1205445305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And I've used D, thankyouverymuch. I didn't like it, really. < 1205445314 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I did not like D either < 1205445333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: Yes. < 1205445335 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :also I beat a D coder in some contest using C... < 1205445344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For a start, and completely unrelated to all the other, more significant problems -- < 1205445347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the syntax is awkward. < 1205445356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's like Perl, but with less symbols, making it even uglier < 1205445391 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes off to try to install D < 1205445426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: 'Tell him that D is so much better!' 'Hm, D, I should try that.' < 1205445430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so many people like that :) < 1205445445 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I was mostly joking, really. < 1205445451 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1205445460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Good. Well that was to GregorR anyway. :P < 1205445469 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But, seriously, I should try D. < 1205445471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: any comments on T vs T()? < 1205445473 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :cwcrntcc < 1205445482 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :from :P < 1205445490 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But something a bit more important. < 1205445496 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should make interrupts. < 1205445496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: heh, hardly.. :) < 1205445502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: dunno if I'll do continuations. < 1205445514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OCaml doesn't! :P < 1205445520 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1205445528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(OCaml being the FP language that most resembles this one -- i.e. not pure, but not Lispy) < 1205445555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: Maybe I'll do it the dumb way (stack smashing) < 1205445565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, the preprocessor is gone. # is still used though < 1205445574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#import cont /* it would probably be this */ < 1205445587 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :well if anyone wants to use cpp they can do just that < 1205445587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'#foo ...' at the start of a line means 'compiler directive foo: ...' < 1205445598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which makes the distinction between code that will be compiled < 1205445601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and meta-data < 1205445608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: They should not -- this handles re-imports < 1205445615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you don't need to write a header file < 1205445619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just: #export a b c d < 1205445635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and when compiling it'll optionally generate an 'interface file' which gets installed < 1205445644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is like a header file, but far more compact < 1205445648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and not valid code, of course < 1205445651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and #import looks for them < 1205445655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it goes: < 1205445678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IF in $INCLUDEPATH (., , system dir), code file in $INCLUDEPATH < 1205445687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& if the code file is not compiled it does it for you < 1205445693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: So yeah, down with cpp :p < 1205445727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: also, it would be 'T callcc(T (cont_t))' < 1205445744 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ehird: You could actually probably get GCC to handle anonymous functions with ease. . . <-- as long as it doesn't use trampolines in GCC, that needs executable stack iirc < 1205445745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where cont_t = 'void (T)' < 1205445754 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so in full < 1205445760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :T callcc(T (void (T))) < 1205445784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: Not a bad callcc signature I must say. < 1205445791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In Haskell-style types that looks like < 1205445798 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :plz call it cwcrntcc < 1205445804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :callcc :: ((a -> ()) -> a) -> a < 1205445808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is far less easy to understand < 1205445811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: no < 1205445815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's C-style but not C-ugly < 1205445815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205445816 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::((( < 1205445827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: this will have support for declarative programming < 1205445828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if that helps < 1205445836 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1205446883 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds himself browsing the logs at 1 page per second < 1205447083 0 :Quendus!unknown@unknown.invalid QUIT :Remote closed the connection < 1205447186 0 :Quendus!n=Quendion@145.175.adsl.brightview.com JOIN :#esoteric < 1205447215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :redrawerredrawers is a word < 1205447216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's great < 1205447270 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i find that slightly hard to believe < 1205447303 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i didn't think English was quite that permissive < 1205447528 0 :atsampson!unknown@unknown.invalid QUIT :Remote closed the connection < 1205447540 0 :atsampson!n=ats@7hw.poik.net JOIN :#esoteric < 1205447838 0 :oklokok!i=oklofok@194.251.101.162 JOIN :#esoteric < 1205447856 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: parsed how exactly? < 1205447902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: what parsed where what what and what and what < 1205447932 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :is that a noun meaning "those who draw that red, which describes those who draw red" < 1205447942 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :that word you said was a word < 1205447961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: I don't know < 1205447963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ubt it's in a word list < 1205447969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it can be typed on the left hand < 1205447975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is the REAL longest word that you can do that with < 1205447977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :qwerty ofc < 1205447989 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it's in a word list? :D < 1205447992 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what word list? < 1205448010 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Lol. < 1205448017 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I think I just solved my problem. < 1205448021 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Without brute force. < 1205448075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: dunno < 1205448077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Moby something < 1205448081 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that abcdef -> bdeefa or whatever problem? < 1205448118 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i also got a sense it might be easier than it looked at first < 1205448125 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :wwwhat problem < 1205448187 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: The one from yesterday. < 1205448192 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :http://deformative.hosting.arsfides.com/upload/files/1/np.txt < 1205448238 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, never mind. < 1205448245 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I still need to implement swapping. < 1205448336 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :definitely not np < 1205448340 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm thinking O(n) < 1205448362 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205448375 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, make sure you read the whole thing. < 1205448376 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :actually the trivial solution is O(n^2) < 1205448409 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :... < 1205448412 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Totally not. < 1205448438 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :go through the list as I, for each element go through the result list as J and if J should have I, put it there < 1205448449 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :rrright= < 1205448450 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric := < 1205448453 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :..? < 1205448457 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :isn't this the edit distance problem? < 1205448461 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1205448480 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Yours fails on [a, b] to [b, a] even < 1205448482 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205448515 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :And that would _not_ make optimal solutions. < 1205448519 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Read the whole file. < 1205448521 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oh, minimum space? < 1205448524 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :didn't know that < 1205448527 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :...file? < 1205448531 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :You should read Shin-Cheng Mu and Silvija Seres approach to the edit distance problem and other combinatoric optimization problems < 1205448549 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :[21:42] pikhq: You have a block of memory, and a new order, some locations are duplicated, some are no longer used, but they refill the same block, design an algorithm to find the least number of movements needed. < 1205448549 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: No minimum space. < 1205448549 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :[21:43] So you have [a b c d e f] and it needs to be transformed to an arbitrary new order, for example: [a b e e f c] < 1205448549 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :[21:43] You have access to extra space. < 1205448553 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Minimum mov < 1205448564 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: minimum space as in O(1) spae < 1205448566 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :*space < 1205448613 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Well, I don't think you quite get the goal. < 1205448621 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :So uh, you should read the whole txt file. < 1205448630 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Because no one really got it until the end. < 1205448637 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i guess, just thought that was the complete description < 1205448639 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :wait a mo < 1205448696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like this ciphery thingy: < 1205448699 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: You misunderstand the goal, the goal is to create a program that generates a perfect set of instructions to reorder a block of memory to a new order. < 1205448703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :abcdef -> acefdb < 1205448707 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :what are the exact space and time? ordo bounds on the permutator and the algorithm creator? < 1205448709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :abcdefg -> acegfdb < 1205448712 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :*permutator creator < 1205448727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it makes most text look like line noise but *kind of* resembles the original text < 1205448758 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205448761 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :s/?/ < 1205448767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1205448774 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: in my sentence < 1205448828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1205448836 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: or is the goal to optimize for each? i'm fairly sure that cannot be done < 1205448841 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205448856 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :the actual permutator must be *perfect* < 1205448907 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205448935 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it's still not clear to me, can the permutator access any amount of space? the task is trivial if it can < 1205448959 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I will try to explain. < 1205448964 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my intuition says it's O(n) < 1205448970 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Try not to have preconceived notions. < 1205448985 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and with at most one extra temporary location used < 1205449005 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :You are writing a program that outputs a set of instructions. < 1205449011 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The instructions it outputs must be perfect. < 1205449020 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: yes, but what's *perfect*? < 1205449023 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :The instructions it output does one thing. < 1205449029 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :copy instructions, as few as possible, i take it < 1205449030 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: Least movl < 1205449035 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1205449046 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :there will be exactly n moves with what i said right away < 1205449048 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or does swap count as a single instruction? < 1205449049 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :so it's perfect? < 1205449065 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205449066 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Swap is NOT single. < 1205449066 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :which is here http://citeseer.ist.psu.edu/468298.html < 1205449079 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ofc not, you don't always have to do even that < 1205449124 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok so then my guess is you need a temporary location iff no letter disappears, in which case this is a permutation (oh, and not being the identity) < 1205449141 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you can use any disappearing letter as scratch < 1205449203 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ideally you want all copies to be a letter moved to its final location, if possible < 1205449210 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm fairly sure it's not *np*, at least < 1205449224 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: I am starting to agree. < 1205449232 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Because my program is almost done. < 1205449259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my encoding mehtod, if anyone didn't immediately get it < 1205449264 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :I just need to figure out how I want to optimize for swapping, if I just use pure mov on the memory, then I am done. < 1205449274 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when do you _have_ to move a letter other than to its final destination? when there is a permutation cycle < 1205449284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :enc a:b:xs -> [a]++enc xs++[b] < 1205449294 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: You never move the letters. < 1205449298 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you must do this once for each cycle < 1205449300 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :You generate code that will move the letters. < 1205449306 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: i mean copy < 1205449321 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :"Schönfinkel himself contrives a more drastic but very curious reduction of C, S and U. He adopts a new function J, interpreted as having U as value for C as argument, C as value for S for argument. Then he defines "S" as "JJ", "C" as "JS", and "U" as "JC". This trick reduces every closed statement (of logic and set theory) to a string of "J" and parenthesis." < 1205449326 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :Old timey Iota :D < 1205449342 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: um generating code is trivially equivalent to finding out how to do it with copying < 1205449362 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: The only time you need to move other than the final destination is a swap. < 1205449369 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :And that would move to the temp space. < 1205449378 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :cool slereah < 1205449390 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Unless I decide to use a register instead. < 1205449416 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deformative: yes. and i think you only need one swap per permutation cycle in the problem < 1205449432 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: I bought the fucking 650 pages specially for that article < 1205449439 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1205449440 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :Though the rest is pretty cool too. < 1205449465 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although that might not be quite well-defined. hm. < 1205449487 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :This is quite confusing, but really not that complicated once I put it in code. < 1205449494 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Confusing, but not that complicated. < 1205449495 0 :Deformative!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1205449566 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :I was trying to see by hand what that function is doing < 1205449570 0 :adu!n=andrew@pool-70-21-2-127.res.east.verizon.net JOIN :#esoteric < 1205449577 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :But I must be retarded, since I created a language for that. < 1205449578 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :how do you do it? i think my current solution is perfect in terms of moves, but it uses a call stack < 1205449629 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: um the call stack is irrelevant to the final generated copies? < 1205449645 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i meant the programs generated need a call stack < 1205449649 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :or do they... < 1205449653 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :actually not, of course not < 1205449654 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :lol :P < 1205449660 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :second order programming is confusing < 1205449714 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :how about infinite order programming where the result program is the fixed point? < 1205449717 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :yeah, think about tht < 1205449719 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :*that < 1205449723 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'll get some coffee < 1205449724 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1205449729 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :what's second order programming? < 1205449744 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :lisp macros? < 1205449761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: functions taking/returning functions that take/return functions < 1205449784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :N-order functions are functions taking/returning (N-1 order functions). < 1205449793 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so like, Haskell for Dummies? :) < 1205449806 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :sounds like common practice in haskell < 1205449814 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :hi all < 1205449820 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1205449822 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: i'm using lisp! this sucks. < 1205449840 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my guess is that the number of copies required = n + (number of cycles length > 1) - (number of letters that remain at their original place) < 1205449846 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION isn't much interested in what langs people don't like < 1205449863 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: I like Fortress < 1205449873 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but it's still vague in my mind < 1205449874 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :what's that? < 1205449900 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :http://fortress.sunsource.net/ < 1205449915 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :its like Fortran+OCaml+Mathematica < 1205449923 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :actually optimizers can be done with something like a fixed point of an infinite order program < 1205449936 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: i meant generating code < 1205449949 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :n-order code generates (n-1)-order code < 1205449968 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: What in n-order code? < 1205449979 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205449980 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :like < 1205450025 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm, wonder if i should actually explain something < 1205450035 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :say you write a program that does task T < 1205450038 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :that's first order < 1205450045 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ah yes sure < 1205450047 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :if you write a program that writes a program to solve T < 1205450051 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :that's second order < 1205450055 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :Is there anywhere that has short descriptions of programming languages? < 1205450070 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ooh wait a complication - if some letter of a cycle is duplicated, you don't need to use swap for that cycle < 1205450073 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I tell people, stop wastingt your time with that silly task you write the same program with different variables every weex < 1205450108 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :and tell him just write a script to generate your program, and this guy is like O-o why don't you write a program to write for me < 1205450116 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :as if this kind of task is impossible :P < 1205450122 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205450133 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so make that number of totally isolated cycles < 1205450157 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :in a good language, you can usually just do the metaprogramming in the same program < 1205450164 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :and just separate the conceptual levels < 1205450168 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :using magic or soemthing < 1205450174 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :adu: wikipedia? < 1205450213 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what? < 1205450227 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :o descriptions < 1205450242 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :you ever wrote your own macro system in lisp? < 1205450247 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think it's very similar to that < 1205450307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: you said a hash table is a good choice for fungespace < 1205450310 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :hmm, basically, i think the problem of permutating the variables basically comes down to a topological sort (in our case we're not sorting an acyclic graph, that's where we need the extra variable) < 1205450314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what about an N-dimensional sparse array? :D < 1205450336 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: are macroexpansion rules written in lisp? < 1205450340 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :FungeSpace doesn't resemble a hash table AT ALL < 1205450341 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :I like that Schönfinkel. He's got the eso spirit. < 1205450355 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :adu: why not? < 1205450370 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :well it depends on what the indexing domain is < 1205450382 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :if anything FungeSpace could only be indexed by polynomial-like objects < 1205450392 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :like... arrays? < 1205450398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: CCBI uses a hash table. < 1205450398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IIRC. < 1205450401 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :because (1, 0) == (1, 0, 0) < 1205450412 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :adu, just omit zeroes in the end < 1205450412 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1205450420 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :also, funge uses a fixed dimensino < 1205450423 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :*dimension < 1205450424 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: but thats not how arrays work, thats how polynomials work < 1205450443 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :adu: i don't see your point < 1205450483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: away again? :p < 1205450491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[22:21] [Away] Deewiant is away: Zzz. < 1205450492 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sheehs < 1205450492 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205450496 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, true, polynomials are great for addressing an n-dimensional position, in case you don't have a fixed number of dimensions < 1205450506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: what about a sparse N-dimensional array < 1205450509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does that sound like a good fungespace :) < 1205450527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(I am supporting N-funge :D Just need to figure out how to represent N>2 in text, eh.) < 1205450532 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: my point is thhat (1, 0) and (1, 0, 0) are clearly distinct both in the array view and the vector view, but they are equivalent as FungeSpace indexes, and because they are only place they have this uniqueness is in FungeSpace, the only conclusion that makes sense is that they are an innapropriate metaphor for FungeSpace indecies < 1205450534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, N>0 funge < 1205450535 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sparse array is a loose concept < 1205450542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: your mom is sparse < 1205450546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and a loose concept < 1205450588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205450592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe I should use a Judy Array < 1205450592 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205450597 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :adu: okay, a hashtable is bad for FungeSpace in case the implementer has no idea what dimensions are, true. < 1205450604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :??? :D < 1205450631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://judy.sourceforge.net/doc/JudyL_3x.htm < 1205450665 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :Polynomials: 1 + 0x == 1 + 0x + 0x^2 both mathematically, and in FungeSpace, so it is quite appropriate < 1205450705 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :adu: true, i never said it wasn't, i'm just saying it's very irrelevant < 1205450715 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1205450735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: but yeah. sparse N-dimensinoal array == good fungespace? < 1205450744 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well, i guess it was a good point polynomials are perfect indices for n-dimensional arrays < 1205450750 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ehird: pretty much < 1205450781 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :polynomials of degree <= n = tuples of length n < 1205450801 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but isn't "sparse array" just a term specifying the problem, not a solution? < 1205450809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: I think numpy has something for it. :| < 1205450818 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :but just as with arrays, there are mathematical constructs that limit the degree/length... o well < 1205450819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And also when I do my C impl < 1205450824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Judy arrays seem interesting: http://judy.sourceforge.net/doc/JudyL_3x.htm < 1205450858 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: not in reals! < 1205450874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: any thoughts on judy arrays? < 1205450875 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :It's a fundamental theorem in vector spaces < 1205450888 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i'm reading < 1205450891 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :(I just can't remember the name of it :S) < 1205450894 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: but i'm guessing you need to be doing it (mod something) < 1205450897 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :? < 1205450924 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1205450927 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :"<=" < 1205450933 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm a bit dyslexic < 1205450940 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :http://www.mathreference.com/top-ban,rn.html < 1205450958 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: basis theorem perhaps? < 1205450987 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :hm I don't know that < 1205451000 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i may have made up that name on the spot < 1205451004 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1205451040 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :i think Glib hash tables are slightly more useful < 1205451042 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :http://library.gnome.org/devel/glib/stable/glib-Hash-Tables.html < 1205451056 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan vaguely knows everything < 1205451070 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION vaguely knew oklokok would say that < 1205451112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: fungespace consists of 0-255, right? < 1205451130 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :ya one byte per index < 1205451137 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or rather there is something like invariant basis size property - it is true for vector spaces but not for modules over all more general rings < 1205451164 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :although i think it is allowed to grow past 255 during computation, the 255 restriction is on source files iirc < 1205451205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: oh, okay < 1205451209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: up to what value? < 1205451214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the general befunge 'word'? < 1205451239 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :"What size exactly is left up to the implementer. 32 bits is typical." < 1205451288 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it's like two years since i coded in a language without bignums :< < 1205451291 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :'alf a bit, and a trit hand a half < 1205451300 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well, except java, but i don't count that as a language, or as programming < 1205451312 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :lolol < 1205451315 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :surely java has bignums... somewhere < 1205451318 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: why do you say that? < 1205451342 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: sure, but you can't overload operators, so they're not that fun to use < 1205451348 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :adu: because i hate java < 1205451352 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: amen < 1205451358 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :i'm less productive in it than i am in befunge < 1205451368 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :and i've written one befunge program, and about 200 java progs < 1205451392 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :well, naturally that was helluva overstatement, but considering what befunge is, it's too true. < 1205451403 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :both Java and C# would be so great if they were designed and developed by opensource ppl from the beginning < 1205451423 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :(the productivity thing was an overstatement, that is) < 1205451439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : adu: fungespace consists of 0-255, right? < 1205451442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh no < 1205451445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :depends on version < 1205451449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :98 allows much more < 1205451470 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :but alas the great giants have spoken, and now we must suffer or use C < 1205451490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Funge-98 source files are made up of Funge characters. The Funge-98 character set overlays the ASCII subset used by Befunge-93 and may have characters greater than 127 present in it (and greater than 255 on systems where characters are stored in multiple bytes; but no greater than 2,147,483,647.) The Funge character set is 'display-independent.' That is to say, character #417 may look like a squiggle < 1205451490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on system Foo and a happy face on system Bar, but the meaning is always the same to Funge, 'character #417', regardless of what it looks like. < 1205451494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from 98 standard < 1205451504 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :is D open source? < 1205451516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklogdc tes < 1205451519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the spec is free < 1205451528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and so is dmd/s frontend < 1205451530 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :oklogdc tes? < 1205451531 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklokok, the frontend yes, the backend no, but someone took the frontend and made it usable with gcc < 1205451533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so yes < 1205451533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the backend contains e.g. code form other sources < 1205451536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it cannot < 1205451543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: 'gdc yes' < 1205451551 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :ah yeah < 1205451554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yep - that's gdc < 1205451559 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, indeed < 1205451560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklokok: but since ther eis a formal spec.. < 1205451566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and a free implementation < 1205451572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only non-free bit is the dmd backend. < 1205451582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& it can't legally BE free atm < 1205451624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : although i think it is allowed to grow past 255 during computation, the 255 restriction is on source files iirc < 1205451628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't exist < 1205451638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :0-2,147,483,647 < 1205451641 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in source files < 1205451675 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :I think we should reimplement all UNIX in D or Factor or Haskell < 1205451683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :adu: haskell < 1205451685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :typesafe unix! < 1205451699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't have to do any command line checking -- you know the file you get will be correct < 1205451700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205451710 0 :adu!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1205451731 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1205451749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no more crashes, because crashes are side effects, they wouldn't be allowed in haskell XD < 1205451784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well presumably you'd have the IO monad somewhere. :P < 1205451787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I'm getting fingerprints working in cfunge now < 1205451792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But it is true that haskell should not crash. < 1205451800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But when you get low-level.. < 1205451803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :all bets, off. < 1205451815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yet the most unstable irc bot I've seen, is one written in haskell, it is crashing a lot < 1205451838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :called lambdabot iirc, used in #friendly-coders < 1205451842 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :proof that haskell is rubbish! < 1205451843 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205451845 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :perhaps you should see oklobot < 1205451856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't have time < 1205451859 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :it's in C++, and it doesn't hide it! < 1205451868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :debugging wtf is going on with loading and unloading fingerprints in cfunge < 1205451875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha, lambdabot is great < 1205451878 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: lambdabot is great < 1205451880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: dude, lambdabot is really solid code < 1205451880 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :... < 1205451881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1205451891 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :lambdabot is probably the most useful bot in existence < 1205451899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: its Cale's fault < 1205451900 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :maybe other than XDCC ones.... < 1205451902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he sucks at keeping it up < 1205451902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok, the one with the nick lambdabot however seems to crash a lot < 1205451902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205451907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea why < 1205451911 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric :whut < 1205451913 0 :oklokok!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1205451916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Cale. < 1205451923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, who/what is cale? < 1205451924 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :He also breaks random things. :) < 1205451936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the nick 'lambdabot' on freenode host < 1205451942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yep < 1205451943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that one < 1205451975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yea. blame cale < 1205451982 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah lambdabot does crash :( < 1205451984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and who is cale < 1205451984 0 :adu!unknown@unknown.invalid QUIT :"Computer went to sleep" < 1205451995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: THE NICK LAMBDABOT ON FREENODE'S HOST < 1205451996 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :it does .. very often < 1205451998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205452009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so the bot crashes because of the bot? < 1205452010 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it did so long before cale took over recently though < 1205452011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :????? < 1205452023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The bot crashes because of the guy who runs the instance that goes on freenode < 1205452024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :damnit < 1205452027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha! < 1205452033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks for making that clear < 1205452052 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: still not really lambdabot code's fault in most cases ;) < 1205452056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : and who is cale AnMaster: THE NICK LAMBDABOT ON FREENODE'S HOST <-- sounded to me like the bot was cale < 1205452068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :instead of cale being the owner of the bot