< 1205799429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, Acme::Everything is a clever idea < 1205799439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it autoloads any module in CPAN when the appropriate function is called < 1205799445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sort of like Emacs does automatically < 1205799463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry, methods, not functoins < 1205799469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/functoins/functions/ < 1205799521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that should be Acme::Auto < 1205799526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Acme::Everything should load EVERYTHING < 1205799531 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION agrees < 1205799553 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would be easy enough, just get a list of all CPAN modules and programatically convert those into use statements < 1205799566 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... should it also import everything that can be imported from all of them> < 1205799569 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/>/?/ < 1205799858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it should do everything < 1205799868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :such that you could not pollute the namespace any more short of writing your own code < 1205799881 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what do you do about clashes? < 1205799901 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION worries that the right answer may be to adopt the INTERCAL solution: "Multithread and do both" < 1205799955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fix the clashes. :D < 1205800081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://search.cpan.org/~stig/Acme-MemorableExit-0.28/lib/Acme/MemorableExit.pm < 1205800164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: did you know you can do tail-recursion in python? < 1205800179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I didn't know that, but it seems a reasonable feature to have < 1205800184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :after all, Perl can tail-recures < 1205800185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: not natively < 1205800187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but through a Cunning Hack < 1205800189 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/recures/recurse/ < 1205800196 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you write goto &subroutine; < 1205800199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than calling it < 1205800279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://rafb.net/p/lvmYvk62.html < 1205800304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :very clever little hack < 1205800330 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :changing recursion to iteration using exceptions < 1205800381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yep < 1205800388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and as the example shows, it handles mututal tail recursion < 1205800876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Acme::HaltingProblem's BUGS: "This code does not correctly deal with the case where the machine does not halt." < 1205801019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1205801027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://search.cpan.org/~dankogai/Acme-Math-Google-0.02/lib/Acme/Math/Google.pm < 1205801075 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was looking at that /before/ you posted the link < 1205801091 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ooh, scary < 1205801098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://search.cpan.org/src/NWCLARK/Acme-Meta-0.02/Meta.pm < 1205801126 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :all this halting problem stuff is clearly getting us into a closed time loop < 1205801197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://search.cpan.org/~ambs/Acme-Lisp-0.02/lib/Acme/Lisp.pm this should not be in CPAN. < 1205801202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is, frankly, crap. < 1205801225 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Acme::Pythonic is quite a clever idea, though < 1205801240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :more like evil < 1205801243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now all I need is a Python module to grant me {} and semicolon < 1205801287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: been done < 1205801290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as one of python's coding < 1205801291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s < 1205801294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is used for utf-8 etc < 1205801302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: python already gives you ; < 1205801304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just ignored < 1205801314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://timhatch.com/projects/pybraces/ < 1205801320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does it let me write two commands on a line? < 1205801414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: python already does that < 1205801415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a; b < 1205801430 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that is actually really useful < 1205801478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: perl is actually making stuff fun again < 1205801478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205801493 0 :ais523!unknown@unknown.invalid QUIT :"it's very late, I have to go home" < 1205801828 0 :BMeph!n=chatzill@adsl-76-212-192-106.dsl.sndg02.sbcglobal.net JOIN :#esoteric < 1205801980 0 :jix!unknown@unknown.invalid QUIT :Remote closed the connection < 1205805765 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1205807294 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1205808789 0 :theholyduck!n=theholyd@ti231210a340-0751.bb.online.no JOIN :#esoteric < 1205808798 0 :theholyduck!unknown@unknown.invalid PART #esoteric :? < 1205809027 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1205809480 0 :ehird!unknown@unknown.invalid QUIT :"Konversation terminated!" < 1205812489 0 :faxathisia!n=space@amcant.demon.co.uk JOIN :#esoteric < 1205813004 0 :marshmallows!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1205817658 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I've finished more panels: < 1205817659 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://www.nonlogic.org/dump/images/1205814038-preview2.png < 1205817680 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :doing these in full color is really, really time consuming. < 1205817811 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205817814 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :to anyone who's interested in this project, what would you rather see? A) gorgeous color produced at an achingly slow pace or B) Black and white, much faster < 1205817822 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gorgeous color. < 1205817828 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sighs < 1205817829 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It works well with the feel of this comic. < 1205817845 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, but it's damned well worth it. < 1205817864 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :alright, I'll keep plodding along like this < 1205817869 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's like the difference between a hacked together shell-script and a full REPL. < 1205817904 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :is the story interesting so far, at least? < 1205817914 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Quite. < 1205817926 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :note that the digital workflow makes it really, really easy to tweak dialogue, which I adore. < 1205818086 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://www.nonlogic.org/dump/images/1205814448-panel6.png <- I may move bubbles around to make it more clear that purple and pink thing is a rocket. < 1205818157 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and just for trivia, the original versions of these are all drawn at about 3000x1000 < 1205818392 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :G'night all < 1205818393 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :does anyone else have any thoughts and/or opinions? < 1205818399 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :cya, Sgeo < 1205818500 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1205818585 0 :digital_me!unknown@unknown.invalid QUIT :"leaving" < 1205818591 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. I guess not many people are awake. < 1205818596 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Course not. < 1205818674 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and apparently these guys are offering me a summer internship: https://www.jnl.com/index.jsp < 1205818737 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :better than nothing, I suppose. IBM and MS haven't responded to my applications. :( < 1205818785 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :These guys are offering me an internship: http://www.tufts.edu/ < 1205818853 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :nifty < 1205818865 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I know the head sys-admin there. . . < 1205818868 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Makes it pretty easy. :p < 1205819036 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, yeah: I'll be paid to dick around on various *nixen. < 1205819113 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'd *much* rather do dev work than IT, which is one of the benefits of my offer < 1205819137 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't really *mind* IT stuff that much. < 1205819155 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But it'd be nice to be doing dev stuff. . . < 1205819186 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :honestly, if I'd wanted to do IT I could've landed a job out of high school. I'm getting a CS degree to prove I know how to code, design and implement complex projects, and innovate. < 1205819204 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :IT is akin to being an "internet janitor" < 1205819207 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I *am* landing this internship out of high school. ;) < 1205819218 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, so in your case it isn't too bad < 1205819233 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Especially since I'm going to college right afterwards. . . < 1205819246 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But I would not want to do IT stuff as a career. < 1205819248 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :just don't lose sight of your objectives and drop that job like a sack of hammers when you have the qualifications to do something better < 1205819285 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1205819303 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's not like I'm going to one day think 'Fuck college, I could do this the rest of my life!' < 1205819321 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's a good first job and all, but honestly, it'd be much nicer to be paid doing interesting development. < 1205819321 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh. well, I know a couple people who made that decision. < 1205819330 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(kernel development or something?) < 1205819372 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I really think I want to make compilers. I wouldn't mind a job as a game designer/developer if that industry didn't completely suck to work in. < 1205819389 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, doing compilers would be nice, too. < 1205819402 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A bit of stuff on the grunt-work side, but not a bad thing to do at all. < 1205819463 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, I think I'm turning in. < 1205819470 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1205819490 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :one factoid before I go about my steampunk adventure... there's a reason he's called "Mister Thompson". < 1205819503 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oooh. < 1205819523 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1205823873 0 :BMeph!unknown@unknown.invalid QUIT :"calls it a night" < 1205824528 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1205827199 0 :clog!unknown@unknown.invalid QUIT :ended < 1205827200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1205830435 0 :oklopol!n=oklofok@spark.turku.fi JOIN :#esoteric < 1205830551 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1205830609 0 :olsner!n=salparot@cust.fiber-lan.vnet.lk.85.194.50.194.stunet.se JOIN :#esoteric < 1205830967 0 :oerjan!unknown@unknown.invalid QUIT :"Krnknhs" < 1205832113 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205832130 0 :oklofok!n=oklofok@spark.turku.fi JOIN :#esoteric < 1205836257 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1205838097 0 :SimonRC!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1205838702 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1205838957 0 :SimonRC!n=sc@fof.durge.org JOIN :#esoteric < 1205843636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I added a sandbox mode that restricts what scripts can do, ie. no fileio (when I implement it), y reporting a subset of env variables only and some other things < 1205843722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :by the way the # at x=8, y=122 is executed 11333 times in mycology < 1205843807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :next is : at x=7, y=122 with a total of 5709 times < 1205843821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err 112 for both those < 1205843828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :y I mean < 1205844418 0 :Slereah!n=slereah@ANantes-252-1-84-17.w81-48.abo.wanadoo.fr JOIN :#esoteric < 1205844500 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's the bit that prints out the environment variables < 1205844796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, aha < 1205844811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that explains it, gentoo seems to like setting a lot of env variables < 1205844823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ env | wc -l < 1205844824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :85 <-- gentoo < 1205844830 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and that suggests that the total strlen of your envvars is around 5709 :-P < 1205844834 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how about -c < 1205844838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ env | wc -l < 1205844838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 22 <-- free bsd < 1205844850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ env | wc -c < 1205844850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :5543 < 1205844857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :freebsd < 1205844859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ env | wc -c < 1205844859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 443 < 1205844870 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hehe :) < 1205844876 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :2641 here, on windows < 1205844897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well gentoo loves setting env variables that users don't need, I agree with that < 1205844906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CONFIG_PROTECT=/var/bind /var/gopher/gophermap /usr/share/X11/xkb /usr/kde/3.5/share/config /usr/kde/3.5/env /usr/kde/3.5/shutdown /usr/share/config < 1205844910 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only portage cares about that < 1205844917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why set it in user env I wonder < 1205844933 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :possibly to make it easier for portage apps like eix < 1205844966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, could be done in make.conf I'd suggest, though that would need some make.d, as different app should be able to install their own ones < 1205844979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like my pygopherd ebuild does XD < 1205845174 0 :slereah__!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1205845591 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it seems that most time in mycology is spend on printing env variables here hehe < 1205845618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :apart from loading that is < 1205845662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is in fact quite a bit faster, about 0.01 seconds(!) with just printing a subset < 1205845671 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well sure, >:#,_ isn't exactly fast < 1205845675 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :at least it's not _,#! #:< < 1205845677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205845684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION parses < 1205845708 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that's the problem with zero-terminated strings - if it was gnirts instead 0gnirts you could do k, instead < 1205845723 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :s/instead/instead of/ < 1205845736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yep, I have nothing against using gnirts < 1205845749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it makes allocating string less of a pain too < 1205845755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when popping value I mean < 1205845797 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but on the other hand, this way you need to think a bit whenever you need to loop, so maybe it's better ;-) < 1205845822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :er? < 1205845838 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's an esolang after all, can't be too easy < 1205845847 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah. true < 1205845906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, one thing, would you think it was easy for a third party to write a new fingerprint for my interpreter? no minifunge yet, so it needs to be compiled in and added into an array, but apart from that I mean < 1205845914 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie, is interface well documented < 1205845968 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :one can always look at the already implemented ones, it's fairly simple unless you've obfuscated something :-P < 1205846407 0 :AnMaster_!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1205846454 0 :lifthrasiir!unknown@unknown.invalid QUIT :Remote closed the connection < 1205846485 0 :AnMaster!unknown@unknown.invalid QUIT :Nick collision from services. < 1205846491 0 :AnMaster_!unknown@unknown.invalid NICK :AnMaster < 1205846508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : one can always look at the already implemented ones, it's fairly simple unless you've obfuscated something :-P < 1205846511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* Disconnected (Connection reset by peer). <-- what did I miss? < 1205846536 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Nothing < 1205846553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :good < 1205846585 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :http://tunes.org/~nef/logs/esoteric/ < 1205846957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia, what bot or person captures those logs? < 1205846977 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :clog and cmeme < 1205848190 0 :sebbu!n=sebbu@ADijon-152-1-93-16.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1205853569 0 :sebbu!unknown@unknown.invalid QUIT :"bye" < 1205853663 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :# < 1205854783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you there? < 1205854828 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :aye < 1205854843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf should o do if the width or height of the area to write is negative? < 1205854851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :output mirrored? < 1205854856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :reflect? < 1205854871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or absolute value? < 1205854871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think I thought about doing mirrored output but decided to just reflect < 1205854877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205854890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : // undefined behaviour < 1205854890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : // could do something tricky here like mirror and flip the area copied < 1205854890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : // or just do a normal copy from (ox-dx, oy-dy) to (ox, oy) < 1205854890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric : // but it's more likely it's an error < 1205854898 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :-> reverse(); return; < 1205854960 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205854973 0 :jix!n=jix@78.47.212.92 JOIN :#esoteric < 1205855137 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, "Also, note k will never, ever actually execute instruction #32, space, or ;." < 1205855141 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but it's up to you :-) < 1205855147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how does #32 differ from space? < 1205855147 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah? < 1205855158 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :probably a typo < 1205855168 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or read it as "instruction #32, i.e. space, or ;." < 1205855313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"not re-entrant (feral extensions)" <-- in what sense of re-entrant? As in: calling it twice in a row gives same result? < 1205855350 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it explains in the next paragraph < 1205855369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not clearly < 1205855382 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :to me it sounds like TRDS < 1205855398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah that is definitely feral < 1205855410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but would you consider MODE, or IMAP feral? < 1205855422 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :somewhat < 1205855463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :FPDP? < 1205855476 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :don't think so, why? < 1205855481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after all it forces me to link with -lm < 1205855482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205855486 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1205855506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually I already do for BASE, because of log() < 1205855507 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not my fault floating point math is considered so arcane on linux < 1205855514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and freebsd :P < 1205855595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, for FPDP, how do you store them on stack, after all double > 32 bits iirc? < 1205855626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"Double precision, called "double" in the C language family, and "double precision" or "real*8" in Fortran. This occupies 64 bits (8 bytes) and has a significand precision of 53 bits (about 16 decimal digits)." < 1205855643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so how on earth does CCBI does it, it got 32-bit cells right? < 1205855666 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :union { double x; struct { cellidx a, b; } } < 1205855674 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1205855683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, right and that would make no sense with larger cell sizes < 1205855690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie, 64-bit < 1205855701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a compile time option here < 1205855721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders adding a 128-bit mode just for fun, would be slow < 1205855829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the difference between SOCK and SCKE btw, they seem to both do sockets? < 1205855870 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :SCKE is two instructions added to SOCK < 1205855888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh what ones? IPv6? < 1205855896 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :can't remember < 1205855902 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :certainly nothing that complicated ;-) < 1205855955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if not I may add a SCK6 ;) < 1205855963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :later on I mean < 1205858279 0 :faxathisia!unknown@unknown.invalid QUIT :"If there are any aliens, time travellers or espers here, come join me!" < 1205858570 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1205859161 0 :RodgerTheGreat!n=Rodger@wads-5-233-27.resnet.mtu.edu JOIN :#esoteric < 1205859175 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi everyone < 1205859270 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1205859363 0 :sebbu!n=sebbu@ADijon-152-1-93-16.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1205860010 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1205860290 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yo. < 1205860349 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oY < 1205860375 0 :timotiis!unknown@unknown.invalid PRIVMSG #esoteric :hola < 1205860826 0 :stefo!n=logixoul@stilian1.ddns.HomeLan.BG JOIN :#esoteric < 1205860935 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1205861931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, question about DIRF: what should happen if it tries to remove a directory that isn't empty? < 1205861983 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :prolly reflect < 1205861990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1205862000 0 :stefo!unknown@unknown.invalid QUIT :Remote closed the connection < 1205862005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the docs for it are so bad, rcfunge... < 1205862110 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yep :-) < 1205862122 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :one thing you can do is run rcfunge and see what it does < 1205862209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, another issue, general one, what should stuff do, in general, on a zero-length 0gnirts? < 1205862232 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well if they pop a 0gnirts then all they'll get is a 0 < 1205862237 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so it's as though dealing with "" < 1205862243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1205862274 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because "" is exactly a terminating null and nothing else. < 1205862277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but DIRF should likely reflect on that < 1205862286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION do not wish to know what rmdir("") would do < 1205862457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :another issue, what permissions should be set on a created directory using DIRF? < 1205862463 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :run it under some kind of chroot if you're scared :-P < 1205862479 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :since unspecified, I'd say don't mess with em < 1205862484 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the defaults < 1205862492 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if there are no defaults, pick some. < 1205862498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no defaults afaik < 1205862510 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : int mkdir(const char *pathname, mode_t mode); < 1205862532 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so what does "mkdir foo" in the shell do < 1205862538 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah that is different < 1205862544 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know < 1205862551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SYNOPSIS < 1205862551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : mkdir [OPTION] DIRECTORY... < 1205862552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but it certainly does have defaults < 1205862553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : -m, --mode=MODE < 1205862553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : set file mode (as in chmod), not a=rwx - umask < 1205862569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :777 & ~umask I suspect < 1205862571 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, I can read man pages myself, thank you very much. :-P < 1205862578 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so use that < 1205862586 0 :timotiis_!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1205862586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not S_IRWXU? < 1205862596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(man sys_stat.h) < 1205862601 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's up to you < 1205862604 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :do whatever you want < 1205862614 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, useful for temp dir creation you know < 1205863026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay, first fingerprint that compiled correctly at first try and passed test suite at first try as well < 1205863029 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :\o/ < 1205863034 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :DIRF that is < 1205863082 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :here's a random thought: would Javascript with AJAX be a viable platform for distributed computation? "Fold proteins by idling at this page" < 1205863106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, it would be completely esoteric < 1205863109 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :on one hand, it'd be slow as fuck. On the other hand, it would be easy to get machines running it < 1205863115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :javascript got way too bad performance < 1205863125 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's what I figured < 1205863133 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I just wondered if anyone had tried it. < 1205863134 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :java's a better idea for something like that < 1205863144 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :almost as widely available and much better performance < 1205863153 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: indeed. For some things Java's speed is comparable to C++ < 1205863153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :likely a native compiled app on a i486 would beat a javascript on a p4 < 1205863154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1205863169 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :depends on the browser < 1205863171 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, no, not quite. :-P < 1205863182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, if it is number crunching I'd suggest FORTRAN < 1205863213 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's rather missing the point < 1205863272 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1205863312 0 :timotiis_!unknown@unknown.invalid NICK :timotiis < 1205863337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, indeed < 1205863709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : almost as widely available and much better performance <-- yeah I got java, but not for browser, as there is no such for linux amd64 yet < 1205863718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie, only server jvm or whatever it is called < 1205864175 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads Garfield minus Garfield < 1205864514 0 :Tritonio_!unknown@unknown.invalid QUIT :Remote closed the connection < 1205864858 0 :ais523!n=ais523@mu01-fap01.bham.ac.uk JOIN :#esoteric < 1205865398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw now I got a script that generate template files for fingerprints < 1205868086 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"template files"? < 1205868454 0 :ais523!unknown@unknown.invalid PART #esoteric :? < 1205868585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#vt"drwolh">:#,_ @ < 1205868585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >"lo le">:#,_a,@ < 1205868586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1205868609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, ie a .c file with empty functions but with right name to add a fingerprint to cfunge < 1205868625 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1205868677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, anyway tell me what the befunge program above does < 1205868678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205868732 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it's a hello world, of course < 1205868735 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :in parallel < 1205868740 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :very fragile, I think < 1205868748 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but a good test of parallelism < 1205868815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, not fragile if interpreter follow standard < 1205868831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, impressive that you could decode it the way it was interleaved < 1205868840 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :um, not really < 1205868852 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION still have problems reading backwards in befunge < 1205868873 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it's an obvious thing to say < 1205868878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1205868879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1205868942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unlike this version below it is "lock free" XD: < 1205868950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#vtf2*2+"olleH">:#,_'>11p><"dlrow">:#,_'>fb+0p@ < 1205869213 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should learn Befunge at some point.. < 1205869230 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or brainfuck. < 1205869231 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205869270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, I assume he know it as iirc Sgeo wrote PSOX < 1205869288 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And yet, I have heard things. < 1205869294 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1205869305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw, not very original example: < 1205869307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"AMOR"4#v(MCM\-+LXXX+++IV\-++.)a,@ < 1205869307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : @ < 1205869310 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is no good with Brainfuck. Also, PSOX isn't meant to be Brainfuck specific < 1205869315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :need ROMA fingerprint < 1205869868 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :PSOX is meant for any Esolang. < 1205869884 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You could fairly reasonably get ORK or Glass to handle PSOX. < 1205869893 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(even easier there; they do objects and strings. ;p) < 1205870017 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Not so great for Taxi though, it expects input to come in line-by-line < 1205870029 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :THe loopback function means it's POSSIBLE, but it's not easy < 1205870299 0 :ais523!n=ais523@147.188.254.202 JOIN :#esoteric < 1205870837 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there is a bug in that "locked" befunge < 1205870843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, oh? < 1205870853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, it works correctly under cfunge and ccbi here < 1205870858 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the first line should end with q, not @ < 1205870867 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I mean the second line < 1205870870 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, err, doesn't matter actually < 1205870880 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :otehrwise the first line doesn't quite finish < 1205870892 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but that will make only a little difference to the program behaviour < 1205870928 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :there isn't enough time for the newline to be output < 1205870930 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks < 1205870949 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1205870954 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, as far as I can calculate it should finish < 1205870957 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I had my @ and q semantics backwards < 1205870961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it doesn't the interpreter is broken < 1205870978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, you are making some interpreter/compiler for befunge too? < 1205870987 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :not at the moment < 1205870998 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I am contemplating Forth -> Befunge < 1205871007 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Forth is a language that flexes on the other side < 1205871022 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :i.e. it flexes to fit your platform as well as flexing to fit your solution < 1205871040 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oops, meant platform and *problem* < 1205871069 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I don't know whether to make addresses be 1 or two cells in that case though < 1205871085 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :all sane forths have 1-cell addresses < 1205871101 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but the sheer size of funge-space makes that tricky < 1205871215 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ever tried http://catseye.tc/projects/befunge93/eg/life.bf in ccbi? < 1205871218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is very slow < 1205871229 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with optimized cfunge you hardly have time to see it < 1205871244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with debug cfunge it is still faster than your ccbi binary < 1205871244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1205871245 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :"optimised" how? < 1205871262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, -O3 -NDEBUG -profile-use < 1205871276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and profile data was generated on mycology < 1205871279 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1205871304 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter is optimised, rather than it optimising the befunge < 1205871310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1205871356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, a quick calculation of results on mycology shows my interpreter runs mycology at around 12.5 MHz, that is excluding time to load file (that takes 6/7 of the runtime on mycology) < 1205871387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie loading is around 0.065 and total is around 0.076 < 1205871403 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1205871408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so about 0.01 second run time, most of which is hash table look up to get next instruction in fungespace < 1205871428 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :maybe you could cache the neighbours of each cell? < 1205871434 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in that time it executes 125363 instructions < 1205871446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, the way mycology runs it wouldn't help much < 1205871455 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yea, but it would help on life I bet < 1205871458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but what about making the interpreter threaded and do some kind of prefetch? < 1205871469 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :threaded? < 1205871475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie, -pthread < 1205871489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-lpthread at link time too < 1205871495 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :how would that help? < 1205871507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so one thread fetches instructions and another executes them < 1205871515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, no idea, too tired really ;P < 1205871517 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I doubt that would help < 1205871523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was thinking of CPU with pipeline < 1205871530 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :they would need to switch every befung instruction < 1205871530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1205871539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, hm? < 1205871542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1205871543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1205871568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe do some cache line thing? ie, cache lines into static arrays in some way < 1205871594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, anyway I still beat CCBI by a LOT < 1205871597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205871602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is very slow on game of life < 1205871828 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how non-nested ( ) work in F98 < 1205871860 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :AFAICT, weird shit happens < 1205871892 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes, it does, according to the spec < 1205871894 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :blech < 1205872453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, err? < 1205872454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1205872546 0 :oerjan!unknown@unknown.invalid QUIT :"Bus" < 1205872593 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, how is it weird? < 1205872601 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you just pop < 1205872613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my interpreter handles it :) < 1205872715 0 :olsner!n=salparot@cust.fiber-lan.vnet.lk.85.194.50.194.stunet.se JOIN :#esoteric < 1205872814 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but you get a funny mix of semantics of the overloaded instructions unless your pushes and pops match up to a certain degree < 1205872827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, can be very useful < 1205872855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if you pop one that isn't loaded, but others are, you will pop one from each of those it defines < 1205872856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1205872895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so if we got FOOO (provides A B and C) and BAAR (provides B C and D) < 1205872896 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :suppose you load a1, and b1 then load a2, then load a3 and b3, then unload a2, the sematics of a is a2 and the sematics of b is b3 < 1205872900 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :which is just confusing < 1205872900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then you load FOOO < 1205872903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :load BAAR < 1205872907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unload FOOO < 1205872922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how A, B and C are from FOOO and D from BAAR < 1205872924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1205872927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now* < 1205872928 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :so unloading something makes parts of it available where they previously weren't < 1205872937 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :argh, blither, wibble < 1205872940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, it is how it works < 1205872949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, called esoteric language for a reason < 1205872950 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it's crazy < 1205872974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, but way easier to implement < 1205872986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just a stack for each opcode < 1205873014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, "NULL" unloading can be used to pop all stack once < 1205873019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie unload all really < 1205873037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"LLUN"4( < 1205873040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1205873041 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :at least the stack effects are reasonably sane < 1205873043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"LLUN"4) < 1205873044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I meant < 1205873056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, yes that is what I said < 1205873062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : load BAAR < 1205873063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : unload FOOO < 1205873063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : now A, B and C are from FOOO and D from BAAR < 1205873072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or rather, first load FOOO < 1205873076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then do those steps < 1205873088 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I mean the main stack effects < 1205873107 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :( pushes the fingerprint in a different form < 1205873115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err? < 1205873123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :( and ) does not affect normal stack < 1205873132 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes they do < 1205873139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes partly truye < 1205873141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true* < 1205873152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they pop stuff, and ( pushes the loaded fingerprint back < 1205873163 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205874256 0 :ehird!n=ehird@91.105.88.2 JOIN :#esoteric < 1205874279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo bar baz bang quux zed < 1205874330 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :eki eki eki eki p'tang zoo pang! < 1205874558 0 :Tritonio_!n=Tritonio@150.140.229.38 JOIN :#esoteric < 1205874834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ooh ee ooh ah ah < 1205874838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ting tang walla walla bing bang < 1205875074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, new development snapshot at http://rage.kuonet.org/~anmaster/cfunge/snapshots/cfunge_r95.tar.bz2 < 1205875352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, includes some examples < 1205875496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm. Quantum TriINTERCAL? :D < 1205875568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, if I get my 08 standard finished then yes y got stuff for that < 1205875594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I actually already wrote it < 1205875605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that part I mean < 1205875613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :quantum, and what n-nary < 1205875697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it isn't really quantum < 1205875704 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just multithreaded a different way from C-INTERCAL < 1205875749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? got a link? < 1205875841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: arc 2 was released recently, with the source code to the reddit clone < 1205875843 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is hilariously bad < 1205875851 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't know why anyone would care about that < 1205875852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but there you go < 1205875862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: look at CLC-INTERCAL's docs < 1205875866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's one 1767 line file, the css is inlined into a string, < 1205875867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and this: < 1205875870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(= url-kill* nil < 1205875871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : url-ignore* '("internetisseriousbusiness") < 1205875871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : comment-kill* nil < 1205875871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : comment-ignore* '("http://internetisseriousbusiness" < 1205875871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : "http://www.internetisseriousbusiness") < 1205875871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ip-ban* nil) < 1205875879 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :intercal.freshell.org < 1205875888 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://intercal.freshell.org (making it clickable) < 1205876147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you typoed that url < 1205876150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forgot an e < 1205876154 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1205876159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://intercal.freeshell.org < 1205876161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so not very clockable < 1205876164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :clickable* < 1205876165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: could you implement twoducks ala timetravel in b98? < 1205876174 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: not really < 1205876181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you know how painful timetravel is? < 1205876186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you would be attempting an iterative method if you did that < 1205876190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and what is twoducks? < 1205876190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it might not converge < 1205876200 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: an esolang based around time travel < 1205876207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1205876210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it can solve the halting problem, and is therefore uncomputable < 1205876243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the spec isn't clear on what to do if there's a paradox, such as if you set a program up to solve its own halting problem) < 1205876273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(although it strikes me that it is probably possible to write a /conforming/ HOMESPRING implementation in TwoDucks) < 1205876308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"TwoDucks is an esoteric programming language by User:Zzo38 which allows you to go back in time and change things. It is uncomputable on a Turing machine; it even allows you to solve the halting problem." < 1205876314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so not possible to make one heh < 1205876320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes BUT < 1205876328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Talk:TwoDucks < 1205876336 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's possible to make an interp that emulates some TwoDucks programs some of the time < 1205876377 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... time travel is a monad, isn't it < 1205876387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only one where the chain is accessible and modifiable < 1205876461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ContT < 1205876470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: or rather, Cont < 1205876473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cont is the time-travel monad < 1205876483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it uses metatime < 1205876483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this is why, given IOT, you can implement TwoDucks < 1205876491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :TwoDucks = IOT Cont < 1205876497 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than the "Everything is self-consistent"ness of TwoDucks < 1205876503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, no < 1205876506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it uses the time of the program < 1205876523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Cont time travel: go back in time, kill your own father, you continue without a father but the future is changed < 1205876538 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :TwoDucks time travel: go back in time, you can't kill your own father because it would cause a contradiction < 1205876561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: twoducks just specifies things to be paradoxes < 1205876567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not that you can't continue as Cont < 1205876607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :TwoDucks can invert any function < 1205876613 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't see how you can do that with Cont < 1205876760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: true < 1205876765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but.. < 1205876767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IOT Cont < 1205876768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IS twoducks < 1205876779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because the IO forces Cont to become the 'real time' < 1205877086 0 :slereah_!n=slereah@ANantes-252-1-84-17.w81-48.abo.wanadoo.fr JOIN :#esoteric < 1205877157 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205878052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Haskell needs something like MultiMonad(IO Cont) < 1205878059 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which can combine several monads together < 1205878685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: um, yes < 1205878688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's transformers < 1205878694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's impossible to do it generically < 1205878701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just as it is impossible to give a Monad instance for everything < 1205879000 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I specifically wanted it without a transformer < 1205879812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: why? < 1205879814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's the only way < 1205879900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: because specifying a list of monads as an argument to some sort of type function feels more elegant than endless transforms < 1205880024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but is impossible < 1205880720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so? Make it possible! < 1205880752 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION admires TDWTF's forum's tag cloud < 1205880760 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :not one useful tag amonst them < 1205880848 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :# banana # Blame Canada # BoonDoggle # etc # Failing Flamer # Falming Failure # feeding the swampling # feeding the troll # Flaming Fa1ure # Flaming Failure # Flaming Faliure # FUCKING HELL WHY DOES IT DELETE TWO CHARACTERS WHEN I HIT BACKSPACE ONCE? # Gee-haw! # IWonderWhatHappensWhenYouUseAReallyReallyReallyLongTagLetsFindOutIfAnythingBreaksShallWe # Jam it! # Lorem ipsum dolor sit amet # MasterAsshatPlan got owned! # sort your life out SpectateSwamp # < 1205880861 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok that was a bit big < 1205880958 0 :slereah__!n=slereah@ANantes-252-1-84-17.w81-48.abo.wanadoo.fr JOIN :#esoteric < 1205880959 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205881236 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :damn, i don't get haskell's type system at all < 1205881242 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what's the difference between types and values? < 1205881429 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1205881489 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's the difference between types and values, in haskell? < 1205881528 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Why do we need values at all? Can't we just simplify the syntax and do everything just with types? < 1205881533 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since haskell is not a dependently typed language, they are completely disjoint < 1205881553 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a value has a type, a type has a kind < 1205881583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iir/uc there are systems called pure type systems which do just that < 1205881604 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :data Color = Red | Green | Blue < 1205881605 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :All books are 3 characters. Check syntax and try again < 1205881609 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :or < 1205881624 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however there is a technical problem. you want all values that are used as types to be terminating < 1205881640 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :data Red; data Green; data Blue; class Color a; instance Color Red; instance Color Green; instance Color Blue < 1205881641 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :All books are 3 characters. Check syntax and try again < 1205881654 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you use that phrase a lot. i don't think it means what you think it means. < 1205881678 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a biblebot running for no good reason < 1205881685 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I should rename the file so it won't autoload < 1205881690 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in the first example, Red, Green, Blue are values < 1205881695 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in the second, they're types < 1205881728 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lament: note that while haskell's types are turing complete with a couple of flags, the type computations are very different from the value computations < 1205881733 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in both cases we combine them together into a "type", which in the second case turns out to be a type class < 1205881745 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but the distinction seems unnatural < 1205881753 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION unloads the bot < 1205881779 0 :Tritonio_!unknown@unknown.invalid QUIT :"Bye..." < 1205881850 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: from a description of pure type systems, my concerns seem justified < 1205881856 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"PTSs are well suited as a basis for a functional programming language because they are at the top of a hierarchy of increasingly stronger type systems. The concepts of `existential types', `rank-n polymorphism' and `dependent types' arise naturally in functional programming languages based on the systems in this hierarchy. There is no need for ad-hoc extensions to incorporate these features." < 1205881870 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so haskell has too much syntax < 1205881874 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because it's not powerful enough :) < 1205881893 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually much of haskell's weirdness may be in order to support type inference < 1205881920 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :haskell's complexity is mostly superficial < 1205881929 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which requires separating some things just in order to give the compiler enough hooks < 1205881936 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :right < 1205881938 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's ugly < 1205881944 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1205881955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: it's ugly because you can write a compiler for it < 1205881958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :excellent logic < 1205881958 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the superficial complexity is suppsosed to make it beautiful < 1205881977 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: it doesn't. People keep extending the type system with more and more extensions. < 1205881979 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :e.g.: where versus let < 1205881983 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :haskell is made by grafting things onto the hindley/damas/milner type system, which has complete type inference < 1205881999 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :lament: but they are usually nice generalisations < 1205882003 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: is HM the most general type system with complete inference? < 1205882013 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and they aren't all put on at once < 1205882017 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :some contradict one another < 1205882019 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nearly so, i believe < 1205882024 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1205882033 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and a typical compiler will only have a slight extension of '98 < 1205882035 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hard to imagine what else it could have < 1205882037 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :adding almost anything makes it undecidable < 1205882038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: hardly :) < 1205882053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Haskell-fghc-exts is a whole new language, practically < 1205882055 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so type classes make it undecidable? < 1205882066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: not recursive types, i presume :) < 1205882067 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :no, type classes are decideable < 1205882069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: no. ALMOST anything < 1205882082 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :unless you turn on undecideable typeclasses < 1205882089 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :(for ghc at least) < 1205882113 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lament: type classes have strange limitations though in order to keep it decidable < 1205882119 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :right < 1205882121 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1205882182 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's kinda funny - turing-completeness is so easy to achieve by accident, and here you're desperately trying to avoid it < 1205882192 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh :) < 1205882219 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i need to learn a pure type language < 1205882226 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :to get some perspective < 1205882252 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the other day it was mentioned on #haskell how the generalized newtype deriving is inconsistent with some of the other extensions (type families, GADTs i think) < 1205882270 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205882285 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's like playing nomic < 1205882305 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :add more and more extensions until somebody successfully makes it undecidable without everybody noticing < 1205882339 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1205882438 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(class ToInt x where toInt :: c x -> c Int or something like that breaks newtype deriving if c is something weirder than ordinary algebraic data types, iiuc) < 1205882562 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you can use it to make arbitrary coercions < 1205882579 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(exploit is on ghc bug trac) < 1205882624 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1205882707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1205882714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unsafePerformIO is more fun to make coerce with :-) < 1205882731 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well yeah but that is intended to be unsafe < 1205882734 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1205882750 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :haskell is ugly :) < 1205882764 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it is not getting prettier i guess < 1205882771 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :unsafePerformIO can have type (forall a. IO a) -> forall a. a < 1205882774 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :FAIL! < 1205882783 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads thesis about pure type systems < 1205882796 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or actually type families may be considered an improvement in some ways < 1205882845 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :A friend of mine is working on epigram (e-pig.org) where the typesystem has the same strength as the language: not-quite-TC-but-you-can-do-everything-sensible < 1205882876 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: does it have types as a separate concept from values? < 1205882891 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1205882895 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it has dependant types < 1205882991 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so much stuff to learn. < 1205883066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ePig! < 1205883070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a PIG < 1205883072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on the INTERNET < 1205883141 0 :pikhq!unknown@unknown.invalid QUIT :"Rebooting stuff." < 1205883190 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :epigram looks shiny < 1205883264 0 :pikhq!n=pikhq@209.248.124.243 JOIN :#esoteric < 1205883267 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1205883358 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1205883563 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :n : Nat; X : * < 1205883569 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :cute < 1205883972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1205884099 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :from what happens with haskell < 1205884114 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it almost seems like people are trying to solve the halting problem < 1205884124 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ie. they want an all-powerful type system < 1205884176 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :on one hand it's impossible, on the other hand people do want it < 1205884250 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :proposed solution: use an all-powerful type system. If compilation doesn't end, just deal with it and rewrite your program accordingly. < 1205884271 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :You still have a type-checked program if compilation does end. < 1205884585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: large projects take ages to compile < 1205884590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how could you tell the difference? < 1205884651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :besides, compilation that never ends is not the route to sturdy software with well-defined properties that you can test < 1205884689 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but the alternative is increasingly dirty hacks < 1205884703 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :when you have a non-TC system, you can always extend it to be more powerful < 1205884710 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and people will continue doing this < 1205884720 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because they want a more powerful type system < 1205884729 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :thus adding more and more hacks to the language < 1205884745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: solution - dynamic typing < 1205884746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1205884786 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :waitamo... < 1205884793 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :probably better to start with a TC but clean type system, then add limits (such as max. recursion depth) to get guaranteed termination