< 1237075772 0 :FireyFly!unknown@unknown.invalid QUIT :"Reboot" < 1237075918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: do you think I should write a simple math plotter thingy in qbasic, or will I go mad from the whole "parsing infix" thing? < 1237075928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:51:34 my laptop is the brokenness now. :( < 1237075928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:51:39 "was fun while it lasted". < 1237075930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :09:52:08 although in retrospect ~1550eur was a bit much for a machine that worked for six days. < 1237075933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— 2004-09-23 < 1237075961 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think that was the iBook. They (of course) warranty-replaced it. < 1237076008 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Parsing infix isn't *that* bad. It is at least context-free... < 1237076029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: In QBasic. < 1237076057 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Mooz, who used to be here around the beginning, wrote a really nice function-plotter, with a nice GUI and 3d-like buttons and everything, in QBasic. < 1237076075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :11:58:08 mooz at least wrote a.. pretty advanced one, in qbasic. < 1237076075 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :operator parsing is simpler than general < 1237076080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right after plotting discussion. < 1237076084 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Kay, so that's slightly annoying. < 1237076088 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not hard, though. < 1237076089 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Heh. Well, he did. < 1237076092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if you're going to say something, think if I've already been on that trail ;-) < 1237076102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but my idea is basically a trivial input language, that is, < 1237076124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basic mathematical notation like sin(x) or whatever, then it'd prompt for a range for x, then you get a plot drawn in 10 minutes. < 1237076168 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I also mentioned that it was a high-school exercise. (Although the exercise was just "plot polynomials", mooz's solution was the typical overkill one.) < 1237076192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2006-12-02:20:44:13 I remember longing for arrays when I coded in qbasic < 1237076193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they exist, dude. :P < 1237076203 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What sort of coder *wouldn't* go for overkill (if time allows)? < 1237076219 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I need to say anything any longer, since apparently I've already said it before. < 1237076229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2007-10-26:12:28:50 pset is the QBASIC name for the pixel-set function < 1237076230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no no no < 1237076236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's POKE x+(y*w),col < 1237076238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :slly. < 1237076244 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: yeah you said so before < 1237076310 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's also (IIRC) faster, if you're plotting all pixels of the screen in a "for y = ... for x = ..." loop, to keep a incremented index p for the POKE and not recalculate x+(y*w) every time. Doesn't help for the generic pixel-setting case, of course. < 1237076341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how easy a voxel renderer would be in qbasic < 1237076341 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so POKE is not arbitrary memory assignment? < 1237076347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it is < 1237076347 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It also might not be faster, since it's a whole basic statement to increment p. I did benchmark. < 1237076347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you do < 1237076349 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: It... Is. < 1237076351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DEF SEG = &HA000 < 1237076354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to get into graphics memory < 1237076360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so then all your POKEs are offsetted from the start of graphics memory < 1237076364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so POKE x+(y*w) works < 1237076366 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1237076377 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :God, doing VGA from BASIC... < 1237076380 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i wondered why you had no base offset < 1237076389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: What's odd about that? :P < 1237076393 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The pointer taken by POKE is just the 16-bit intra-segment address. < 1237076395 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :x86 is silly. < 1237076396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it DID come with tons of drawing functions. < 1237076429 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I still find it weird for a normal program to be doing anything to video memory. < 1237076433 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha so it's x86 specific < 1237076440 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(and yes, I know that's how X does things) < 1237076467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DOS is x86 specific. < 1237076469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :As far as I know. < 1237076472 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Yeah; x86 has the graphic memory mmaped at a few places... < 1237076549 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Unless by "DOS" you mean "anything that was called a Disk Operating System". ;) < 1237076557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1237076565 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ProDOS FTW. :p < 1237076569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, for full-screen thingies, LINE is really really fast. < 1237076573 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :On a x86 (but not a x86-64) Linux, you can cat /proc/iomem to see some of the mappings. < 1237076575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LINE (0,0)-(320,200),I,BF < 1237076578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fills the screen instantly < 1237076601 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I just did cat /proc/iomem on my x86_64 system. < 1237076606 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: me too! < 1237076608 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Seems to show all the mappings. < 1237076620 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't know what mappings there should be < 1237076631 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My x86-64 system doesn't have those 000a0000 video-memory thingsies that there used to be. < 1237076644 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Only my 32-bit thing shows them: < 1237076647 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :000a0000-000bffff : Video RAM area < 1237076647 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :000c0000-000cb3ff : Video ROM < 1237076647 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :000cc000-000cc7ff : Adapter ROM < 1237076661 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :00010000-0009cbff : System RAM < 1237076676 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, *those*. < 1237076685 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think that's what we were talking about. < 1237076689 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: fills the screen? wouldn't that be a rectangle rather than a line? < 1237076709 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: That's the BF modifier. :p < 1237076717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Thus "BF" < 1237076725 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The B modifier draws a box instead of line, the BF modifier draws a filled box. < 1237076735 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's just CIRCLE, LINE and PSET, pretty much. < 1237076766 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and PAINT, of course. Which does a flood-fill type of thing. < 1237076771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't forget DRAW! < 1237076785 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :DRAW is very unsimple, though. < 1237076800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but, < 1237076803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :enemy$ = "asd8uA(*EU*(UQ*(" < 1237076809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can't beat it for defining sprites. < 1237076832 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, and it might even be reasonably fast, since it's not implemented in qbasic. < 1237076878 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1237076906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ■ To execute a DRAW command substring from a DRAW command string, use < 1237076906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : the "X" command: < 1237076908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : DRAW "X"+ VARPTR$(commandstring$) < 1237076910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ I don't get this < 1237076912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not just < 1237076914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DRAW commandstring$ < 1237076949 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want to refer from your "top-level" command string to sub-scripts, that's what X is for. < 1237076962 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That particular example doesn't really make sense, though. < 1237076986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :23:29 fizzie: If you want to refer from your "top-level" command string to sub-scripts, that's what X is for. < 1237076987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1237076997 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Just look at that other example. < 1237077011 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Triangle$ = "..."; DRAW "C2 X" + VARPTR($Triangle) < 1237077015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : DRAW "C2 X" + VARPTR$(Triangle$) < 1237077017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that could just be < 1237077021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : DRAW "C2 " + Triangle$ < 1237077028 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but then you'd be constructing a possibly really long string. < 1237077033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1237077034 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you have a complicated Triangle$. < 1237077048 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure if it supports nested X, though. :p < 1237077099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow, drawing a circle with DRAW is a pani in the arse < 1237077101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*pain < 1237077116 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What I think is funny is that the X argument is a raw memory offset to the variable. < 1237077146 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :panis rectalis < 1237077215 0 :Azstal!unknown@unknown.invalid PRIVMSG #esoteric :... rectal bread? < 1237077225 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, yes. < 1237077231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1237077240 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Is that what "PR" means in context of, you know, business stuff and so on? < 1237077258 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :obviously. < 1237077321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OMFG < 1237077322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: < 1237077325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I sighted the ehird fractal < 1237077326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.advsys.net/ken/klab/labdemo2.png < 1237077332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :16:30:54 I think I'm going to try porting this next: http://www.advsys.net/ken/klab/labdemo2.bas < 1237077332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :16:31:19 it's supposed to look like this when it runs: http://www.advsys.net/ken/klab/labdemo2.png < 1237077335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :16:31:47 I've done raytraced 2.5d before, but I've never tried texture-mapping < 1237077337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm famous IN THE PAST> < 1237077427 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1237077450 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't get it < 1237077461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the squares < 1237077466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://imgur.com/5ZN9A.png < 1237077481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's a fractal that we've established predates me by a long way but I think it's mine :P < 1237077516 0 :bsmntbombdood!n=gavin@97-118-133-63.hlrn.qwest.net JOIN :#esoteric < 1237077733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: http://www.advsys.net/ken/klab/labdemo2.bas < 1237077773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"CALL int86old" makes it, uh, not run. < 1237077773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1237077777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"unless you're stuck using qbasic" < 1237077777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1237077781 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fractal squatting. the possibilities are endless. < 1237077817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, it runs. < 1237077820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just... sloowly... < 1237077824 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course, xkcd already established that the internet is a hilbert curve. < 1237077825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :As in, several seconds per key. < 1237077832 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it's for quickbasic. (And even there it's not in the manual, because it's been sort-of-deprecated with the CALL INTERRUPT statement.) < 1237077859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes, well, ti works in qbasic. < 1237077862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you comment that out. < 1237077866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's as slow as imaginable, but. < 1237077877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyone have quickbasic? :P < 1237077886 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I, somewhere. < 1237077897 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure it's findable in the interwebs too, might even be faster that way. < 1237077909 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :qb4.5 is the version I've seen "everywhere". < 1237077924 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It even uses POKEs and it's still slow < 1237077954 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I think I might've found my copy. < 1237077962 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least there's qb.arj in this tarball. < 1237077975 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's also sbbasic.exe, I wonder what that does. < 1237077999 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :molasses basic. when you have too much time on your hands. < 1237078029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that exists, it's called qbasic < 1237078043 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so it's an oxymoron? < 1237078052 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :qbasic != quickbasic < 1237078072 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or wait, does that need to be contradictory from the words themselves? < 1237078081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A subset of QuickBASIC 4.5, named QBasic, was included with MS-DOS 5 and later versions, replacing the GW-BASIC included with previous versions of MS-DOS. Compared to QuickBASIC, QBasic is limited to an interpreter only, lacks a few functions, can only handle programs of a limited size, and lacks support for separate program modules. Since it lacks a compiler, it cannot be used to produce executable files, although its program source code can still be co < 1237078084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mpiled by a QuickBASIC 4.5, PDS 7.x or VBDOS 1.0 compiler, if available. < 1237078102 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, sbbasic is just some sound blaster drivers. :p < 1237078143 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm maybe that's actually irony < 1237078177 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so q stands for "so slow we didn't have time to write it out"? < 1237078195 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, qb.arj had QuickBasic 4.5. < 1237078218 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's got a lot longer manual, btw; in multiple files and everything. < 1237078251 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least I think it was longer, not sure < 1237078280 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And of course it has the Run/Make EXE file... option. < 1237078362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: < 1237078389 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1237078390 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1237078392 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1237078398 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haccordion < 1237078399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gimme :-P < 1237078437 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :lemme findit < 1237078548 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/vcfm/haccordion.tar.gz < 1237078557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yaey < 1237078573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey guys an unknown informant has just given me quickbasic if anyone wants it let me know. < 1237078626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1237078628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it really is quick < 1237078632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it runs my sierpinski program in <1sec < 1237078633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1237078776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1237078778 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe they added some delay loops to qbasic so that people would be more inclined to buy. < 1237078785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on one hand I like qbasic because it's slow and you have to do crazy trix < 1237078791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand < 1237078794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this is acutally usable < 1237078835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, int86old doesn't work, fizzie < 1237078837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's undefined < 1237078875 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It might have a bit different syntax in qb45 than what the file expects. < 1237078877 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Checking. < 1237078916 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Dunno, http://support.microsoft.com/kb/57385 claims it's still in qb45. < 1237078949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe it needs UPPER CASE < 1237078962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Nope < 1237079042 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1237079047 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It might need a library. < 1237079064 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You should probably fix Options/Set Paths... anyway. < 1237079068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wtf, CALL INTERRUPT fails. < 1237079072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: aha < 1237079109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1237079157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How do you add a library, I wonder.. < 1237079163 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Although it should load the default QB.QLB by default. Who knows. < 1237079166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1237079170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :$INCLUDE:'QB.BI' < 1237079190 0 :Corun!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237079211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that gives a syntax error >_< < 1237079248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1237079251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's meant to go in a comment. < 1237079268 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Uh, you got BI.LIB? < 1237079283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1237079284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :QB.LIB < 1237079304 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :QB.LIB should be in the package. < 1237079318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1237079319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So it is < 1237079323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No QB.BI, though. < 1237079405 0 :Corun!n=Corun@93-97-202-25.zone5.bethere.co.uk JOIN :#esoteric < 1237079444 0 :neldoret1!n=user@81-223-127-237.stpeter.xdsl-line.inode.at JOIN :#esoteric < 1237079608 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, no. I'm not completely sure that is a complete set of qb45 files. < 1237079626 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It probably has a rather colorful history before getting to me. < 1237079862 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hey. < 1237079871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey. < 1237079895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: what do I have to turn on again? < 1237079899 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :This msbasic-softlib thing, where I got the helpmake thing for .hlp decompilation, also has qb4crit.exe, which has qb.lib, int86old.asm, int86old.obj and something like that. < 1237079906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I have qb.lib < 1237079913 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just not qb.bi < 1237079915 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It might be a better qb.lib, who knows. < 1237079926 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And anyway int86old.obj. < 1237079994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: < 1237079997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :% ./play_note < 1237079997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :play_note: Prelude.(!!): index too large < 1237080025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah wait < 1237080026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :works now < 1237080088 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, what is QB.BI supposed to do? int86old definitely is somehow included in qb.lib, since strings shows a lot of related strings. < 1237080094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: header file < 1237080205 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237080210 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's in http://neil.franklin.ch/Projects/Mandel/qb/qb.bi < 1237080218 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It looks like just a couple of DECLARE SUB lines. < 1237080242 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, the directory sounds like a mandelbrot plotterer. < 1237080256 0 :neldoreth!unknown@unknown.invalid QUIT :No route to host < 1237080270 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Have to sleepify now, though. < 1237080286 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Brains.. < 1237080292 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait, that's zombify < 1237080328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: < 1237080330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it works < 1237080335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only issue now is my suckitude at musak < 1237080341 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION laments that it works < 1237080355 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1237080355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :woe us! < 1237080465 0 :Corun_!n=Corun@93-97-202-25.zone5.bethere.co.uk JOIN :#esoteric < 1237080710 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1237080745 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: now you just have to learn to play the accordion < 1237080759 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: I see no resemblance on haccordion :P < 1237080760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, let's make an awful rhyming poem about fish and their use of intercal in an enterprise environment < 1237080778 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose we cod do that < 1237080779 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: same layout < 1237080799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: well, true < 1237080806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: these fish, see, they're very fat < 1237080834 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :are you trying to make a pun here? < 1237080852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: THAT WAS MY NEXT LINE ;_; < 1237080925 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fishing lines need bait, you know < 1237080930 0 :Corun!unknown@unknown.invalid QUIT :Connection timed out < 1237080957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: and anyway, these fish used INTERCAL, so < 1237081065 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i sense a lack of substance here. or perhaps the wrong substance, what are you smoking? < 1237081087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: are these part of the poem? they're not very rhymey. < 1237081106 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or perhaps it's just because i'm not very good at english fish names < 1237081134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ghoti < 1237081172 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i wish i shaw that coming < 1237081221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :these fish were hummin < 1237081251 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just for the halibut < 1237081271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for they had many butt. s. and used INTERCAL, < 1237081310 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it was an eel-advised choice < 1237081321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and they turned to james joyce < 1237081338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but still they could not pronounce it < 1237081384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and thus, they used unary XOR to denounce it < 1237081406 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and the eel was very XORry < 1237081430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for the damage it had caused; and they SELECTed some bits from its tears, < 1237081489 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and STASHed them behind their ears < 1237081550 0 :judicaster!unknown@unknown.invalid PRIVMSG #esoteric :and fulfilled everybody's worst fears < 1237081554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1237081556 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^U < 1237081556 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^U < 1237081557 0 :judicaster!unknown@unknown.invalid PRIVMSG #esoteric :I < 1237081558 0 :judicaster!unknown@unknown.invalid PRIVMSG #esoteric :ruined it < 1237081559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^U < 1237081561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^U < 1237081566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and said, "PLEASE DON'T GIVE UP", we're right behind you < 1237081638 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it was all a red herring, mind you < 1237081650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and they rhymed you with you < 1237081737 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :quite insane, it seems, i find you < 1237081756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but, then, I climbed mount everest. < 1237081760 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and then they destroyed the meter with glue < 1237081762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with the fishes, on dishes, and, < 1237081850 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a seagull too < 1237081860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a < 1237081864 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(named Jonathan) < 1237081870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a (named Jonathan) Jonathan < 1237081878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ Ed: Please be less like Finnegan's Wake in future. ] < 1237081892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :—uture–uture, Fish, INTERCAL, < 1237081901 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and then they down the riverrun < 1237081913 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :alpyalpy < 1237081916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Alpy, what was that? < 1237081918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right, fish, < 1237081940 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :fishy fishy fishy fishy fishy fishy fish < 1237081955 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :And then they won the prize for the fishiest poetry in that decade < 1237081958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Then an explosion < 1237081988 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Then an implosion < 1237081989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wibby rollins < 1237081990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wibby rollins < 1237081991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wibby rollins < 1237081993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wibby rollins < 1237081994 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I hope you are writing this down < 1237082000 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so we can burn it later < 1237082000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[oerjan: i have grep.] < 1237082009 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Can we burn the entire channel? < 1237082018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the Fish sayd; "Byrn the wytch! Wemyst hafst only INTERCVL"; < 1237082073 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Apparently we are smoking trout, all of us. < 1237082084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Trout? Well, I was on weed, but... < 1237082087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(^lie) < 1237082116 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, it's the unvarnished trout < 1237082163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, just go route < 1237082166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :these IP addresses < 1237082178 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I hope it will be a whale before we try something this stupid again < 1237082214 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i hear VB is good for such stuff < 1237082229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gui vsual interface riverrun < 1237082270 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :The End. < 1237082292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except that was fake; < 1237082294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i the author lie < 1237082300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :~THE END~ < 1237082306 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh jesus < 1237082314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1237082315 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whew < 1237082321 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :this code has been running for like 18 hours < 1237082339 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i expected it to take like 1 hour < 1237082341 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: oh, i thought you too were afraid that the poem would go on longer < 1237082361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ditto < 1237082364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1237082483 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it was a bit short on rhyming, but i think we nailed the "awful" part. < 1237082512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fishherel < 1237082517 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this puts us on the same level with the greats like e.e.cummings < 1237082542 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i wish i saw that cummings < 1237083038 0 :[helloworld]!n=[hellowo@62.87.208.174 JOIN :#esoteric < 1237083049 0 :[helloworld]!unknown@unknown.invalid PART #esoteric :? < 1237084229 0 :Corun_!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1237085301 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Connection timed out < 1237085354 0 :bsmntbombdood!n=gavin@97-118-133-63.hlrn.qwest.net JOIN :#esoteric < 1237087259 0 :neldoret1!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1237088097 0 :GreaseMonkey!n=gm@unaffiliated/greasemonkey JOIN :#esoteric < 1237090158 0 :judicaster!unknown@unknown.invalid NICK :comex < 1237093376 0 :kerlo_!n=ihope@normish.org JOIN :#esoteric < 1237093401 0 :kerlo_!unknown@unknown.invalid QUIT :Client Quit < 1237094589 0 :Sgeo!unknown@unknown.invalid QUIT :"Leaving" < 1237103999 0 :clog!unknown@unknown.invalid QUIT :ended < 1237104000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1237105146 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1237107403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : [ Ed: Please be less like Finnegan's Wake in future. ] <-- :DDDD < 1237107479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird and oerjan: that was very entertaining :D < 1237107656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :about counting CPU cores... < 1237107698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think that there are 11 cores in this house atm. Counting computers and mobile phones. ;D < 1237107821 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :did you count the microwave? < 1237107833 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, we don't have one < 1237107858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, and our TV is too old to have a computer in it. It doesn't even support Text TV < 1237107872 0 :neldoreth!n=user@unixboard/users/neldoreth JOIN :#esoteric < 1237107881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess the VCR has some computer in it though. < 1237107885 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1237107901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, what about fridge/freezer? < 1237107909 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hopefully not < 1237107917 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it should just be a simple thermostat < 1237107922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1237107924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :dishwasher? < 1237107934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :washing machine? < 1237107937 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no clue, possibly < 1237107960 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :both the dishwasher and the washing machine have digital time remaining displays < 1237107968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and are quite new < 1237108016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I forgot the ADSL modem. It runs on a MIPS. < 1237108035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some broadcom chipset thingy iirc < 1237108174 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit: Quit" < 1237108177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, my radio is sufficiently complex and with a menu system on the display, so I guess that is another CPU there... < 1237108222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and digital cameras. That adds another two CPUs at least (two digital cameras in this house) < 1237108254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, when you think about it, it is scary how many things contain CPUs... < 1237108273 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :when you think about it, it's scary how many things contain gears < 1237108304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh right, my keyboard (as in keyboard/synth, not keyboard/qwerty) < 1237108320 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :actually perhaps even keyboard/qwerty < 1237108324 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :depending on the keyboard < 1237108336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, I doubt an old PS/2 keyboard has a computer built in < 1237108345 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah, maybe not < 1237108362 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i've read somewhere some keyboards actually have forth stuff on them < 1237108409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I also have one of those horrible ultra-slim usb keyboard, I guess it contains some more stuff, but a full blown CPU? < 1237108431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, to that I say: [citation needed] < 1237108449 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :to that, I say: [lmgify] < 1237108484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what does that mean? Google says: Did you mean: magnify Top 2 results shown < 1237108486 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1237108509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, ? < 1237108536 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :sorry, it's lmgtfy < 1237108566 0 :Slereah!n=butt@ANantes-259-1-18-85.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1237108579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I see < 1237108633 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I suspect my usb joystick has some CPU built in. Considering it has a programmable "multi function display" at the base of the throttle < 1237108688 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(btw: http://www.saitek.com/uk/prod/x52pro.htm) < 1237111674 0 :kar8nga!n=kar8nga@a-61.vc-graz.ac.at JOIN :#esoteric < 1237112464 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1237114349 0 :Jophish_!n=Jophish@80-47-79-201.lond-hex.dynamic.dial.as9105.com JOIN :#esoteric < 1237114916 0 :MigoMipo!n=MigoMipo@84-217-7-169.tn.glocalnet.net JOIN :#esoteric < 1237115461 0 :Jophish!unknown@unknown.invalid QUIT :Success < 1237116918 0 :KingOfKarlsruhe!n=nice@HSI-KBW-091-089-027-168.hsi2.kabelbw.de JOIN :#esoteric < 1237118029 0 :Judofyr!n=Judofyr@c0796BF51.dhcp.bluecom.no JOIN :#esoteric < 1237118120 0 :Judofyr_!n=Judofyr@c0796BF51.dhcp.bluecom.no JOIN :#esoteric < 1237118508 0 :Mony!n=Harmony@AToulouse-258-1-93-123.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1237118595 0 :Dewio!unknown@unknown.invalid QUIT :Remote closed the connection < 1237118604 0 :Dewi!n=dewi@124-171-184-160.dyn.iinet.net.au JOIN :#esoteric < 1237119081 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237119373 0 :Jophish_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1237119697 0 :k!n=kar8nga@e-172.vc-graz.ac.at JOIN :#esoteric < 1237119719 0 :kar8nga!unknown@unknown.invalid QUIT :Nick collision from services. < 1237119722 0 :k!unknown@unknown.invalid NICK :kar8nga < 1237119968 0 :sebbu!n=sebbu@ADijon-152-1-37-207.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1237121267 0 :MigoMipo!unknown@unknown.invalid QUIT :Nick collision from services. < 1237121531 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1237122877 0 :Corun!n=Corun@93-97-202-25.zone5.bethere.co.uk JOIN :#esoteric < 1237122961 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237123156 0 :Asztal^_^!n=asztal@cpc2-stkn13-2-0-cust73.11-2.cable.virginmedia.com JOIN :#esoteric < 1237123320 0 :Asztal^_^!unknown@unknown.invalid NICK :Asztal_ < 1237123323 0 :Hiato!n=1@dsl-245-1-23.telkomadsl.co.za JOIN :#esoteric < 1237124113 0 :oklofok!n=nnscript@a91-153-121-248.elisa-laajakaista.fi JOIN :#esoteric < 1237124117 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :hello. < 1237124133 0 :Azstal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237124539 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/oklopol/music/ancoolone2.mid see what the lack of a working computer is doing to me < 1237125242 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Criminal. < 1237127407 0 :tombom!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1237127692 0 :BeholdMyGlory!n=BeholdMy@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1237129653 0 :tombom!unknown@unknown.invalid QUIT :"Peace and Protection 4.22.2" < 1237130481 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1237130534 0 :Corun!n=Corun@93-97-202-25.zone5.bethere.co.uk JOIN :#esoteric < 1237133098 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1237133730 0 :Hiato1!n=1@dsl-245-1-23.telkomadsl.co.za JOIN :#esoteric < 1237134790 0 :Hiato!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237135251 0 :FireyFly!n=FireFly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1237135428 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1237135622 0 :Corun!n=Corun@93-97-202-25.zone5.bethere.co.uk JOIN :#esoteric < 1237135783 0 :BeholdMyGlory!n=BeholdMy@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1237136355 0 :tombom!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1237136687 0 :ais523!i=93bcf425@gateway/web/ajax/mibbit.com/x-6efe39c86ac62b00 JOIN :#esoteric < 1237136771 0 :kar8nga!n=kar8nga@e-243.vc-graz.ac.at JOIN :#esoteric < 1237139058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1237139073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1237139119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is quite likely cfunge will gain some inline asm soon (with C fallbacks of course). I can't find any other way to make GCC generate what I want. < 1237139161 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1237139233 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1237139258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well issue is I have a lot of L2 cache misses when filling the static area with spaces at startup. With SSE there is a way around it, with the same effect as write-combining would have. < 1237139289 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you're insane. But I don't consider that a bad thing < 1237139349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, when I tried with __builtin_ia32_movntps() GCC instead generates stupid "lets load the data into the xmm register with the slower unaligned read instruction even though the compiler put .align 16 in the code to make it aligned" < 1237139411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, gcc isn't perfect < 1237139414 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how well does icc do on the same code? < 1237139416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway with -ftree-vectorize you get instead a "lets pollute cache". < 1237139433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well, I'm on AMD. But it decides to pollute cache too < 1237139458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, hand-crafted asm can normally beat even the best compiler-generated asm in some cases < 1237139517 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well at least when it is being as stupid as in this case. Now to figure out how to hide this for other compilers. Since most seems to define __GNUC__ these days (to be able to parse system headers...) < 1237139540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#if defined(__x86_64__) && defined(__GNUC__) && defined(__SSE__) && defined(__SSE2__) && !defined(__INTEL_COMPILER) < 1237139548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that fixes it for the x86_64 variant < 1237139553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haven't written a 32-bit one yet < 1237139568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also no idea how clang will handle it. Clang defines __GNUC__ too < 1237139572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are you going to write an inline asm version for gcc-bf? < 1237139578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I must get less busy in RL so I can finish it < 1237139582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hah < 1237139602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, icc fails on labels in inline asm for some reason < 1237139604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wonder why... < 1237139664 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wishes that non-GNU C compilers would not define __GNUC__. < 1237139675 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION also wishes that system headers wouldn't require __GNUC__. < 1237139678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, same < 1237139683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://paste.lisp.org/display/77071 btw < 1237139686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what I have atm < 1237139692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what do you think of it? < 1237139707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indention is off yes < 1237139724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think it looks insanely platform-specific < 1237139731 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you're doing this just to fill memory with spaces? < 1237139736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have fallbacks as you see < 1237139742 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what if you put a load of literal spaces in the initialised read-write data section instead? < 1237139749 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :would that be faster or slower? < 1237139755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1237139763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I would get a very large binary < 1237139776 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, yes, but would that slow the program down? < 1237139778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suppose it would < 1237139782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print sizeof(static_space) < 1237139782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$1 = 2097152 < 1237139787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is quite large < 1237139804 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Jebus. < 1237139816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1237139823 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is rather large. < 1237139829 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: typical C++ program size... < 1237139836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well cfunge is in C < 1237139845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it is likely faster to do it this way than read it from disk < 1237139845 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1237139850 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I mean 2MB isn't insanely large < 1237139855 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but yes, reading it from disk might be slow < 1237139870 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless it's in disk cache, how slow is blitting the initialisation from disk cache to processor cahce? < 1237139873 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*cache? < 1237139880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course for optimal performance you should use a ram disk for cfunge < 1237139881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1237139885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION runs < 1237139898 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, insane alternative: instead of storing fungespace as-is in memory, store everything with 32 subtracted from it < 1237139911 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and allow for that whenever you do reads or writes < 1237139915 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also no idea, but why would it need to go to CPU then? RAM-RAM DMA? < 1237139932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that would mess up the range... < 1237139939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ a few other things < 1237139948 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, yes, but all those problems can be dealt with < 1237139956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm wondering how costy the code for dealing with them would be < 1237139961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably more than this < 1237139967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this way is rather fast actually < 1237139980 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And then, you could have the fungespace stored in the uninitialised read-write data section. ;) < 1237139982 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh well, then, let's stick to inline asm for filling memory with spaces < 1237140015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and well -ftree-vectorize can be used on any platform and work on the C fallback loop. Which is still better than non-vectorised. < 1237140027 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: you need at least a 66-bit CPU to fit all of fungespace in memory, assuming an 8-bit word length < 1237140032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact I would generally recommend using -ftree-vectorize for cfunge < 1237140038 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in practice, probably 67-bit, to fit other things in there as well < 1237140047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that's assuming 32-bit int, which on a 67-bit processor is unlikely < 1237140052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :66-bit CPU? < 1237140068 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there's nothing mathematically impossible about that, it would just be unusual < 1237140088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well yeah. if x87 uses 80-bit floats... Why not. < 1237140127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :80 bits, aligned to 96 bits (x86) or 128 bits (x86_64) in memory < 1237140139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1237140169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, btw I ran into a weird issue with inline asm < 1237140185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :: [space] "=m"(static_space) that expands to: static_space(%rip) < 1237140196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I couldn't use it, since I needed to offset it by %rax < 1237140211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still had to list it as out var < 1237140222 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I suspect PAE on x86_64 would barely suffice. ;) < 1237140240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: heh < 1237140275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, err. A 32-bit funge implementation would use a funge space that consists of 2^32 * 2^32 cells. Each cell is 32 bits < 1237140282 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, assuming 16-bit ints, you could probably fit the whole thing into memory on some 64-bit computers available nowadays < 1237140286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not exactly < 1237140290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it is signed < 1237140312 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: signed/unsigned makes no difference to the number of bits < 1237140321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're just different ways to interpret bit patterns < 1237140323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well it makes to number of cells < 1237140326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc? < 1237140328 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no it doesn't < 1237140331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1237140332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1237140336 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :think of indexing the cells in binary < 1237140337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then I misremembered < 1237140338 0 :sebbu2!n=sebbu@ADijon-152-1-37-207.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1237140345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well ok. < 1237140351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that should make it pretty obvious that the number of cells is the same, signed or unsigned < 1237140366 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the number is slightly smaller if you use one's complement or sign-magnitude, and don't include negative zero < 1237140368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but who does that nowadays? < 1237140373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, this is why you use sparse storage. Like a hash map or whatever. < 1237140383 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm < 1237140405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what happens if cfunge runs out of memory trying to store things in fungespace? < 1237140406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, cfunge does that. But also uses a static array for the most often accessed area < 1237140413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :g/p reflects? < 1237140413 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is quite sane. < 1237140451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, now cfunge also supports 64-bit cells as a compile time option. that means a 4 MB static array. < 1237140454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm... < 1237140473 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :array[sizeof(int)][sizeof(int)] is much nicer. < 1237140491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: don't you mean array[1<funge_cell translation, and reversed order (stack grows up in cfunge). < 1237141076 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how does it work? < 1237141083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :It turned out using reversed extra wide strings worked better in some code. < 1237141089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't fix all that way < 1237141092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but some cases. < 1237141112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also for certain STRN instructions you can skip popping/pushing at all < 1237141135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like the one for string length. Just scan on stack. < 1237141157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1237141177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/oklopol/music/ancoolone2.mid <- i like this < 1237141198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi ehird < 1237141201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, really when it comes to system time malloc() isn't much of an issue. Most libc allocates in chunks. And even then fork() and waitpid() is what takes most time in mycology. (for the PERL fingerprint) < 1237141206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when it comes to *system time* < 1237141213 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you should allocate your own heap with mmap < 1237141221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's trivial, overcomitting is universal < 1237141229 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you should write your own faster version of perl < 1237141231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just allocate a shitload and it'll just about always work < 1237141238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well anonymous mmap() isn't portable < 1237141243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: mmap /dev/zero < 1237141245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: overcommitting isn't portable either < 1237141252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, yes, but it works on most things < 1237141253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm ok. < 1237141255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it will be very very slow in gcc-bf, for isntance < 1237141261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: he can fallback < 1237141267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :compile time option, say < 1237141274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because gcc-bf will go through and organise memory so that it can jump about in that, it takes ages < 1237141276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :linux/bsd do overcommitting, probably solaris too < 1237141287 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does Windows? < 1237141292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and those are pretty much the only widely used unixes, the rest can set -DNO_MMAP_HEAP or w/e < 1237141296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: cfunge doesn't work on windows < 1237141305 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Still doing stuff with GCC-bf? < 1237141311 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Spiffy. < 1237141313 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: it's on hold while I finish my degree < 1237141315 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1237141316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw I did some testing with prefetching cache lines in file loading. It resulted in a speedup on my old Pentium 3, but a slowdown on my Sempron < 1237141318 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fair enough. < 1237141318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I still intend to finish it sometime < 1237141332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, with mmap you never have to allocate, just access memory and bam < 1237141337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := cut malloc() time out entirely < 1237141346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, with mmapping /dev/zero, you get all 0s < 1237141350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can offset fungespace by 32 < 1237141355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think that is because AMD64 auto prefetches when you access several cache lines after each other. So the instructions are nops then basically < 1237141355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := no initialization needs to be done < 1237141358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's already zeroed out < 1237141359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird/AnMaster: you might want to look into using sbrk if you never free memory < 1237141362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :great, right? < 1237141363 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Glibc malloc does mmaps when efficient. < 1237141364 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1237141365 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although it plays badly with malloc on some systems < 1237141372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: right, but a huge overcommitted mmap is better < 1237141375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :rather than many small malloc < 1237141376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s < 1237141384 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... what about using calloc not malloc if you want zeroed-out memory? < 1237141390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that just does a memset or whatever < 1237141393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I do free sometimes. Stuff like stacks are freed when that thread quits < 1237141393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it still loops through < 1237141396 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is calloc optimised to do the zeroing and allocating together? < 1237141397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mmapping /dev/zero will be faster < 1237141408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: anyway, that offset + mmap heap I imagine would give a quite good performance increase < 1237141413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: surely a sensible library would implement calloc in terms of mmapping /dev/zero? < 1237141415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also I realloc() sometimes. But profiling shows that isn't really a major overhead currently < 1237141422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: why not read glibc sourc < 1237141422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e < 1237141426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm where was it? < 1237141428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the offset bit < 1237141433 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't have it on me < 1237141433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: basically < 1237141439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at scrollback < 1237141442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: overcommit mmap /dev/zero, then you have it already initialized < 1237141443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1237141447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it is on the web. < 1237141447 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0 = 32 < 1237141448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1 = 33 < 1237141451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-1 = 31 < 1237141452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1237141456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you have spaces as default < 1237141459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :without ANY initialization < 1237141465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION considers < 1237141466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := no inline asm, no initialization overhead, perfect < 1237141482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(with a fallback -DNO_MMAP_HEAP for non-overcommitting systems or ones that do it slowly) < 1237141490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I mentioned that a while back to AnMaster < 1237141491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so this would change the range of all the vaules? < 1237141493 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the offset-by-32 thing < 1237141498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: err, pretty much < 1237141500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes < 1237141501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I got the idea from you < 1237141506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but combined it with mmapping /dev/zero < 1237141590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well the kernel sets static uninitialised vars to be 0. So I could equally well do offset on that instead. < 1237141611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can't have a huge static var < 1237141619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :have you ever tried to overcommit mmap? < 1237141628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've allocated 5GB on this 2.5GB system, with half the memory full < 1237141629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it worked fine < 1237141634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, No. But I tried a 128 MB static var in cfunge. < 1237141636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's basically what I'm suggesting < 1237141647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :get rid of malloc (apart from as fallback) < 1237141651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mmap a huge /dev/zero < 1237141654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and offset by 32 < 1237141660 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I suspect most calloc's are only a malloc+memset anyway < 1237141663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'd bet money you'd get a good speed improvement < 1237141675 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... deranged values... < 1237141690 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, there was a big argument on comp.lang.c about what happened if you used calloc to allocate more than a SIZE_MAX of memory < 1237141693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm. Worth trying indeed. < 1237141704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if you don't, I'll try and figure out cfunge and do it :P < 1237141717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems most implementations treat that case as UB, but they weren't sure whether that was allowed or not < 1237141735 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And this speed improvement, would it help in anything except cfunge start-up time? < 1237141742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I can't do it today, I'm checking profiling to try to work at the most problematic area. < 1237141768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but I will try it indeed. < 1237141780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: well, yes < 1237141783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he'd never call malloc < 1237141787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just reference the memory < 1237141788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, however I think it may break the specs if you don't compensate < 1237141793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it should be a pervasive improvement < 1237141794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hm? < 1237141794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the range I man < 1237141796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mean* < 1237141799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why < 1237141803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just +32 on every read < 1237141809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is, conveniently, a bitshift < 1237141812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er, no it's not < 1237141813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1237141816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't listen to me < 1237141817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yeah < 1237141819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+32 on each read < 1237141821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-32 on write < 1237141823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := no initialization time < 1237141830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that saves startup time, and the no-mallocing saves time all the way through < 1237141833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i case my rest < 1237141834 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what about stack? < 1237141835 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but you only initialise once < 1237141842 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1237141842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, that saves at startup only < 1237141844 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you access memory lots of times < 1237141850 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you're saving at startup to hurt more later on < 1237141854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, I disagree < 1237141857 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you end up with an interp that's slower on very long programs < 1237141860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+32 and -32 take one cycle < 1237141867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well you could change the instruction dispatcher to work on the offset values < 1237141869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the averaged performance increase would be a gain < 1237141872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I am almost certain < 1237141876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :90% < 1237141883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I _will_ bet money on it, if anyone wants < 1237141887 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1237141910 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :not having to manually check whether memory needs to be malloc'ed should be a gain in a lot of places < 1237141918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1237141930 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I bet it would run an infinite loop more slowly < 1237141939 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, each iteration took longer < 1237141943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I don't really malloc the funge space currently. I don't need to. all but one access of mycology is inside the static area < 1237141945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: see olsner < 1237141950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you did anything interesting in the infinite loop at all < 1237141955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that is true for most other programs too < 1237141955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Just hardcode mycology's output ffs < 1237141962 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: how do you handle Lahey-lines with no commands at all on them? < 1237141967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you're optimizing beyond what you have, you're not going to get huge gains < 1237141973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm just trying to say the biggest gains in my opinion < 1237141991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well how would you end up on that? with threads that remove the < or whatever? < 1237142004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: empty source file < 1237142005 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :that or a j instruction < 1237142016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, empty source file is an infinite loop < 1237142016 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :(or is it x) < 1237142018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1237142030 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I've seen it done with a row of ps before < 1237142039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where the stack was set up in advance to hold all the right information < 1237142047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but there are other ways, as suggested < 1237142079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the main thing to remember is that such a loop is not breakable even with multiple threads. Reason is that spaces take no ticks < 1237142091 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Didn't we already discuss this earlier, though? < 1237142140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so it will loop in the "we have a space, search for next instruction" code < 1237142170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ah, ok < 1237142173 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :mine optimises it into a real infinite loop :) < 1237142179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1237142181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :old joke < 1237142195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, CLC-INTERCAL optimises obvious infinite loops into a select instruction with infinite timeout < 1237142201 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it doesn't even use up CPU < 1237142254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what's your opinion on qbasic vs quickbasic < 1237142260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quickbasic is fast and fancy, I think that ruins it < 1237142280 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and you can get an "empty" lahey-line simply by entering a line with only ;>#; at the > character, since ;; doesn't take up any ticks either. < 1237142290 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I've never seen quickbasic < 1237142305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: wow, that does work < 1237142306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's qbasic without the restrictions < 1237142307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it can compile < 1237142310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it's a lot faster < 1237142314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it has a bigger manual < 1237142314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway what I do malloc mostly is stacks and stack-stacks. And strings in certain fingerprints < 1237142315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and more functions < 1237142329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which I think spoils it < 1237142365 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And the quickbasic manual isn't decompilable with the helpmake.exe tool; it spews out a rather corrupted file and hangs up. (At least that's what it did in dosbox.) < 1237142365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for instance, my 7-second qbasic graphical sierpinski runs in less than 1 second in quickbasic < 1237142389 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :do you have a legal copy of quickbasic? < 1237142411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Illegal, from fizzie. < 1237142415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well. < 1237142417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Probably illegal. < 1237142433 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :and this channel is publicly logged? :P < 1237142439 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You weren't supposed to reveal it's from me! It was all very hush-hush! (Although I may have behaved suspiciously enough.) < 1237142439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :olsner: yes < 1237142441 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION puts handcuffs on fizzie O====O < 1237142442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi clog! hi cmeme! < 1237142454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cmeme isn't here < 1237142455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he died. < 1237142458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err... cmeme? < 1237142463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: cmeme = ircbrowse.com < 1237142468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hasn't been here for many months < 1237142468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know < 1237142470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1237142480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have to go now, anyway < 1237142481 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, that's still one logger. < 1237142483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: I would like to see one person enforcing QuickBasic's copyright < 1237142489 0 :ais523!unknown@unknown.invalid QUIT :"mibbit.com: this is a rubbish quit message" < 1237142518 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION enforces copyright on ehird with the saucepan ===\___/ < 1237142524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, just did a test on mycology: malloc() was called 532 times, realloc() 288 times and free 529() times. And that mismatch between free and malloc is due to long lived arrays that in SOCK, FILE and REFC. You can't free them before exit anyway due to the way the fingerprints are defined. < 1237142534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so not a real leak < 1237142539 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"Recently, a set of TCP/IP routines for QuickBASIC 4.x and 7.1 has revitalized some interest in the software." Heh. < 1237142541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right, that 532 could become 0 :-) < 1237142559 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well none of those malloc() calls were for funge space < 1237142561 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it's a matter of principle, I believe QB was the in-the-day equivalent of a Visual Studio license, so you should be paying millions in damages for violating the precious copyright < 1237142574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1237142582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and the other ones doesn't need to be initialised. < 1237142627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so trying with offset on static array should be quite interesting. Oh another thing. Too large static area is bad for performance. Locality of reference. < 1237142642 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Yes I noticed this in profiling < 1237142686 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also seems that FreeBASIC has added OOP-style stuff to the TYPE command. < 1237142700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same would go for mmap() unless you encode the coordinate as some sort of space filling fractal that puts close areas in the same cacheline (as well as page) < 1237142718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm that sounds interesting < 1237142718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1237142738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :need very low overhead to calculate too < 1237142762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what do you think of that idea? < 1237142765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1237142784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1237142786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I dun geddit < 1237142787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a cache line is typically 64 bytes on x86 < 1237142806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Do you remember xkcd's map over ip addresses? < 1237142810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1237142842 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't look like you can calculate the linear index from cartesian co-ordinates easily :( < 1237142844 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, do you remember how the mapping between ips and points on the map was done? < 1237142861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well now that was 1D -> 2D < 1237142862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1237142872 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Space-filling_curve < 1237142879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, using a space filling fractal that put close ips close to each other < 1237142903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Asztal_, indeed. Don't remember what exact variant < 1237142912 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :Looks like a Hilbert curve. < 1237142913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway. What about a mapping the other way? < 1237142921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :2D -> 1D < 1237142953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it possible to do such a thing O(1)? < 1237142972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :almost nothing is possible O(1) < 1237142990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, well true. :( < 1237142998 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there are infinitely many digits both in and out < 1237143005 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :O(n), possibly < 1237143020 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Alternatively, from a practical point of view, almost everything is just O(1) with a big constant if you're doing it on a real computator. < 1237143032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, where n is what? Number of positions? Number of bits in address? < 1237143050 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the latter < 1237143054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1237143074 0 :oklofok!unknown@unknown.invalid PRIVMSG #esoteric :practicality is so impractical < 1237143086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well Maybe. < 1237143100 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i expect with some grouping, the result at one position depends only on the previous ones < 1237143100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that wasn't a very practical comment :P < 1237143118 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(more high-level) < 1237143118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, well if you want to do random lookup, and not start from the start of the curve < 1237143125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brb phone :( < 1237143263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wow, that's one trippy mandelbrot. < 1237143412 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Actually, wikipedia seems to have more info on how http://en.wikipedia.org/wiki/Z-order_(curve) can be used like this. < 1237143566 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :in particular "The resulting ordering can equivalently be described as the order would get from a depth-first traversal of a quadtree;" < 1237143578 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Notably, calculating the z-order coordinate from x, y is just a single application of the INTERCAL mingle operator. < 1237143594 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Of course your silly C might lack the always-useful $ operator. < 1237143900 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Curiously, that one bit-hacks page at http://www.cs.utk.edu/~vose/c-stuff/bithacks.html seems to have a couple of bit-interleaving tricks. < 1237143957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can do $ really fast with two lookup tables and bitshifts, right? < 1237144019 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's one lookup table approach, yes. There's also yet another of those 64-bit multiplications, if you happen to have a fast 64-bit multiplier. < 1237144042 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :They always look so silly. < 1237144054 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :via the IWC forum: http://www.sciforums.com/vacuum-pockets-and-safety-nazis-t-41446.html < 1237144058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for a 32-bit int you can trivially generate two 65536-sized lookup tables < 1237144061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then just < 1237144074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tab[n&65535] < 1237144074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1237144078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tab2[n<>blah < 1237144081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1237144098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: nice linkjack. < 1237144099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not. < 1237144114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://groups.google.com/group/rec.arts.sf.written/msg/073bea1aa44c9396 < 1237144117 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1237144148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you linked to an ugly, ad-filled page, on a forum, where someone had minimally copied and pasted the original post from google groups < 1237144154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to linking ot the archived message directly < 1237144174 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it was the link posted on the iwc forum < 1237144202 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I also linked to the google-groups URL three days ago; someone hasn't been diligently logreading! < 1237144203 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i was watching out only for safety nazis, not link nazis, sorry < 1237144230 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes on a murderous swatting spree -----### < 1237144247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bites off oerjan's head < 1237144248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :om nom < 1237144256 0 :Corun_!n=Corun@94-193-150-253.zone7.bethere.co.uk JOIN :#esoteric < 1237144270 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :would you like fries with that? < 1237144333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loeb's Theorem as a Scheme description: "A function which, when given code evaluating to (a function which, when giving code evaluating to P, returns P), returns code evaluating to P." < 1237144335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION implements < 1237144344 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, i didn't know that it was ad filled. my brain filters are reasonably resistant to anything not actually revolting. < 1237144397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (loeb box) < 1237144397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : `((eval box) '(loeb ,box))) < 1237144401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ski__: I wrote loeb. < 1237144458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er wait < 1237144463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (loeb box) < 1237144463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : `((eval box) '(loeb ',box))) < 1237144473 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it < 1237144477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (loeb box) < 1237144477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : `(,(eval box) '(loeb ',box))) < 1237144478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there < 1237144485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: "A function which, when given code evaluating to (a function which, when giving code evaluating to P, returns P), returns code evaluating to P." < 1237144487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in modal logic: < 1237144491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[]([]P -> P) -> []P < 1237144495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in blah: < 1237144498 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's the point < 1237144506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"If it is provable that (if P is provable then P), then P is provable" < 1237144517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: A nice introduction: http://yudkowsky.net/rational/lobs-theorem < 1237144544 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :will not stand for that scribd shit < 1237144549 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not my fault. < 1237144568 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :scribd? < 1237144597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :click the damn link < 1237144618 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: scribd invented that stupid embedded pdf web app bloat fail < 1237144669 0 :Judofyr!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1237144712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, wait < 1237144714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (loeb box) < 1237144714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : `(,box '(loeb ',box))) < 1237144715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there < 1237144726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(loeb is basically the fixed point operator for boxed code, in a way) < 1237144758 0 :Corun!unknown@unknown.invalid QUIT :Connection timed out < 1237144761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#;3> (eval (loeb '(lambda (x) 2))) < 1237144761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1237144765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It passes the Very Silly Test. < 1237144792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cool, (eval (loeb '(lambda (x) x))) behaves like ```sii``sii < 1237144938 0 :calamari!n=calamari@ip70-171-213-254.tc.ph.cox.net JOIN :#esoteric < 1237144998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://julianstahnke.com/read/sound_picture/ < 1237145016 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1237145852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you there? < 1237145950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1237145952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, now yes < 1237145957 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1237145958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads scrollback < 1237146032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : There's one lookup table approach, yes. There's also yet another of those 64-bit multiplications, if you happen to have a fast 64-bit multiplier. <-- interesting < 1237146077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: how much chance to you think I have to beat cfunge speed in haskell? :D < 1237146119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, unknown. It depends on what you do. If fizzie finishes his jitfunge he will beat cfunge at single-threaded apps < 1237146132 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I fail to see how his approach would work with threads though < 1237146132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interpreting < 1237146159 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(The 64-bit multiplication interleaves only 16 bits at a time, though.) < 1237146162 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, then it depends on how you do it. cfunge isn't perfect. It is just the fastest one currently around. < 1237146175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how do you plan to implement t in jitfunge? < 1237146182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: cfunge is near c speed, isn't it? < 1237146200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hahahaha < 1237146206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very funny < 1237146211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, it sure is fast... < 1237146224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, c as speed of light? Yes very funny joke < 1237146231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :~ < 1237146249 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't really have a plan there; I don't see any sensible way of doing synchronous threads with jitfunge without it being completely brainless. < 1237146254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: >_< < 1237146257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C speed. < 1237146280 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh, I thought you planned to trap me there by claiming you meant c as in speed of light < 1237146286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if I read it as the language < 1237146317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway you could write a C program that did the same output but was faster. Like that compile to shell script in ick < 1237146330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, but < 1237146334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :without stupid corner cases < 1237146375 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and since I do implement funge threads I can't merge instructions either. So >:#,_ can't be translated to "output string from stack" < 1237146388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since some other thread could potentially change it while it was executing < 1237146392 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At the very least it'd need some explicit synchronization just about everywhere. It sounds rather painful to implement. Of course I *could* run things-with-no-observable-side-effects somewhat concurrently. < 1237146394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes but < 1237146395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I have to keep them synched < 1237146397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :answer my question < 1237146400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :without bullshit corner cases < 1237146401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :synced* < 1237146402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like you always do < 1237146411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :doesn't cfunge compete with C on speed? < 1237146414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as in, 2-4x slower than C < 1237146460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm. There are some issues that are hard to avoid with befunge interpretation. Like locality of reference. But my goal was never to get as fast as native C code < 1237146472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAAAAAGH < 1237146472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my goal was "beat all those other interpreters" < 1237146476 0 :Slereah_!n=butt@ANantes-259-1-82-74.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1237146478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why can't you just answer my freaking question < 1237146489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and later on: "how fast can I make this?" < 1237146495 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I wish I could. It isn't easy < 1237146498 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's classified information < 1237146507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and I don't know the answer exactly < 1237146513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: just answer roughly < 1237146523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does cfunge compete (2-4x slower) than C in common cases? < 1237146524 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I doubt there are very well-comparable benchmarks that would've been implemented both in C and in Befunge. < 1237146536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i'm not asking for a formal comparison < 1237146548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I can't answer since I haven't measured compared to the equivalent program in pure C. < 1237146556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, indeed < 1237146560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF < 1237146565 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But you need some code that does the same thing in both languages to give any sort of sensible answer. < 1237146574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, with C you can optimise control flow < 1237146576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1237146581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unoptimized C < 1237146607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, as produced by GCC? with -O0? Ok that isn't fair. Bash could possibly beat that in some cases... < 1237146611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well almost < 1237146613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-O2 < 1237146627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you always do this, nitpick nitpick corner case corner case one level lower of abstraction... < 1237146642 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, -O2 is rather well optimised. And befunge is hard top optimise. And as fizzie said: " I doubt there are very well-comparable benchmarks that would've been implemented both in C and in Befunge." < 1237146651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I have an idea though < 1237146656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is called threaded code < 1237146662 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: No, seriously, it's not a very simple question, since no-one does any "common cases" with Befunge. < 1237146663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this could be interesting for befunge < 1237146668 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :do some of the language shootout tests :) < 1237146681 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :you can probably beat Ruby :D < 1237146686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: threaded code would not be a good improvement for befunge, afaik. < 1237146696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Asztal_: oh, it'd almost certainly beat all/most of the interpreted languages < 1237146707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I never tried it. Just got the idea today. But why would it not be very good? < 1237146720 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :You could handle the updating pointer quite easily probably < 1237146722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because threaded code works for... Forth. < 1237146745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and for erlang. The Erlang VM uses threaded bytecode iirc. < 1237146776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well unless you compile with HIPE to get native code. < 1237146844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Erlang's bytecode is UNCOMFORTABLY PARALLEL. < 1237146877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm. Only because that is how it has been written < 1237146892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the language is designed to make it easy < 1237146903 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1237147049 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237147113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : There's one lookup table approach, yes. There's also yet another of those 64-bit multiplications, if you happen to have a fast 64-bit multiplier. <-- any links to more info on this? < 1237147135 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's on that page whose URL was just few lines earlier. < 1237147149 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It does interleave just 16 bits with the 64-bit multiplication, though. < 1237147163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah right < 1237147175 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And I don't want to guess anything about execution speed vs. the lookup-table-based versions. < 1237147201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, of course. That is what profiling test cases is for < 1237147209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as well as profiling real program < 1237147238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and cache/branch simulation with cachegrind and callgrind. As well as real profiling those with oprofile < 1237147241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on ;P < 1237147330 0 :Corun_!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1237147527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, those bit hacks are for shorts it seems. I operate on larger numbers though < 1237147535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but maybe just for the static area < 1237147541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is currently 1024*1024 < 1237147563 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And you can do your larger numbers in small pieces. I did say "just 16 bits". < 1237147587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the 64-bit one is for 8 bit numbers though < 1237147616 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right; it was a 16-bit result. < 1237147622 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1237147647 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it's probably because there are 8 bytes you can fit in a 64-bit integer, and you need all 8 different bit positions there. < 1237147657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :geez, QBasic is crazy slow. < 1237147660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1237147660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean how can you do anything < 1237147673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if you could do this with SSE.. Hm! < 1237147707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however the overhead of SSE setup is rather large. It is only useful for a large number of similar operations after each other < 1237147726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, implement a fast funge in qbasic? < 1237147731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no :| < 1237147760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, still a simple befunge93 would be nice. I don't think anyone done that..? < 1237147774 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a feeling I might have. < 1237147780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1237147780 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not sure. < 1237147802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sure I can do funge93 < 1237147802 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I tend to do a befunge 93 interpreter in most languages I come across, but I might not have revisited basic. < 1237147812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DIM fs(80, 24) < 1237147824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey, what's hello world again? < 1237147831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :befunge? < 1237147838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-93 < 1237147847 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :025*"!dlrow ,olleH">:#,_@ < 1237147852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tankz < 1237147852 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1237147861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, err the 0 isn't needed < 1237147863 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can omit the initial 0 if you want to test stack underflow handling simultaneously. < 1237147865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fuck, I can't backspace. < 1237147871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1237147872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1237147873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can't \ < 1237147883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, can't what? < 1237147886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :write a \ ? < 1237147894 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how can that be hard < 1237147897 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I did mention I always put the 0 there. It's more robust that way. :p < 1237147903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: keyboard mappin'. < 1237147907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, more breaking < 1237147923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, mycology has a befunge 93 section. It is fairly complete. Just remember to test mycorand.bf too < 1237147938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you wrote a \ just above there... < 1237147941 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :More robust; you don't run out of the string. I always tend to keep a lot of results on the stack that the print loop would cheerfully pop out. < 1237147950 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's dosbox's keyboard mappings. < 1237147950 0 :KingOfKarlsruhe!n=nice@HSI-KBW-091-089-027-168.hsi2.kabelbw.de JOIN :#esoteric < 1237147953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1237147953 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Those can be pretty tricky. < 1237147953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IN DOSBOX < 1237147954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gr < 1237147957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's silly then < 1237147968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not read like normal programs < 1237147973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not < 1237147974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that < 1237147975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :simple < 1237147978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1237148016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you read scancodes sure. But why do it? Why not just do input like any other program? that *works* with your keymap < 1237148025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1237148026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why it isn't simple < 1237148039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION facepalm. < 1237148044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1237148067 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something SDL could help you handle this properly. < 1237148071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever you want < 1237148074 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :FWIW I also don't see why they do it in a strange way < 1237148090 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I assume there is a reason other than their ignorance < 1237148100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, leetness? < 1237148107 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's not leet if it doesn't work < 1237148111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well true < 1237148123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes it is. That is what leet is all about. < 1237148142 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Doing things the hard way is cool, but if you're not actually doing what you're supposed to be doing it's lame < 1237148160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :leet == saying stuff like "haxxxx11011oneone!!!" and not knowing how to program < 1237148175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :script kiddies, and such < 1237148177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mostly < 1237148190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes. But if it works it isn't leet < 1237148194 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well yeah, nowadays < 1237148197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it works it is just cool < 1237148209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19:16 AnMaster: leet == saying stuff like "haxxxx11011oneone!!!" and not knowing how to program < 1237148215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that has ever been considered leet, ever < 1237148222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Damn late 90s and 00s messing up the meaning of 'leet' and all that < 1237148229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But, y'know, talking out of your ass works fine for most people. < 1237148232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, except by those doing it. < 1237148250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway my point is leet lost it's original meaning < 1237148252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :have you even -seen- anyone who claimed to be leet sincerely? < 1237148257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like hacker lost it's meaning < 1237148259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if not, stfu, because you're wrong < 1237148265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes and they all spoke like that... < 1237148280 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just claim the word lost it's original meaning < 1237148307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hacker today isn't the same thing as it originally was either < 1237148342 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I am guessing it's some sort of "we want the low-level keyboard access DOS does to work as much as possible the way it would without a real operating system in-between", but that's a bit strange reason. I'd prefer that they'd read input on the X keysym level or something, and then just have a mapping from those into keyboard scancodes so you could make it look to DOS like your keyboard was US, fi, or whatever. < 1237148379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, good idea. < 1237148379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hrm, is befunge-93 stack limited to 0-255? < 1237148381 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: That's not really a good reason, since they can do exactly what you said and it'd work much better. < 1237148393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: and be less portable < 1237148395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, um signed I think? < 1237148398 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: How's that < 1237148400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :most dosbox users are on windows < 1237148409 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :They'd read Windows keyboard events there. < 1237148419 0 :Hiato1!unknown@unknown.invalid QUIT :"Leaving." < 1237148421 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not like they don't have to write platform-specific input-handling now, too. < 1237148424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: So, LONG. < 1237148436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not sure about 93. Check the spec < 1237148444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, except, the spec is shit. < 1237148448 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Disclaimer: I've never really figured out how dos keymapping works. I vaguely remember "KEYB SU" being needed somewhere to get Finnish layout. < 1237148452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://catseye.tc/projects/befunge93/doc/befunge93.html < 1237148465 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And the Befunge 93 stack tends to be whatever the most comfortable integer size is. < 1237148481 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :In a QBasic implementation, you could maybe use a 16-bit integer stack. < 1237148483 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :keyb su,,C:\WINDOWS\COMMAND\KEYBOARD.SYS < 1237148487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :su? < 1237148495 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"Suomi", which is fi:Finland. < 1237148497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1237148503 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Er, I mean, fi:Suomi is en:Finland. < 1237148504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DIM fs(24) AS STRING * 80 < 1237148519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I propose the ; operator for such uses. < 1237148521 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: 25? < 1237148526 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Suomi", which is fi;Finland. < 1237148539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Syntax: lang;word-in-language-in-which-we-are-speaking < 1237148547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Needs the context of a quoted word in [lang] to make sense. < 1237148568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"X" is Y;Z "Y:X is en:Z" < 1237148577 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Dewi: er, yes. < 1237148584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: < 1237148585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, why < 1237148586 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I think it makes more sense for the language annotation to annotate the language of the word it appears with < 1237148588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so you escape any ; in the string then? < 1237148601 0 :Dewi!unknown@unknown.invalid PRIVMSG #esoteric :ehird: 83 < 1237148603 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, 25*80 not 24*80 < 1237148604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :abnthe same problem with is :; there are no words with ; and : in them in any language assigned an ISO code. < 1237148609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1237148610 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: It's 80x25 so either your language has weird syntax or one of those numbers is wrong < 1237148612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the same problem with is :; there are no words with ; and : in them in any language assigned an ISO code. < 1237148621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: this is convenient in some cases, like fizzie's < 1237148627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well C;true; < 1237148635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :C is not an ISO language code. < 1237148639 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well ok < 1237148645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and true is not a C-defined symbol < 1237148657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, #include < 1237148661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it is < 1237148662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you didn't say that. < 1237148668 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I think "fi;Suomi, which is Finland" makes more sense < 1237148674 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :en:I en:can en:add en:that en:prefix en:to en:all en:my en:words en:to en:make en:it en:unambiguous, en:if en:you en:want. < 1237148675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well ok < 1237148692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, was that an English : or a Finnish : ? < 1237148694 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :en:Really, en:it's en:no en:problem en:for en:me. < 1237148702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DIM stkbase AS long < 1237148702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stk$ = VARPTR$(stkbase) < 1237148704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fun fun. < 1237148705 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: en:"you could also annotate sentences" < 1237148728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Although, well, more useful: < 1237148732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stk = VARPTR(stkbase) < 1237148736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Then use poke and peek, naturally.) < 1237148740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, en:that en:means en:more en:decoding en:processing < 1237148746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey, you could use that to write to video memory from fungespace. Maybe. < 1237148747 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :and I'd say the current medium has an implicit en: annotation for all utterances < 1237148761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :en:since en:you en:need en:to en:expand en:it en:then < 1237148766 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You need to also use VARSEG() and DEF SEG if you want to do that; not all basic variables need to be in the same segment. < 1237148776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah right < 1237148779 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since QBasic can handle that whopping 160 kilobytes of user data. < 1237148802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DIM stkbase AS long < 1237148802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DEF SEG = VARSEG(stkbase) < 1237148803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stk = VARPTR(stkbase) < 1237148805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wait what? Encoding different funge instructions as colours on the screen? < 1237148806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wall ah. < 1237148808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1237148810 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would be cool < 1237148816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, that isn't what I was doing, but that would be possible < 1237148820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fairly trivial even < 1237148823 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: 160kb? that's not a very even number... < 1237148825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was going to add P and G < 1237148829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, except that is int < 1237148831 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :olsner: That's what the help file says. < 1237148831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which are POKE/PEEK < 1237148834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not in -93. < 1237148840 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ehm, 2*64+(1/2)*64 or something? < 1237148850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh right. Funge space is byte and stack is signed int? < 1237148852 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1237148868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1237148884 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"* < 1237148886 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Befunge-93 defines signed 32-bit stack cells and unsigned 8-bit Funge-Space cells." < 1237148889 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Incidentally, if you just "DEF SEG = &HB800" and use POKE/PEEK to do all funge-space access (just remember to do a *2 to all coordinates) you get a real-time view of the funge space, and don't need a separate array for it in the code. < 1237148897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I was just copying that... < 1237148899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HB800? < 1237148901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1237148906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :&HA000, no? < 1237148912 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: The text mode display memory starts at 0xB8000. < 1237148918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1237148932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, thing is, i'd kind of like to have fungeprograms drawing circles, y'know? < 1237148939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess that's unrealistic what with the immense speed of QBasic. < 1237148969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, for EOF on input I suggest reflect. it is undef in 93, but reflect in 98 < 1237148981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is no EOF in QBasic. < 1237148985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that forward compatibility is useful. < 1237148991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AFAIK. < 1237148992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what happens at end of file then? < 1237148998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There is no way to trigger that. < 1237149004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, DOS has pipes... < 1237149012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1237149015 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's an EOF() function. < 1237149018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right < 1237149023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's not for text input < 1237149025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :keyboard, I mean < 1237149042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, pipe and keyboard are different? < 1237149051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You seem surprised. < 1237149056 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :dos has pipes? < 1237149062 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :if you press ctrl-z, don't you get an EOF sent to the program? < 1237149072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Yes, they're not really though. < 1237149074 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: Yes, but they're run in sequence < 1237149074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not a(b()) < 1237149080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's x = force(a()); b(x) < 1237149085 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's exactly a(b()) in a strict language < 1237149089 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lame < 1237149090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well yes. < 1237149094 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, 'call-by-value' < 1237149097 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ctrl-Z is the common way of indicating EOF; I'm not really sure on what level it happens. < 1237149097 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes|foo? < 1237149102 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :or, it's foo > tmp; bar < tmp < 1237149104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: it actually does this < 1237149106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes > tmp; foo < tmp < 1237149113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you didn't like all that free disk space anyway < 1237149120 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes doesn't finish < 1237149128 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Does it actually write it to disk and not memory? < 1237149128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes., < 1237149133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: so it hangs. < 1237149134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: yes < 1237149137 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Heh < 1237149139 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Didn't know that < 1237149158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :after all, who has much ram? certainly not I. To fit anything of importance we must utilize our Hard Disk Storage Device < 1237149169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Ctrl-Z is the common way of indicating EOF; I'm not really sure on what level it happens. <-- under dos you mean? < 1237149170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And besides, why implement an extra command when it can elegantly isomorph to onest another? < 1237149174 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes. < 1237149181 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, QNX> < 1237149182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right. on *nix it is ctrl-d and ctrl-z is suspend < 1237149202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I was just trying to make sure he wasn't talking about "in general" < 1237149213 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "*nix it is ctrl-d and ctrl-z is suspend" thanks, we didn't know < 1237149236 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i know that ^C sends a SIGINT < 1237149241 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, you could have those P/G work on the A000 video memory segment, and p/g (plus code-fetch and everything else) on B800, and a single new opcode to toggle the display mode between the mode 13h video and the fancy dynamic 80x25 text-mode view of funge-space. < 1237149244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you know. Not everyone here use OS X or Linux < 1237149248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some use. you know. Windows < 1237149249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1237149278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Heh, QBasic's manual advocates DO...LOOP over WHILE...WEND. < 1237149292 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, why? < 1237149297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why? Because WEND sounds silly? < 1237149301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: It's more fleximatron! < 1237149308 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, DO...LOOP doubles as a do/while and a while! < 1237149314 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Some befunge programs look pretty interesting when you watch the funge-space when they're running. Mooz's floating-point division, for example, which does the manual "long division" teached-in-school done-on-pen-and-paper thing. < 1237149314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Possibilities end not! < 1237149315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err? < 1237149343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and with qbasic it would be slow enough to read! < 1237149353 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I always pronounced WEND as "vänd" (sv:turn) < 1237149383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Don't befunge-93 programs usually use more stack than fs? < 1237149421 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, the DO...LOOP syntax is: either DO [{WHILE | UNTIL} condition] ... LOOP or DO ... LOOP [{WHILE | UNTIL} condition]. It's pretty silly. < 1237149422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, :D < 1237149446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: you should be able to do < 1237149452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DO WHILE FOO ... LOOP UNTIL FOO < 1237149455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1237149456 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I learnt basic before really understanding that english was a separate language < 1237149457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DO WHILE FOO ... LOOP UNTIL BAR < 1237149462 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I agree. < 1237149470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what would the semantics for it be? < 1237149476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :exit when either is true? < 1237149477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it won't enter unless FOO, but if you have FOO, you get to go one turn having BAR! Although be careful not to lose your FOO... < 1237149483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, it'd be: < 1237149489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1237149490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do { if (!foo) break; ... } while (bar); < 1237149492 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can do "DO ... LOOP" for an infinite loop without needing a conditional, though. < 1237149493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes you said it the line after < 1237149509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er wait < 1237149511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do { if (!foo) break; ... } while (!bar); < 1237149511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc < 1237149554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, or if (!foo) goto thedayafter; do { ... } while (!bar); thedayafter: < 1237149560 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why are we talking about basic? < 1237149566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: fuck you that's a terrible question < 1237149571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a better one would be for every other situation < 1237149574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not why? < 1237149574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"why are we not talking about basic?" < 1237149577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why basic? < 1237149580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder too < 1237149589 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also the funnyness: END [{DEF | FUNCTION | IF | SELECT | SUB | TYPE}] ends all those block-style syntactic elements; "If no argument is supplied, END ends the program and closes all files." < 1237149595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BASIC is hardly BASIC. BASIC is most advanced programming in universe. < 1237149597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: :D < 1237149610 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think QBasic warns you about unterminated blocks, though, so you can't do it too easily by accident. < 1237149628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but how does this interact with out of order execution < 1237149634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean poking video memory < 1237149638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about memory barriers? < 1237149666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure I realise DOS didn't have to deal with that originally < 1237149671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but when run on modern hardware < 1237149673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how does it work < 1237149685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :considering you can still run DOS on a modern computer. < 1237149691 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It runs in the VM86 mode, I would guess that handles it somehow. < 1237149692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with all those fancy features < 1237149708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, lets say I boot a bios flash floppy < 1237149713 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on a modern x86_64 < 1237149725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about then < 1237149732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I captured a wonderful video of my "Slowerpinski" program running. < 1237149734 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now you can enjoy, too: < 1237149742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, youtube? < 1237149746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it never goes into protected mode < 1237149756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, no, screencast.com, I've been trying out this Jing software thingymabob. < 1237149761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, is cache disabled then? < 1237149766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's kind of bad, for one I didn't write it, I intend to replace it with something of my own design. < 1237149773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But you'll need Flash. Unfortunately. < 1237149778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forget it then < 1237149782 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Still, what a small price to pay for the magic of slowerpinski. < 1237149784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://screencast.com/t/REP0xECE < 1237149785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for youtube there is an easy workaround < 1237149812 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Another nice statement is SYSTEM, which you might assume runs a DOS command; but no: "SYSTEM: Closes all open files and returns control to the operating system." < 1237149813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'll wait until you provide it in an open accessible format < 1237149827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't actually give a damn whether you watch it or not, surprisingly. < 1237149828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Fhehe < 1237149829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hehe* < 1237149855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe fizzie has Flash. :P < 1237149866 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I did watch it, and it was faster than I thought. < 1237149879 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess it's that cycles: max thing. < 1237149887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Actually, that doesn't speed it up much. < 1237149899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's probably the fancy-shmancy AND algorithm. < 1237149912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Still, pretty effing slow. < 1237149961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If you know of a good screen capture program that will work on OS X, let me select a portion of the screen to capture, record audio from the microphone _and_ computer, and can upload to a siteamabob at a click, do let me know. < 1237149981 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Wait, there was audio? < 1237149983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how did you capture that one you linked? < 1237149994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Mostly my mouse clicking and me breathing, but yes < 1237149998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Using Jing. < 1237150010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and it can't record to anything else? < 1237150018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you buy it you can encode to H.264 < 1237150035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, this is a lot easier on linux you know ;P < 1237150035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I clicked the Jing menubar, clicked Capture, selected the piece of screen, and clicked record. Then I clicked stop when I was done, and it automatically uploaded it and gave me the link. < 1237150036 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh. Well, if it wasn't anything more spectacular than that, I'll not bother locating headphones. < 1237150037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for once < 1237150042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's easy on OS X, too < 1237150046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1237150048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I want to automate the upload < 1237150054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because i'm a lazy fuck. < 1237150056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, -_- < 1237150067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I could make it play music depending on the sierpinskiness of the segment it's doing. < 1237150077 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sierpinskiness < 1237150079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1237150082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1237150083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :never heard that before < 1237150089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how is it defined? < 1237150093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How close to 0 the &ing of the pixels are. :P < 1237150173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, how do you make PLAY play in the background, I wonderous. < 1237150207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also, AnMaster, the video is just FLV. < 1237150211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So is YouTube < 1237150215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you can play youtube you can play this < 1237150227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I looked at the source but couldn't find the text "flv" anywhere in it < 1237150233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll take a look. < 1237150234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I don't know what url to extract < 1237150253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but yes if I have an url I can play flv < 1237150285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyone happenstance to have a network sniffer? :P < 1237150304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I have wireshark of course. But doesn't help much with no flash < 1237150315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How can you play FLV without flash? Standalone decoder? < 1237150321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, mplayer works < 1237150350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is wireshark available for OS X? < 1237150356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea. Google? < 1237150363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kay < 1237150369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is tcpdump too. And again no idea if it is for OS X < 1237150401 0 :Judofyr!unknown@unknown.invalid PRIVMSG #esoteric :tcpdump is pre-installed on OS X < 1237150404 0 :Judofyr!unknown@unknown.invalid PRIVMSG #esoteric :at least in Leopard < 1237150409 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf is the actual SWF (without their swfplayer.swf thingy), if that's any help. I'll wireshark it up. < 1237150438 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, the swf doesn't help unless it is actually flv with a different name < 1237150449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was just linking for interestual purposes. < 1237150466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brb, need to clean glasses < 1237150483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wireshark is 100mb wtf. < 1237150503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh fuuuck, wireshark uses x11 < 1237150512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it just boots up x11 and loads a gtk clusterfuck < 1237150513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wonderful < 1237150661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yikesers, lots of shit here. < 1237150740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Okay, um, it's not going ove HTTP. < 1237150799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Aha. < 1237150839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: < 1237150840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :46 57 53 56:46 GM T....FWS < 1237150841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0160 08 f4 92 19 00 f8 00 00 00 00 00 07 8c 80 00 00 ........ ........ < 1237150843 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0170 00 00 00 15 ea 00 00 0a 96 00 7f 0b 04 00 00 00 ........ ........ < 1237150845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0180 0a 1a 9d 08 3f 03 16 00 00 00 96 11 00 00 63 73 ....?... ......cs < 1237150847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0190 4d 6f 76 69 65 46 50 53 00 07 0a 00 00 00 1d 00 MovieFPS ........ < 1237150849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01a0 3f af 0f 00 00 00 54 65 63 68 53 6d 69 74 68 20 ?.....Te chSmith < 1237150851 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01b0 4a 69 6e 67 00 3f 09 be a7 04 00 de 05 05 05 03 Jing.?.. ........ < 1237150853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :01c0 31 02 78 da ac bd 57 73 24 c9 92 a5 f9 9f 2e 29 1.x...Ws $......) < 1237150854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MovieFPS? < 1237150857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is that a FLV file? < 1237150859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*an < 1237150925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: as far as I can tell, it's http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf < 1237151025 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf is 1.6MB, so probably it is embedded inside that < 1237151038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right then, he can maybe just launch an FLV decoder on that. < 1237151250 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :Probably not, my VLC won't play it (but Media Player Classic seems to know enough about SWF format to play it) < 1237151279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Asztal_: mplayer? < 1237151309 0 :Asztal_!unknown@unknown.invalid PRIVMSG #esoteric :no, a windows thing (http://sourceforge.net/projects/guliverkli/) < 1237151314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1237151317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean, does it work with mplayer < 1237151320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1237151326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: try running over < 1237151328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://content.screencast.com/users/ehird/folders/Jing/media/a0341831-4bb6-4769-a6e0-b8517e43e2d8/00000006.swf < 1237151332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with mplayer < 1237151334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a sec < 1237151336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1237151351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :idoes it work? < 1237151353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*does < 1237151358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :downloading it < 1237151379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1237151384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1237151469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : so it just boots up x11 and loads a gtk clusterfuck <-- yes and? < 1237151472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :get more ram < 1237151476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you have issues with it < 1237151477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what has ram got to do with it < 1237151488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why would x11 be an issue otherwise < 1237151493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION facepalm < 1237151498 0 :Judofyr!unknown@unknown.invalid PRIVMSG #esoteric :it looks like crap? < 1237151500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stop this thread of conversation before I throw myself out of a window < 1237151506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :please don't encourage him Judofyr < 1237151509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not under OS X iirc < 1237151518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean I ran Gimp under X11 on OS X once < 1237151522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it looked semi-native < 1237151527 0 :Judofyr!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes coding some shit < 1237151578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you aren't used to hard conditions simply. You have to learn not to break down just because some program uses Motif < 1237151587 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ehird: stop being so emo over dependencies < 1237151597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not dependencies I have an issue with. < 1237151597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and GTK is nothing compared to Motif < 1237151607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, would you prefer if it uses Motif? < 1237151622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do you remember when I said I'd throw myself out of a window if you didn't stop this thread of conversation? < 1237151632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes. I'm waiting. < 1237151634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1237151636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bye-bye < 1237151642 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1237151659 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: fucking great, now you made him go kill himself < 1237151677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, Oh I thought he said throw himself out of windows < 1237151706 0 :ehird!unknown@unknown.invalid NICK :ehirdghost < 1237151711 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :wooooh < 1237151714 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :booooh < 1237151719 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :anmaster i curse uponst thou < 1237151723 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :you shalt only use windowths < 1237151725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, nice a ghost. Don't cross the streams! < 1237151726 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :till the end of your days! < 1237151741 0 :oklofok!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237151743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ln -s startx windowths < 1237151746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :issue solved < 1237151749 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :you are not compliant? I see < 1237151752 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :ACTION rips out AnMaster's brain. < 1237151752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no such thing as "windowths" < 1237151758 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I shall keepth it until thoust complieth. < 1237151759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, doesn't work. < 1237151762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tinfoil < 1237151771 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I went under it. < 1237151777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, tin suite < 1237151780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact < 1237151791 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Evidence plox. < 1237151806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, evidence of you being a ghost plox. < 1237151831 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :i jumped out a fucking window < 1237151835 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :what more do you want, dickhead < 1237151836 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1237151841 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :shall I go and slit my throat too < 1237151843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, autopsy? < 1237151845 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :or maybe poison myself < 1237151851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :death certificate? < 1237151852 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ghosts have no body, dumbo. < 1237151860 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :and i just died a minute ago. < 1237151866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, well the dead body would have to have a body < 1237151868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean duh < 1237151875 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :no < 1237151883 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :when you're a ghost it evaporates into your spiritual telekine < 1237151900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, evidence please? < 1237151906 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :you're a doo doo head < 1237151940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : shall I go and slit my throat too <-- how? < 1237151949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean you have no body you said < 1237151964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is a logical flaw there < 1237151970 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :my ghostular throat. < 1237151980 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I'd metadie. < 1237151991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, would you become a ghost of a ghost? < 1237151999 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1237152003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1237152010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what then? < 1237152023 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Fool. < 1237152033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you would become a fool? < 1237152052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's nothing new ;P < 1237152066 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Mere mortals may not dabble in the artistrechnitionry of ghostular beings. < 1237152078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, well, In the name of science! < 1237152091 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :No match for ghostular sciencemafindatron. < 1237152113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed not. Because it isn't called that < 1237152125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :try post mortal research < 1237152125 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :If you don't shut up I'll make sure you're reincarnated as a dungbeetle. < 1237152164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, belief in ghost is mutually exclusive with belief in reincarnation I think < 1237152168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ghosts* < 1237152178 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :God has a random number generator, AnMaster. < 1237152184 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Sometimes it returns 2 and you get to decide yourself. < 1237152188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I don't believe in god. < 1237152196 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And I'm sure you didn't believe in ghosts either, but look at me. < 1237152230 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, God does indeed not play dice. That's way old fashioned. < 1237152244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I still don't. Just an optical illusion. Or a result of your subconscious when you are under a lot of stress. < 1237152244 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :He has infinite infinite-core infinity machines. < 1237152255 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ghosts that is < 1237152255 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Then you will look very silly in the logs. < 1237152265 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :You talking to some "ehirdghost" character that isn't there. < 1237152271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, well that is because I believe you are faking this. < 1237152281 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Tut, tut. < 1237152284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :You know. Like an actor playing Hamlet's father. < 1237152305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :though not as well obviously < 1237152765 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :man < 1237152805 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i smoked pot for the first time last night, and it reconfirmed my belief that i should be a linguist. < 1237152816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... what? < 1237152831 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :pot tends to do that. < 1237152837 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well < 1237152844 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :it did it in an unexpected way < 1237152849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pot makes you believe you should be a linguist? < 1237152867 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :all throughout i was essentially incapacitated. couldnt focus long enough to really do anything coherent < 1237152869 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : I finally beat the computer at cheese < 1237152889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, :D < 1237152894 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :typo for chess I hope? < 1237152896 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :had difficulty moving about without kind of being stumbly < 1237152897 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1237152898 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but but < 1237152918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive, did it make you want to not do it again? < 1237152922 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no < 1237152926 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh :( < 1237152931 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :a friend said something that was linguistically interesting and i couldn't stop myself from rushing over to my notebook and writing it down < 1237152951 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :actually the difficulty of standing the feeling was i think in part due to the setting < 1237152955 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :20:35 AnMaster: oh :( < 1237152956 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: did you listen to music at all? < 1237152959 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :why do you hate people having fun, AnMaster < 1237152960 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no < 1237152963 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i WANTED to < 1237152971 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :listen to music, it might make you want to become a musician :) < 1237152973 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i wanted to just curl up into a ball and listen to music and melt away < 1237152980 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oh i already want to lament :P < 1237153002 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but instead i had to lay there and listen to my two companions as they watched some silly movie < 1237153004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I hate drugs. I _used_ to know someone who died due to an overdose of heroine... < 1237153017 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :heroin < 1237153023 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: umm, people are stupid < 1237153025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, typo < 1237153033 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :why is that the drugs's fault < 1237153036 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :you could die from an overdose of heroine too. < 1237153040 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :it's just like any addiction < 1237153043 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :if wonderwoman sat on your face until you suffocated < 1237153051 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: an interesting mental image. < 1237153055 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :best way to die < 1237153057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I do not wish to speak about it. And fucking read what I said. < 1237153062 0 :Judofyr!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants to die from programming... < 1237153079 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I read what you said, thank you very much. I also answered coherently and I believe rebutted your arguments. < 1237153100 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I think you're letting emotions get in the way of rational reasoning. < 1237153101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, have any close friend to you died from an overdose of a drug? < 1237153121 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :No; but if they had, I wouldn't start hating drugs, because that's a stupid and irrational thing to do in response to that. < 1237153153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, Well then I can see why you don't understand. I have nothing more to discuss with you. < 1237153172 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I don't understand many irrational things. < 1237153177 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I'm addicted to weed a little < 1237153202 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't see myself doing heroin though < 1237153203 0 :Judofyr!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster & ehirdghost: you two sounds like an old couple :-) < 1237153205 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Funny, though, how you should get on a rational high horse ("I don't believe in god", "I don't believe in ghosts, just an illusion") right before claiming a wonderful non-sequitur < 1237153212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, as long as you can stay on top of it... < 1237153215 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Judofyr: Tell me about it. < 1237153236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Judofyr, I'm not sure what that is supposed to mean... < 1237153247 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :my addiction to caffeine is more obvious < 1237153345 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to do drugs and jump out a window now, simultaneously, I mean, er, brb -> < 1237153363 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you do that. < 1237153593 0 :kar8nga!n=kar8nga@a-115.vc-graz.ac.at JOIN :#esoteric < 1237153838 0 :Mony!unknown@unknown.invalid QUIT :"Quit" < 1237153953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, there? < 1237153962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just found something useful for you in jitfunge < 1237154163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/KOu0WM19.html <-- ehird: do not repaste, that is copyrighted material :/ For log readers: Please see "Software Optimization Guide for AMD64 Processors" revision 3.06, section 5.15 < 1237154185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ^ < 1237154559 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The instructions they mention are SSE-only, though. And it'll be a while before I get to the optimizationary stage with jitfunge, you may need to remind me about that later. < 1237154583 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, using conditional move should be another nice way to speed things up in certain cases. < 1237154592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if I remember... < 1237154601 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That I already do to some extent. < 1237154608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? nice < 1237154616 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, I think I do. < 1237154674 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Okay, there is one single place where I emit a CMOVcc instruction. But still. < 1237154707 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1237154722 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The code generated by jitfunge is pretty sucky. < 1237154729 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1237154732 0 :bsmntbombdood!n=gavin@97-118-131-23.hlrn.qwest.net JOIN :#esoteric < 1237154756 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And my register allocator is borderline sucky, it doesn't even handle spilling correctly IIRC. Which is quite a lose, given how register-starved x86-32 is. < 1237154762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and yes I know they are SSE only. But you could fall back on non-SSE, either at runtime or compile time < 1237154798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, writing a good register allocator is hard iirc < 1237154803 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and making it fast is even harder < 1237154816 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but mine is so far from good it's a bit embarrassing. < 1237154827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :go fix it then? < 1237154847 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's a lot more I have to fix; but I'll get to it, some day. < 1237154860 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, or use llvm for backend < 1237154871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it has a good register allocator < 1237154931 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not like I haven't been thinking about that. But I have a feeling I'd lose the otherwise pretty spiffy automagic stack-underflow check, since it requires pretty low-level control on what kind of instructions can be emitted to access the stack. < 1237154948 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1237154949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1237154994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, which way does your stack grow? < 1237155037 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1237155053 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Up, currently; didn't you ask this some time ago? And mostly it grows up for the "more likely to have free space for extending the stack that way" reason, even though it probably doesn't really matter, and anyway there's the attempt to place it into middle of the wilderness of virtual addresses so that there'd be room both ways. < 1237155071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe I did but forgot < 1237155089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it does matter if you will implement fast STRN < 1237155092 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll have to think about the llvm thing. Currently the jitfunge code is pretty convoluted; maybe if I cleaned it up a bit so that there'd be a clean-ish-er interface between code generation and the rest of the code, I could even experiment better. < 1237155092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1237155107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, because you will end up like me, with slow reversing string < 1237155113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and for y too, to push environment < 1237155117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :more slow string reversion < 1237155120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :reversing* < 1237155133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes I grow up for ease of growing too < 1237155135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :realloc() < 1237155159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, or just steal the register allocator of llvm < 1237155170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it works with 1024 virtual registers iirc < 1237155220 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a rather non-fast approach to all dynamic uppercase instructions, at the very least there's a full all-funge-values-from-registers-to-stack flush plus a couple of setup instructions to store the stack pointer in edi (or whatever I kept it in) to the global stack-top variable. < 1237155238 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since you never know what the instruction might end up doing. < 1237155285 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well true < 1237155303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you will likely need to do such flushes for the core too for some things < 1237155306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like i and o < 1237155329 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, some fingerprint instructions could be implemented as "compile inline" < 1237155344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :especially FPSP, FIXP and FPDP would be good targets for that < 1237155348 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very short generally < 1237155357 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I generate flush+function-call for all fingerprint instructions and core IO operations. Although that's partially because there's a C++ class you can implement to specify what kind of IO the interpreter does. < 1237155371 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1237155378 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, have you read the C++ FQA? < 1237155389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not use a template to specialize it while you are at it! < 1237155395 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1237155419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, why C++? Why not C? < 1237155437 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Actually that part is reasonably FQA-compatible. FQA answer: "If you want to be able to work with many different implementations selected at run time, abstract base class is the way to go." < 1237155461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I don't remember that one. But ok < 1237155493 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I've ask myself the "why C++, why not C" question many times. < 1237155509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :did you reach any answer? < 1237155517 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But, you know, it was the C++ period; there is no rational answer. < 1237155530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, another thing: don't put a branch instruction across a 16 byte boundary. < 1237155535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if possible < 1237155557 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Er, well, I'm sure I could align those; what's the reason? < 1237155573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, branch prediction works better on many CPUs that way < 1237155589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also aligning is not recommended, better reorder instructions if possible < 1237155632 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Given my current code-generation strategy, that's not exactly trivial. But sure. < 1237155695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well the overhead of the nops would be larger than the gain if you have too many nops. IIRC someone said that: 1 byte alignment > branch over boundary > huge alignment < 1237155702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or was it 2? Well anwyay < 1237155706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway* < 1237155734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, both the AMD and Intel optimizing guides are good and interesting reads. < 1237155738 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Gah, where is asiekierka when I need him < 1237155745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some advice is general. Some is CPU specific < 1237155750 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some even contradict. < 1237155754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but usually not < 1237155798 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I do that full stack-flush for pretty much every 'p' instruction (except those with constant and small x/y arguments) too, since the 'p' might end up invalidating the currently-being-executed trace. Although I guess I could do some of the cleanup only in case the instruction actually did something like that; it was just simpler to flag 'p' as a flush-stack-before instruction. < 1237155799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I just got a crazy idea... < 1237155839 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Concurrent JIT < 1237155852 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Pretty much all "advanced" optimilization things boil down to the fact that I don't have any sensible intermediate representation for code; that's why the llvm assembly would make sense. < 1237155853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :one core runs the code, another compiles and optimises < 1237155867 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Do elaborate what you need him for, btw. < 1237155875 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: DOBELA. < 1237155884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, have you gone insane? < 1237155901 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Not any more than previously, I don't think < 1237155916 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, the 99 % TC language. < 1237155943 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I guess what's meant by that is "most likely, but not proven"? < 1237155953 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Guess so, it was just amusingly expressed. < 1237155962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which one was it? < 1237155967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was it the bully automaton? < 1237156003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, fizzie: http://paste.lisp.org/display/77084 <-- Have I gone insane? < 1237156011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well ais suggested so < 1237156016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't remember if you saw it < 1237156028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also that syntax highlighting sucks < 1237156033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can't highlight C99 comments < 1237156038 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: GCC creates worse code? < 1237156047 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I did take a peek. It is rather... verbose. < 1237156047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes. < 1237156060 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But whatever floats your funge-boat, I guess. < 1237156062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I have two level of fallbacks < 1237156073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that would be FPSP? < 1237156085 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Groan. < 1237156085 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1237156363 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :tumtitum < 1237156550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how do you spill registers? < 1237156605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :AMD suggests adjusting stack pointer and using MOV rather than pushing. Or out of order execution won't work properly < 1237156681 0 :Corun!n=Corun@94-193-29-186.zone7.bethere.co.uk JOIN :#esoteric < 1237156699 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't. < 1237156713 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/417121 I am breaking the law no more than AnMaster < 1237156713 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you said you did for p? < 1237156714 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"it doesn't even handle spilling correctly", like I said. < 1237156726 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, well, that. I don't count that. < 1237156733 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I, uh, though that the microcode RISC compiler made PUSH do just that? < 1237156755 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I do use MOV, because the funge-stack pointer is not in ESP. < 1237156799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I just mentioned what AMD said in AMD64 Architecture Programmer’s Manual Volume 1: Application Programming < 1237156814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :section 3.10.9 < 1237156814 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally... if I'm in a leaf function (or at least a part where there's no calls), can I pretty much do whatever I want with ebp/esp (assuming I don't care for things like gdb stack-trace in case of a crash) without having to worry about things breaking if, say, an interrupt occurs? < 1237156838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, that url times out < 1237156841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1237156844 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Not for me. < 1237156849 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :get a better isp < 1237156883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, fine, I will just refer to the section in the future, never paste it < 1237156885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1237156890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or paste in msg < 1237156895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a lot better for log readers < 1237156897 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Yes, and I'm sure everyone else will ask for a link. < 1237156897 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Hmm. Curious. < 1237156910 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should read that some time. < 1237156910 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think there are architectures/environments where you're contractually obliged to keep some amount of space free and accessible via a stack-pointery registers for emergency register-shadowing, for example. < 1237156919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, fun bed time reading ;) < 1237156923 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has been meaning to learn long mode assembly. < 1237156931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, there are 5 volumes btw. < 1237156935 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I know a precious little about x86 low-level details for a JIT-writer. < 1237156959 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Big deal? < 1237156977 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I read voraciously. < 1237157013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1: Application programming 2: System programming 3: General purpose and System Instruction reference 4: 128-bit media instructions 5: 64-bit media instructions and x87 instructions < 1237157048 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Should prove interesting. < 1237157069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably not the best thing for a n00b to assembly to read, but I already know assembly, so... < 1237157089 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(real mode and 32-bit protected mode, x86. Whooo.) < 1237157090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, each is a pdf of around 300-500 pages < 1237157102 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Glee. < 1237157121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, the AMD64 Optimization guide is a separate 384 pages pdf btw. < 1237157128 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Double-glee. < 1237157138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, the index works well. < 1237157144 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Then, I will know more about x86-64 than any one man has any right knowing. :p < 1237157151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can usually find what I want quite quickly < 1237157164 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(I am, of course, at this point mostly joking) < 1237157175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, the type is quite large < 1237157185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1237157192 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably good reference material, though. < 1237157231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, On a more serious note: the Intel docs tend to be much more densely written. And about as many pages. And harder to find what you want in. < 1237157237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Just a fair warning. < 1237157249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(if that is correct English) < 1237157250 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :% ghci -package dph-par uncomfortably-parallel.hs +RTS -N2 -g2 -RTS < 1237157262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, what does uncomfortably-parallel.hs do? < 1237157268 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it has two functions < 1237157272 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1237157277 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :doubleP, which parallely doubles a paralelly array of ints < 1237157278 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I had heard that AMD made somewhat more useful docs. < 1237157285 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :and big, which is a parallely array of 1000000000 ints < 1237157300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1237157304 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :dph-par is the multicore data parallel haskell package < 1237157309 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :+RTS -N2 -g2 -RTS means < 1237157315 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :"make the runtime use 2 threads, and use 2 threads for GC" < 1237157321 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :hmm wait < 1237157325 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :it should be cores+1 right? < 1237157330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, Hm. I hope that compiles into some threads running SSE instructions over it. < 1237157334 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :+RTS -N3 -g3 -RTS < 1237157336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if yes it should be very fast < 1237157341 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I didn't enable vectorization < 1237157347 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :because it fails on my code; need to look into that < 1237157359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, well you could gain a 4x speed up from vectorization < 1237157361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also wth < 1237157422 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :: memory allocation failed (requested 4000317440 bytes) < 1237157424 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Bollocks. < 1237157428 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :ACTION chops a zero < 1237157457 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So, uh... do I need to have a sensible stack frame setup (ebp/esp) if I don't call anyone? I mean, I guess in a modern sort of operating system an interrupt actually does something context-switch-like to get a different stack? < 1237157476 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, come on ghc, use that cpu up, you're meant to be using 2 threads. < 1237157501 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Guess my code isn't uncomfortably vectorizable en- < 1237157501 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1237157504 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :182% CPU usage. < 1237157509 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Er, I think that's the garbage collector. < 1237157562 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :So anyway, here's the code. < 1237157567 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :{-# LANGUAGE PArr, ParallelListComp #-} < 1237157567 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :{-# OPTIONS -Odph #-} < 1237157568 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :import qualified Data.Array.Parallel.Prelude as P < 1237157570 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :import qualified Data.Array.Parallel.Prelude.Int as PI < 1237157572 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :doubleP :: [:PI.Int:] -> [:PI.Int:] < 1237157574 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :doubleP xs = [: x PI.* 2 | x <- xs :] < 1237157576 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :big :: [:PI.Int:] < 1237157578 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :big = P.replicateP 100000000 42 < 1237157580 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :adding -fvectorise to OPTIONS will make the vectoriser die with an evil error message. < 1237157583 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Have fun. < 1237157584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1237157586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just wow < 1237157589 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :What < 1237157595 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :P.S. "doubleP big `seq` ()"; you don't want to print _that_ out. < 1237157595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I ate a bit of garlic flavoured bread < 1237157600 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Wow. < 1237157601 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Amazing. < 1237157604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then a bit of choclate < 1237157605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1237157613 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Unbelievable. < 1237157613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :chocolate* < 1237157617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the mix < 1237157622 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was very tastey < 1237157624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tasty* < 1237157627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just wow < 1237157627 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :and then you exploded < 1237157636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, no, I haven't yet < 1237157640 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :3...2...1... < 1237157642 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure whether I mentioned this already, but QBasic kind-of reminds me of MATLAB; the actual operations aren't necessarily slow (MATLAB's pretty fast at inverting a matrix, for example) but all code-flow including interpreted MATLAB script, like a for loop or something, is slow as anything. < 1237157645 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Hey, now you're a ghost like me. < 1237157645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still here < 1237157650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wrongf < 1237157654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wrong* < 1237157670 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://www.richardsimoes.com/gravity.html A fun game. Bring a canvas-supporting fastish JSy browser. < 1237157673 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And a mouse. < 1237157675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : So, uh... do I need to have a sensible stack frame setup (ebp/esp) if I don't call anyone? I mean, I guess in a modern sort of operating system an interrupt actually does something context-switch-like to get a different stack? < 1237157679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not on x86_64 < 1237157688 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And a nack for being a star. < 1237157690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can use 128 bytes beyond the stack pointer there < 1237157697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, which is nice. < 1237157718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from man gcc: < 1237157719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : -mno-red-zone < 1237157719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Do not use a so called red zone for x86-64 code. The red zone is mandated by the x86-64 ABI, it is a 128-byte area beyond the location of the stack pointer that < 1237157719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : will not be modified by signal or interrupt handlers and therefore can be used for temporary data without adjusting the stack pointer. The flag -mno-red-zone dis‐ < 1237157719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ables this red zone. < 1237157742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc it doesn't/didn't work properly with the linux kernel < 1237157767 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I seem to recall Linux caring about the ABI. < 1237157769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and I think you could run into issues with *signal* handlers if you didn't do this properly < 1237157777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, hm? < 1237157789 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just saying "Yeah, probably not." < 1237157823 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right, there are signal handlers too. I just would like to have ESP point at the Funge stack. < 1237157828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, did you just disagree or agree with me? < 1237157840 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Agree. < 1237157843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1237157853 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In about as vague a way as possible. < 1237157886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I think the gcc man page used to say that this option was for the linux kernel. But since it doesn't any more in the version I have here I guess the linux kernel now supports it. < 1237157914 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Eh. < 1237157919 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :does anyone know why ld(1) is so slow? < 1237157927 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :i mean seriously it takes seconds to link a trivial program < 1237157935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I know why. < 1237157937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bad design. < 1237157946 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :that's got to be some _really_ bad design < 1237157952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I remember reading a blog post by the initial ld author < 1237157957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if this is binutils ld < 1237157964 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :bsd < 1237157975 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :well, er < 1237157976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :binutils has ELF support more or less bolted in afterwards. < 1237157976 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :no < 1237157977 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :custom < 1237157979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :had* < 1237157984 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Darwin ld < 1237157984 0 :Corun!unknown@unknown.invalid QUIT :"Leaving" < 1237157985 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :for Mach-O < 1237157986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, then I don't know. < 1237157995 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :it's like this on every platform < 1237157996 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Binutils ld... Wasn't that mostly designed for the sake of flexibility, and not being even remotely speedy? < 1237158023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, well that too. It interprets a linker script to find out how to link < 1237158031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is a new linker under development < 1237158033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :called "gold" < 1237158041 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :yes, by google < 1237158042 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*sigh* < 1237158042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is written in C++ < 1237158045 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :does it work for mach-o? < 1237158048 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's hackers for ya. < 1237158048 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: why sigh/ < 1237158050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, not google iirc < 1237158053 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :er, no < 1237158055 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :gold is by google < 1237158066 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Gold is a linker for ELF files. It was added to binutils March, 2008[1][2], and first released in binutils version 2.19. Gold was developed by Ian Lance Taylor of Google[3]. < 1237158071 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :it stands for GOogle LD < 1237158076 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://google-opensource.blogspot.com/2008/04/gold-google-releases-new-and-improved.html < 1237158083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, err I remember reading original binutils ld author worked on it < 1237158089 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :maybe he works at google. < 1237158089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe he works for google < 1237158092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1237158127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"Ian Lance Taylor" < 1237158245 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1237158630 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads < 1237158732 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1237158745 0 :tombom!unknown@unknown.invalid QUIT :"Peace and Protection 4.22.2" < 1237158910 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :bah, boring < 1237158920 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's simply a list of micro-optimizations < 1237158991 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :yow, new freshmeat.net < 1237159219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, which was/is best old or new look? < 1237159230 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :both are ugly < 1237159238 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :the newer is slightly easier to read, but has more cruft. < 1237159286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why a white box beside the logo? < 1237159302 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's freshmeat? < 1237159324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's like asking "what is sourceforge" < 1237159340 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://freshmeat.net/about < 1237159383 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :borign < 1237159392 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why did you ask then < 1237159412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it's simply a list of micro-optimizations <-- what is? < 1237159426 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :the amd64 optimization guide < 1237159442 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: white box beside the logo? < 1237159443 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Excuse me what < 1237159451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, well yes. The reference docs are more interesting < 1237159454 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :"use 64 bit operations instead of 32 bit operation when 64 bits are needed" < 1237159456 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no fucking shit? < 1237159474 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: link < 1237159477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, some are like that yes. Some are more interesting. Check the SSE stuff. < 1237159484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, a sec < 1237159487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, what? < 1237159501 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :22:21 AnMaster: why a white box beside the logo? < 1237159503 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I see no white box < 1237159503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, see the logo at the top? < 1237159506 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1237159516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, see the huge box to the right of it? < 1237159519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for me it is white < 1237159526 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1237159528 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :There are ads there, for me. < 1237159533 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Since I don't block them. < 1237159537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, oh ok < 1237159542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how can you live with ads. < 1237159549 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I don't notice them. < 1237159568 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And some sites's layouts go a bit unbalanced-looking without them filling space, so. < 1237159618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, this is part 1 of 5 http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24592.pdf < 1237159647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, for links to all: http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html < 1237159657 0 :GregorR!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237159667 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i requested all the intel x86 docs once < 1237159673 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that was funny < 1237159675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, oh? < 1237159679 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :they are sitting in my closet somewhere < 1237159695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, I think they are available as pdfs nowdays < 1237159697 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's like 8 volumes 3" thick < 1237159705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, also what did it cost you? < 1237159710 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :nothing < 1237159719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1237159737 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :they send them out free < 1237159823 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :they can't sell any processors if no one develops for them < 1237159828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1237159845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, I prefer pdf. Comes with Ctrl-F to speed up searching < 1237159920 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I prefer hypertext that's displayed how I want, with a plaintext open markup language behind it that I can copy and paste from; instead of a closed-world NowYourMonitorCanBeAnInflexiblePieceOfPaper propreitary format that doesn't let me view it how i want it. < 1237159921 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric : < 1237159951 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, Um I can view it how I want it < 1237159973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, if your pdf viewer follows the copy protection stuff replace it < 1237159975 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :You can change a PDF's font? Get rid of the irritating two-column format? Run sed over it? < 1237159977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with an more open one < 1237159985 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to know how. < 1237159985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, pdf2edit < 1237160005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well: pdf2ps | ps2edit < 1237160017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ps2ascii ps2eps ps2epsi ps2frag ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr ps2pk ps2ps ps2ps2 < 1237160019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :have those < 1237160022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and pdf2dsc pdf2ps < 1237160026 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Go on then, I'll give you a tex rendered PDF; you change the font to something more respectable, let me resize the window to resize the text (instead of just zooming), make it two columns and flush left, ... < 1237160037 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :If you can do it in <2mins I'll be impressed. < 1237160045 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... More respectable? < 1237160056 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You mean it comes more respectable than Computer Modern? < 1237160056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, well ok you are right about that bit. But I prefer pdf over xps < 1237160058 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That was a joke. < 1237160068 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Good, good. < 1237160073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, no it doesn't. CM > * < 1237160083 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Computer Modern doesn't really work too well on a screen IME. < 1237160089 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Too many curly parts. < 1237160095 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, it's very much a print font. < 1237160110 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I requested Zilog's Z80 databook once, in a physical format; and it was actually pretty useful when writing some TI-86 code. I gave it away as a gift, though. < 1237160112 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's much easier to read dead trees < 1237160127 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wonderful on dead trees, though. < 1237160137 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Most of the book was just timing diagrams, though. < 1237160143 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i love computer modern < 1237160159 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I find screen reading as easy as book reading, but that's for a justified book with a good serif font with sufficiently bold text, and a sans-serif or lightweight serif screen font that's sufficiently light and ragged right < 1237160163 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :So, very different requirements. < 1237160186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't even find Intel documentation any moer < 1237160187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :more* < 1237160189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where is it < 1237160232 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://www.intel.com/software/products/documentation/vlin/mergedprojects/analyzer_ec/mergedprojects/reference_olh/reference_hh/intel_s_software_developer_s_manuals.htm has links. < 1237160245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hard to find < 1237160260 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost: Yeah; different fonts for different purposes. < 1237160270 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The developer.intel.com search should find 'em with the right keywords, like "architecture" and "manual". < 1237160282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I prefer adjusted margins on screen < 1237160291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, was trying on intel.com... < 1237160292 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://developer.intel.com/products/processor/manuals/index.htm < 1237160297 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :see "order a printed copy" < 1237160300 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://www.intel.com/products/processor/manuals/ also looks like a good list. < 1237160303 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1237160323 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I wish that web browsers would do justified text rendering, though... < 1237160334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking of their optimization guide thingy < 1237160342 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :tex's justification algorithm is so complicated < 1237160347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1237160350 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Intel® 64 and IA-32 Architectures Optimization Reference Manual is on that page. < 1237160359 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: and also awesome. < 1237160360 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :try the package microtype to get even better results < 1237160365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :work best with pdftex < 1237160369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or luatex < 1237160374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :works* < 1237160376 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I love XeTeX < 1237160393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, no idea if it supports micro-typography < 1237160400 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1237160405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, like optically straight margins? < 1237160407 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1237160410 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :It's all about that kind of stuff < 1237160420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, how do you turn it on? < 1237160421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for it < 1237160428 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Same way as normal < 1237160430 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I believe < 1237160436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, which is? < 1237160447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for pdftex you use the package microtype. And docs says it only works for pdftex < 1237160448 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I gather that microtype is basically a set of improvements on TeX's justification algorithm. < 1237160448 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Erm, the microtype package thang? < 1237160449 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1237160463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, kerning too + a few other things < 1237160469 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1237160469 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://www.tug.org/pipermail/xetex/2004-October/001206.html < 1237160471 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :that's from 2004 though < 1237160472 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :also < 1237160475 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :xetex has kerning and stuff < 1237160480 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :built in < 1237160481 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. Improvements on its kerning, also... < 1237160494 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://nitens.org/taraborelli/latex < 1237160498 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :that was made with xetex < 1237160504 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :so, very typographically sound < 1237160519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, http://www.ctan.org/get/macros/latex/contrib/microtype/microtype.pdf < 1237160524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what I'm talking about < 1237160529 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I am aware. < 1237160551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, can it do those things? < 1237160562 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I think so. < 1237160569 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :The whole point of XeTeX was to improve the fonty stuff. < 1237160575 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And Unicode support < 1237160588 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And Opentype instead of METAFONT. < 1237160591 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=XeTeX < 1237160595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, well what about the optically straight margins bit < 1237160599 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that in particular < 1237160617 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I think so < 1237160620 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I'm no expert, but I think so < 1237160689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, also how does xetex work on non-OSX? < 1237160699 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :How does it not? < 1237160701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the mail you linked talks about quartz < 1237160704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.tug.org/pipermail/xetex/2004-October/001206.html < 1237160708 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=xetex_linux < 1237160708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which iirc is OS X specific < 1237160720 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :XeTeX is part TeX Live. < 1237160730 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Part of, rather. < 1237160732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I know. I have it installed < 1237160744 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was just trying to make sense of how < 1237160750 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Same damned way. < 1237160768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, not the quartz bit obviously < 1237160779 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :different code on different platforms WHAT < 1237160782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as the page ehirdghost linked mentioned < 1237160783 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Impossible < 1237160814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, depends on how much needs to be ported < 1237160819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what can be the same < 1237160839 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :FreeType, I suspect, is used instead of Quartz for font rendering. < 1237160840 0 :Slereah!n=butt@ANantes-259-1-14-16.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1237160853 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :No. OpenType. < 1237160863 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost: OpenType is a font *format*. < 1237160867 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :err right < 1237160869 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :sorr < 1237160869 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :misread < 1237160878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I like METAFONT < 1237160881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is wrong with it? < 1237160882 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :FreeType is the Linux implementation of an OpenType renderer. < 1237160890 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, it doesn't do Unicode. < 1237160898 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And OpenType is, iirc, more featureful. < 1237160900 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And more widely supported. < 1237160904 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :And more fonts are available in it. < 1237160908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I included some Swedish text encoded as UTF-8 with no issues < 1237160908 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1237160916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to pdftex yesterday < 1237160925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :used Latin Modern I think < 1237160938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't remember what font format that is < 1237160956 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i never metaf *hit by falling anvil* < 1237160963 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :PDFTeX uses TrueType and Type 1 fonts. < 1237160984 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"XeTeX on Linux depends on an extended version of the DVIPDFMx driver by Shunsaku Hirata and Jin-Hwan Cho to generate PDF output"; that's what it does on Linux, instead of Quartz. < 1237161003 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fair enough. < 1237161013 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Of course, I don't know what that driver does. < 1237161015 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Stop reading! You're not allowed to. You have to ask questions of people who don't know the answer. < 1237161019 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably part of TeXLive's dvi2pdf. < 1237161028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I read it. < 1237161031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : as the page ehirdghost linked mentioned < 1237161037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just pikhq didn't < 1237161045 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Yes, you read it, that's why you asked me straight after. < 1237161055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, ? < 1237161080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, what are you talking about? < 1237161115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, I didn't ask you after. < 1237161116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1237161127 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :sure you did < 1237161128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ehirdghost, also how does xetex work on non-OSX? < 1237161129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : How does it not? < 1237161129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : the mail you linked talks about quartz < 1237161129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://www.tug.org/pipermail/xetex/2004-October/001206.html < 1237161130 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :you kept asking what it used instead of quartz < 1237161131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : which iirc is OS X specific < 1237161134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=xetex_linux < 1237161144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after that I didn't ask < 1237161157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, what line after that? < 1237161164 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :ff < 1237161181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehirdghost, does that mean you admit you were wrong? < 1237161189 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :no, it means i can't be bothered to continue < 1237161368 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of web browsers and text layout, there's the horrible thing called sIFR; http://www.mikeindustries.com/blog/sifr/ -- the "How it works" explains a very nice method of using up spare CPU cycles. < 1237161388 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Oh yes; I hate those things. < 1237161419 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :"Actionscript inside of each Flash file then draws that text in your chosen typeface at a 6 point size and scales it up until it fits snugly inside the Flash movie. " < 1237161420 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Hahaahaha < 1237161425 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :Best algorithm ever < 1237161448 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats straight through ehirdghost -----### FOR SCIENCE! < 1237161454 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1237161457 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :I felt nothing. < 1237161471 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :The visual representation is just an astral equiprojection of my statis, you know. < 1237161480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION repeats the experiment for statistical significance -----### < 1237161489 0 :ehirdghost!unknown@unknown.invalid PRIVMSG #esoteric :La la la la. < 1237161512 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Like the statistical saying goes: "With a large enough N, all bugs are shallow." Or something like that, anyway. < 1237161557 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, there is some probability that it says that