< 1274054508 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://fano.ics.uci.edu/ca/rules/b0236s2345/ < 1274054509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all move at c < 1274054529 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :32 rules, pretty good < 1274054648 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The "latest news" on the wiki is from 2009 < 1274054882 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so the news are late < 1274055603 0 :ws!wswieb@akson.sgh.waw.pl JOIN :#esoteric < 1274055632 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :cachegrind is pretty amazing at making code run slow. < 1274055754 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274055757 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hopefully it grinds exceedingly small < 1274056057 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :Welp, that confirms my suspicions. This sucker runs entirely out of the cache. < 1274056069 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :Including the instruction cache. < 1274056099 0 :FireFly!unknown@unknown.invalid QUIT :Quit: null < 1274056158 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thought that would be a good thing... < 1274056213 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :'Tis. < 1274056218 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :Just curious. < 1274056230 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :Cachegrind is *not* a thing you run to check for bugs. ;) < 1274056241 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274056282 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :It checks for cache hits and misses, or branch prediction misses. < 1274056334 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :And does so by compiling machine code to an intermediate code, adding profiling code, and then JITing. < 1274056340 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :Valgrind is freaking crazy. < 1274056441 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :valgrind is awesome :) < 1274056504 0 :pikhq_!unknown@unknown.invalid PRIVMSG #esoteric :It's crazy awesome. < 1274057002 0 :FreeNodeHelpBot!~PircBot@cpe-74-71-95-160.twcny.res.rr.com JOIN :#esoteric < 1274057250 0 :pikhq!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274057314 0 :FreeNodeHelpBot!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274057384 0 :pikhq_!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274057463 0 :ballard45!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274057547 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is so tempted to take his phone off the cable < 1274057604 0 :ws!unknown@unknown.invalid QUIT :Quit: ... < 1274058128 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274058146 0 :pikhq!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274058185 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :==20208== More than 10000000 total errors detected. I'm not reporting any more. < 1274058190 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :From valgrind. < 1274058503 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, is this your insane C thing? < 1274058558 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Insane *assembly* thing. < 1274058901 0 :poiuy_qwert!unknown@unknown.invalid PRIVMSG #esoteric :I have a double that im using as an arg in a string (string.arg(double)), is there a way to have it omit the decimal if its just .000000? < 1274058935 0 :ballard14!~PircBot@cpe-74-71-95-160.twcny.res.rr.com JOIN :#esoteric < 1274058935 0 :ballard14!unknown@unknown.invalid PRIVMSG #esoteric :Hi! :) < 1274058949 0 :poiuy_qwert!unknown@unknown.invalid PRIVMSG #esoteric :heh, wrong channel :P < 1274058953 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi < 1274058969 0 :poiuy_qwert!unknown@unknown.invalid PRIVMSG #esoteric :Hi < 1274059049 0 :Sgeo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274059180 0 :ballard15!~PircBot@cpe-74-71-95-160.twcny.res.rr.com JOIN :#esoteric < 1274059183 0 :ballard15!unknown@unknown.invalid PRIVMSG #esoteric :Hi! :) < 1274059209 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Bottastic? < 1274059302 0 :ballard15!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274059325 0 :poiuy_qwert!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1274059333 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bottastrophic more like < 1274059431 0 :ballard14!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274059439 0 :ballard15!~PircBot@cpe-74-71-95-160.twcny.res.rr.com JOIN :#esoteric < 1274059442 0 :ballard15!unknown@unknown.invalid PRIVMSG #esoteric :Hi! :) < 1274059600 0 :poiuy_qwert!unknown@unknown.invalid PRIVMSG #esoteric :[18:44] * ballard45 (~PircBot@cpe-74-71-95-160.twcny.res.rr.com) has joined #esoteric < 1274059601 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1274059606 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you know, how to read/write a Java stream on a network socket, without Java? < 1274059967 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1274060193 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1274060871 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274060985 0 :poiuy_qwert!unknown@unknown.invalid PRIVMSG #esoteric :anyone ever played with the Gammaplex interpreter? < 1274061220 0 :cheater2!unknown@unknown.invalid PRIVMSG #esoteric :hello friends < 1274061671 0 :ballard15!unknown@unknown.invalid QUIT :Max SendQ exceeded < 1274062082 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is alise still here? < 1274062084 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ok < 1274062085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1274062408 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :[About Pure Glider Generators] "There was some interest in these early on, but they are no longer considered important. Here's a neat example: " < 1274062414 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's "important"? < 1274062533 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Useful < 1274062540 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1274062545 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :There's no reason to use the pond over the beehive for 1-2-3-4's induction coil, is there? < 1274062554 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's "useful" in GoL? < 1274062581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Useful for achieving things as parts of other things < 1274062584 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*as a part of < 1274062592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Proof of c/4 maximum diagonal limit: http://www.conwaylife.com/forums/viewtopic.php?f=7&t=79#p248 < 1274062606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Um, I think it's a c/2 proof as well... < 1274062611 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Saw that, was going to look at it again < 1274062620 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, uses c/4 proof as part of c/2 proof < 1274062654 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nice proof < 1274062681 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :That.. seems to assume things about the shape of the spaceship < 1274062703 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm, maybe not < 1274062887 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://fano.ics.uci.edu/ca/rules/b3s24/g5.html c/3 diagonal spaceship < 1274062919 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"If you're still not convinced, then construct such a pattern for yourself." < 1274062933 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You don't even need to do that. Just decide "What is a spaceship in this location" < 1274062949 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You won't get consistently correct results faster than c < 1274062972 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :erm, if you're looking sooner than the information can propagate at c < 1274063020 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://fano.ics.uci.edu/ca/rules/b3457s4568/g1.html This thing moves one cell downwards every 5648 generations in B3457/S4568. < 1274063020 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Discuss. < 1274063089 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It will take forever for it to bring its passengers to the far side of the torus! < 1274063103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Still, not bad: in our world, it would be moving at 53,079 m/s. < 1274063151 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I suppose it's not possible to say what a cell, or what a generation, converted to our measurements would be < 1274063157 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm, maybe a cell == plank's length < 1274063173 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*planck? < 1274063200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: CAs have discrete space and time so you cannot really compare them to fuzziness like planck length :) < 1274063219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: cell != planck length < 1274063224 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because then speed of light would be one planck length / s < 1274063256 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You're assuming that 1 generation = 1 second < 1274063267 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Assuming s == second < 1274063268 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1274063271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :c = 1 cell / gen < 1274063286 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :c in our world = 299 792 458 m / s < 1274063294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you can tweak things to make tha twork < 1274063319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1/299792458 seconds = ~3.33564095 nanoseconds < 1274063332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So it could be that one generation is ~3.33 nanoseconds. < 1274063346 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Er, I think. < 1274063356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Then it'd be 1 meter / 3.33 nanoseconds < 1274063357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1274063358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Eh < 1274063371 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :For some reason, I asssumed 1 gen = 1 planck time < 1274063378 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And c = 1 < 1274063516 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Well, the speed of light is one Planck length per Planck time. < 1274063518 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So in our universe, c is however much light travels in one planck time. < 1274063520 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, what uorygl said. < 1274063528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1 cell = 1 Planck length; 1 generation = 1 Planck time. < 1274063530 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So if one cell is one Planck length and one generation is one Planck time, it all works out. < 1274063532 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Now the issue with this is... < 1274063535 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :So, what alise said. < 1274063541 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Cells behaviour is Too Fucking Complex for Planck length stuff! < 1274063545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Cells' < 1274063564 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Eh, particles' behavior is pretty complex, too. < 1274063590 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's particles < 1274063592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not planck lengths < 1274063755 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We should make a GoL program that speeds up the time between generations so that it properly matches the size of the cells < 1274063780 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders < 1274063796 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Larger cells == more time between generations, right? < 1274063801 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or less time? < 1274063842 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponderates < 1274063859 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Let's say plack length is l, plack time is t, and speed of light = c < 1274063875 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Then 1/t=c, and 2l/2t=c < 1274063880 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So why does it feel wrong? < 1274064061 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The bigger something is, the more time it takes for light to travel across it. < 1274064084 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :That is the sole relevant fact you have utilized. < 1274064087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :B01367/S012 is worthy of study; it has small replicators and glider guns. < 1274064134 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, a breeder: http://www.ics.uci.edu/~eppstein/ca/replicators/b01367s012-breeder.lif which also renders the Sierpinski triangle as it goes. < 1274064203 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1274064275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :& spaceships form naturally. < 1274064281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Looks very different to Life. < 1274064300 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Gee, did I do that? < 1274064306 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Cool -- I accidentally made a space filler. < 1274064307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: ? < 1274064313 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Make you say "different to". < 1274064328 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Howso < 1274064330 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[ < 1274064331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x = 2, y = 3, rule = B01367/S012 < 1274064331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :2o$2o$bo! < 1274064331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :]] < 1274064332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ spacefiller < 1274064340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A nice one at that < 1274064408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It seems many things become spacefillers < 1274064625 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :##. < 1274064626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :..# < 1274064628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :c/1 spaceship < 1274064635 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no, wait, c/2 < 1274064637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :very nice though < 1274064667 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :That rule has B0; I don't really like that. < 1274064691 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Especially since Golly can't do HashLife with it. < 1274064771 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :HashLife sucks for examining small patterns, because it's asynchronous. < 1274064801 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, point is that it doesn't produce the "gobs of cellular goop" that things like Day & Night do; it's reasonably Life-like, but it seems distinctly different from Life in "style", having more blobs of flesh and the like. < 1274064811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And also having lots of random patterns spawn fast spacefillers. < 1274064821 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :This rule does not die down. Life does. < 1274064836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Define die down. < 1274064856 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Randomly-created patterns tend to become essentially static. < 1274064866 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1274064875 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But at the same time, there are intricate patterns: glider guns, breeders, replicators. < 1274064879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally: < 1274064885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Philosopher: Can we ever be certain an observation is true? < 1274064885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Engineer: Yep. < 1274064885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Philosopher: How? < 1274064885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Engineer: Lookin'. < 1274064885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :--Saturday Morning Breakfast Cereal < 1274064905 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION agrees. < 1274064953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There is a difference between solid mathematical proof and extreme probability... it's just that, you know, at some point we have to consider the probability that there's an error in the mathematical proof that everyone missed < 1274064958 0 :Oranjer!~HP_Admini@adsl-243-203-60.cae.bellsouth.net JOIN :#esoteric < 1274064964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then realising that what we consider solid mathematical proof is actually quite fallible < 1274064984 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If everyone used computerised proof verifiers, then there'd be a much larger gap between widely-accepted-mathematical-proof and tons-of-evidence. < 1274065027 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Also, what SMBC is that? < 1274065078 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.smbc-comics.com/index.php?db=comics&id=1879#comic < 1274065081 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The red button. < 1274066578 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :is life is an esolang? < 1274066665 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have to be up in 5.5 hours. < 1274066677 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Mathnerd314: I assume you know what Life is and are merely inquiring about its esolang status -- yes. But perhaps more of an esosimulation. < 1274066692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Certainly we can make things in it, things that compute, things that combine; certainly it is Turing-complete; and certainly it is esoteric. < 1274066697 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking RL < 1274066699 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Make your own decision. Also, #b3s23 is lonely. < 1274066702 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, life itself. < 1274066703 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1274066707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Not unless you use a horrible analogy. < 1274066727 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :ok :-) < 1274067373 0 :augur!~augur@c-68-54-80-152.hsd1.md.comcast.net JOIN :#esoteric < 1274067618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: it's time. < 1274067624 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, Bye < 1274067637 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hope you make more progress than has been visible < 1274067659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I haven't. < 1274067673 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, start making progress! < 1274067703 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You try moving country. < 1274067746 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1274067796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, try. < 1274067800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Without moving. < 1274067808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Moving -- remotely. < 1274067811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Almost a contradiction. < 1274067900 0 :SgeoN1!~AndChat@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1274067918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Thank you, everyone; and good night. < 1274067922 0 :alise!unknown@unknown.invalid QUIT :Quit: Leaving < 1274070056 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274071242 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :sleep? what's that? :p < 1274071906 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1274071931 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1274073613 0 :poiuy_qwert!unknown@unknown.invalid PART #esoteric :? < 1274073638 0 :poiuy_qwert!~poiuy_qwe@74.13.125.162 JOIN :#esoteric < 1274074414 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I wonder if a language could be both esoteric and have a readable "hello world" program < 1274074425 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :certainly < 1274074469 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :example? < 1274074490 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :slashes < 1274074494 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :befunge < 1274074550 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :HQ9+ < 1274074651 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: HQ9+ fails at "Goodbye world" < 1274074661 0 :lament!~lament@S0106002312fa554a.vc.shawcable.net JOIN :#esoteric < 1274074732 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes, yes it does. < 1274075215 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Perl :P < 1274075256 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Truth. < 1274075472 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :I fail to see how Perl is an esolang < 1274075511 0 :gm|lap!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1274075706 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :then again, I'm pretty blind < 1274075928 0 :myndzi\!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1274075952 0 :myndzi!myndzi@c-24-19-39-178.hsd1.wa.comcast.net JOIN :#esoteric < 1274076388 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Mathnerd314: Acme::Eyedrops < 1274076412 0 :Mathnerd314!unknown@unknown.invalid PRIVMSG #esoteric :ok, so it has an esoteric subset < 1274076517 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :which overlaps significantly with the useful subset < 1274076527 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a lot like C++ < 1274076529 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :coppro, see my message in ##nomic ? < 1274076534 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1274076548 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Am I paranoid? < 1274076572 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Depends. Is a demon about to eat your face off? < 1274076617 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :A demon might, but probably won't, eat Agora < 1274078067 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1274079037 0 :gm|lap!unknown@unknown.invalid QUIT :Read error: No route to host < 1274079082 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1274079876 0 :Sgeo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274079898 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1274080536 0 :SgeoN1!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1274080671 0 :SgeoN1!~AndChat@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1274081279 0 :Gracenotes!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274081961 0 :Tritonio_GR!~Tritonio@213.249.12.32 JOIN :#esoteric < 1274082196 0 :FireFly!unknown@unknown.invalid QUIT :Quit: null < 1274082450 0 :Phantom_Hoover!~chatzilla@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1274082816 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274083030 0 :tombom!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1274083199 0 :clog!unknown@unknown.invalid QUIT :ended < 1274083200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1274083306 0 :SgeoN1!unknown@unknown.invalid QUIT :Quit: Bye < 1274083986 0 :Tritonio_GR!~Tritonio@213.249.12.32 JOIN :#esoteric < 1274084001 0 :Gracenotes!~person@wikipedia/Gracenotes JOIN :#esoteric < 1274084570 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1274086065 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1274087334 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274088863 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1274089652 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1274089657 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1274090717 0 :lereah_!~lereah@nanpc301.in2p3.fr JOIN :#esoteric < 1274091423 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1274092179 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1274094016 0 :Mathnerd314!unknown@unknown.invalid QUIT :Quit: ChatZilla 0.9.86-rdmsoft [XULRunner 1.9.2.2/20100316074819] < 1274094921 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274095503 0 :ais523_!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274095605 0 :ais523!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274095633 0 :ais523_!unknown@unknown.invalid PRIVMSG #esoteric :gah, why does my client nickping me in every channel simultaneously when that happens? < 1274095636 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1274097344 0 :fungot!unknown@unknown.invalid QUIT :*.net *.split < 1274098789 0 :Phantom_Hoover!~chatzilla@cpc5-sgyl29-2-0-cust220.sgyl.cable.virginmedia.com JOIN :#esoteric < 1274099229 0 :ais523!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1274099556 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274099698 0 :Tritonio_GR!~Tritonio@ix.ceid.upatras.gr JOIN :#esoteric < 1274101031 0 :ais523!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1274101085 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1274101175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, there? < 1274101244 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, sort-of, but still busy. < 1274101257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, do you want a cheap panoramic head? < 1274101276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it does require some bit of work. It is kind of DIY but it is programmable < 1274101290 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I would like to hear about it, yes, but do not count on many comments back. < 1274101293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if you already have the parts (which seems plausible)... < 1274101299 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, lego. Let me find the link < 1274101311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.philohome.com/panobot2/panobot2.htm < 1274101338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, there is a link somewhere there to someone who did manage to rotate it around the nodal point (the model on that page isn't front-heavy enough) < 1274101348 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(so it is just behind the nodal point iirc) < 1274101382 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, of course it need to be adapted to the camera model in question but I think it would be feasible for me to make something like that for my camera. :) < 1274101415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I even have an RCX so a nice automatic rotate-take-photo would work < 1274101425 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I was sort of guessing it was about lego; after all, what can't you do with that stuff? < 1274101432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, :D < 1274101462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heck I found a webpage with someone who made an mobile crane in lego. Able to lift 1 kg... < 1274101471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is quite impressive. < 1274101526 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's that "lego auto factory" video, which might not be mind-blowingly "wow", but still a nice watch. < 1274101529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it did use two non-standard parts though... the model that didn't was still able to lift about 250 g but beyond that it started buckling considerably iirc. So that gal (!) who made it added some metal reinforcement to the boom < 1274101533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :let me find the link(s) < 1274101556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.jenniferclarkbass.com//lego/demag_crane.htm <-- reinforced < 1274101565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.jenniferclarkbass.com//lego/crane.htm <-- previous non-reinforced < 1274101626 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274101653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it is some heavy duty lego. Able to actually drive over rather uneven terrain (most "official" lego models tend to be about looks rather than actual functionality when it comes to stuff like lego technic offroad models, IME) < 1274101686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw do you have the required stuff to build a turn table like that? I seem to have most (and quite a bit more) < 1274101694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was some time ago I last used lego though < 1274101769 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274101807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and a panoramic head should be considerably simpler than an "as accurate as possible" scale model of an "all-terrain" mobile crane... :P < 1274101831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(so what if some reinforcement sticks out? it doesn't need to look like anything in specific < 1274101831 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't really own anything recent; I had few bits from the old "Technic" era, but nothing programmable. I do have some friends that are more lego-enthusiastic, though. < 1274101832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :) < 1274101849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if you have a motor and one of those battery packs it should be doable still < 1274101853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even if non-programmable < 1274101855 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :technic is out of date? what a pity < 1274101869 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the motors were awful, they weren't powerful enough to do very much at all < 1274101881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the ones from the RCX era and later were powerful < 1274101887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :slower but more powerful < 1274101908 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, the technic ones, if you tried to gear them down to be more powerful, tended to just not move at all because of the friction in the gears < 1274101912 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :saw some page (web archive :/) that measured their relative strength < 1274101922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, do you mean the fast spinning long grey box ones? < 1274101937 0 :hiato!~fdulu@41-135-6-154.dsl.mweb.co.za JOIN :#esoteric < 1274101937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with power attachment below < 1274101949 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't know where my lego bits are; it's possible they're all in some unlabeled box at my father's storage room thing. < 1274101949 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, and later the shorter grey box ones with attachment above, which were much the same < 1274101956 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, or the newer, cubish ones? with power atop < 1274101960 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I meant both < 1274101968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the cubish ones are more powerful but they came in two variants < 1274101975 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I know mine are all in one of about 100 unlabeled boxes at my house < 1274101977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the modern one is lighter and weaker < 1274101984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1274101986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, only outside difference is the number iirc. < 1274102011 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There were some cat-related complications in all lego projects anyway. I doubt the new model (of cat, I mean) would be any less... "helpful". < 1274102017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but yeah less mass acting as a fly-wheel, you can hear the difference when turning them by hand (if you have one of each to compare) < 1274102056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also higher friction at "free floating" mode with the newer power-above variant than the older power-above < 1274102088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and I have too much lego to fit it in one box :D < 1274102090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, you really analysed this a lot < 1274102094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's a very large box < 1274102103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have two RCX sets. One 1.5 and one 2.0 < 1274102107 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I could train that Roomba to be a robotic panorama head. It'd just need some sort of portable table to get high enough. :p < 1274102117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the 2.0 ones came with the worse motors. the 1.5 one had the better motors < 1274102127 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(With an added bonus that it'd be cleaning places while taking pictures.) < 1274102128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I believe I have 3 or 4 better and about as many worse ones < 1274102133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure of exact count < 1274102175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but see this url, really worth the picture. It is a panoramic head for a camera built with lego. And can be programmed to take a 360° shot < 1274102177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.philohome.com/panobot2/panobot2.htm < 1274102178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^ < 1274102190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know you filter urls but yeah check logs < 1274102198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I can imagine what it would look like < 1274102209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it is for one of them old nikon coolpix or whatever < 1274102227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I plan doing one of those thus summer (adapting for the dimensions of my camera of course) < 1274102248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I have a zoom lens I think I need some sort of movable camera "grip" < 1274102259 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I can adjust it for the nodal point of a given zoom level < 1274102263 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, doesn't it vary iirc? < 1274102285 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I would assume so. < 1274102303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well with zoom level, how could the nodal point *not* vary? < 1274102320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also http://www.philohome.com/legophoto.htm has some other interesting photo stuff for lego < 1274102321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1274102322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with lego < 1274102324 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could design the sensor to move so that it's compensated. :p < 1274102347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, eh, it would need to look at photos and process the data < 1274102352 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274102353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt I could do that in an RCX < 1274102369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what with no camera stuff for it < 1274102382 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and very limited processing capabilities < 1274102386 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, I mean, the camera could do that, to make it independent of zoom level. Of course they don't. But they could. < 1274102392 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1274102429 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of panoramas, here's a 360-degree one with the N900 not-quite-a-camera, with no tripod or anything, horrible parallax on the pier part and even worse white-balance/exposure problems for the part taken directly against sunlight: http://zem.fi/~fis/siikajarvi.jpg < 1274102449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh for a phone it would be trivial to design a working such lego pano head < 1274102452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after all it is light < 1274102458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my camera is rather heavier < 1274102481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would need some counter balance to not tip (so yeah going to be careful when testing it initially!) < 1274102486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, nice! < 1274102513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, a bit less crop on that pier(?) would have been nice < 1274102534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or are you standing on it? < 1274102536 0 :ais523!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274102541 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I am. Well, was. < 1274102563 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Had to crop quite heavily since I couldn't quite keep the horizon at the same level while turning around. < 1274102581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well okay, it kind of looked like a short pier and you were standing on opposite shore. It looks kind of less than 360 < 1274102584 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274102587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably due to the low height? < 1274102631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh, connection trouble < 1274102654 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Could be. It's also scaled to pretty low resolution because there was a piece of debris on the lens, making the middle regions of all shots pretty blurry, which I noticed only at home. < 1274102668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274102726 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hrm, for some reason the images don't seem to contain GPS tags. I must also have turned that off at some point. Aw. < 1274102741 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because you don't want us knowing where you live? < 1274102780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway you could build less advanced pano heads even without an rcx. two motors (one to turn, one to drive shutter arm) would be best I guess. One motor to rotate and then manual shutter might still work if the design is heavy enough. And even manual rotation with a heavy design should offer some improvement compared to ball head or no tripod < 1274102799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think this would be best to put on a table or such though. I doubt I could mount it on my tripod < 1274102942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm also my memory card is rather slow, I would need some way to set the time delay between shots... < 1274102988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth, I'm still logged in after not using that site for several years < 1274102994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some long lived cookie certainly < 1274103026 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That particular photo is not exactly from where I live, anyway: http://maps.google.com/maps?ll=60.277494,24.512987&spn=0.040257,0.104456&z=14 < 1274103034 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I wonder if a site can detect a browser's saved-password and automatically click submit? < 1274103117 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I would think the saved-form-information, after being filled in to the fields (and visible to the user), would be accessible to the scripts too. You might not get a change notification on the field, but you could poll. < 1274103175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I hope not. Some js to check time it took to type it in < 1274103192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway it said logged in and such already on the main page so it wasn't that < 1274103203 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know, just thought it would be an interesting concept < 1274103305 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think there's been at least one case of a web developer wanting fancy form-validation insta-feedback, and made the password field have a green/red background based on whether what's written in the field so far was a prefix of the correct password or not, and updating that after each keypress. < 1274103363 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1274103409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, very nice site that one: http://peeron.com/inv/parts/5306b for example, I can see on that url how many of that parts I have (since I added lego sets list to my account). < 1274103432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc you can upload an ldraw file (a lego cad format) and it can tell if you have the needed parts < 1274103435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very nice feature :) < 1274103442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I can get a listing of all parts too < 1274103456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as a .tsv. < 1274103462 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But isn't it a well-known truth that there's never enough parts? < 1274103463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/\.$// < 1274103536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, sure but this can tell you like "sorry, not enough parts" or "sorry, not enough in the right colours, but if you use other colours you will have enough" or "yay, enough parts". < 1274103549 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(listing which parts you are missing, of course and so on) < 1274103559 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Completely coincidentally, does your URL filtering block whole comments that happen to contain URLs, or just remove/replace the URL part? < 1274103560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(and I don't remember the actual wording, was years ago I used it) < 1274103566 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just the URL part < 1274103568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since well, there are very few ldraw tools for linux < 1274103588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does it mark it in some way so you can see "url removed" < 1274103593 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1274103605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah, so we can't use that for secret info passing < 1274103613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like passing fake urls to hide the info from you < 1274103619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, not as easily then < 1274103619 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Does it leave the domain name in place so that you can make educated guesses as to whether it would be worth the hassle? < 1274103650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, like http://ais523.org/loves/talk/behind/his/back, very nice site ;P < 1274103651 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://example.com/ais523_is_a_boogerhead.am_I_not_right.html < 1274103666 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It seems we may have had a rather similar idea there. < 1274103670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1274103688 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you might want to check the logs there for a good laugh ;P < 1274103713 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's not an especially unexpected thing. < 1274103722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1274103727 0 :ais523!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1274103736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what does that word even mean? < 1274103739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :boggerhead I mean < 1274103768 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Boogers are what come out of your nose. You know, snot. < 1274103796 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274103802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah < 1274103805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you might want to check the logs there for a good laugh ;P < 1274103815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(not sure if that went through first time) < 1274103845 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it didn't, but they don't look particularly amusing < 1274103853 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you want to talk behind someone's back, you can always use /msg < 1274103856 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or even create a new channel < 1274103867 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, but that's not the same at all. < 1274103874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, the main issue I see [with the lego panohead] is the rather small turn table size. and that the camera if centered on the nodal point will have it's weight distributed far from the center above the turn table < 1274103889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, which means I need some counter weight plus a very wide base below the turn table < 1274103901 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, talking behind someone's back in a publically logged channel seems likely to backfire by accident < 1274103907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, see http://home.arcor.de/markus.matern/Robotics/PanoBotCoolPix995/PanoBotCoolPix995_23.gif for turn table size < 1274103917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, sure < 1274103929 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It's the audacity of it. < 1274103963 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, if you're not an op, if someone's firing insults at you pretty much all you can do is /ignore them < 1274103972 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you're hiding the insults, then it saves someone the trouble of ignoring < 1274103982 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also those instructions on that page are better than lego's own. These highlight new pieces in each step. Meaning an end to the search of "hm so where do all the bits listed as needed for this step go?" < 1274104014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, the effect is rather visible in http://home.arcor.de/markus.matern/Robotics/PanoBotCoolPix995/PanoBotCoolPix995_30.gif < 1274104124 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It looks nice, yes, if not quite as polished as the official instructions tend to be. < 1274104187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, depends on how old the set in question is < 1274104198 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also I saw some better renderings with more recent ldraw tools < 1274104210 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also ldraw + povray = wow < 1274104216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(there is some tool for that yes) < 1274104235 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right, I was going to say they could spend a few bit-bucks on some anti-aliasing. < 1274104299 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I wonder if I could build something to vary the exposure? I do have a micromotor iirc < 1274104303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it might be possible < 1274104310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that way I HDR will be easy < 1274104345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that uses the 3 outputs then of one RCX, and I'd rather not need to use 2. would be too bulky < 1274104366 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A bit of remote-controllability in the camera would be nice, too. Though a robot pressing buttons always gets some spare awesomeness-points. < 1274104371 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well one on the base to stabilise it and one as part of the counterweight < 1274104372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1274104392 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I have one of those RCX IR-remote-controls < 1274104400 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it lets you manually run motors and also start programs < 1274104404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plus shut off things < 1274104416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only issue is that with two RCX it would be... messy < 1274104430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure they can use IR themselves to talk between each other but the remote would drive both < 1274104433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1274104477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yeah that brickos custom firmware is a dead project. And the required cross compiler was never ported to anything newer than GCC 2.9x iirc < 1274104508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I'd probably prefer NQC with lego's own firmware, even though it has a lot of restrictions... < 1274104605 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Somewhat relatedly, the N900 has an IR led, but none of the official software uses it for anything, and it's not listed in any of the marketing material; I think some maemo.org wiki page mentions it, but that's pretty unofficial. I haven't yet found out any use for it, but I'd like to. There's an irreco port so you can make it emulate just about any IR-based remote control, but I don't have anything that would be controllable that way. < 1274104666 0 :tombom!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1274105050 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1274105069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for RCX it doesn't use the "standard" data IR freq iirc < 1274105149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm another issue with the base of that panohead is that it must not be wide enough to show up in the image < 1274105610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh I just realised another thing. If possible the panohead should be somewhat modular and easy to take apart/reassemble. Since you will probably end up moving it quite a lot < 1274105809 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm it would be nice with ability to rotate up/down too... but I doubt I could pull that off < 1274105879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, sure I can see how can be done in theory but not with lego < 1274106605 0 :MigoMipo!~John@84-217-15-17.tn.glocalnet.net JOIN :#esoteric < 1274106822 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The N900 lirc_rx51 module seems to support setting the carrier frequency to anything between 20 kHz ... 500 kHz. A bit of a moot point since I don't have RCX remote-control-receivers either, though. < 1274106875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm iirc 75 kHz for RCX < 1274106989 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh seems to vary with versions < 1274107004 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It seems to be software-driven, so higher frequencies == more interrupts, but I guess it doesn't really matter for short bursts of signals. < 1274107016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in firmware < 1274107035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RCX 1.x used 38.5 kHz and RCX 2.x used 75 kHz < 1274107045 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or uses I assume < 1274107079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, can you set 2400 baud? < 1274107081 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :38 kHz is the "standard" one. Makes one wonder why they bothered changing it. < 1274107117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, since it seems that it simply uses light on/off for one period to represent 1/0 < 1274107325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, eh 76 kHz not 75 < 1274107344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"The IR interface on the RCX is able to communicate with Spybots, Scout Bricks, Lego Train, and the NXT (using a third-party infrared link sensor.) The RCX 1.0 IR receiver carrier frequency is 38.5 kHz, while the RCX 2.0 IR carrier frequency is 76 kHz. Both versions can transmit on either frequency.[6] The carrier signal is generated by one of the RCX's internal timers. The RCX communicates with a co < 1274107345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mputer using a Serial or USB IR tower." < 1274107347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :says wikipedia < 1274107486 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I am under the impression that the lirc interface is flexible enough for any sort of low-enough-data-rate signals, but I've never used it. The kernel driver side seems to take just a list of timings when to turn the light on/off. (And when on, it independently flickers it at that configurable carrier frequency, but that's of course not related to data rates.) < 1274108554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1274108818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ARGH tar bomb < 1274108819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1274109552 0 :coppro!unknown@unknown.invalid QUIT :Quit: I am leaving. You are about to explode. < 1274109839 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Tar-and-feathers bomb. < 1274109904 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hmm, I wonder why tar hasn't been extended to detect tarbombs? < 1274109918 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it could have a --no-tarbomb command line option that you could add to your shell aliases < 1274109957 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1274109981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION downloads tar source < 1274110030 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :first, let's see if I can build this without changes, shouldn't be too hard < 1274110092 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :of course, there's something sort-of weird about tar searching for tar as part of its configure < 1274110099 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but hey, there's autotools for you < 1274110117 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :strangely, the autotools configuration here, at first sight, seems to be /correct/, which is bizarre for a GNU application < 1274110206 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, this is strange, and really confusing; I do the standard autoreconf, configure, make, make install, and everything works perfectly the first time < 1274110213 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there is something wrong with the world < 1274110374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION vaguely wonders why GNU tar has an option to specify your favourite rsh implementation < 1274110384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh < 1274110394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would have been nice < 1274110407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but what about large tar archives? < 1274110420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :/obviously/, if I'm going to add a new and crusty yet useful feature to tar, it should be GNU tar I add it to < 1274110422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I remember an uncompressed tar archive where tar -tf took a lot of time < 1274110430 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because that's where you add crufty features < 1274110439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so I guess there is no file index at the start < 1274110442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's a different problem, you can just control-C there < 1274110468 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes but the no-tar-bomb option shouldn't need to read the archive twice. < 1274110478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1274110482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :once for checking of tar bomb, once for actual expansion < 1274110497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rather, be optimistic and if you detect a tar bomb midway, abort < 1274110513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's see, currently I think the ideal semantics would be "error out if trying to expand a tar file containing more than one file/directory in . when the current directory contains any files/directories but . and .." < 1274110514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that way only one of the expanding dirs have been created < 1274110518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which seems reasonable < 1274110534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, I thought you meant tar bomb in the sense of "drops loads of files into the current directory", that's what people normally mean < 1274110534 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can't depend on reading the stream twice anyway, I do tar-netcat-tar sometimes. < 1274110534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, basically that tar archive in question was larger than ram iirc < 1274110540 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than along the lines of zipfiles < 1274110541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes indeed it does < 1274110544 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what I meant < 1274110544 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1274110549 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*zipbombs < 1274110550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, dropping all those files < 1274110592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, as fizzie said: " You can't depend on reading the stream twice anyway, I do tar-netcat-tar sometimes." and I dealt with tar files larger than ram recently < 1274110610 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this isn't meant to be protection against malicious tarfiles, rather protection against mistakes in creating tarballs < 1274110617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and yes, I'd need to look into how the TOC works < 1274110630 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it should be noted that Emacs can write just the TOC of a tarfile without problems, so presumably it does come first < 1274110637 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION man 5 tar < 1274110643 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :people should read section 5 of the manual more often < 1274110667 0 :Phantom_Hoover!~chatzilla@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1274110680 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, seems to alternate between filenames and data < 1274110694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I just realised how to make that auto pano head be able to handle almost all exposure lengths and flash card speeds. < 1274110706 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you'd have to abort at the second offending filename, and delete whatever files had been created in the meantime < 1274110709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, can you guess if I say that I have lego light sensors (light level only) < 1274110721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, :D < 1274110737 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, if you wanted to make a /malicious/ tarfile, you'd just make a normal one with a .bashrc file in as well (and counterparts for other common shells) < 1274110762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well for that tar file it seemed to read the whole tar to be able to list everything in it < 1274110769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unless tar -tf does more than just listing < 1274110791 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, I've got it < 1274110799 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can do tar -t very quickly on a /seekable/ file < 1274110806 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because each header lets you know how much data to skip < 1274110811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if the file's nonseekable, though, you have to read the whole thing < 1274110813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it was a 2.6 GB uncompressed tar file < 1274110833 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably tar isn't intelligent enough to seek over the uninteresting bits, but emacs is < 1274110846 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it contained some interesting files in it... Like .zip.xz unless I misremembered < 1274110862 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it was downloaded from Xilnix (sp? those who make FPGAs...) < 1274110871 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274110872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and well, I did want to check for tar bomb < 1274110877 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and "Xilinx" < 1274110888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yeah I wouldn't trust a company with doing it right < 1274110889 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, they certainly do make interesting tarballs < 1274110909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but this tar bomb I ran into today was from sourceforge. And I didn't expect a tarbomb there... < 1274110958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OpenCores is worse, many people just check tarballs into svn rather than checking in the directory tree < 1274110964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1274110967 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus making it almost useless for anything but backup-over-time < 1274110980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't they provide any guidelines for this? < 1274111022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and I presume you also ran into Xilinx tarballs from that comment above? < 1274111055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I was hoping to somehow extract timing data on the gates from that to use with ghdl < 1274111072 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274111092 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274111208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : thus making it almost useless for anything but backup-over-time < 1274111208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : don't they provide any guidelines for this? < 1274111208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523, and I presume you also ran into Xilinx tarballs from that comment above? < 1274111208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523, I was hoping to somehow extract timing data on the gates from that to use with ghdl < 1274111212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anything missed? < 1274111219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(in either direction) < 1274111232 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the last three, I missed < 1274111243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I have run into xilinx tarballs < 1274111266 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most notably, when they sent me some stuff in a tarball intended to run on a Windows system that didn't have tar < 1274111273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1274111288 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think they quite "get" Windows < 1274111294 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is an unusual situation for a big company to be in < 1274111300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed... < 1274111323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what are the chances to manage that timing data thing? I read somewhere about someone managing to do that from the downloads of some other manufacture... < 1274111362 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have no idea, but my guess is that if something's a free download, it isn't going to help with it < 1274111517 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :normally they charge for information that precise < 1274111635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, no guesses for how? < 1274111647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :/ < 1274112018 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274112108 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274112381 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I was in a bus, going from work to home. < 1274112584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah < 1274112588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, forgot /away ;P < 1274112594 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1274112595 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It should've been automatic. < 1274112602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway can you guess now? < 1274112603 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe my automatic thing is borken, wouldn't surprise me. < 1274112605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fizzie, I just realised how to make that auto pano head be able to handle almost all exposure lengths and flash card speeds. < 1274112606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fizzie, can you guess if I say that I have lego light sensors (light level only) < 1274112628 0 :Phantom_Hoover!~chatzilla@cpc5-sgyl29-2-0-cust220.sgyl.cable.virginmedia.com JOIN :#esoteric < 1274112629 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I would guess some sort of "currently working" LED in the camera, at least mine has something that blinks as long as it is working. (And blanks the camera screen too, I think.) < 1274112666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes there is a LED for compact flash card activity :) < 1274112696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but yeah sure the monitor... well it would be kind of annoying to have sensors obscuring it. Plus there could be black stuff anyway < 1274112743 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right, the "this was what you got" preview might confuse it too. But there is the led. < 1274112761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so what is needed is simply: 1) press shutter and release (after suitable time, will have to figure such details out)... 2) wait until led turns on. 3) wait until it turns off again < 1274112833 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, plus for long exposures my camera does something funny when taking that "black frame" after to remove the heat noise or whatever from the CCD... < 1274112846 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so probably a bit more complex than that for the LED stuff < 1274112878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also who knows, if it blinks. (it usually doesn't but it might be too fast for a human but still possible to measure with such a sensor) < 1274113090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm... I wonder what the best way is to adjust the camera position (wrt nodal point)... probably a lego engine the thing on some sort of "flat cogwheel" rail < 1274113181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah... "Technic Gear Rack 1 x 4" < 1274113182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl food < 1274113189 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Steal a stepper motor from a HD, for the ultimate in precise positioning. < 1274113259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are they more or less accurate than those in CNC machines? < 1274113458 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have no real clue. Could be less. I don't think they rely on the usual boring stepper motors any more. < 1274113466 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"The arm is moved using a voice coil actuator or in some older designs a stepper motor." < 1274113517 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a habit of hyperbole, just downgrade all my statements a few notches in general. < 1274113718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how are they controlled btw? < 1274113743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, as I *do* happen to have an old non-working HD in some box somewhere < 1274113764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so this sounds entirely possible if it is possible to control it from a RCX :D < 1274113774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(and interface it with lego somehow) < 1274113781 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: stepper motors have four input wires < 1274113786 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and power input < 1274113793 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need to control two of the wires at a time in a pattern < 1274113796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AB BC CD DA etc < 1274113802 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :each time round the pattern it moves four steps < 1274113809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can do the pattern in reverse to move in the other direction < 1274113822 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and if you need a half-step, you can do just B to be halfway between AB and BC, for instance < 1274113830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does it have some turning limit? Or can it turn 360° forever? < 1274113862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :forever < 1274113867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also what are typical voltages/currents of them? < 1274113884 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, it was something around 9V last time I used one, can't remember the current < 1274113902 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't be surprised if hard drive ones used lower voltages, though < 1274113925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm right < 1274113937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm the RCX uses PWM to control the motor unless I misremember... might be hard to interface that... Oh wait I think it is done in software. Maybe < 1274113965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yeah it probably is < 1274113991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, for 4 wires I would need more outputs than the RCX has... < 1274114033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(it has 3 PWM controlled motor outputs, where the PWM is done in software by the ROM iirc. I don't think it was the firmware that did it...) < 1274114090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wait, why does it use 4 wires? That is just 4 states. Couldn't it be done with 2 wires? < 1274114096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and gray code of course < 1274114108 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because it doesn't do calculation internally < 1274114116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1274114129 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's just the sequence you activate the electromagnets in < 1274114144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274114155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how small are the steps? < 1274114168 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pretty small, normally, you need loads for a full revolution < 1274114195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so how fast is that done in a harddrive. I suspect an RCX couldn't drive it at full speed anyway... < 1274114210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the faster you drive them, the less torque you get < 1274114214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :likewise, if you slow down, it's stronger < 1274114231 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but for something that's easy to turn anyway, like a harddrive that has already spun up, you can cycle through the steps really fast < 1274114254 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Wikipedia says 200 steps per revolution, that seems reasonable < 1274114271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, seems very few for a harddrive... < 1274114279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unless there is some gearbox < 1274114288 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably harddrives have more steps < 1274114290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which would reduce accuracy... < 1274114305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it seems that by using more complicated patterns than just 0 and 1, you can get arbitrary fractions of a step < 1274114308 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which also makes sense < 1274114324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1274114351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, as in +4V and +2V for the ones next to each other? Instead of same for both? < 1274114359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, that sort of thing < 1274114502 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A hard-drive stepper motor controls the "lateral" position of the read-head on the disk, it doesn't rotate the disk itself. < 1274114523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well yes I do realise that easily... < 1274114543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it would however be used to seek < 1274114548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and seeks should be fast and precise < 1274114556 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: what sort of motor rotates the disk? just a regular one? < 1274114570 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Just a regular one; I don't know what they use for decoding the current angle of the disk. < 1274114583 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably the read head itself < 1274114592 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could determine where you were from what you were reading < 1274114618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I assume there is some sort of flywheel or such on the spinning disk to make it rotate at a stable speed? < 1274114629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have no idea < 1274114634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, fizzie then < 1274114680 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm no HD engineer either. Not sure how stable it needs to be, though I guess compensating for some wibble there would presumably make the reading circuitry somewhat more complicated. < 1274114739 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Given how small the single storage regions are nowadays, I'm sure it's not completely simple. < 1274114758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, plus (desktop) harddrives at least tend to be rather heavy < 1274114764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure what bit causes it < 1274114801 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The platters contribute a reasonable fraction of the weight, at least comparing a 2-platter terabyte disk with a 4-platter 2-terabyte disk that otherwise share identical hardware. < 1274114802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, as far as I remember my current SATA disk is about the same weight as the larger dvd drive < 1274114815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it is 350 GB < 1274114822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a bit older in other words < 1274114836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway laptop drives can't be very heavy presumably < 1274114867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, larger platters in one? Or different packing density? < 1274114871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(of the bits) < 1274114880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if so, why make both variants < 1274114929 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Given that they want to optimize the capacity, I'd guess they use the same ("as much as we can cram in there with our tech") or at least similar packing density in all disks. < 1274115002 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, adding weight means more energy wasted in keeping all that weight rotating, so if you want to optimize power usage too, you'd want to make things lighter. (Of course it's relatively easy to keep all that mass spinning when you've spun it up in the first place, but there's still friction.) < 1274115032 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least I've seen the weight argument in some drive-power-usage-analysis-review thing. < 1274115060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait... 2 terrabytes for the second < 1274115061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1274115066 0 :Zuu!zuu@unaffiliated/zuu JOIN :#esoteric < 1274115068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :misread it as both being 1 terrabyte < 1274115130 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh. Yes, they commonly put half a terabyte per (3.5" HD) platter nowadays. Or did a while ago; I'm sure someone's done more than that already. < 1274115150 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274115666 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Twungot says: "About NetHack: the other hand, is necessary for a charm of powerful trouble, though they are the fairest in the middle of her spear, ..." < 1274115731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still done by a perl script instead of befunge98 program? < 1274115745 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I like the concept of a charm of powerful trouble < 1274115832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, where are the parts from? < 1274115847 0 :ais523!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274115849 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Unfortunately, yes. And before you ask, I also haven't had any jitfunge time lately, and won't in a month or so. (Still a week of exams and then two weeks of Europe.) < 1274115891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have a few weeks ahead at university still < 1274116014 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"middle of her [Aegis]" from the end of the Medusa desc. < 1274116048 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"her spear" from shrieker. < 1274116092 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I've started that subset-of-Befunge static compiler < 1274116105 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"fairest in" from "Who is the fairest in the land?", a Snow White quote. < 1274116121 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: You did notice my one, right?-) < 1274116147 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Don't think I did < 1274116199 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It compiles and runs fungot, to some extent. Babbling probably won't work, and persistence had some issues, but I did get it to come here on-channel. < 1274116229 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :When was this? Does it exist somewhere? < 1274116250 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or did you just hack jitfunge a bit < 1274116275 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hrm, I'll have to grep for that. And no, it's almost completely separate from jitfunge. < 1274116291 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's in Java, for example. :p < 1274116297 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Argh >_< < 1274116301 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What does it emit? < 1274116312 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :x86 for GNU as? :-P < 1274116315 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :LLVM assembly, I think. < 1274116322 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :As text. < 1274116325 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Are there bindings? < 1274116326 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah :-P < 1274116359 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Mine is in Haskell and uses the LLVM bindings so it's thrice as awesome < 1274116368 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, well, I wasn't so taken by LLVM's IRBuilder, or the whole mess of classes there. < 1274116391 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Just use the C API if you find the C++ to be too much of a mess < 1274116503 0 :lereah_!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274116503 0 :Phantom_Hoover!~chatzilla@cpc3-sgyl21-0-0-cust116.sgyl.cable.virginmedia.com JOIN :#esoteric < 1274116505 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Possibly I should've. Instead I ended up with a Java reimplementation of the type system thing, except a lot smaller, of course. < 1274116520 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Gah >_< < 1274116523 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1274116535 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, it was more of a proof-of-concept thing; I think I did it in less than a week. And possibly I'll use it to run fungot permanently at some point. < 1274116547 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Use mine instead :-P < 1274116553 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Which I've thus far done in less than a couple of hours < 1274116556 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Nah, it's not invented here. :p < 1274116564 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And can do a hello-world but not much more < 1274116581 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You and your NIH syndrome :-P < 1274116592 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the fizzie who says NIH < 1274116694 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :How's your code generation? Completely mechanistic translation of the Befunge-98 code, trusting LLVM to fold all stack manipulation away; a "intermediate stack operands turn into values, LLVM does the rest" thing; or something else? < 1274116750 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I took CCBI's stack, translated it to C (because I didn't think it through properly; that was pointless but oh well), and emit calls to it for stack manipulation < 1274116770 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No "stack overflow" errors for me :-P < 1274116797 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, okay. I do a reasonable amount of "from stack to a register thing" translation, for no particular reason. < 1274116815 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :LLVM does optimize it well enough < 1274116818 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :At least when MODE isn't used < 1274116836 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Probably. For some reason silly-looking code, even temporary such, irritates me. < 1274116851 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What's silly-looking < 1274116879 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And how'd you do Funge-Space in your thing < 1274116908 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Something like &&+. involving "push to stack, push to stack, pop, pop, sum, push to stack, pop, print" is silly to me. < 1274116961 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Meh; at least it's easy to debug < 1274116990 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I also tend to emit a bunch of basic blocks which do nothing but br to another < 1274117003 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I cull those out, for the same reason. < 1274117011 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I let LLVM do that :-P < 1274117023 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't see much point in duplicating LLVM functionality < 1274117034 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, well, I guess it's a matter of taste. < 1274117036 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's just more LOC for no gain < 1274117060 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't see much "point" in the whole endeavour, and I did it mostly for playing-around reasons, as well as the irrational irritation -reasons. < 1274117062 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If you want "better looking" code, compile with -O. The problem is that while it removes silliness it can also introduce complexity :-P < 1274117146 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, you've yet to tell me what you did about Funge-Space < 1274117205 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I just took jitfunge's hash-based fungespace for that; at least there's a bit of reuse. And I have a static funge-space box the size of the progarm source code, since I'll need that data anyway for g'ing the right "static data" in. < 1274117277 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So essentially what cfunge does; one static box + hash table < 1274117299 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1274117382 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How far does it get in Mycology? < 1274117428 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Still on the stack-to-register translation; I just don't completely trust LLVM to remove all the stack underflow tests when inlining the stack ops. I guess it's quite probable it does just fine, I just feel like since I know more about the case I'm code-generating in than LLVM does, I might as well do sensible things from the get-go. < 1274117443 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure I've tested. < 1274117457 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll try to check when I have time; now I really need to prepare some food. < 1274117464 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I should've been doing that for the last half an hour already. < 1274117483 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Doing some higher-level optimization is not wrong, of course < 1274117535 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I plan to do some early folding already at the parsing stage, to allow handling only one direction of a branch < 1274117562 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(Although probably the only kind of code that does that is self-modifying anyway) < 1274117594 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I use _|s somewhat often as a combination of one of v<>^ and a $, when trying to size-optimize things. < 1274117605 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think I and mooz used to call those things "discard-ifs", even. < 1274117616 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1274117654 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's even one case in fungot, I believe. Or I might be confusing that with a single case of [ or ], which I'm not in the habit of using, due to some Befunge93 roots. < 1274117697 0 :fizzie!unknown@unknown.invalid QUIT :Quit: jumpin' jumpin' < 1274117700 0 :fizzie!fis@iris.zem.fi JOIN :#esoteric < 1274117712 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What is it with you and your hostname? < 1274117730 0 :fungot!~fungot@momus.zem.fi JOIN :#esoteric < 1274117772 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I have left one of freenode's servers with an IPv6 entry in my bouncer configuration, and my IPv6 reverse-DNS setup is broken, and I always forget it some three seconds after doing this jumpery. < 1274117783 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^source < 1274117783 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 < 1274117785 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1274117798 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(This was one roundabout way of locating that URL.) < 1274117832 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There on line 109 is a case of using a _ instead of $<. < 1274117840 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's even documented; it says "d-if" right next to it. < 1274117848 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Granted, "d-if" might not mean much to most. < 1274117900 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Too bad the _ is also used as a real if :-P < 1274117921 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not that particular _, it goes always to the left. < 1274117930 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Even from the | above it? < 1274117957 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That one's not compiler-obvious even if it does < 1274117974 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I believe it does. But it's not very clear to a compiler. < 1274117987 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It uses a fingerprint instruction so it's practically invisible < 1274118003 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :In general, I use a discard-if after a loop that does ":|" style stuff has terminated, and I need to get rid of the known-zero below. < 1274118012 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's not compiler-obvious, but I guess it's compiler-knowable. < 1274118054 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's the kind of thing I leave to LLVM :-P < 1274118256 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Did you handle x at all? < 1274118269 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(And how much) < 1274118481 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh, there's a "todo" comment for it. < 1274118509 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's a "no", then :-P < 1274118577 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking of handling it pretty minimally. I'm a bit wary on doing things during parsing, since you can then hit the same thing with a different sort of stack context, and then you'll need to reconsider the earlier bits. (Or do code duplication and consider the new case a different thing, which I guess might be more reasonable.) < 1274118630 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what you mean by a different sort of stack context < 1274118704 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well... if there's something like "1>1x", I can handle that x pretty easily when parsing; but currently my strategy is that if I see a cell that's been gone through with the same delta, I can always just generate a branch there. Here if someone hits the > with a 2 on the stack, it changes the whole meaning of the "1x" bit, assuming "whole meaning" has been "change delta to (1,1). < 1274118763 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Recommendation: check the delta as it would be /after/ the instruction, not before < 1274118826 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't see how that help. The bit of code that hits the > hits the "1x" part with exactly the same delta, it's just the context that differs; yet I need to reanalyze it because the x will go a different way. Currently I'd just say "okay, this just jumps to the 1 and I can stop parsing here". < 1274118838 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right, the > fails. < 1274118842 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :My bad. < 1274118996 0 :Gregor!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1274119034 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess it's not a terrible problem, I just like the current way that when I see a (position, delta) that's already been seen before, I can be sure that it can't lead to anything new. < 1274119042 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I need to eat that food I made now, away for a while. < 1274119092 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If you make basic-block type things like I do you can just add a check for if the terminator is an x < 1274119553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Anyway, it was more of a proof-of-concept thing; I think I did it in less than a week. And possibly I'll use it to run fungot permanently at some point. <-- fungot is no fun without self modification < 1274119554 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: haven't tried the code? or are you still dead? :) < 1274119578 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't self-modify, does it? < 1274119583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :even fungot is being snarky these days < 1274119584 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what was that forth called you where talking about the binary level, then. < 1274119743 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274120911 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't, no. And I still think it's at least a bit fun. < 1274121058 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Yes, you could test for x-termination; though if you want to determine if an "if" always goes to a particular direction, you'd then still need to break a basic block there, and potentially re-examine all basic blocks you have that terminate into an if that's been short-cutted, if you encounter that block from some other way. < 1274121126 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't get it, gimme an example < 1274121209 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1274121227 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh, well... if you have a 1>[...lots of code with no final stack effect...]| you can (on the first parse through it) deduce that the | at the end always goes up, but when you re-enter that block by hitting the > from some other place, you'll need to notice that "hey, this means I have a new potential branch to parse". < 1274121239 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Granted, this isn't a big hassle if you build those basic blocks while parsing. < 1274121255 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm not planning on doing that kind of optimization myself across basic blocks < 1274121282 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :As far as I'm concerned, when I hit a >, I don't know what's on the stack any more. < 1274121307 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Okay, if you do it like that, then it will be easier. But it's a bit of a shame that simple direction-modification has that sort of an effect. < 1274121345 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No it's not, because LLVM can compute the dominator tree and do the partial redundancy elimination and whatnot that's required to figure it out later on :-P < 1274121394 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm not very concerned about the unoptimized code quality < 1274121435 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My parser is a two-stage thing, where I first build a graph that contains a "basic block" for each single cell, then I merge those into actual basic blocks. So it's not so easy to look at a single node and know that it will be terminated by an 'x' in the end. I could've done it so that it built real blocks, and then split those when necessary, of course. Or, like you apparently do, make every <>v^ start a new block? < 1274121466 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's what I do. < 1274121496 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And as a bit of a hack, a new block at (0,0) so that code that infinite-loops on the first line doesn't cause the parser to infinite-loop < 1274121548 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I had earlier some sort of overly complicated static-analysis incomplete Funge thing (I think the earlier fungot graphs were from that) which tried to do that sort of analysis; it kept track of known stack cells, and even "known to be nonzero but not exactly what" cells, and "unknown but there's still something known below it" cells, and kept a record of that sort of "stack context" at each point, and when I encountered some code from a new direction, tried to < 1274121548 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :merge those stacks by keeping the "compatible" information there. < 1274121548 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i guess it's not as much as the name might be too complicated i think < 1274121564 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It started to become a bit overcomplicated at some point. < 1274121573 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Can't rely on LLVM for that sort of use, unfortunately. < 1274121618 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Why not? That's exactly what it tries to figure out when optimizing away loads and phis < 1274121640 0 :MigoMipo!unknown@unknown.invalid NICK :migomipo < 1274121644 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I mean, if your desired end result is human-readable graphs that still contain recognizable Befunge code, only the code flow part represented by a graph. < 1274121648 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Certainly if you want executable code... < 1274121684 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ah, yes. :-) < 1274121751 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"git log" says I started on a Thursday and stopped the same week's Sunday, so you could call that compiler a bit of a small-scale experiment. < 1274121785 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1274121812 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1274121873 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I cannot figure out the short solution in dc < 1274121887 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I did 17 bytes long < 1274121938 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't know whether or not you care, but: I have upgraded 888ASM, now it supports macros and a few other things < 1274122080 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have never won at any anarchy golf problem that I invented. But I have won at some other ones < 1274122474 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you go to anime convention this year? < 1274122687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/iWKX < 1274122710 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This is what happens when you take Internet from me. I produce silly, not-needed code. < 1274122719 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1274122727 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... That has a bug I just noticed. < 1274122787 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now, minus the obvious bug: http://sprunge.us/ahDN < 1274122909 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Can you please tell me what this program is for? < 1274122960 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It compiles Brainfuck to 386 assembly. < 1274122993 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK. I suppose it is obvious now < 1274123002 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Which assembler? < 1274123029 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :nasm < 1274123034 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1274123039 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And Linux-only. < 1274123091 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1274123114 0 :uorygl!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1274123172 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The data pointer is in ecx so that I have to do 0 work to make it the argument for the system calls, and the code pointer is in esp so I don't have to move it anywhere when making system calls. < 1274123239 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The other assembler is 888ASM. It doesn't yet have full support for protected mode commands yet < 1274123368 0 :MizardX!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1274123608 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Have you ever written a assembler? < 1274123740 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1274123757 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1274123771 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Never felt like it is all. < 1274123797 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1274123833 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you like the one I wrote, did you think is good? < 1274123850 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Dunno, not looked at it much. < 1274123895 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :sprunge seems the good pastebin < 1274123910 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I looked at the instructions < 1274123939 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The only thing is I don't have curl installed < 1274123943 0 :uorygl!~Warrigal@rrcs-70-63-156-144.midsouth.biz.rr.com JOIN :#esoteric < 1274124104 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps if I write GNU/Linux distribution, I might include a shell-script for "sprunge" in the EXTRA packages set. < 1274124130 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How can you not have curl? < 1274124143 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's freaking curl! < 1274124161 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I probably should install curl < 1274124163 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :http://zzo38computer.cjb.net/prog/888ASM/888asm.c < 1274124179 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I do have wget < 1274124182 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And netcat < 1274124267 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Now perhaps you can see if the improvements to 888ASM is any good < 1274124485 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Do you have some reliable information on how much you're allowed to play games with the stack pointer? I was considering that for the Befunge stack in an earlier jitfunge, and I think in that Scheme compiler, but got sidetracked while hunting for documentation. What little I did find is that you could perhaps make it signal-safe with sigaltstack stuff, but beyond that I'm not so sure. X86-64 ABI (my target) for example has that "red zone" thing... w.r.t. < 1274124485 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : syscalls it seemed reasonably safe on Linux, for both interrupts and the SYSCALL way, but no-one was exactly claiming so. < 1274124542 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Using the system stack is lame, it limits the size too much < 1274124562 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Sure, but using the ESP/RSP register to point at wherever you want doesn't. < 1274124594 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Right, I just got that from reading "stack" and "jitfunge" :-P < 1274124609 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You should've also read the "playing games" part. :p < 1274124670 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: The esp is a general purpose register. < 1274124718 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It just happens to contain a pointer to a stack under pretty much every ABI, and "call" and "ret" manipulate aforementioned stack. < 1274124758 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, there's a *lot* of games you can play with that. < 1274124760 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't mean the syscall interface couldn't require you to have a "nice" stack. < 1274124788 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"Pretty much every ABI" of which syscall may or may not be one < 1274124796 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The kernel entry point *by necessity* starts by saving all registers and using its own stack. < 1274124828 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And why would that be a necessity? You already need to prepare registers for the syscall parameters. < 1274124875 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There's the floating point registers, syscall parameters that aren't being used, the base pointer, the stack pointer, the SSE registers, and the MMX registers. < 1274124929 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Pretty much every kernel, upon being entered, just saves all the registers. And it almost certainly must use its own stack. < 1274125016 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1274125067 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The kernel damned well does not want to assume correctness of anything that it gets passed by userspace. < 1274125083 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ah, fair enough. < 1274125104 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If it used the process's stack, you could, for instance, set it up so the kernel will return to a rootkit. < 1274125112 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So you can exploit the fact that you're considered malicious :-P < 1274125121 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1274125122 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Can't say I've inspected the internals of so many kernels I'd feel comfortable relying on that; and I found it pretty hard to find good-looking documentation on Linux. I did look at the sources, and it certainly seemed to be pretty conservative like that, but still. < 1274125168 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274125175 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Linux ABI in particular saves all registers upon entry, even the ones that are just syscall parameters. < 1274125203 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, well, do you happen to have handy a reference work for this? < 1274125215 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Let's find the entry in /usr/src/linux < 1274125273 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you mean the code, I think it's arch/x86/kernel/entry_{32,64}.S; but I'd prefer a statement of intent instead of reading the particulars for each architecture that sounds interesting. < 1274125306 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(It's also rather macro-heavy code.) < 1274125334 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I vaguely recall looking at Documentation/, but nothing immediately sprang up. I don't think I used a lot of time for this, though. < 1274125471 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(The register setup is fortunately very cleanly explained in the comment above ENTRY(system_call), that was a nice touch.) < 1274125871 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1274126043 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, sure, it does "start" with < 1274126044 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : movq %rsp,PER_CPU_VAR(old_rsp) < 1274126044 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : movq PER_CPU_VAR(kernel_stack),%rsp < 1274126044 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :... after some less clean stuff, but the comment also says "if we had a free scratch register we could save the RSP into the stack frame and report it properly in ps. Unfortunately we haven't", which I might even think would refer to cobblering something in the userspace's stack frame. < 1274126203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :does anyone here have any experience with building cross compilers? < 1274126211 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I wish alise turned up on weekdays... < 1274126224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :debian used to provide a package for it during woody. but hasn't since < 1274126226 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Cross compilers are not very different from any other kind of compilers < 1274126227 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so does alise < 1274126228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(to this arch) < 1274126241 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you meant "building" as in "compiling" < 1274126246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well... I need to use outdated binutils and gcc versions for the thing to even support this arch... < 1274126252 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or "setting up" < 1274126259 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, getting a working toolchain < 1274126265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from a bunch of gcc/binutils tarballs < 1274126267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and patches < 1274126269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is what I mean < 1274126292 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I've used that tool for it. Or two tools, in fact. I just can't ever remember the names. < 1274126303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm stuck at binutils 2.16.1 and gcc 3.4.6 as the last versions supporting this arch < 1274126334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I have no idea where to start with building a cross toolchain < 1274126359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :documentation is very bad and bitrot ensures that I'm very unlikely to find anyone to update it < 1274126384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the entire community on this arch is half-404 nowdays < 1274126386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1274126426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :upstream vendor? No longer has any info on this product at all... < 1274126427 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think I used http://www.kegel.com/crosstool/ several years ago, but it might be somewhat out of date, and probably won't cover your particular situation out-of-the-box. < 1274126459 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What arch? < 1274126469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, RCX < 1274126482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :atm I'm trying to figure out target triplet < 1274126491 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1274126496 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Why are you interested in it < 1274126496 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And then there's buildroot, which is mainly interesting if you want a uClibc-based toolchain for a Linux system, but could do some other useful things too. < 1274126505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is either h8300-hitachi-hms or h8300-hitachi-coff < 1274126513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is some contradiction on it < 1274126521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah didn't ais523 mess with cross compiling before? < 1274126529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1274126535 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have an ARM toolchain on here right now < 1274126541 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and ofc gcc-bf is a crosscompiler < 1274126542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what is the basic steps required in setting up a cross toolchain from a binutils and gcc source tarball < 1274126550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it would be ridiculous to make it native < 1274126562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and I need to use old versions... since the arch is no longer supported < 1274126567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's see, I've never actually set up a cross /toolchain/ by hand before, just the individual compiler < 1274126582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the ARM toolchain was generated via a rather complicated makefile < 1274126584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I need linked and C compiler at least. < 1274126585 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which had wget commands in it < 1274126595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :C++ might be needed later on (ugh) < 1274126603 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for the compiler, if it's gcc, you just need a weird set of configure options < 1274126623 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I need to use binutils 2.16.1 and gcc 3.4.6. Last versions supporting h8300-hitachi-hms < 1274126640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I need to apply a bunch of patches < 1274126664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sounds fun < 1274126671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you are aware that gcc's build system is insane, right? < 1274126686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes and I do know how to handle it for "normal" native builds < 1274126690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is out of question here < 1274126706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, h8300-hitachi-hms is the triplet for the RCX you see < 1274126728 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, in theory the only change you have to make is to give configure options like this: --build=i686-linux-gnu --host=i686-linux-gnu --target=h8300-hitachi-hms < 1274126741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :half of the relevant pages are 404 or "see relevant links for " nowdays... < 1274126763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need to give all three when doing any sort of cross-compilation, whether you're crosscompiling gcc or straightcompiling a crosscompiler or even crosscompiling a crosscompiler < 1274126773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I don't have any libc for this btw... As in, the OS I will cross compile will provide a very stripped down set of header files < 1274126788 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could use newlib < 1274126809 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well why? I already get stdlib.h and a few more... < 1274126811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and < 1274126812 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which implements the whole libc in terms of about 15 system calls, which you need to give by hand if the OS doesn't do them itself < 1274126818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it isn't like there is any console IO on it < 1274126827 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it depends on how much libc you need < 1274126827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I'm very limited in RAM on the RCX... < 1274126834 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does it have sprintf, for instance? and do you need it? < 1274126841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no I don't need that :P < 1274126851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I don't need any string handling at all in fact < 1274126867 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, what *do* you need? < 1274126879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, floating point emulation, which is provided. < 1274126891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and bare access to the hardware < 1274126898 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is also provided < 1274126905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no MMU or such on this thing after all < 1274126909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it is 16 bit. not 32-bit < 1274126923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(or 8-bit perhaps... it is somewhat unclear...) < 1274126958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about gcc prefix and such for a cross toolchain? < 1274126980 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it tries to find the binutils by executable name < 1274126998 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, it'll look for h8300-hitachi-hms-ld for the linker < 1274127003 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and complain if it can't find it < 1274127010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, lets assume I want to put it in /home/local/lego... My experience of gcc seems to show it takes lot of effort to make gcc use rpath or such... I have a stored command line for the make call for llvm gcc somewhere iirc... < 1274127036 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc mostly hardcodes configure info into the resulting executable < 1274127046 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then does insane stuff with collect2 < 1274127069 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which you may be able to stub out for something like bf-gcc, but which is needed if you want to do C++ < 1274127076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I think some of this is from bootstrapping... < 1274127079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc also provides an alternative method < 1274127088 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(and ofc, cross-compilers aren't bootstrapped) < 1274127089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, there is the risk I will need to do C++.... as much as it pains me < 1274127114 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the alternative method for getting C++ constructors working, though, I sort-of understand the principle of it but not how it works in practice or how to get gcc to do it < 1274127133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah a bash script generating the gcc build commands... < 1274127134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :make LDFLAGS="-Wl,-O1,--hash-style=gnu,-rpath,${BASEDIR}/lib" LDFLAGS_FOR_TARGET="-Wl,-O1,--hash-style=gnu,-rpath,${BASEDIR}/lib" BOOT_LDFLAGS="-Wl,-O1,-rpath,${BASEDIR}/lib" < 1274127141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is what the line from the heredoc looks like < 1274127149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because the relevant configure flags aren't used < 1274127180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I will be doing freestanding development anyway < 1274127183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no hosted < 1274127184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, the documentation for the way gcc's build system works is a FIXME < 1274127225 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I assume I should compile binutils first? < 1274127231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how does one go about that? < 1274127232 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think you compile them simultaneously, somehow < 1274127240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same target/build/host flags? < 1274127242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what? < 1274127245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's something about the build system for one involving the other < 1274127263 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, eh... where is this documented? < 1274127268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or how do I do it at least < 1274127281 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to find where it's documented < 1274127291 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :binutils-doc is a promisingly /named/ package, at least < 1274127296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1274127307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I'm not on a debian system < 1274127312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that isn't very helpful < 1274127324 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, but I can read it and tell you what it says < 1274127336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right, or point me to upstream < 1274127342 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I just thought you knew how since you had been messing with it < 1274127359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not with binutils < 1274127363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wrote them myself for gcc-bf < 1274127416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, some of the docs relating to the stuff I want to use this for says stuff like "this need at least gcc 2.95, egcs will not work" < 1274127419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :stuff like that < 1274127424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :really brings you back a lot of years < 1274127460 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but gcc /is/ egcs < 1274127508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh it said "you'll have to build and compile gcc 2.95 instead of the older egcs" to be specific < 1274127530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :$ ls -1 /usr/src/binutils/patches/ | wc -l < 1274127532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :23 < 1274127537 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not a good sign... < 1274127562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ouch < 1274127573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I need very very specific patches myself here so... < 1274127599 0 :impomatic!~chatzilla@87.113.249.101 JOIN :#esoteric < 1274127603 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Hi :-) < 1274127608 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hi impomatic < 1274127611 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION untars < 1274127614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, hi impomatic < 1274127617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :haven't seen you around for a while < 1274127643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, btw this cross compiler had a package back in either woody or the version before woody. I haven't been able to find out which. It no longer has such a package though... < 1274127652 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I've been here a few times recently :) < 1274127663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, which one was debian 2.x? < 1274127689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1274127696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah seems to have been pre-woody < 1274127697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1274127697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: yep, but I haven't been here all the time < 1274127701 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :we must have kept missing each other < 1274127706 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :either that, or I wasn't paying attention < 1274127718 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I didn't say anything worth paying attention to! < 1274127722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what were its dependencies like? < 1274127761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm I haven't been able to find package, just mention on web.archive.org that such a package existed on that debian version < 1274127793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and it is supposed to work with a newer gcc. I don't think it is feasible to compile gcc 2.x without bootstrapping nowdays < 1274127803 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while I'm pretty sure 3.x isn't too bad < 1274127828 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :earlier gccs combined just fine on the compilers of the day; modern compilers are more standards-compliant and so should have an easier time < 1274127843 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could poke at the crosstools scripts, I think they were pretty comprehensible. < 1274127854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway I need to figure out how on earth you build binutils for h8300-hitachi-hms. And gcc < 1274127872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :all I want for now is binutils and gcc. I don't care about newlib, g++ or anything like that for now < 1274127880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, *googles* < 1274127891 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: < 1274127891 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : I think I used http://www.kegel.com/crosstool/ several years ago, but it might be somewhat out of date, and probably won't cover your particular situation out-of-the-box. < 1274127927 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The "Links" section in the crosstool howto might be useful too. < 1274127937 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Does anyone know the difference between the different editions of Programming Pearls? < 1274127941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes found it < 1274127948 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Same question, The Little LISPer? < 1274128043 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: As for the second suggestion (buildroot), it does build an embedded-linux toolchain, but if it happens to work (a big if), you can mostly just yoink the GCC out of it and use it for freestanding compiling with the usual -nostdlibs and perhaps other flags. You might run into problems in that it really wants to build a C library too. < 1274128057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, no it won't. This is not ELF < 1274128078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this is coff. And definitely not linux in any way. No MMU, < 32 bits and so on < 1274128126 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The ELFness doesn't matter; it's not like Linux's somehow restricted to ELF binaries. And in any case, it doesn't matter that you can't actually build the linux parts for it, the cross-toolchain parts might still work. Still, it's a bit of an abuse. < 1274128148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, indeed... < 1274128180 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :To be honest, I think the GCC build process sort of expects to have some sort of C library for your target too. I'm not sure why, and how badly; at least the existing cross-compiler-compilation instructions tend to assume so. < 1274128207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah found something maybe useful here... < 1274128216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :newlib seems to feature... which is confusing < 1274128271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait " You may also want to download newlib, though it's not required for BrickOS." < 1274128334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and this guide, while not targeting C in the end, (but some language called cyclone) seems to at least discuss a recent gcc version < 1274128347 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://gcc.gnu.org/wiki/Building_Cross_Toolchains_with_gcc is also there, I remember seeing it before when googling, but it's far from comprehensive or conclusive or other c-words. < 1274128376 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You might even call it completely content-free. < 1274128381 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: buildroot's what I used for the arm-linux toolchain, but it was massively complex and confusing < 1274128388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't really understand how it worked < 1274128405 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: well at least it has one c-word then < 1274128408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have high hopes for http://www.cs.utah.edu/~regehr/research/BrickOS-Cyclone/INSTALL.html < 1274128408 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There are a couple of links, anyhow. < 1274128451 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A separate cross-binutils is generally easy to compile, though -- possibly because the build system is not terrible? But if you want C and not just an assembler... < 1274128497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, at least these instructions doesn't a) discuss cygwin b) refer to outdated, no longer existing debian packages as the only described way of getting the toolchain < 1274128516 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Buildroot tries to be very automatic; I built something with it, too, and I don't have any clue what happened, except that there was a faint smell of ozone at the end. < 1274128521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fizzie: well at least it has one c-word then <-- which one? < 1274128529 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"content-free", I think. < 1274128536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274128607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh btw I saw some wonderful build system yesterday. Custom makefiles broken at make -j2, oh and looked for a specific file in /usr/local/include and another one in /home//somepath < 1274128641 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sad thing is that the actual software is nice and well documented in general (not the code though, many files with no comments at all) < 1274128815 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to presume he knows absolutely nothing about how to do makefiles. < 1274128895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : anyway, in theory the only change you have to make is to give configure options like this: --build=i686-linux-gnu --host=i686-linux-gnu --target=h8300-hitachi-hms < 1274128905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how do I figure out the native triplet < 1274128914 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is some confusion for x86_64 linux < 1274128928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :x86_64-unknown-linux-gnu vs. x86_64-gnu-linux-gnu < 1274128929 0 :FIQ!~FIQ@unaffiliated/fiq JOIN :#esoteric < 1274128938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :both are seen, so it is unclear which to use < 1274128941 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me check, I'm pretty sure there's a simple way < 1274129052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc -dumpmachine < 1274129055 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on a native compiler < 1274129098 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1274129105 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :desktop: < 1274129107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ gcc -dumpmachine < 1274129107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :x86_64-unknown-linux-gnu < 1274129116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :laptop: < 1274129117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ gcc -dumpmachine < 1274129117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :x86_64-linux-gnu < 1274129127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is that a quadraplet on my desktop? < 1274129136 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a triplet no matter /how/ many parts it is < 1274129141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :along the same lines as an ETLA < 1274129146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ETLA? < 1274129154 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :extended three-letter acronym < 1274129155 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like "ETLA" < 1274129158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274129162 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1274129185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so... lets see.. ah this gcc is so old it uses PREFIX/man instead of PREFIX/share/man < 1274129194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even though that was only fixed quite recently < 1274129212 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274129220 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1274129222 0 :augur!unknown@unknown.invalid QUIT :Remote host closed the connection < 1274129227 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1274129346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, for gcc: < 1274129347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : --x-includes=DIR X include files are in DIR < 1274129347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : --x-libraries=DIR X library files are in DIR < 1274129349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :any idea why? < 1274129371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can't tell if it's using X as a variable there, or referring to X the windowing system < 1274129379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but no < 1274129412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1274129450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so does this look reasonable to you (yeah it seems you should co-build indeed...): < 1274129452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :../gcc-3.4.6/configure --prefix=/home/arvid/local/lego --infodir=/home/arvid/local/lego/share/info --mandir=/home/arvid/local/lego/share/man --enable-languages=c --target=h8300-hitachi-hms --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu < 1274129475 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that looks plausible < 1274129515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now lets hope it doesn't complain about no newlib (haven't been able to find right version of newlib, and I don't need it for the stuff I'm doing it seems) < 1274129589 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It working just like that sounds unlikely. < 1274129602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, which bit? < 1274129616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I followed http://www.cs.utah.edu/~regehr/research/BrickOS-Cyclone/INSTALL.html basically < 1274129635 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but where would we be if you could just follow instructions and have stuff work? < 1274129636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway it is doing the second runs of configure, that is after you type make < 1274129636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :atm < 1274129657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, believe me if I had been able to locate those instructions earlier I wouldn't have asked here.... < 1274129666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was quite hard to find < 1274129670 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: that happened when I compiled tar from source earlier today, it shocked me < 1274129683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :checking assembler for .balign and .p2align... /home/arvid/src/lego/brickOS/toolchain/gcc-3.4.6/gcc/configure: line 10246: test: -ge: unary operator expected < 1274129684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1274129684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :checking assembler for .p2align with maximum skip... /home/arvid/src/lego/brickOS/toolchain/gcc-3.4.6/gcc/configure: line 10284: test: -ge: unary operator expected < 1274129684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1274129684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :checking assembler for working .subsection -1... no < 1274129686 0 :FIQ!unknown@unknown.invalid PART #esoteric :? < 1274129686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :checking assembler for .weak... /home/arvid/src/lego/brickOS/toolchain/gcc-3.4.6/gcc/configure: line 10370: test: -ge: unary operator expected < 1274129689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1274129691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1274129693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that looks nasty < 1274129697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it did just continue anyway < 1274129723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and my /bin/sh is bash... so no idea < 1274129735 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :An empty something there, I'd guess. < 1274129745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah... but that looks quite bad though < 1274129751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure .p2algin does work... < 1274129761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/home/arvid/src/lego/brickOS/toolchain/build-h8300/bfd/../../gcc-3.4.6/bfd/cache.c:440: undefined reference to `unlink_if_ordinary' < 1274129763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1274129895 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: which assembler is this? < 1274129925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc -W -Wall -Wstrict-prototypes -Wmissing-prototypes -g -O2 -o size size.o bucomm.o version.o filemode.o ../bfd/.libs/libbfd.a ../libiberty/libiberty.a < 1274129925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bucomm.o: In function `make_tempname': < 1274129925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/home/arvid/src/lego/brickOS/toolchain/build-h8300/binutils/../../gcc-3.4.6/binutils/bucomm.c:425: warning: the use of `mktemp' is dangerous, better use `mkstemp' < 1274129925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :../bfd/.libs/libbfd.a(cache.o): In function `bfd_open_file': < 1274129926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders which solution for cross-compiles is neater; rewriting half of configure.in by hand, or calling configure.ac-generated configures recursively < 1274129931 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're the gcc and ick solutions, respectively < 1274129932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, must be host I think < 1274129944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'm pretty sure the ick solution is the best one there to make it work with autotools < 1274129964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, google indicates it is related to mixing versions of libiberty < 1274129971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(maybe) < 1274129992 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I can believe that < 1274129999 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :link a static libiberty.a and use that? < 1274130019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well it tries to link the one it built it seems < 1274130028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why it is using a version that lacks that I don't know < 1274130036 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then how are you mixing versions? < 1274130104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah missed the step about rm -rf libiberty from gcc and ln -s binutils versions < 1274130111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :grep indicates that the binutils one has it < 1274130119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets try again < 1274130145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, at least gcc 3.x doesn't take quite as long to compile :D < 1274130386 0 :Gracenotes!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1274130407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the lines I get those "quote issue" warnings from are like: < 1274130413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cat >>confdefs.h <<_ACEOF < 1274130414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi` < 1274130414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :_ACEOF < 1274130719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :another one: < 1274130722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 6 \) \* 1000 + 0` < 1274130722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : then gcc_cv_as_balign_and_p2align=yes < 1274130722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fi < 1274130730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that has some horrible formatting < 1274131208 0 :hiato!unknown@unknown.invalid QUIT :Quit: underflow < 1274131227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah tracked it down to the line: checking what assembler to use... expr: syntax error < 1274131289 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not surprised, given the formatting < 1274131342 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well it was a different expr < 1274131357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and now I know how it checks unbuilt gas version < 1274131368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, by grepping the configure of it < 1274131373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION facepalms < 1274131374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which fails here for some reason < 1274131388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, it gets an empty string for all the files it tries < 1274131398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for f in $gcc_cv_as_bfd_srcdir/configure \ < 1274131398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : $gcc_cv_as_gas_srcdir/configure \ < 1274131398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : $gcc_cv_as_gas_srcdir/configure.in \ < 1274131398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : $gcc_cv_as_gas_srcdir/Makefile.in ; do < 1274131398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f` < 1274131401 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is it a \r\n vs \n problem? < 1274131408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[logic to test for found string] < 1274131415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I doubt that in this case < 1274131418 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, apparently not given that grep string < 1274131451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh there is an extra space in this version < 1274131452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at the start < 1274131456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like: < 1274131460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : VERSION=... < 1274131477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I can't even imagine why anyone would break it like that < 1274131480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you have the wrong version of VERSION? < 1274131490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, XD < 1274131501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :configure-# Define the identity of the package. < 1274131501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :configure- PACKAGE=bfd < 1274131501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :configure: VERSION=2.16.1 < 1274131530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and I'm editing configure directly. I don't think I want to try autogen.sh in gcc... < 1274131547 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I am of the opinion that the normal usage of quote marks needs revision. < 1274131557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover: what new usage would you suggest? < 1274131569 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, what about this < 1274131575 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :instead of `quoting' words `like this' < 1274131586 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's $(quote' words $)like this' < 1274131622 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Well, in English at least, quotation marks change the context in which a sentence is interpreted, rather than changing its interpretation altogether, < 1274131673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"` < 1274131677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, tell me how this works < 1274131684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't figure out what the syntax is even < 1274131686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :expr? : ? < 1274131708 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe it's a string compare? < 1274131712 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in some really old expr? < 1274131817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not the one I have here < 1274131882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, btw need to do the same fix for ld < 1274131887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it checks that version the same way < 1274131894 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now this might compile. Lets hope < 1274132038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it is still broken < 1274132041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not quite as badly < 1274132270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what do you think of this: < 1274132271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc_cv_gas_version=`grep '^ *VERSION=[0-9]*\.[0-9]*' $f | sed 's/^ //'` < 1274132281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it breaks with space at start < 1274132284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the line after < 1274132388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems to work < 1274132439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION starts make again and goes to eat something < 1274132469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I will notify you of any more wtf when I get back (and I did check all configure for similar greps... only in two places, both in same file) < 1274132500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm well aware that the gcc build system is wtf < 1274132597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well first time I seen you facepalm < 1274132608 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I actually did so in RL < 1274132610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway aren't more modern ones, 4.4 and later slightly saner? < 1274132614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1274132621 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, maybe, they're insane enough though < 1274132625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, at least it installs man pages in the right dir by default < 1274132634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not in PREFIX/share any more < 1274132636 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sufficiently so that comparison becomes meaningless < 1274132643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1274132645 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why manpage location is worrying at all compared to the other stuff it does < 1274132647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not in PREFIX/man any more < 1274132649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but DATAPREFIX/man < 1274132651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is better < 1274132659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it isn't tidy :/ < 1274132687 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually, this system /has/ a manpage in /usr/man < 1274132688 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for gocr < 1274132693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, for what? < 1274132694 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it looks like the package got lost somehow < 1274132697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also mine has none < 1274132706 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, confused < 1274132715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what is gocr? < 1274132733 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :an OCR program, I think < 1274132735 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've never used it < 1274132787 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1274133060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I got an ICE now < 1274133078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't know which compiler < 1274133088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1274133089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :xgcc? < 1274133092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what the fuck is it doing < 1274133095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cross compiling!? < 1274133098 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1274133189 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's building libgcc < 1274133193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you wanted floating-point emulation, right? < 1274133193 0 :hiato!~fdulu@41-135-6-154.dsl.mweb.co.za JOIN :#esoteric < 1274133199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has to compile that somehow < 1274133204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well no that is done in the OS -_- < 1274133208 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274133212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why is it called xgcc? < 1274133213 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, 64-bit multiply then < 1274133221 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Floating-point is for cissies. < 1274133222 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: to avoid nameclashes, I think < 1274133224 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the new one < 1274133232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, this would need a helper for 32-bit addition... < 1274133240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that too < 1274133279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, _muldi3.o ? < 1274133328 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: muldi3 is (uint32_t)a = (uint32_t)b * (uint32_t)c < 1274133336 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of the primitives that GCC breaks programs down into < 1274133349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apparently the operation doesn't exist on the target platform, so gcc's making emulation code for it < 1274133361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1274133374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but I'm not going to work with numbers wider than 16 bits anyway < 1274133405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how comes you know what _muldi3 is? < 1274133406 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well then that bit of libgcc won't be linked < 1274133413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because I've written a gcc backend? < 1274133420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and you remember them all? < 1274133422 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if muldi3 wasn't implemented, it just wouldn't work < 1274133430 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the names follow a pretty consistent pattern < 1274133446 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :MULtiply Doublewidth Integers < 1274133456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274133459 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, di is 64, not 32 < 1274133464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and the 3 is for? < 1274133466 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :si is 32, hi is 16, qi is 8 < 1274133468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and 3 is 3 params < 1274133474 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :two input, one output < 1274133493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well 64 bit math is just out of question on this thing anyway < 1274133500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :float will probably be 32 bit at most < 1274133507 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so that's the 64-bit multiply I mentioned earlier < 1274133511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I may develop 16 bit float libs instead of using the OS < 1274133524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since space is really at a premium here... < 1274133543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have no idea what do do about the ICE though... < 1274133552 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :debug it? < 1274133558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I had to debug loads of those things < 1274133568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :more annoying was when I got the compiler into an infinite loop < 1274133570 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well gcc 3.x is hardly supported any longer < 1274133573 0 :Tritonio_GR!~Tritonio@150.140.227.55 JOIN :#esoteric < 1274133583 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you wouldn't believe how easy it is to define something in terms of itself < 1274133594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1274133600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, in that RTL language or such? < 1274133608 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or even in C < 1274133612 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is what libgcc is written in < 1274133615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, in C I don't believe it < 1274133622 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :imagine trying to implement a = b * c < 1274133625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1274133627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1274133628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1274133629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but not in terms of multiplication < 1274133647 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you can't just use a loop because that would be inefficient < 1274133655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you use narrower multiplies, and bitshifts all over the place < 1274133668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, if we assume c >= 0 atm: a=0; while(c--) a+=b; ? < 1274133675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you need similar code for c<0 < 1274133681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: massively inefficient < 1274133682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but with some stuff changed < 1274133686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well okay < 1274133687 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you wouldn't want every multiplication in a whole program to compile into that < 1274133709 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I implemented a 32-bit unsigned integer multiply in JavaScript a while back < 1274133729 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I don't want 64 bit arithmetics on a system which is this cramped anyway! < 1274133733 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the fun bit there: JavaScript's only numeric type is the double-precision float, and it can't store all 64-bit integers accurately) < 1274133745 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: they don't cost if you don't use them < 1274133752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1274133754 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ugh, JS. < 1274133762 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I hatehatehatehatehate JS. < 1274133777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I didn't hate js before. Now I do < 1274133788 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I rather like it; its library support, OTOH, is awful < 1274133796 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me find a snippet of source code < 1274133796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just disliked it before < 1274133823 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I hatehatehatehatehate JS because some idiot in my school decided it was a good language in which to teach programming. < 1274133831 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :On IE 5, no less! < 1274133850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1274133859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :doesn't make js itself as bad though < 1274133867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is the fault of that idiot < 1274133883 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, but I'm extremely soured on it. < 1274133933 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The weak typing is probably the bit I find most jarring, though. < 1274133936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :function arraysort(a) { /* Can we use a built-in sort method? */ if (Array.sort) return Array.sort(a); /* If not, use quicksort. */ if (a.length <= 1) return a; var pivot = a[0]; var b = new Array; var c = new Array; for (var i = 1; i < a.length; i++) { if (a[i] < pivot) b[b.length] = a[i]; else c[c.length] = a[i]; } b = arraysort(b); c = arraysort(c); b[b.length] = pivot; for (var i = 0; i < c.length; i++) b[b.length] = c[i]; return b; } < 1274133963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm... weak static typing is that possible? < 1274133966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I guess it is < 1274133969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but has it been done? < 1274133981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :obviously a quicksort isn't quite optimal, but it was easy to write and I know the data it runs on isn't quicksort-pathological < 1274133984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :much weaker than C that is < 1274133986 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And when we write programs to verify that an input is in a range of numbers, *we don't need to verify the number*. < 1274133991 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Perl < 1274133994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh < 1274133997 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :statically typed scalar/array/hash < 1274134005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, too strongly typed < 1274134012 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :My teacher has accepted programs that will take "a fish" as a valid voting age. < 1274134014 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :simultaneously, it has strong dynamic typing < 1274134017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, bash is dynamically typed but very weakly typed < 1274134020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1274134061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: at any given moment, a scalar is, say, a string, or a reference to a hash, or a reference to an IO::Handle object, or whatever < 1274134064 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, semi-strong < 1274134094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it doesn't help that most built-in operators force contexts on things < 1274134108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, everything is a string... that would work for very weak static typing < 1274134121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait no < 1274134124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't < 1274134125 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, with that reasoning, Unlambda < 1274134128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it would be painful < 1274134130 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's statically typed < 1274134133 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it only has one type < 1274134143 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus you can type-check it at compile time < 1274134148 0 :hiato!unknown@unknown.invalid QUIT :Quit: brb restart for net issues < 1274134149 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Tcl represents everything as a string, doesn't it? < 1274134151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, "everything is an 2D array of integers" < 1274134153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about that < 1274134158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, not internally iirc < 1274134181 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's just an optimisation, it doesn't affect language semantics < 1274134191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1274134192 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in unlambda, characters are second-class values < 1274134207 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if a Haskell implementation chooses to store "1024" as the number 1024 with some sort of "this is a string" tag, it doesn't make it any less strongly typed < 1274134252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, major wtf of gcc: fixincludes < 1274134272 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it tries to make platform include files more standards-compliant < 1274134275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, especially since it doesn't just do std* headers but all headers for god knows what < 1274134287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well since when is X11 includes "platform includes"? < 1274134294 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :According to WP, JS has weak typing? < 1274134301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/home/arvid/src/lego/brickOS/toolchain/build-native/binutils/ranlib ./libgcc.a < 1274134301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/lib/libc.so.6: file not recognized: File format not recognized < 1274134303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1274134303 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274134306 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is it just me, or are the ConwayLife forums broken? < 1274134313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now that was cryptic (trying to build a native one atm) < 1274134318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(since that was recommended somewhere) < 1274134361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh duh huge if block < 1274134376 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Fine for me. < 1274134395 0 :Phantom_Hoover!unknown@unknown.invalid TOPIC #esoteric :For Game of Life discussion go to #b3s23 | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1274134413 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :And please come back to #b3s23, it's lonely. < 1274134442 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION accidentally joined #b2s23 < 1274134451 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: try to run file on it < 1274134493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, on what? libc.so.6= < 1274134497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/=/?/ < 1274134513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ranlib, probably < 1274134515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ file /lib/libc.so.6 < 1274134515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/lib/libc.so.6: symbolic link to `libc-2.11.1.so' < 1274134521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ file -L /lib/libc.so.6 < 1274134521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/lib/libc.so.6: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped < 1274134528 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if your libc got overwritten, you're in really serious trouble < 1274134551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it wasn't ranlib < 1274134555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it just looked like it < 1274134567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/lib/libc.so.6: file not recognized: File format not recognized < 1274134567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :collect2: ld returned 1 exit status < 1274134571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that may tell more < 1274134588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't know which ld < 1274134600 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or which collect2? < 1274134610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Try executing libc.so.6 < 1274134637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, well duh that works... yes < 1274134641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what would executing a libc even /do/? < 1274134650 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Call its main() function. < 1274134651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the usual version info < 1274134657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1274134663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ /lib/libc.so.6 < 1274134663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GNU C Library stable release version 2.11.1, by Roland McGrath et al. < 1274134664 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :All shared libraries on Linux are executables which happen to export functions. < 1274134667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[a lot more] < 1274134675 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GNU C Library (EGLIBC) stable release version 2.10.1, by Roland McGrath et al. < 1274134681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: on Windows too < 1274134687 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Some of them don't happen to have a main function, so they crash. < 1274134692 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :'cept you can't run them normally < 1274134707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, s/some/most/ < 1274134720 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, only one I know that has it is some glibc ones < 1274134725 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yeah, but Windows doesn't have shared libraries. More of a on-demand statically-linked-at-runtime thing. :P < 1274134736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and that is libc and ld iirc < 1274134740 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Typically, just libc and bizarre things. < 1274134747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, other ones, like libm segfault < 1274134747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: that's a bizarre way to put it < 1274134754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can load DLLs at runtime, without issue < 1274134756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, which bizarre ones? < 1274134781 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It does this by relocating the libraries. The whole thing. < 1274134808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that seems sufficiently insane for Windows < 1274134811 0 :migomipo!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274134848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :new idea: static only compiler < 1274134865 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Just pass -static to GCC. < 1274134872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, --disable-shared you mean < 1274134879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, I'm *trying to compile gcc* < 1274134882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it isn't working < 1274134883 0 :impomatic!unknown@unknown.invalid PART #esoteric :? < 1274134891 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Ooj. < 1274134897 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :s/Ooj/Ooh. < 1274134917 0 :augur!~augur@129-2-175-79.wireless.umd.edu JOIN :#esoteric < 1274134921 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274134938 0 :pikhq!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274134947 0 :FireFly!unknown@unknown.invalid QUIT :Quit: null < 1274134973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Phantom_Hoover, it is a very old gcc. I'm not really surprised < 1274134985 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What was the last thing I said? < 1274134997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, ais523: It does this by relocating the libraries. The whole thing. < 1274135007 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If the library is in memory but not at a usable address, it will load another copy of the library into memory and relocate it. < 1274135008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : that seems sufficiently insane for Windows < 1274135048 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, even on 64-bit? Where you have cheap RIP relative addressing < 1274135066 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Linux does this, but only for non-PIC libraries. Which straight-up do not work not-x86. < 1274135080 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Pretty sure it does that on 64-bit too. < 1274135085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, -_- < 1274135102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, also this could work on other platforms for linux too. Would be insane however < 1274135118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1274135152 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It was only ever supported on x86 because a) PIC code is slower on x86, b) a.out shared libraries couldn't handle PIC code. < 1274135172 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Such a legacy thing. < 1274135181 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1274135218 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :PIC? < 1274135225 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :That sounds .. COBOL-esque < 1274135234 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure you're referring to something else < 1274135235 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Position-Independent Code. < 1274135257 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :I.E. it can be loaded anywhere in memory. < 1274135262 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Did I ever share the story of why I learned COBOL? < 1274135272 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Very easy on x86_64. < 1274135275 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :(well, if reading a book on == learning) < 1274135281 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :As you can just address relative to the instruction pointer. < 1274135328 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ends up eating another register on x86. < 1274135328 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I haven't heard it < 1274135349 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :For some reason, some book I read mentioned CORBA, which I knew nothing [and still know nothing] about < 1274135367 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So, some time later, I'm by a bookstore, and I see a book, COBOL For Dummies < 1274135373 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gah; how many registers end up being useful on x86 for shared library code? < 1274135375 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1274135379 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :eax, ebx, ecx. < 1274135387 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So I buy it, not realizing that what I wanted was CORBA, not COBOL < 1274135412 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :CORBA for dyslexics < 1274135429 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture < 1274135437 0 :Phantom_Hoover!unknown@unknown.invalid PRIVMSG #esoteric :The magic of Google. < 1274135471 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1274135562 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274135583 0 :pikhq!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274136927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so < 1274136932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :static build did not help < 1274136933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1274137153 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1274137359 0 :ws!wswieb@akson.sgh.waw.pl JOIN :#esoteric < 1274137501 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274137509 0 :Phantom_Hoover!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1274137617 0 :pikhq_!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274137750 0 :pikhq!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1274137976 0 :Oranjer!~HP_Admini@adsl-243-203-60.cae.bellsouth.net JOIN :#esoteric < 1274138164 0 :pikhq_!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274138523 0 :pikhq!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274138961 0 :calamari!~calamari@ip70-162-184-104.ph.ph.cox.net JOIN :#esoteric < 1274139260 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1274139285 0 :pikhq!~pikhq@75-106-123-222.cust.wildblue.net JOIN :#esoteric < 1274139296 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should probably attempt to understand DVCS < 1274139976 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1274140264 0 :calamari!unknown@unknown.invalid PART #esoteric :? < 1274140442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: DVCSes are amazing < 1274140487 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :DVCS has to take relativity of events into account. :-)