< 1213401942 0 :Slereah_!n=hax@ANantes-252-1-53-16.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1213401964 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :... < 1213401971 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I'm on the metamath mailing list? < 1213401976 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember applying. < 1213401987 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Ah, I think I do. < 1213401993 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I needed to see some old posts. < 1213402099 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1213402208 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213402537 0 :oklofok!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213402614 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1213405504 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1213406313 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213406332 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1213406397 0 :tusho!unknown@unknown.invalid QUIT : < 1213407896 0 :GreaseMonkey!n=gm|--0@219-88-194-36.jetstream.xtra.co.nz JOIN :#esoteric < 1213407986 0 :Judofyr!unknown@unknown.invalid QUIT : < 1213409168 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213409185 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213410314 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1213411780 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oklopol/fok/whatever < 1213412028 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ihjads < 1213412085 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1213412092 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1213412120 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :will the evaluator be eager or lazy, for reactance? < 1213412127 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i think it'd have to be like.. hyper-eager, right? < 1213412133 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because its reactive? < 1213412153 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1213412159 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, you can have it either way < 1213412163 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :which means no lazy lists or anything like that as data structures < 1213412169 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i dont think we can have laziness tho < 1213412176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well no, that wouldn't really fit < 1213412196 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :reactions can be done either laziliy or eagerly < 1213412207 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*lazily < 1213412211 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :how can they be lazy? i dont see how < 1213412219 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :any change upstream has to immeditely propogate downstream < 1213412235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :when getting the value of y, find all x -> y, get value of x, and set y to that < 1213412249 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but there is no "getting the value of y" < 1213412269 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure there is < 1213412272 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1213412273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :when you output it < 1213412274 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its reactive < 1213412281 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :outputting is a reaction like any other :p < 1213412284 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1213412287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :y -> [o] < 1213412292 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you need to get value of y < 1213412295 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :x -> @ (assuming @ is the global out) < 1213412302 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :will be a constant output stream < 1213412311 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :there is no "print(x)" < 1213412319 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1213412321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1213412327 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so then there's no way for it to be lazy < 1213412331 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for printing y, you get the value of y < 1213412331 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because you're constantly outputting < 1213412338 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but there is no getting! :P < 1213412342 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1213412344 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :thats not how reactions work < 1213412355 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :whenever anything upstream changes, it automatically flows downstream < 1213412357 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :to any outputs < 1213412365 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :theres no getting < 1213412367 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :there's putting < 1213412368 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :5 -> x < 1213412371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :x -> y < 1213412373 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :y -> @ < 1213412378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can either do < 1213412387 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :yes but thats not a "get y" < 1213412392 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :5 -> x, then find all x -> var, and set all var to x < 1213412395 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :thats "Establish a reaction between y and the output" < 1213412398 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1213412409 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :there is no "get y and put it into @" there < 1213412412 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what exactly is the difference in behavior? < 1213412414 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its just an establishment of a reaction < 1213412417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1213412419 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :the difference is that if i later do < 1213412422 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :3 -> x < 1213412427 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i should immediately output 3 < 1213412445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :3 -> x has the side-effect of outputting 3? < 1213412448 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no < 1213412449 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :if you do < 1213412454 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :x -> @ < 1213412458 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :then later doing < 1213412460 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :3 -> x < 1213412466 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :immediately outputs 3 < 1213412503 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because there's this established reaction that the value of x flows down into @ at all times when x changes < 1213412507 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so when we do 3 -> x < 1213412508 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :x changes < 1213412525 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :and that change instantly propagates down the reactions into the output < 1213412552 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :thats what these reactions are. :P < 1213412558 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :did you not realize that? lol < 1213412571 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure i did, but i'm still sure we can view this lazily < 1213412584 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i dont think so < 1213412606 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because anything that outputs anything will need to be pushed immediately < 1213412674 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually < 1213412689 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just in this case the lazy way is the same < 1213412699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you still need to keep track of the old reactions < 1213412702 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :? < 1213412707 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and update them every time variables update < 1213412721 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i dont know what you mean now. :P < 1213412813 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :y -> @; 3 -> x; x -> y; <<< this demonstrates the difference, but keeps the reverseness; y -> @; is simply stored, because "getting y" is impossible yet, then 3 -> x is stored, then x -> y; now y *can* be "gotten", so y -> @ executes, it gets y, which in turn gets x, which is 3 < 1213412826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whereas the eager way would be to... well you know. < 1213412857 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no, y -> @ wouldnt be stored at all, you'd start outputting "undefined" < 1213412884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1213412884 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :when you set up x -> y the value of y immediately changes to reflect x and you immediately output 3 < 1213412893 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :y is undefined when you do y -> @ < 1213412898 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so you immediately output "undefined" < 1213412898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1213412918 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :or whatever the equivalent would be in the language < 1213412933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll just make you a lazy version of my interp tomorrow, you're obviously tired < 1213412937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :night -> < 1213412939 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :uh huh :P < 1213412949 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<- < 1213412955 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why would it output undefined? < 1213412962 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :why wouldnt it? < 1213412969 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :the rules of the language are < 1213412982 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :when you establish a reaction, values flow from the left of the -> to the right < 1213412985 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what is different between the lazy evaluation scheme and the eager one? < 1213412990 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, conceptually < 1213412990 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :y -> @ says the value of y flows into @ < 1213412995 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with doing the same lazily? < 1213413005 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because y -> @ says only one thing :P < 1213413012 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :that the value of y goes into @ < 1213413021 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :it gets outputted < 1213413026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :y -> @; is a kept reaction, it will be triggered each time y gets a new value < 1213413033 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but it already HAS a value < 1213413034 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :or rather < 1213413042 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :it LACKS a value but it has the fact that it lacks a value < 1213413065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and what's different between that, and the lazy way of doing it, where you "can't get the value"? < 1213413066 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :what if i want to see if and when y gets defined? < 1213413077 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i'd need to first know that it doesnt have a value < 1213413098 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i mean, sure, perhaps in this one case it might be equivalent < 1213413112 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :don't give me that conceptual crap, give me an example where they differ < 1213413122 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :the first value change output will always occur are the same time i guess, yes ok. < 1213413128 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but after than, there's no way to be lazy < 1213413145 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because you're outputting constantly, so all changes will immediately propogate to @ < 1213413150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err, if y is redefined later, the reaction is triggered again < 1213413162 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :right, but if you later set x, say < 1213413176 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :the reaction immediately propogates from x to everything defined in terms of it < 1213413191 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :which means that changing x immediately has to propogate down to y then to @ < 1213413204 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because @ is sort of "constantly getting" y, which is "constantly getting" x < 1213413229 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, and here we see how they are the exact same < 1213413230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you see < 1213413242 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1213413243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1213413246 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ok, so the initial y -> @ is sure :P < 1213413248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't say a thing i thought i said < 1213413249 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but nothing else < 1213413250 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :already < 1213413267 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but anyway, you need to trigger (y -> @) when x changes < 1213413280 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :right, but thats not lazy at all < 1213413289 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it is, you only need to trigger outputs < 1213413326 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :hm.. so you mean only update @'s? < 1213413345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, basically, the trigger system is much less efficient < 1213413360 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but you can do it lazily < 1213413364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as you can do anything lazily < 1213413372 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :e.g. when you set a value, go through and find all @'s that depend on that value and then go through those reactions? < 1213413410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i'm thinking just evaluate all (expr -> @) all the time, this is not about efficiency < 1213413419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's about being able to do it lazily < 1213413461 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well, part of the thing is that i can't imagine doing anything that doesn't have an -> @ in it < 1213413472 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i mean, if you never output anything, then the program is pointless < 1213413487 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :each time you add a reaction, you evaluate each and every (expr -> @) < 1213413493 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which means < 1213413515 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so "laziness" results in constant updating of @'s, which means constantly pushing values from inputs < 1213413518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"get value of expr and output it, unless no variables have changes" < 1213413520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*changed < 1213413523 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :hrm.. < 1213413525 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1213413543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pushing values of inputs? < 1213413634 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :yeah, values from any sort of input < 1213413642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what might that be? < 1213413645 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :like mouse.x -> ... < 1213413655 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oh thats another thing < 1213413657 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1213413661 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1213413672 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :we need to consider things like global objects and functions < 1213413676 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :mouse is going to need to be global. keyboard too. < 1213413680 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :once you get into inputs, laziness has problems, naturally < 1213413689 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :and i suppose as a global function, delay t v < 1213413708 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well darlin, theres no reason to do reactive stuff without inputs :P < 1213413714 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm talking about the simple subset with only (expression -> variable | port) reactions < 1213413718 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because without it, you're just making haskell :) < 1213413733 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :plus, delays also change things. < 1213413739 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :delay 10 x -> y < 1213413742 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :5 -> x < 1213413747 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :that introduces time variance < 1213413778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, all they really do is force you to evaluate all outputs all the time, which was in my theoretical implementation plan for making laziness work all along < 1213413780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1213413796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true, given input, laziness as such makes no sense < 1213413799 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's obvious < 1213413821 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :wait, evaluate all outputs at the same time? < 1213413844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, true, still doesn't work < 1213413855 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because inputs that don't actually flow into output yet < 1213413858 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :aren't read at all < 1213413864 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :we also need to define the semantics of delays :) < 1213413916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i dislike the idea of doing them like that, but shure, shure < 1213413943 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :brb again :p < 1213413957 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, do you believe me in that it is possible to have lazy reactions with the same semantics *given no input*? < 1213414078 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no, because delays introduce another issue. < 1213414083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for delays, i suggest a port whose values oscillates < 1213414086 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :delays are input < 1213414123 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ok, well then without delays and without input sure, i guess. < 1213414147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good, all i wanted was a nod, and "but that would be so inefficient it's ridiculous to even think about" < 1213414156 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well it wouldnt be inefficient < 1213414159 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :it'd just be haskell :) < 1213414176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, depends on the case < 1213414185 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i think i have an idea for a new esolang, btw < 1213414192 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :a language with no IO _at_all_. < 1213414218 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well io is really just a convenience < 1213414236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't usually use it except for printing out the result of my computation, in say python < 1213414239 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :it's also the whole point of computation :) < 1213414269 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well if you don't have implicit io, as in like a repl < 1213414280 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :any IO at all. < 1213414281 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then you have to use debugging to see your results < 1213414300 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no writing to disk, no communicating to a server, nothing at all. < 1213414301 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :nothing. < 1213414311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm, that's basically all esolangs < 1213414324 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :stdio is enough for anything < 1213414330 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ey? < 1213414331 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :stdio? < 1213414336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :standard input/output < 1213414341 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no dude < 1213414342 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :NO io. < 1213414344 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :NO stdio < 1213414345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the pipes you lead to your prog and out of it < 1213414345 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213414353 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's often the case with an esolang < 1213414364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just have implicit io then < 1213414369 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no implicit IO. < 1213414371 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no IO at all. < 1213414372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so the program works as a function < 1213414387 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i did that with nopol < 1213414392 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :I've decided on the language's design too < 1213414417 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but still, you will debug and see it does the computation right, after that there's no need for io < 1213414429 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :The language is of the form S*, where S is the set of all imaginable symbols, and the rules are anything at all. < 1213414436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1213414440 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well that sounds a bit boring < 1213414453 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :when you tell the interpret to interpret a program < 1213414459 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :the interpret does nothing, then quits. < 1213414463 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nopol had negative lists < 1213414482 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :since you can't get IO, it doesn't matter whether or not the program actual ran, since it makes no difference < 1213414501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1213414501 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :infact, the interpreter itself doesnt exist, since it would do nothing anyway < 1213414510 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :of course it makes a difference < 1213414513 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :how so? < 1213414515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no one cares about the result < 1213414521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's about the computation < 1213414527 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the beautiful concept of computation < 1213414529 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well the computation happens! < 1213414531 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :in your mind! < 1213414546 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :because you dont care what the result of it is, you can simply say "the computation happened." < 1213414552 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1213414561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nopol owns your idea so much < 1213414563 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213414569 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i like my esolang. < 1213414581 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its the fastest AND the slowest computer language in existence < 1213414590 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :all programs execute instantaneously < 1213414600 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :or at any other speed you want < 1213414732 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/oklopol/nopol.txt <<< mapping a lambda over a list < 1213414736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :using negative lists < 1213414741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so awesome < 1213414758 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :lolwut < 1213414761 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i dont understand it. < 1213414779 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<: a b> calls a with b < 1213414787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is, interprets the list in a as a lambda < 1213414792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and calls with list b < 1213414824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<. a b> is a lambda, when called, the arguments are pattern matched on a, and b is returned < 1213414829 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so its sort of like... if b = (b1 b2 b3 ...) < 1213414832 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its like doing < 1213414836 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :(a b1 b2 b3 ...) < 1213414837 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :in lisp < 1213414846 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1213414864 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well no < 1213414873 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so its like (a b)? < 1213414878 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<: a b>, in lisp, would be roughly (a b) < 1213414888 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oh ok. < 1213414892 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :gotcha < 1213414901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that's pretty much it < 1213414905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :except for the negative list < 1213414917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which is the list of the form > a b c< < 1213414927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the brackets are reversed < 1213414927 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :that makes no sense :D < 1213414932 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ofc it does < 1213414937 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1213414939 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :positive = <>, negative = >< < 1213414941 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :! < 1213414951 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :what happens when you run it backwards in time? < 1213414956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1213414959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't understna < 1213414961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :adnta < 1213414991 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, negative lists aren't actually all that pretty, in that they are not the negative of lists < 1213415002 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1213415004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they are *kind of* the negative, but... < 1213415023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<... > a b c< ...> turns into < 1213415044 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<<... a ...> <... b ...> <... c ...>> < 1213415047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so basically < 1213415063 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :>...< kinda maps the outer context for each element of it < 1213415083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this let's you do the map operation without actually writing it < 1213415088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :doesn't really let you do anything else < 1213415101 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but hey, it's kinda cool, and it has an incredibly confusing syntax < 1213415103 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so your mother < 1213415107 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and good night! < 1213415108 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1213415161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(nopol 2 will have negative lists as the perfect negative of lists, just don't know what that is yes) < 1213415164 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(->) < 1213415372 0 :graue!unknown@unknown.invalid QUIT :"Leaving" < 1213415590 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :night :P < 1213416350 0 :HanDongSeong!unknown@unknown.invalid QUIT :"잘" < 1213424632 0 :GreaseMonkey!unknown@unknown.invalid NICK :[[Nobody < 1213424897 0 :[[Nobody!unknown@unknown.invalid NICK :GreaseMonkey < 1213426340 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213426430 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213427255 0 :oklopol!unknown@unknown.invalid QUIT :Connection reset by peer < 1213427288 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213429245 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Remote closed the previous member app" < 1213430399 0 :clog!unknown@unknown.invalid QUIT :ended < 1213430400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1213433454 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1213434126 0 :Slereah!n=hax@ANantes-252-1-48-54.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1213435087 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1213436202 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1213436490 0 :kar8nga!n=kar8nga@AMarseille-151-1-48-6.w82-122.abo.wanadoo.fr JOIN :#esoteric < 1213438029 0 :kar8nga!unknown@unknown.invalid PART #esoteric :? < 1213438816 0 :olsner_!n=salparot@h-79-136-60-96.NA.cust.bahnhof.se JOIN :#esoteric < 1213438908 0 :jix!n=jix@host-091-096-147-237.ewe-ip-backbone.de JOIN :#esoteric < 1213438936 0 :olsner!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1213440681 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213440711 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213445801 0 :Corun!n=Corun@88-105-156-235.dynamic.dsl.as9105.com JOIN :#esoteric < 1213446509 0 :kar8nga!n=kar8nga@AMarseille-151-1-48-6.w82-122.abo.wanadoo.fr JOIN :#esoteric < 1213447686 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213447719 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1213449525 0 :oklopol!unknown@unknown.invalid QUIT :Remote closed the connection < 1213449552 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213450789 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1213452591 0 :RedDak!n=dak@host146-82-dynamic.16-87-r.retail.telecomitalia.it JOIN :#esoteric < 1213452670 0 :Judofyr!unknown@unknown.invalid QUIT : < 1213453490 0 :kar8nga!unknown@unknown.invalid PART #esoteric :? < 1213453792 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1213453802 0 :jix!n=jix@dyndsl-091-096-036-164.ewe-ip-backbone.de JOIN :#esoteric < 1213455163 0 :Hiato!n=Hiato@dsl-245-54-75.telkomadsl.co.za JOIN :#esoteric < 1213456504 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213456516 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213456749 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1213457084 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1213457095 0 :puzzlet!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1213457377 0 :tusho!n=tusho@91.105.107.28 JOIN :#esoteric < 1213457414 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :The & sign in a book. < 1213457989 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, ? < 1213458010 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The ? sign in a book. < 1213458032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tusho, what on earth are you referring to < 1213458046 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The , sign in a book. < 1213458085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so tell me tusho do you try to make any sense or are you just being silly < 1213458096 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The sign in a book. < 1213458400 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :tusho: The ¢ sign in a book. < 1213458416 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: The ¨ sign in a book. < 1213458472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool sign < 1213458474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so cool < 1213458904 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: The ™ sign in a book. < 1213459619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, do you get the joke? < 1213459621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't < 1213459631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and tusho doesn't want to explain < 1213459641 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The ' sign in a book. < 1213459656 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no, I don't < 1213459669 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Just checking if he'd respond differently :-) < 1213459693 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and then I thought about countering with signs until he runs out of ASCII but couldn't be bothered < 1213459693 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: The ƨ sign in a book. < 1213459752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you need to make him run out of unicode as well, please warn me in advance so I can part the channel if you do that, as I don't want my harddrive filled with such a log < 1213459752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213459771 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :he wasn't using Unicode at the time < 1213459775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1213459777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but now he is < 1213459915 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The Æ sign in a book. < 1213460042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :The sign for which strlen(0) is true on IRC. < 1213460059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err I mean: 0==strlen(sign) < 1213460235 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :The strlen(0) == 1 on IRC. < 1213460422 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1213461420 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213461437 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213463127 0 :puzzlet_!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1213463159 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :The IRC mechanical mechanism in a book. < 1213463513 0 :Corun!n=Corun@88-105-156-235.dynamic.dsl.as9105.com JOIN :#esoteric < 1213463709 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :such a cool mechanism < 1213463815 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1213464160 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1213464426 0 :puzzlet!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1213464436 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1213464563 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: The cool in a book. < 1213464858 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so cool an cool in an book < 1213465156 0 :ais523!n=ais523@chillingi.eee.bham.ac.uk JOIN :#esoteric < 1213465387 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :hello ais523 < 1213465393 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi tusho < 1213465396 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :wasn't expecting you today :P < 1213465399 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was wondering which channel you were going to say hi in < 1213465405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and neither was I, I may have to leave in a bit < 1213466305 0 :Corun!n=Corun@88-105-156-235.dynamic.dsl.as9105.com JOIN :#esoteric < 1213467311 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1213468202 0 :puzzlet_!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1213468232 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1213468307 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213468326 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213468708 0 :timotiis!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1213469501 0 :kar8nga!n=kar8nga@AMarseille-151-1-48-6.w82-122.abo.wanadoo.fr JOIN :#esoteric < 1213470455 0 :oklofok!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213470998 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :On an unrelated note! < 1213471005 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I am going to write a C->JS compiler. < 1213471013 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(ais523: this means C-INTERCAL in the browser. Fear!) < 1213471035 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: that isn't quite as insane as one thing I thought of < 1213471035 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1213471043 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213471043 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :writing a BF back end for gcc < 1213471052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so arbitrary C programs could be compiled into Brainfuck < 1213471054 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Ow. < 1213471064 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one issue would be with syscalls, etc < 1213471065 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Although ... I'm not sure I'll allow arbitary memory access in mine. < 1213471070 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :That is, pointers become references. < 1213471076 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :That'll be more efficient (and practical).. < 1213471089 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Does C-INTERCAL ever just dereference some memory? < 1213471091 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so in the end I thought it would be easiest just to make a Brainfuck version of Linux < 1213471096 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you only have to implement a CPU < 1213471103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: pointers are used a lot < 1213471106 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes < 1213471109 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even pointers with varargs, on occasion < 1213471115 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but, just like: < 1213471117 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*ptr < 1213471117 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and < 1213471119 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ary[a] < 1213471132 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1213471132 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it throws around function pointers < 1213471138 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but no pointer arithmetic? < 1213471144 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ary[a] < 1213471147 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1213471147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is pointer arithmetic < 1213471148 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that's ok < 1213471150 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I know < 1213471156 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not implementing a big memory array < 1213471161 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what about things like ary[-1] < 1213471166 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that happens on occasion < 1213471168 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that won't work < 1213471184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: yes it does, because ary is set to array+1 earlier < 1213471193 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ah, that'll work then < 1213471198 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but < 1213471199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and of course there's the standard *x++ trick < 1213471201 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :int ary[5]; ary[-1] < 1213471202 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :won't work < 1213471211 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you can handle that sort of thing, you're probably safely within the C standard < 1213471214 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Well, I just want to avoid having: < 1213471221 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :int memory[100mb]; < 1213471223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as long as you can handle all pointer locations within an array, and 1 past the end < 1213471234 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :And instead implement arrays, etc, as real JS arrays < 1213471239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: pointers also have to be castable from ints < 1213471247 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's the bit that won't be possible < 1213471249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, to ints < 1213471256 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that might be possible < 1213471259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because I use hex representations of pointers as function names < 1213471261 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but it'll just give you the js object id < 1213471272 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the unique -> unique mapping is all that's really needed there < 1213471323 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: are you planning to run the compiler itself server-side or client-side < 1213471332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, the C-INTERCAL compiler < 1213471342 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: client side < 1213471346 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are you planning to just compile its output into JS, or are you planning to write it in JS too? < 1213471358 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the C->JS compiler will probably be in Ruby or Js < 1213471360 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*JS < 1213471364 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :likely JS < 1213471373 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so you should be able to mush up c-intercal's source into one big thing < 1213471375 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :make it compile < 1213471376 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: it'll have to be in JS if you're using it to run C-INTERCAL client-side < 1213471381 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :use it to compile an intercal program < 1213471381 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise its output couldn't be recompiled < 1213471386 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and then copy its output into the c compiler < 1213471387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :from C into JS < 1213471389 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(in js) < 1213471393 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and then, voila, SLOWNESS < 1213471401 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: does c-intercal ever do (foo*)anint? < 1213471413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it messes about with unions < 1213471416 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or at least used to < 1213471420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I think I changed them into structs < 1213471426 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah, that won't work < 1213471429 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but if it does structs, that should be ok < 1213471441 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: really, this is just for the novelty of writing stuff for the web in C < 1213471449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the union was being used for the intended purpose of unions < 1213471453 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than for type-punning < 1213471462 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Unions will just be structs. :-P < 1213471479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: well, /that/ violates the C standard < 1213471484 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes it does < 1213471486 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because sizeof (union) will be wrong < 1213471488 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but it's practical < 1213471533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... what psychological problem do I have if, after refreshing my email in Firefox and finding I don't have any, I try Internet Explorer to see if it can find any more emails < 1213471539 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :void myOnLoad(void *self) { alert("Hello, world!"); } int main(void) { body->onLoad = myOnLoad; } < 1213471541 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the same website's being opened up both times, BTW) < 1213471543 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :err < 1213471546 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :void myOnLoad(void *self) { alert("Hello, world!"); } int main(void) { body->onLoad = myOnLoad; return 0; } < 1213471559 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the "C-INTERCAL developer" problem, as I think I'll call it < 1213471575 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: the return 0's implied in C99 < 1213471576 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but only for main < 1213471596 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, I found something awful < 1213471605 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :a JS application that is written in JS, but it's preprocessed JS < 1213471608 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :specifically, < 1213471613 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's processed to add objective-c features < 1213471615 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://280slides.com/Editor/1213027183/main.j < 1213471630 0 :psygnisfive!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213471632 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://280slides.com/Editor/1213027183/Document.j scary. < 1213471641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :especially that .j extension < 1213471646 0 :augur!n=augur@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1213471652 0 :Hiato!n=Hiato@dsl-245-54-75.telkomadsl.co.za JOIN :#esoteric < 1213471665 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's like objective-c's .m < 1213471678 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: what does .m stand for, anyway? < 1213471682 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I wish I knew < 1213471682 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, as an initialism < 1213471697 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I bet it's something legacy! < 1213471705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but seriously, .j is far too ambiguous to stand for JavaScript < 1213471710 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it could just as easily stand for Java < 1213471714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or J, for that matter < 1213471724 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I am interested in JS preprocessors though < 1213471729 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :because JS is not unfortunately usable for big things < 1213471733 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it has potential though < 1213471737 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's one of my favourite languages < 1213471751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: did you jump to the "not usable for big things" conclusion because of Ecmanomic? < 1213471752 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I saw a JS preprocessor that added continuations, once < 1213471757 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and heh, no < 1213471808 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: unfortunately, CPS is gonna be really inefficient with JS < 1213471824 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: CPS isn't something you write in, it's something you compile into < 1213471842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless you're in a lang which doesn't support function returns for some reason yet supports continuations < 1213471848 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: inefficient to run in a browser. < 1213471849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :esolang idea right there! < 1213471862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: what I'm saying is why use CPS? < 1213471872 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ajax, and similar < 1213471878 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :you have to use callbacks with it in JS < 1213471881 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :which are really ugly < 1213471882 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :or < 1213471884 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :you can block the browser < 1213471891 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :but, with cps < 1213471896 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :alert(ajax(...)); < 1213471897 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :becomes < 1213471905 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :uglyShit(..., function(r) {alert(r)}) < 1213471914 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :JS callbacks aren't ugly, I find < 1213471917 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Anyway. http://neilmix.com/narrativejs/doc/index.html <-- NarrativeJS, which adds an extra operator for continuations [so it's only partially CPS, which is more efficient but a bit ugly] < 1213471929 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :http://chumsley.org/jwacs/ jwacs, which is amusing for being written in lisp < 1213471949 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: from the name it sounds like someone's tried to compile Emacs into JavaScript < 1213471953 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1213471956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now that would be impressive and somewhat worrying < 1213471960 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Javascript With Advanced Continuation Support < 1213472002 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: here's what narrative JS does < 1213472010 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :foo->("bar", "baz") < 1213472011 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :note the -> < 1213472015 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :that means 'continuation call' < 1213472016 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so < 1213472018 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :foo; bar; < 1213472020 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :stays the same, BUT < 1213472027 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :x(foo->("bar, "baz")); abc; < 1213472028 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :becomes: < 1213472039 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :foo("bar", "baz", function (r) {x(r); abc;}); < 1213472086 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes a mockup of a nicer JS object system < 1213472089 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apply-continuation is perfectly acceptable as an operator, I find < 1213472099 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, quite < 1213472102 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately this won't work: < 1213472103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that's not what -> is doing here < 1213472111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it was applying a continuation it would never return < 1213472116 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/was/were/ < 1213472127 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I was explaining the translation... < 1213472133 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :from js+apply-continuation to js < 1213472141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: well, I'm trying to figure out what -> actually < 1213472143 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does < 1213472152 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, [[ function blahblah(x) { return blahblah2->(x); } blahblah(x); y ]] < 1213472153 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :won't work < 1213472156 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :since it's function-scoped < 1213472160 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, it's translating function calls into CPS < 1213472162 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(Obviously, otherwise the whole program would have to be CPS'd) < 1213472184 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: basically, you can do [[ alert(ajax->("blah")); ]] < 1213472186 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and have it work < 1213472189 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :without having to transform the whole program < 1213472208 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :-> means "allow continuations inside this function call" < 1213472213 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :kind of < 1213472214 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1213472219 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you'd have to call that function with -> too < 1213472227 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: exactly < 1213472235 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think I understand < 1213472296 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hmm, a JS preprocessor is seeming like an even nicer possibility each second < 1213472307 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :because it could lead JS as a good way to write server-side code too < 1213472312 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :on e.g. Spidermonkey < 1213472325 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :JS is so close to being a near-perfect language for client & server-side < 1213472341 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :so using a slightly improved version on both sides, that still takes advantage of existing implementations, is very good < 1213472362 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ooh, keyword arguments could be done too < 1213472364 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yes, that'd be nice < 1213472754 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ooh, I had an idea for -> functions < 1213472764 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :how about just making every function call an actor thingy < 1213472773 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and excluding -> is an implicit block until it returns < 1213472774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1213473206 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I think I'll write this -> translator thingy. < 1213473225 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :the rewrite isn't that hard... < 1213473231 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Any expression involving func->(...) < 1213473232 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :becomes: < 1213473245 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :func(..., function (r) { The expression, with the func->(...) replaced with 'r' }); < 1213473257 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Of course, I have to pick an unused name. But apart from that.. < 1213473373 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Does that look right to you? < 1213473386 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, basically < 1213473402 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, one easy but crazy way to generate unqie names is to make them longer than the original program < 1213473408 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/unqie/unique/ < 1213473410 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Eek. :P < 1213473413 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll stick to AST analysis. < 1213473421 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's harder < 1213473427 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Though... < 1213473439 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :If anyone makes a variable named __ContRes_1 < 1213473444 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :They deserve it! < 1213473510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: Overload had a nice solution to this < 1213473520 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Allow arbitary objects as variable names? < 1213473523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :system reserves all variable names starting with exactly one underscore < 1213473529 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1213473532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :more than one underscore is for libraries < 1213473546 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: You know what, I think I'll just name them __cont_res_1 < 1213473553 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Because if someone names a var that, they WANTED to get at that variable. < 1213473627 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1213473635 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless someone else writes a competing continuation library < 1213473646 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or you try to bootstrap it on itself for some reason < 1213473649 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I might just use Narrative JS. It is, after all, exactly what I'm describing. :-P < 1213473690 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Oh darn. Narrative JS is written in Java. < 1213473692 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION vomits < 1213473710 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Wait ... No it's not. < 1213473711 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tusho: that's easy enough to solve, I believe there are Java -> JS compilers floating around somewhere < 1213473712 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It's written in JS. < 1213473713 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I see. < 1213473727 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: No, it's in JS. It just uses the Rhino JS interpreter. < 1213473729 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Which is written in Java. < 1213473733 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1213473738 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1213473738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does it work on other interps too? < 1213473741 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :There is one Java bit. < 1213473744 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like the ones browsers use? < 1213473755 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Don't think so < 1213473761 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Obviously that'll be done server side anyway < 1213473786 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yeah, it doesn't < 1213473792 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it uses things like 'java.lang.System.exit(1)' < 1213473799 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and java's IO stuff < 1213473800 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pity, browser-based JS interps are at least easy to come by < 1213473809 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it's alright. < 1213473821 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Besides, this just means I can use Rhino as the server-side JS solution. < 1213473827 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Which is fortunate, because the Java library is useful. < 1213473840 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :(SpiderMonkey, while blazes faster, lacks in the library department. Because it has none.) < 1213473885 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1213473915 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1213473924 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I still need a little thing to make JS coding nicer, though. < 1213473930 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Ah, I think jQuery has something < 1213473935 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Convenient. < 1213473935 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Try heroin < 1213473940 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Heh. < 1213473982 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Why was the syntax of wiki cyclic tag erased? < 1213473993 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Shrug. Undo it. < 1213474002 0 :ais523!unknown@unknown.invalid QUIT : < 1213474030 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I dunno how < 1213474097 0 :oklopol!n=nnscript@spark.turku.fi JOIN :#esoteric < 1213474144 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Go into history. < 1213474148 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Click the better revision. < 1213474149 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Click edit. < 1213474151 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Click submit. < 1213474168 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Put in a summery of 'revert vandalism', too < 1213474173 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*summary < 1213474225 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, too late. < 1213474241 0 :oklopol!unknown@unknown.invalid QUIT :Client Quit < 1213474258 0 :Corun!n=Corun@88-105-156-235.dynamic.dsl.as9105.com JOIN :#esoteric < 1213474309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm, why is it that if a unit needs n non-rechargeable batteries, you can only find n-1 batteries? < 1213474312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :In this case n is equal to 4 AA batteries < 1213474340 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster : Because you're poor < 1213474345 0 :Corun!unknown@unknown.invalid QUIT :Client Quit < 1213474403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, nah I think it's Murphy's first law of batteries < 1213475173 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1213476031 0 :B|u35un!unknown@unknown.invalid QUIT :No route to host < 1213476066 0 :B|u35un!n=BlueSun@dslb-084-056-055-196.pools.arcor-ip.net JOIN :#esoteric < 1213476671 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1213477787 0 :kar8nga!unknown@unknown.invalid PART #esoteric :? < 1213478848 0 :oklopol!i=oko@dsl-tkubrasgw1-fe23fa00-194.dhcp.inet.fi JOIN :#esoteric < 1213479421 0 :Corun!n=Corun@88-105-156-235.dynamic.dsl.as9105.com JOIN :#esoteric < 1213479859 0 :RedDak!n=dak@host146-82-dynamic.16-87-r.retail.telecomitalia.it JOIN :#esoteric < 1213480161 0 :GregorR!n=gregor@71.237.179.105 JOIN :#esoteric < 1213480209 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/jsmips/ // jsmips next-generation actually works! :) < 1213480251 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :As it turns out, all the problems I was having came down to JavaScript's lack of true integers ... overflow an integer when calculating an integer and your results are as expected, overflow a FLOAT while calculating an integer and *boom* massive failure. < 1213480369 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :whats JSMIPS? < 1213480447 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A simulator for MIPS in JavaScript. < 1213480462 0 :puzzlet!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1213480480 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1213480487 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Which is to say, a way of running .c programs in your browser, eventually :) < 1213482024 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Inferior to my c2js. < 1213482058 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oh i see < 1213482064 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :why would i want to run C in my browser? :P < 1213482079 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :tusho: WTF, you have a C2JS? < 1213482085 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :augur: vim in the browser! :P < 1213482088 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Well, I have the design for one. < 1213482093 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhhhhhhhhh < 1213482095 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :You can't do funky pionter artihmetic but it will be fast. < 1213482097 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :gregor, it's not like JS is all that different from C < 1213482099 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's very different from actually HAVING one. < 1213482099 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I.E., no huge heap array < 1213482103 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :except, say, pointers < 1213482106 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :it actually uses regualr js objects < 1213482108 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and can interface < 1213482121 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My goal is to take C programs that were never intended for running in a browser and running them unmodified. < 1213482130 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Rite, mine can do that too. < 1213482131 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That is, it's explicitly NOT to create a new language. < 1213482132 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Just write 'printf'. < 1213482141 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : You can't do funky pionter artihmetic but it will be fast. < 1213482153 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Well, not many programs do funky pointer arithmetic < 1213482155 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I mean things like this: < 1213482159 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :int test[3]; test[-15] < 1213482172 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you really do mean /FUNKY/ pointer arithmetic :P < 1213482178 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, well, I'll believe it when I see it ;) < 1213482185 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: BTW, I advise testing jsmips in Firefox 3. < 1213482189 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It's blazin' fast! < 1213482195 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ohyah, I hadn't gotten around to FF3 yet :) < 1213482204 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: The example runs in less than a second. < 1213482208 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :With no lag on startup < 1213482215 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :The page loads quickly, I press start, less than a second goes by and no browser hangup < 1213482217 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and it's done < 1213482241 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Rock on. < 1213482310 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I CAN'T WAIT FOR MOLASSOS < 1213482311 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1213482331 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Hmm. If you used twm it could actually work. < 1213482333 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :HOLY SHIFFO < 1213482343 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That is fast. < 1213482343 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :e.g. write an ultra-optimized gfx driver < 1213482353 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and then make twm extremely stripped down < 1213482358 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and use rxvt instead of xterm < 1213482361 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's a very future-y consideration ;) < 1213482365 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and you _might_ be able to get something kind of usable < 1213482379 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Can I halp develop jsmips. :P < 1213482384 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Even though I don't know anything about MIPS! < 1213482384 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Absolutely! < 1213482391 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :^_____^ < 1213482395 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :You don't need to, the MIPS core is totally done. < 1213482404 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(MIPS is a very small architecture) < 1213482404 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: It might need teh optimizations. < 1213482409 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it does :P < 1213482413 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Please tell me you have a git repository. :-P < 1213482419 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Mercurial MUAHAHAHA < 1213482424 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I can deal. :P < 1213482436 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Better than rodger's - "Uploading a zip file is superior to any VCS!" < 1213482450 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Set up a push location somewhere or something. :-P < 1213482467 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'll switch to git when it works on Windows *shrugs*. Mind you, I don't use Windows, but I still don't want to use something that limits 95% of desktop users ... < 1213482490 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: What portion of people interested in developing jsmips do you think will be using Windows without cygwin? :-P < 1213482495 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Touché :P < 1213482497 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Unfortunately, it's not publicly accessible right now, but I'll create a new repo on codu.org. Please hold. < 1213482506 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION holds the nearest thing. < 1213482507 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-O < 1213482549 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION averts his eyes. < 1213482552 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :You pervert! < 1213482571 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: WHAT IF I WAS REALLY TALL AND SOMEONE ELSE WAS ON STILTS HUH? < 1213482573 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :STOP ASSUMING THINGS. < 1213482743 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: MY IMPATIENCE MANIFESTS IN EATING PEOPLE < 1213482745 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eats GregorR  < 1213482749 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.codu.org/cgi-bin/hg/hgwebdir.cgi/jsmips/ < 1213482764 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: But what about push access < 1213482768 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Do you not love me enough < 1213482768 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :;_; < 1213482788 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If you register at http://www.codu.org/cgi-bin/ploftrac.cgi/ I can give you push. < 1213482792 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :^____________^ < 1213482821 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I registered, but like, with sex appeal. < 1213482827 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :If that makes sense. < 1213482839 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It does not. < 1213482844 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Whatever. < 1213482891 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: O, and what gcc setup do I need. < 1213482893 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Cross compile to mips rite < 1213482909 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :YAY. MACPORTS HAS MIPS-ELF-GCC < 1213482914 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :^__________________________________________________________________________________________________________________________________^ < 1213482939 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: So where do I push. < 1213482943 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :IF YOU KNOW WHAT I MEAN. < 1213482980 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, you should have push access now. Same URL (sorry, I've been having issues with https - I should be able to fix it soon, but for the moment, http push :( ) < 1213483052 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :It's ok. I just love sending my password out in the clear! < 1213483087 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Oh, and can I point you to http://no-www.org? < 1213483150 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :www. is a CNAME ... < 1213483166 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: What are you trying to say? < 1213483172 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I am saying that www. is obsolete < 1213483177 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Of course it is. < 1213483182 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :foo@email.corp.com is silly < 1213483183 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Feel free to strip off the 'www.' part :P < 1213483193 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Don't link people to www. then :P < 1213483203 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Force of habit *shrugs* < 1213483225 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :also, the people on the xkcd forums fail at british humour and mornington crescent < 1213483243 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION never reads forums associated with web-comics ... or most anything else. < 1213483248 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1213483274 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION watches mips-elf-gcc install < 1213483344 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Can I change Gregor Richards to The JSMIPS Project. It's sillier, and more legally correct as soon as I touch a bit. :-P < 1213483382 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, add your own copyright if you make significant changes. < 1213483396 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's not more legally correct unless The JSMIPS Project exists as a legal entity, which it does not. < 1213483414 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: It can if you include a file CONTRIBUTORS defining The JSMips Project < 1213483438 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, I suppose that's true *shrugs* ... but it muddles the question of who owns any given file. < 1213483456 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Why would someone own a given file? Curious :P < 1213483468 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :There is no logical reason, but the law's the law. < 1213483498 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: We should move to #esotericia and make the legal system a nomic. < 1213483504 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Then we could just fix copyrights by proposal. < 1213483513 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Rock on < 1213483520 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :And declare wars on both Germany and Agora. < 1213483582 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, did you use my patches to make your cross compiler? I just noticed you said mips-ELF-gcc, but actually some changes are needed to the basic mips-elf-gcc configuration >_> < 1213483611 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Shit. No. < 1213483615 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I just installed MacPorts' < 1213483623 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :^^ < 1213483631 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Making your life more difficult since 1986: Gregor Richards! < 1213483642 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: SHY DOES IT NEED A PATCH < 1213483645 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*WHY < 1213483646 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Unfortunately, mips-elf-gcc's built-in specs file will be wrong with respect to newlib. < 1213483646 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213483669 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Also, so I can #ifdef _JSMIPS :P < 1213483693 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: If I give you shell access will you build it for me < 1213483693 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1213483701 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes and downloads gcc < 1213483714 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sure I will *shrugs* < 1213483719 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But do you trust me with shell access? :P < 1213483738 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Pledge in agora not to abuse the privileges. < 1213483739 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1213483751 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :After all, what's more devastating than an Agoran criminal case?! < 1213483781 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My pledges are meaningless, I routinely backstab people. < 1213483782 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I MEAN, UH < 1213483792 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I said agoran pledge < 1213483808 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION isn't part of Agora, nor does he want to mix himself up in all that :P < 1213483831 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Nor does he know how an agoran pledge is any different from a non-agoran pledge >_> ) < 1213483840 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: An agoran pledge looks like this: < 1213483873 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :[[I agree to the following: {This is a pledge. This is a private contract. Parties to this contract MUST not abuse SSH privileges on ehird's machine.}]] < 1213483884 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :If and only if I agreed to that contract, I leave it. < 1213484020 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: What need patching? < 1213484026 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I mean, what can I just install normally < 1213484154 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Ping. < 1213484178 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, you may be able to frankenstein with mips-elf-binutils, but unfortunately, for everything to work properly it needs to have the name "mips-jsmips-..." < 1213484196 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I just want to know what I have to patch < 1213484197 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213484203 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Just the stuff in patches/ < 1213484204 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :? < 1213484241 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1213484335 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: What patch command, again? < 1213484338 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I can never remember how to use patch < 1213484405 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :patch -p1 < ... < 1213484444 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :ACTION figures out how to configure binutils < 1213484448 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :./configure --target=jsmips or someting? < 1213484450 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :*something < 1213484488 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: hmm < 1213484497 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : --build=BUILD configure for building on BUILD [guessed] < 1213484497 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : --host=HOST cross-compile to build programs to run on HOST [BUILD] < 1213484498 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : --target=TARGET configure for building compilers for TARGET [HOST] < 1213484499 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :confusing english < 1213484582 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Lemme think < 1213484589 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :First off, you have to be in a separate build directory < 1213484600 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Then ../configure --prefix= --target=mips-jsmips < 1213484837 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :GCC will also need --with-newlib --disable-libssp. binutils and newlib should both work with that. < 1213484851 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: So I have to compile newlib before gcc? < 1213484851 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1213484854 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Erm, that is, binutils and newlib just need --prefix and --target, GCC also needs --with-newlib --disable-libssp < 1213484855 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1213484861 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Erm < 1213484862 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No :P < 1213484865 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That makes no sense. < 1213484870 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1213484888 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :--with-newlib is a misnomer < 1213484896 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It means something more like --without-c-library < 1213484901 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1213485025 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I notice you used the last gpl2 gcc. < 1213485025 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213485107 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1213485131 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I used the latest no-dependencies GCC. < 1213485140 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The fact that it's also the latest GPL2 is a coincidence. < 1213486414 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wurves his quad-core :) < 1213486460 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Back. < 1213486475 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Burn! I have a core 2 duo and that's good enough for me < 1213486478 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213486490 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Also quad core macs are like the most expensive thing on earth < 1213486512 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I just started GCC compiling and then went to grab a soda, and it was done by the time I got back (mind you, not /drink/ a soda, just physically remove it from the refrigerator) < 1213486521 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I went "YAY QUADCORE" < 1213486522 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213486534 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Meh. I'm not really fussed with this machine's performance. It's miles better than what I had before :P < 1213486556 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Of course being a mac it cost too much for the specs, but I don't care because I like it. < 1213486560 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Heh < 1213486578 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Got the cross-compiler? (Sorry that making a JSMIPS cross compiler is such a PITA, but there's really nothing I can do about that :( ) < 1213486609 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: About to compile gcc < 1213486652 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: ../configure --prefix=/opt/jsmips --target=mips-jsmips --with-newlib < 1213486654 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Right? < 1213486778 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: RITE??? < 1213486793 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :--disable-libssp < 1213486822 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(libssp will try to compile and fail because there's no libc ... stupid GCC should have a --with-no-libc option that figures that all out) < 1213486955 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I think I will write a ./mkcrosscompile.sh PREFIX < 1213486956 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1213487047 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :An excellent idea. < 1213487061 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is too used to making cross-compilers for his own good ... < 1213487338 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: gcc is slowwwwwwww to compile. < 1213487352 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :'struth :( < 1213487364 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Also, autotools sucks so damn hard. < 1213487380 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I lol at when warnings show up because there's no way you could catch them with all the drowning output < 1213487425 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :'struth :( < 1213487491 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Also stallman is a hobo. :-P < 1213487501 0 :AnMaster!unknown@unknown.invalid QUIT :"Away for a few days without internet" < 1213487541 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :YAY < 1213487542 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :I mean, er < 1213487544 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Bye anmaster < 1213487546 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1213487628 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: CHRIST. IT'S SLOW. < 1213487633 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :Does make j=3 work < 1213487633 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1213487646 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In GCC? Yeah. < 1213487661 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Although that's not the right syntax ... < 1213487683 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I thought autotools didn't support -j < 1213487764 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: GAH < 1213487765 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :IT FAILED < 1213487771 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :../../../libiberty/regex.c:51:25: error: sys/types.h: No such file or directory < 1213487774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :../../../libiberty/regex.c:158:25: error: strings.h: No such file or directory < 1213487774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :In file included from ../../../libiberty/../include/xregex.h:26, < 1213487774 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric : from ../../../libiberty/regex.c:193: < 1213487778 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :../../../libiberty/regex.c:196:20: error: ctype.h: No such file or directory < 1213487779 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :and toooons more < 1213487832 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol! < 1213487849 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: HALP < 1213487906 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: HALP < 1213487996 0 :tusho!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: HALPf