< 1251331329 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1251333349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :back < 1251333359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: It worked, actually < 1251333389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I moved the whole system to a subdirectory and migrated debian outwards < 1251333409 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and everything worked instantly, but now it won't boot due to a seemingly unsolvable without a lot more work problem < 1251333414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll need to get at the HD to rest it < 1251333415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :reset < 1251333563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: but who says you can't totally move a linux system while it runs? < 1251333604 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If you move /lib, you will no longer be able to run new dynamically linked programs. < 1251333614 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :s/new // < 1251333635 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(By new I mean you won't be able to load new ones, not that you won't be able to load ones you haven't loaded before or something) < 1251333670 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Because dynamically-linked programs depend on the existence and location of /lib/ld-linux.so.foo < 1251333702 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So if mv still worked, it was probably statically linked (busybox?) < 1251334329 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1251334332 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1251334457 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1251334619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Busybox, yeah. < 1251334633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Also, as soon as I moved debian in, that file existed, of course. < 1251334820 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1251335052 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: So I migrated it pretty much perfectly modulo bootup. < 1251335065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(It is initramfs, btw.) < 1251335074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(It uses squashfs as well as /linuxrc) < 1251335346 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1251335377 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, but you still need to run 'mv' to move debian in, and was mv not statically linked, you'd be all "oh shiiiiiiiiiiiiiiiiiiiiiiiiii" < 1251335521 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1251335653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Hooray for busybox < 1251336777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Future civilisations will develop whole theories of psychology as to why we have bugs in all our systems due to an oversight that could only be a cognitive defect: a few keypresses giving full access. < 1251336783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They come up with nothing, and never explain the mystery of: < 1251336789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑ ↑ ↓ ↓ ← → ← → B A < 1251336790 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THE END < 1251337006 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1251337506 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1251338107 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1251338111 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1251339225 0 :Pthing!unknown@unknown.invalid QUIT :Remote closed the connection < 1251343446 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is trying to make peppermint soda. < 1251344551 0 :ehird!unknown@unknown.invalid QUIT : < 1251346098 0 :ehird!n=ehird@91.105.91.102 JOIN :#esoteric < 1251346677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Sometimes you may want to do the opposite of abs(): turn a positive number into a negative." < 1251346677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://us.php.net/manual/en/function.abs.php#58508 < 1251346699 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1251346703 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :How difficult! < 1251346766 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :...wtf < 1251346767 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :WTF < 1251346768 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :WTFWTFWTF < 1251346770 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :THAT CODE IS SO STUPID < 1251346846 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1251347240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Go one comment ↑ up < 1251347243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just one < 1251347248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You will jump off a bridge < 1251347266 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Bahahaha < 1251347268 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :WTF < 1251347271 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :How are people so stupid. < 1251347286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :With great difficulty! < 1251347324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Also, just keep scrolling up. < 1251347327 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They argue about it. < 1251347361 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I scrolled up one more to see the not-retarded response (although I'd just use -abs($x), there's no reason to put that in a function) < 1251347369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just as a note to the post below, you could join that function into one line instead of two as follows: < 1251347369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1251347376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: It continues right up to the top < 1251347450 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION stabs himself in the face. < 1251347456 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ahh, much better. < 1251347472 0 :coppro!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1251347510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"What a relief!" < 1251347829 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1251348046 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1251348066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :huh, the original unix ran on a machine with less than 64k of memory < 1251348069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course that's obvious in retrospect < 1251348071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but cooooool < 1251348134 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1251349407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: make some swig ingest drink < 1251350009 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I couldn't find all the ingredients. < 1251350112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: like, the list, or literally? < 1251350127 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Uhh, I have a log, I can find the list :P < 1251350134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The only ones that are even slightly non-trivial are lavender and caffeine... and maybe brown sugar if you live in crazytown. < 1251350149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(But, you know, brown sugar was ON THE CARDS. It was not mandatory. :P) < 1251350156 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I couldn't find lavender. < 1251350165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Want me to ship you some? < 1251350174 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Uhhh ... only if I don't have to pay for it :P < 1251350195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I'm sure the costs of shipping a tiny, tiny bottle overseas are exorbitant :P < 1251350198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course, I could just make it myself. < 1251352109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wow, doing a bidirectional process pipe in C is ... awkward. < 1251352164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like, ridiculously so. < 1251352387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Who the fuck designed this shit? < 1251352620 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Awkward in Unix? Definitely not original. The original design was at least *consistent*. ;) < 1251352646 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(that is to say, if it's K&R, I shall murder someone. I'm not sure who.) < 1251352675 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's just... holy fuck, you need to do a bunch of pipe calls with 2-element arrays and dup2 and aaaaaaaaaaaaaaaaaaaaaaaaaaa < 1251352686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why can't you just do "rw" on popen and get two files x_x < 1251352742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes scandalous_popen < 1251352745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*bipopen < 1251352881 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You now what? < 1251352892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I need to use a temporary file on one end anyway. < 1251352893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1251352969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...mktemp() modifies its argument. < 1251352975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is hard to express how much I hate C < 1251353107 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: try and express it! < 1251353130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll try and express how much I hate every C function operating on strings and the environment. < 1251353131 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ahem. < 1251353221 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, the string functions are *really* bad. < 1251353279 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ironically, when i learned C i was impressed with the string handling, because my expectations were set by Apple ][ BASIC < 1251353288 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :the secret to happiness in life: low expectations < 1251353335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The string and environment functions in C are a festering pile of teeming little bugs, except the bugs are actually made of excrement, and you discover that so's the floor; and it's all over your face, except now you're eating it, and vomiting on it, and eating that, and soon you're shitting out bugs < 1251353335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and more faeces and contributing to the general mess; meanwhile, the bugs, including the ones of your own creation, painfully detach every single limb in your body, keeping nervous signals connected wirelessly so you still feel the pain. They bore into your brain, where they give you the simultaneous < 1251353335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :feeling of the worst possible horror and the worst possible pain, but keep you alive for longer than it takes for A(g64,g64) suns to die out just so you can keep experiencing it. At the end, you are buried alive in the pile of shitvomitbugs, and suffocate to death while inhaling in the putrid < 1251353337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vapours and indeed the shit, vomit and bugs themselves, along with the rotted remains of your limbs. You expire with this feeling. < 1251353351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is what they are. < 1251353380 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :text clipping saved < 1251353389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You are most welcome. < 1251353463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now I have to go and work out the length of some character buffers to allocate, to avoid my computer spending a nanosecond on it at runtime. < 1251353472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :See you in a few years. < 1251353531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Okay, jesus christ; is there a popen that takes an array of arguments instead? < 1251353543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I would very much like that. < 1251353590 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i do plan 9 C which handles it all a bit differently, so im useless for old-fashioned unix standard library stuff < 1251353623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Plan 9's string support is marginally more bearable. < 1251353633 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :eh, its still the same stuff really < 1251353640 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :definitely a pain < 1251353649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Something like Python's is the goddamn panacea because it just damn works. < 1251353658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In fact, I am going to write it, right now. < 1251353673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It'll in fact be easier than figuring this out. < 1251353734 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yeah the thing about C string handling is that you are really supposed to write your own personal C string libraries of stuff and then take them with you for the rest of your life < 1251353794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm a crazy computer socialist, I want most things to be in the hardware and the rest to be in the closely-related language/OS. < 1251353827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Basically I just don't like stopping my own head from hitting a brick wall as opposed to stopping everyone's, which I guess applies to real-life socialism too.) < 1251353840 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i like your vision but i dont have the same dislike of building layers of abstraction out of disparate components < 1251353856 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :to me layered abstractions mean that it doesnt matter what the hardware is or does as long as you can get a UTM out of it < 1251353862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like abstraction, I dislike unneeded disbtraction < 1251353891 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i agree that in practice the 'layers' often fall apart, which is where the problems happen imo < 1251353893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :take current hardware architectures, they have a huge disparity from our high level languages, the concepts they use (garbage collection, tagged pointers, ...) - yet it's our fault < 1251353920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's perfectly possible to abolish that layer of "abstraction", and the result is a more coherent, faster, less roundabout system < 1251353923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and I think that's always a good thing < 1251353930 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Because Intel makes great C machines. < 1251353936 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(they can throw money at it!) < 1251353944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: do they, though? modern x86 differs quite a lot from C < 1251353949 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Actually, x86 is not *that* much of a C machine. < 1251353950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think they make great windows machines. < 1251353970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In fact their design philosophy is basically that of windows; pile shit on top if it saves us time and money to design. < 1251353976 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's more of an assembly machine -- it was originally designed assuming assembly programs. < 1251353982 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... With a lot of shit added on. < 1251353988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(ok, no offence to the intel guys, they're great; it's the climate that forces this) < 1251354014 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i still dont understand how the chip architecture matters, once you have written an implementation of a given language - thats where my brain fails to make the connection < 1251354024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Sure, you can ignore it, *but* < 1251354030 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :how is fortran on powerpc different from fortran on x86? < 1251354036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah, that's not the thing though. < 1251354045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :All "general purpose" architectures aren't really and pretty much suck. < 1251354047 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: The architecture limits efficient compilation techniques, for one. < 1251354055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm talking Lisp on an x86 vs Lisp on a good lisp machine. < 1251354068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The latter does checking of tagged pointers in hardware and automatically upgrades to bignums. < 1251354073 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: hmm, how is that important? stuff is so fast nowadays compiling is always trivial, isnt it? < 1251354075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It handles concurrent, generational garbage collection - in hardware. < 1251354083 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :To compile most languages to x86, you pretty much compile it to something vaguely like C and then compile C. < 1251354091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: The problem is that "good enough" only seems alright because we haven't seen better. < 1251354104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We're blinded to what hardware designed for the top-level could do for us. < 1251354124 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i just dont hear any specifics, and i think that its not theoretically compatible with the reality that everything is a utm < 1251354130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Massive, MASSIVE speed increases; Cheaper chips due to a less convoluted design; < 1251354141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Energy and therefore money saved by running less cycles - running instead *better* cycles < 1251354150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Yes, everything is *theoretically equivalent in what it can do*. < 1251354152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's about HOW you do it. < 1251354156 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Just because everything in practical use is a UTM doesn't mean that we should be using Brainfuck machine. < 1251354162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1251354165 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :using *a* Brainfuck machine, rather. < 1251354172 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :where is a source that demonstrates massive efficiency gains of the type you are talking about? < 1251354173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it's a "real-world" kind of thing either < 1251354178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a correct type of abstraction < 1251354183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: nowhere because nobody does this kind of shit < 1251354189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I arrive at it through pure reason < 1251354197 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so why am i supposed to believe your claims, without evidence? < 1251354200 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: None, because the last Lisp machine was designed before I was born. < 1251354207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Here is some pure logic to attempt to justify it: < 1251354207 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Logic? < 1251354224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If we do 50 x86 instructions to shuffle memory and registers, making conditional branches, ... — just to add two bignums together. < 1251354225 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Hmm. Actually, there has been some of "this kind of shit". < 1251354225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vs < 1251354241 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :as i said, to me logic seems to lie in the direction of 'you make a UTM, then you build abstractions on top, the low level doesnt matter' < 1251354242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We do ONE lisp machine instruction, which concurrently does a fixnum addition and checks the tag on the value, < 1251354245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sees that it's a bignum < 1251354247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :discards that result < 1251354251 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The JVM was designed to be implementable in hardware, and Sun has actually made Java machines that run Java rather efficiently. < 1251354252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and goes into a MICROCODE tight loop < 1251354254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to add it < 1251354259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's (a) much faster < 1251354264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(b) much, much less pointless shuffling < 1251354271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and those are what lead to less power consumption < 1251354375 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats a good rationale, but somehow i never got the sense your motivation was really ecological < 1251354383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not < 1251354400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but, for instance < 1251354402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if we use less power < 1251354410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we can afford more power of the computational kind < 1251354416 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at the same $ cost < 1251354416 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1251354420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a combination of a BETTER result (faster, less power, etc) < 1251354420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1251354429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :omitting needless "abstractions" that aren't < 1251354430 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i guess to me the big issue is that we have spare computational power already that we need to find something useful to do with < 1251354434 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're anti-abstractions; they confuse nd obscure the high-level < 1251354437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of harmonising with it < 1251354446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and if we can destroy such silly things, whyever would we not? < 1251354459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course my OS won't run on such chips by default < 1251354465 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but we CAN'T destroy such silly things at the moment < 1251354468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :due to how the market is < 1251354475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if we were in a position to, absolutely < 1251354476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no brainer < 1251354479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should be done < 1251354487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, I do hope that one day it will be done, and I'd like to work on it < 1251354527 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i personally feel you are making arguments that are like claiming the fonts used in a document determine the quality of the content, but i remain very interested and supportive on the meta level :) < 1251354550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: theoretically, this buys you nothing in expressivity < 1251354571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: but would you use a 3ghz zilog processor in lieu of, e.g. a modern Intel Xeon? < 1251354581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there IS such a thing as a better architecture < 1251354590 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :absolutely < 1251354598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which absolutely was that to < 1251354599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my question? < 1251354610 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i was agreeing about better architecture < 1251354613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right < 1251354623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's sort of like, mycroftiv, < 1251354626 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i just see the chips that we have today as perfectly capable and adequate for implementing any abstractions whatsoever < 1251354627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could build my lisp os on top of windows < 1251354631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I really could < 1251354634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I could do it and it would work < 1251354652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the code would be god-awful, windows' overhead that concentrates on things that don't matter to my OS would slow it down, < 1251354657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :theoretically, the abstractions would be totally mismatched < 1251354663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(and this would also lead to more bugs) < 1251354669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(in the translation of the abstractions) < 1251354670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc...... < 1251354683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now, if running it on top of windows was the only way to feasibly do it on modern computers? < 1251354688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you bet i'd do it that way. < 1251354697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :same justification as why I'm using a regular platform < 1251354704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of a superior high-level chip < 1251354713 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: "Perfectly adequate", sure. So's Brainfuck. < 1251354721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the fact is that our chips, internally, are fucking awful < 1251354728 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't make it good, that just makes it Turing-complete. < 1251354731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bloated piles of non-orthogonal shit, no coherent design philosophy, < 1251354734 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a bunch of 80s relics, < 1251354742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and designed to run code from an imaginary language < 1251354742 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: if someone had done the incredible amount of work to build a high level environment ON TOP of brainfuck, then brainfuck would be just fine - and isnt that the situation with our current chips? < 1251354746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sort of a hybrid of C and crazy < 1251354755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they really aren't "adequate", abstraction wise < 1251354760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you seem to be a software guy < 1251354763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you might just not know this < 1251354768 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: ... Someone has. < 1251354778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: see, those layers are only required BECAUSE of the underlying system < 1251354784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with a high-level chip, there would be far less layers < 1251354792 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How's GCCBF going, anyways? < 1251354793 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yup im 100% a software guy, thats why im kinda baffled by your perspective, because ive never had the hardware seem to interfere with anything i wanted to do < 1251354794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the only layers would be consistent, logical, sane ones directly related to the abstraction as hand < 1251354797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*at hand < 1251354810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not a leaning tower of pisa of mismatching abstractions and doing shit pointlessly in software < 1251354817 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: It's primarily an issue for OS and compiler authors. < 1251354827 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :see, i guess i see software as *about* building abstractions < 1251354828 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But it's a *very* important issue there. < 1251354837 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i honestly want very little done *for* me - i want to build the abstractions myself! < 1251354839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: see, we're using different definitions of abstraction < 1251354848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :When I refer to abstraction in a bad sense, I mean a pointless layer over something < 1251354853 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that may well be true, abstraction is a pretty abstract concept < 1251354858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as in, we have a perfectly good possibility for a layer X < 1251354864 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but instead, we take a distinctly inferior one X0 < 1251354868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and layer on top of it, X1 < 1251354871 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(other authors can build on top of the software that abstracts away most shitty things about the system) < 1251354874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the combined system works basically as well as X < 1251354880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but is klunky, distinctly inferior, almost certainly slower, ... < 1251354893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's the kind of bad "dystraction" we have in today's chips < 1251354936 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yes, and since we have done that work, and we have lots of compilers and languages available - havent we gotten past the 'hard part', so to speak? < 1251354944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: look, same argument: < 1251354947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not build things on windows < 1251354953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a lot of people have worked to build a whole system on top of it < 1251354957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and there's a lot of stuff on it < 1251354973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: let me know when you've switched to developing on windows. < 1251354994 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, im perfectly happy running plan 9 in qemu on windows, or using windows drawterm...so in that sense, im already there < 1251355006 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: You don't *need* to care because of that work, but that doesn't make what you're using any better. < 1251355019 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It just makes it more tolerable because you can pretend the bad shit isn't there. < 1251355022 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: but the improvements can all be done at the upper layer < 1251355023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have a feeling there's no way I could demonstrate why chips are really really shitty without you turning into a lower level guy, mycroftiv < 1251355032 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... No, you can pretend that they have been done. < 1251355040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and probably only with a better lisp chip in my hand, unless you get really serious about that sort of stuff < 1251355045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :alas that will not happen any time soon < 1251355048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ASICs are expensive and such < 1251355051 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i dont disagree that chips are shitty - but other people have done the hard work of making environments that allow *anything* to happen on top of them, without worrying about those layers < 1251355069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: So fucking what? Why are these pointless layers so sacred? < 1251355074 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv, that *doesn't make the status quo any better*. < 1251355077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If we don't need them, if we can do without them, < 1251355080 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It just makes it tolerable. < 1251355083 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: they arent sacred, they just dont interfere with anything so far as i can tell < 1251355084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If we can run faster, cooler running, < 1251355089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Less power-using, < 1251355093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :More theoretically elegant chips, < 1251355095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WITHOUT these layers < 1251355102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then WHY do we see them as an argument in favour of the platform that has them? < 1251355104 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Don't interfere with anything"? < 1251355117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: let me just tell you, they do interfere < 1251355120 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm dreading writing my OS < 1251355123 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: well, i love this channel because normally im the critic of the status quo, advocating use of an OS most people cant stand < 1251355144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x86_64 is like a personal vendetta against everything I want my OS to do < 1251355156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and I have to fight it < 1251355157 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: how does the chip im using prevent me from writing whatever software i want? thats what i dont understand < 1251355162 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... If you'll note, C is still in use, because it's the best language for interacting directly with the hardware *we have* (... modulo the bloody string library). < 1251355168 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't, theoretically, mycroftiv. < 1251355172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: stop using C < 1251355175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :start using machine language, directly < 1251355182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't prevent you from writing whatever software you want < 1251355185 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :why would i want to throw away those layers? < 1251355186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so why are you proposing this mystical... "C"? < 1251355190 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: It doesn't prevent you, it just makes it a royal fucking pain to do certain things. < 1251355203 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like... Any operating system at all. < 1251355236 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :x86 OS development is significantly worse than Brainfuck coding. Brainfuck is at least consistent. < 1251355245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if mycroftiv says the same thing again this conversation is officially killed by the hardware-based Stupid Looping Conversation Killer < 1251355274 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :x86 has pointers packed in structs by splitting the damned things into three chunks of different size. < 1251355275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(the SL(a)CK) < 1251355295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION resists the temptation to call his string type Bs for bytestring < 1251355296 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(that is one of the *less* awful examples; dealing with that is at least a short function of bit twiddling) < 1251355301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(str prefix is taken by stdlib :-P) < 1251355316 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, the whole conversation was based on a misunderstanding i guess - i thought we were talking about new chips enabling benefits for end users, by allowing for better software to be developed < 1251355324 0 :pingveno!n=quassel@c-24-21-252-237.hsd1.or.comcast.net JOIN :#esoteric < 1251355332 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :if the only question is the benefits to OS writers and compilers, i never would have had any questions or disagreements < 1251355337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: I think that the end result is, perhaps not the actual software is better, < 1251355338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BUT < 1251355339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it runs better < 1251355341 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: It allows for better *operating systems* to be developed. < 1251355356 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, i believe better OSes == better software < 1251355361 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And that has a tendency to make everything else run better because the OS is less bad. < 1251355375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Runs better = smoother, with less crashes, less pointless layers, faster, ... AND IS MORE THEORETICALLY ELEGANT < 1251355384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you say that "well, that's irrelevant because the other platform has extra layers" < 1251355393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the point is that the alternative doesn't REQUIRE those layers < 1251355399 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so, you think the reason modern OSes pretty much all suck is that the chips force them to, by forcing them to push C style semantics up into layers it doesnt belong? < 1251355400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that's not valid < 1251355406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then add up theoretical elegance + the benefits? < 1251355408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: no < 1251355411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to a degree, yes < 1251355414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not entirely, though < 1251355427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(did we ever say that?.) < 1251355434 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :no, im trying to understand what you mean < 1251355439 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats why i asked the question < 1251355446 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :because im trying to formulate an expression of your thesis < 1251355454 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :which i have yet to really understand, hence all the questions < 1251355455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IRC seems to me to be a fundamentally bad medium for debate. < 1251355471 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :bring on the broken beer bottles and spiked baseball bats in an alley! < 1251355483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You have to rush to state your arguments, debate quickly goes off track with rapid-fire messages, it can get emotional due to the real-time nature, etc... < 1251355487 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :im ready for the procedural vs. functional rumble < 1251355496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nobody likes procedural. :) < 1251355499 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i do < 1251355505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't count as a person, then. < 1251355507 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :its the only model i actually have ever been able to learn to think in < 1251355515 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :everything else i have to 'force' my brain into < 1251355517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fix your brain < 1251355529 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :but 'follow a set of instructions in order, like following a recipe' - ive understood that since age 5 < 1251355559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a model suitable for trivial recipes < 1251355565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and instructions to 5 year olds. < 1251355640 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i actually started to learn church's lambda stuff at around that age also, because my grandfather taught math and he had a game called T U F that was a proof-making game you played with dice < 1251355652 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and in retrospect, i realize it was actually teaching that < 1251355674 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this conversation is kinda going nowhere < 1251355700 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :sorry for trying to understand your ideas, my friend < 1251355705 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :not trying to be offensive about it < 1251355719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1251355723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :when did I say anything about that < 1251355740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was just saying that, based on my whole-lifetime experience of this conversation, it's unlikely to lead anywhere < 1251355777 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, any time that you feel you have wasted, i offer to refund to you in whatever form you like < 1251355782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Do you know Haskell? < 1251355795 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If not, learn it. < 1251355808 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: ive studied it and played with it a bit, i wouldnt presume to claim i 'know' it the same way i know the languages i do say i know < 1251355835 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i just find it difficult to convert from the algorithms in my head to a haskell formulation < 1251355840 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though it's hard to pick up (simply due to being markedly different from everything else you likely know), it makes it rather easy (compared to just about anything else) to grok functional programming. < 1251355895 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i study math as much as i can, and sadly my brain handles f(g(x)) ok, but then e(f(g(x))) - and its gone < 1251355935 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :and i find that it seems like you are supposed to be able to track even more x of y of z of alpha of beta..than that < 1251355949 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :so its a bit of a cognitive wall for me < 1251355955 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Instead of saying "int sum (int *array; int size) {int sum;for (int i = 0; i < size; i++) sum += array[i]; return sum;}", you just do "sum = map (+)" < 1251355971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: maybe you should augment your memory :) < 1251355972 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is to say, you don't say *how* you do something, but rather *what you want done*. < 1251355975 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah i love map! < 1251355991 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i have my own library of that kind of stuff i wrote for myself in C < 1251355992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Figure this out: < 1251356007 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, "e . f . g" is not much harder than "f . g" ;) < 1251356011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sum xs = fold (+) xs < 1251356021 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :foldr, you mean? < 1251356022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So, we have a list [1,2,3] right? < 1251356026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: No. < 1251356027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean fold. < 1251356030 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, then. < 1251356060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: given the list [1,2,3], and addition, what syntactic change can we make to it to sum it? < 1251356066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, [1,2,3]; you have a + sign < 1251356071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how do you turn it into the sum of [1,2,3]? < 1251356082 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Also, "map (+)" is made of fail. That makes a list of functions, and... Yeah. Totally wrong. < 1251356093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Shutup :P < 1251356121 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :are you just talking about fold (+) [1, 2, 3] ? < 1251356139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: I'm trying to explain folding in terms of functional languages < 1251356148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as in, how you model operations non-iteratively < 1251356151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have [1,2,3] < 1251356156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can make syntactic changes to it < 1251356159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have + < 1251356174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what transformation do you do to [1,2,3] using + to turn it into the sum? < 1251356183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you get rid of the brackets < 1251356186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and replace , by + < 1251356190 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[1,2,3] → 1+2+3 < 1251356194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's, basically, what fold does < 1251356202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :product is fold (*), then < 1251356204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[1,2,3] → 1*2*3 < 1251356220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fold itself is built as a recursive function < 1251356226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but in high level haskell, you don't generall recurse < 1251356233 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :why are you explaining these basics to me? im not ignorant, i just said my brain doesnt seem to naturally think in functional terms < 1251356237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you use simple combinators like that to build up a transformation of data < 1251356244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: It's not what fold is itself < 1251356249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's not what I'm trying to get across < 1251356256 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to get across how to apply the functional mindset to it all < 1251356322 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :do you know the borges story "Tlon, Uqbar, Orbit Tertius" ? < 1251356331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nope. < 1251356334 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :this is *not* a tangent ;) < 1251356356 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :well, to cut directly to the point - alternate universe where people dont think in nouns, they only think in verbs/perceptions < 1251356381 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :when i learned about functional programming it was like that story had come to life and i was amazed < 1251356384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's the opposite of functional programming, really < 1251356391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :functional programming is all about the data < 1251356406 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :b-b-b-ut... < 1251356426 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Imperative programming is a series of verbs. < 1251356438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The internet is a series of verbs. < 1251356487 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Functional programming is, ultimately, a piece of data, and what you write is transformations on other pieces of data in order to arrive at your final piece of data. < 1251356497 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and functions themselves are data. < 1251356510 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :yes, i do love lisp < 1251356510 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(which, of course, means you can do transformations on your functions) < 1251356523 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i absolutely believe lisp has the best and clearest model of programming < 1251356571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he never said lisp < 1251356574 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Lisp is a hacky and low-level language, in my estimation. < 1251356575 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i didnt say he did < 1251356576 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1251356578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :common lisp in fact is not a functional programming language in the slightest. < 1251356581 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i was speaking for myself < 1251356589 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"yes," doesn't follow then < 1251356593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1251356596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm doing fun stuff! < 1251356599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you will see soon. < 1251356634 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :'functions themselves are data' was the sole referent of 'yes, i do love lisp' - by which i meant 'i agree that the model where functions are data is the best, based on my appreciation of lisp' < 1251356646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1251356685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I am warming more to lisp lately < 1251356690 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :see i dont want you guys to think that i dont *agree* with you - im just more skeptical that the Data Paradise can actually be brought about < 1251356692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a bastardised, ehird lisp < 1251356700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but a lisp nonetheless < 1251356713 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv, it was done a few decades ago. < 1251356718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: I have modelled actions successfully in my domain < 1251356719 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :i *agree* with all the stuff you say, but i think that even if you make better chips and OSes and everything...software will still probably mostly suck < 1251356720 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Are you familiar with Lisp machines? < 1251356724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they have turned out succ— < 1251356728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: allllmost < 1251356730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they still had filesystems < 1251356735 0 :kar8nga!n=kar8nga@a-27.vc-graz.ac.at JOIN :#esoteric < 1251356739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(which stored the code files) < 1251356742 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: True. Still... < 1251356743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but pretty close < 1251356743 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: not personally, ive just read about them, i grew up on the home computers of the 80s starting in 1980 and i never had any access to anything else < 1251356761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: the whole point of my OS is that I think I know how to make software not suck < 1251356770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as a fundamental model < 1251356773 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: Less suck than modern OSes. < 1251356816 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: since i hate all modern OSes except plan 9, no argument from me on that. < 1251356827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plan 9 is still loatheful < 1251356847 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no way, it has namespaces, which are Just Exactly Right, imo < 1251356858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :disk/ram namespaces are separate < 1251356860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'nuff said. < 1251356868 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :what? no they arent... < 1251356876 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :you can build your namespace however you want < 1251356877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you think they aren't < 1251356881 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's kinda the C model. < 1251356882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you misunderstood my comment entirely., < 1251356896 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :in plan 9 your namespace knows nothing about ram vs disk < 1251356897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, the functions in the OS are distinctly inferior to the functions in the language < 1251356900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :being untyped affairs < 1251356903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mycroftiv: no, no, listen < 1251356914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has in-memory addresses < 1251356920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo->bar->baz in C < 1251356923 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it has filesystem addresses < 1251356925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/foo/bar/baz < 1251356932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :these two concepts being distinct is evil < 1251356945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and a cause of many, many woes present in computing today < 1251356953 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :oh sure, i agree with that < 1251356966 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :thats not what namespaces are in plan 9 though, we are at different layers, as usual < 1251356970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1251356972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're at same layers < 1251356976 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you are just using different definitions < 1251356987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and trying to rebut the arguments I made with my definitions, with yours... < 1251356997 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :im using namespace as defined/used in the context of the plan 9 operating system and its manpages, thats all < 1251357029 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :simply talking about its implementation of per-process namespaces, which is a great feature - i totally agree that ultimately the different modes of addressing data between filesystem and programming languages is Bad < 1251357029 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And he's discussing from a programming perspective, not from the perspective of someone using, say, rc. < 1251357038 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1251357046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if plan 9 just had rc and C i could respect it < 1251357055 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :though it'd be shit, as all it'd have would be weakling string types. < 1251357064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...there's a reason c has a richer type system :) < 1251357072 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: i program plan 9 in C, i understand the point he is making < 1251357075 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Weakling string types doesn't necessarily make for a bad language. See Tcl. < 1251357078 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1251357084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: we will have to strongly disagree. < 1251357117 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(... Though, Tcl does it via magic, so it's not exactly a *grand* language. And that's probably about as good as you can get while retaining "everything is a string".) < 1251357136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :rc is a nice language. for scripting. < 1251357142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uh, wouldn't want to program a whole system in it. < 1251357153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yet the "language" of plan 9 has exactly the same semantics, and it still has C < 1251357157 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :its certainly nicer than bash < 1251357161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... no coincidence: C's semantics are, in fact, nicer to code in < 1251357165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :than the language of Plan 9's < 1251357171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and its separate namespace hierarchy < 1251357178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with silly, untyped strings < 1251357218 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you arent using vocabulary in the way plan 9 does, so its very hard for me to parse your statement... < 1251357233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wasn't aware plan 9 brainwashed its adherents :) < 1251357244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :namespace: a space containing identifiers < 1251357244 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :sigh. < 1251357251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. in C, a->b->c is a member of its namespace < 1251357259 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :He's using it the way anyone sane (and most insane people) use it. < 1251357265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in Plan 9, /a/b/c would be an example < 1251357265 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :all along, i was trying to talk about namespaces in the specific plan 9 sense, that is all < 1251357266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a space of names < 1251357268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :simple < 1251357278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Plan 9's is distinctly inferior because: < 1251357281 0 :mycroftiv!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yes, but in plan 9, 'namespaces' have a much more OS context specific meaning, which is what i was trying to talk about < 1251357292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the names can only identify typeless strings of bytes < 1251357302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C's namespace can identify all sorts of richer things < 1251357312 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :rc is an example of a language built around the semantics of Plan 9's namespaces < 1251357320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C is an example of a language built around the semantics of C's namespaces < 1251357332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's a reason why most of plan 9 is written in C, not rc: C is nicer for non-scripting things < 1251357338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and this is because of its richer namespace. < 1251357353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in my OS, there is only one namespace, and it is a rich, object-based one, like Smalltalk < 1251357466 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(exception: Forth. (but there be dragons there, and you can pretend that that is entirely imaginary)) < 1251357488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I'm not referring to the languages < 1251357498 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, fair enough. < 1251357498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and forth is basically a bootloader in my os :P < 1251357509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the thing is that most languages are both a namespace and a language based on that namespace < 1251357509 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Tiny bit more complicated than a bootloader. < 1251357518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with plan 9 it's separate: namespace:plan 9, language:rc < 1251357522 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's harder to discuss it < 1251357524 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I guess the closest thing it would be (and it's not exactly *close*) is a kernel? < 1251357527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because people don't see it as a language < 1251357530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: nah < 1251357532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not centralised anything < 1251357536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just executes the upper code < 1251357547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no hardware or anything < 1251357549 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1251357559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't have a name in the common vernacular. :) < 1251357582 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like I said, it's not exactly close. < 1251357586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yah < 1251357663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: my secret project, by the way, is an IRC bot scriptable in C < 1251357665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is, < 1251357681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can do !eval say(channels[0], "hello world") < 1251357683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the like < 1251357687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it turns out that gcc -c is fast < 1251357697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so kinda-JITting C is perfectly possible < 1251357700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as long as you don't link < 1251357708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, dlopen :) < 1251357719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...but also some fun other stuff. < 1251358035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc, I have to somehow open this object file without linking it < 1251358041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which could be uh tricky < 1251358114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ooh, linking a shared lib is actually fast < 1251358142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ehird:~/Code/cbot] % time ./dynamic '2' >/dev/null < 1251358142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :./dynamic '2' > /dev/null 0.02s user 0.02s system 94% cpu 0.048 total < 1251358196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now all I have to do is implement a dlopen that latches on to another process so I can access the bot from the snippet... < 1251358198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1251359290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :% ./dynamic 'int j;for(int i=0;i<1000;i+=3)j+=i;j' < 1251359292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :166833 < 1251359294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep, that... works < 1251359879 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1251359999 0 :clog!unknown@unknown.invalid QUIT :ended < 1251360000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1251360781 0 :pingveno!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1251361416 0 :M0ny!n=Harmony@AToulouse-258-1-77-180.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1251361462 0 :M0ny!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1251361518 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1251361537 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ho < 1251361955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1251362641 0 :oerjan!unknown@unknown.invalid QUIT :"It's no laughing matter!" < 1251363823 0 :ehird!unknown@unknown.invalid QUIT : < 1251366093 0 :Gracenotes!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1251369512 0 :FireFly!n=FireFly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1251369702 0 :MigoMipo!i=3e779bfd@gateway/web/freenode/x-aaywkrgucjhsbmnq JOIN :#esoteric < 1251370889 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1251371116 0 :M0ny!unknown@unknown.invalid QUIT : < 1251371884 0 :MigoMipo!unknown@unknown.invalid QUIT : < 1251372716 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1251372732 0 :BeholdMyGlory!n=behold@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1251375290 0 :Pthing!n=pthing@77-100-194-169.cable.ubr04.pres.blueyonder.co.uk JOIN :#esoteric < 1251376048 0 :MigoMipo!i=3e779bfd@gateway/web/freenode/x-gfqrfdupxdmcruis JOIN :#esoteric < 1251379010 0 :MigoMipo!unknown@unknown.invalid QUIT : < 1251382211 0 :ais523!n=ais523@147.188.254.126 JOIN :#esoteric < 1251382281 0 :MigoMipo!i=3e779bfd@gateway/web/freenode/x-vpebjnhibnquttei JOIN :#esoteric < 1251383111 0 :puzzlet_!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1251383112 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1251385629 0 :Asztal!n=asztal@host86-172-4-174.range86-172.btcentralplus.com JOIN :#esoteric < 1251386450 0 :MigoMipo!unknown@unknown.invalid QUIT :"fe'o rodo" < 1251387351 0 :kar8nga!n=kar8nga@a-60.vc-graz.ac.at JOIN :#esoteric < 1251389963 0 :puzzlet_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1251391919 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1251392592 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1251392793 0 :lifthrasiir!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1251393695 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1251394507 0 :lifthrasiir!i=GEuegPbY@haje12.kaist.ac.kr JOIN :#esoteric < 1251394600 0 :lifthrasiir!unknown@unknown.invalid QUIT :Remote closed the connection < 1251394954 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1251395510 0 :lifthrasiir!i=ljPUklgA@haje12.kaist.ac.kr JOIN :#esoteric < 1251395901 0 :puzzlet!n=puzzlet@147.46.241.168 JOIN :#esoteric < 1251396062 0 :Gracenotes!n=person@wikipedia/Gracenotes JOIN :#esoteric < 1251396116 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote closed the connection < 1251396162 0 :Gracenotes!n=person@wikipedia/Gracenotes JOIN :#esoteric < 1251397787 0 :ehird!n=ehird@91.105.91.102 JOIN :#esoteric < 1251397791 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1251398022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yawn < 1251398045 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yet another weariness noun < 1251398511 0 :ehird!unknown@unknown.invalid QUIT : < 1251398692 0 :pingveno!n=quassel@24.21.252.237 JOIN :#esoteric < 1251400165 0 :M0ny!n=Harmony@AToulouse-258-1-77-180.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1251401305 0 :Gracenotes_!n=person@wikipedia/Gracenotes JOIN :#esoteric < 1251401484 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1251402212 0 :Gracenotes!unknown@unknown.invalid QUIT :Nick collision from services. < 1251402217 0 :Gracenotes_!unknown@unknown.invalid NICK :gracenotes < 1251402704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ding, dong, the channel's dead < 1251402758 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ding's the channel's don < 1251402760 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*dong < 1251402796 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you donna wanna messa with the channel's don < 1251404063 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1251405073 0 :coppro!n=coppro@unaffiliated/coppro JOIN :#esoteric < 1251405549 0 :pingveno!unknown@unknown.invalid QUIT :Remote closed the connection < 1251406158 0 :CESSMASTER!unknown@unknown.invalid QUIT :wolfe.freenode.net irc.freenode.net < 1251406158 0 :SimonRC!unknown@unknown.invalid QUIT :wolfe.freenode.net irc.freenode.net < 1251406256 0 :CESSMASTER!n=CESSMAST@unaffiliated/joelywoely JOIN :#esoteric < 1251406256 0 :SimonRC!n=sc@fof.durge.org JOIN :#esoteric < 1251406260 0 :CESSMASTER!unknown@unknown.invalid QUIT :Connection reset by peer < 1251406325 0 :SimonRC!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1251406326 0 :SimonRC_!n=sc@fof.durge.org JOIN :#esoteric < 1251406434 0 :CESSMASTER!n=CESSMAST@unaffiliated/joelywoely JOIN :#esoteric < 1251407879 0 :GreaseMonkey!n=gm@unaffiliated/greasemonkey JOIN :#esoteric < 1251409037 0 :M0ny!unknown@unknown.invalid QUIT : < 1251409894 0 :GregorR_!n=gregor@65.183.185.22 JOIN :#esoteric < 1251410213 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1251410233 0 :GregorR!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1251413566 0 :sebbu2!n=sebbu@ADijon-152-1-26-158.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1251414239 0 :gracenotes!unknown@unknown.invalid NICK :Gracenotes < 1251414252 0 :FireFly!unknown@unknown.invalid QUIT :"Later" < 1251414426 0 :nescience!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1251414605 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1251414691 0 :poiuy_qwert!n=poiuyqwe@74.13.126.168 JOIN :#esoteric < 1251417240 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I think I just noticed the subletest joke I've ever noticed in a Discworld book