←2009-05-11 2009-05-12 2009-05-13→ ↑2009 ↑all
00:01:00 -!- oerjan has joined.
00:05:46 -!- MizardX- has joined.
00:06:02 -!- MizardX has quit (Read error: 104 (Connection reset by peer)).
00:06:24 -!- MizardX- has changed nick to MizardX.
00:13:32 -!- jix has quit ("sleep").
00:18:52 -!- Dewio has joined.
00:31:20 -!- Dewi has quit (Read error: 101 (Network is unreachable)).
00:38:24 <Gracenotes> wow... Primer is an awesome movie
00:38:54 <Gracenotes> the first time you watch it, you think things start getting weird 20 minutes before the film ends
00:39:09 <Gracenotes> but really... they start getting weird only 20 minutes after the film begins
00:39:49 <Gracenotes> it's pretty screwed up... and amazing...
00:41:18 <coppro> are there any threading-oriented esolangs?
00:43:19 <Gracenotes> NOOOOOOOOOOOOOO
00:44:03 * coppro pokes Gracenotes
00:45:12 -!- puzzlet has quit (Remote closed the connection).
00:45:15 -!- puzzlet has joined.
00:48:59 <oerjan> coppro: check out http://esoteric.voxelperfect.net/wiki/Category:Concurrent_programming
00:49:11 <coppro> only 4?
00:50:56 <oerjan> it's fairly rare, but there might be uncategorized ones
00:52:15 <oerjan> heh Network Headache may be one
00:52:33 <oerjan> (found from http://esoteric.voxelperfect.net/wiki/Category:Nondeterministic)
00:54:16 <oerjan> hm SNUSP has a concurrent variant
00:54:25 <oerjan> (found by searching for "thread")
00:54:33 <coppro> hmm
00:54:44 <coppro> of those 4, two are BF variants and two are Befunge-likes
00:55:05 <oerjan> and there is Threaded INTERCAL
00:55:26 <coppro> yeah, good point
00:55:38 <oerjan> coppro: just bad categorization i take
00:56:02 <coppro> SNUSP is both!
00:56:51 <oerjan> CLoop is parallel but not concurrent (no interaction)
00:57:46 <oerjan> TwoDucks
00:57:52 <oerjan> there are many
01:18:48 -!- oerjan has quit ("leaving").
01:37:06 -!- GregorR has quit (Remote closed the connection).
01:38:19 -!- GregorR has joined.
01:43:13 -!- puzzlet_ has joined.
01:54:47 -!- oerjan has joined.
01:55:07 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
01:56:55 -!- psygnisfive has joined.
01:59:29 -!- Sgeo has joined.
02:00:36 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
02:01:41 -!- puzzlet has joined.
02:29:14 * oerjan finds a bug
02:29:39 * pikhq sticks a cockroach on oerjan's keyboard
02:30:33 <oerjan> this one was virtual
02:30:45 <oerjan> although i found another ant in the bathroom earlier
02:30:50 <pikhq> That one is not.
02:31:04 <pikhq> (it is non-existent; big difference)
02:31:08 <oerjan> oh
02:35:00 <oerjan> OMG IT'S WORKING
02:37:44 <oerjan> lessee
02:38:03 <oerjan> !delinterp slashes
02:38:03 <EgoBot> Interpreter slashes deleted.
02:38:25 <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes.pl
02:38:27 <EgoBot> Interpreter slashes installed.
02:38:37 <oerjan> (slightly improved)
02:38:53 <oerjan> !slashes http://oerjan.nvg.org/esoteric/counter.slashes
02:39:02 <oerjan> bah
02:40:16 <oerjan> !slashes test
02:40:16 <EgoBot> test
02:40:42 <oerjan> problem is, without newlines it never prints anything, with newlines no one but me will see it
02:41:09 <pikhq> Screwy.
02:41:09 <oerjan> !slashes http://oerjan.nvg.org/esoteric/counter.slashes
02:41:10 <EgoBot> *
02:41:26 <oerjan> except the first line
02:41:36 <oerjan> hm no DCC CHAT
02:42:11 <oerjan> my other fear seems to come true: EgoBot doesn't allow enough time to reach the next iteration
02:42:20 <oerjan> oh well
02:43:16 <oerjan> wait what
02:43:23 <oerjan> now it doesn't work in my terminal either
02:45:12 <oerjan> huh the slashes interpreter has some trouble with newlines
02:47:18 * oerjan suspects some multiline setting problem
02:49:52 <oerjan> ah indeed missing s options on s///
02:50:12 <oerjan> a backslash followed by newline won't be unescaped
02:50:56 <oerjan> et voila
02:51:10 <oerjan> !delinterp slashes
02:51:10 <EgoBot> Interpreter slashes deleted.
02:51:18 <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes.pl
02:51:19 <EgoBot> Interpreter slashes installed.
02:51:28 <oerjan> !slashes http://oerjan.nvg.org/esoteric/counter.slashes
02:51:29 <EgoBot> *
02:52:11 <oerjan> !slashes http://oerjan.nvg.org/esoteric/counter.slashes
02:52:12 <EgoBot> *
02:52:27 <oerjan> hmph
02:52:44 <oerjan> it now gives _one_ more line (with **) in DCC CHAT
02:53:00 <oerjan> this program is expensive :D
02:53:40 <oerjan> oh well it works in a terminal window
02:58:20 <GregorR> !slashes http://oerjan.nvg.org/esoteric/counter.slashes
02:58:21 <EgoBot> *
03:01:10 <oerjan> !delinterp slashes
03:01:10 <EgoBot> Interpreter slashes deleted.
03:01:18 <oerjan> !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes.pl
03:01:18 <EgoBot> Interpreter slashes installed.
03:01:35 <oerjan> (my own interp still had an old bug that was fixed on the wiki)
03:02:13 <oerjan> GregorR: do you see anything more than two lines?
03:02:20 <GregorR> Nope
03:04:31 <psygnisfive> i think ive built my first generic-ish parser that produces a parse tree. o.o;
03:04:51 <psygnisfive> all my previous parsers were really customized to the language, but this one, no!
03:04:57 <psygnisfive> this one uses normal parsing methods. lol
03:13:05 <psygnisfive> god, what, did i kill the conversation?
03:13:49 * oerjan is busy preparing his slashes program with continuation line breaks
03:14:02 <oerjan> by modifying the haskell generator
04:20:32 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
04:21:59 -!- puzzlet has joined.
04:22:16 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
04:26:59 -!- puzzlet has joined.
04:48:39 <kerlo> How's that ///ology coming along?
04:48:49 <oerjan> kerlo: see the wiki :) :) :)
04:50:38 <coppro> slashes has so much potential
04:51:03 <oerjan> yeah now my bet is certainly on turing-completeness
04:51:20 <kerlo> Cool.
04:51:38 <kerlo> And yeah, non-Turing-completeness is kind of hard to imagine at this point.
04:51:54 <kerlo> I guess you win the $500 prize.
04:52:00 <oerjan> yay!
05:15:23 -!- coppro has quit (Remote closed the connection).
05:16:42 -!- Dewio has quit (lindbohm.freenode.net irc.freenode.net).
05:16:42 -!- ineiros has quit (lindbohm.freenode.net irc.freenode.net).
05:16:42 -!- Ilari has quit (lindbohm.freenode.net irc.freenode.net).
05:16:43 -!- Asztal has quit (lindbohm.freenode.net irc.freenode.net).
05:16:43 -!- ehird has quit (lindbohm.freenode.net irc.freenode.net).
05:16:43 -!- rodgort has quit (lindbohm.freenode.net irc.freenode.net).
05:16:43 -!- Sgeo has quit (lindbohm.freenode.net irc.freenode.net).
05:16:43 -!- comex has quit (lindbohm.freenode.net irc.freenode.net).
05:17:06 -!- Sgeo has joined.
05:17:06 -!- comex has joined.
05:17:42 -!- Dewio has joined.
05:17:42 -!- ehird has joined.
05:17:42 -!- ineiros has joined.
05:17:42 -!- Ilari has joined.
05:17:42 -!- rodgort has joined.
05:17:42 -!- Asztal has joined.
05:26:57 <psygnisfive> ew netsplit
05:30:34 -!- oerjan has quit ("leaving").
05:58:04 -!- asie[brb] has joined.
05:58:08 -!- asie[brb] has changed nick to asiekierka.
05:58:12 <asiekierka> Hello
05:58:14 <asiekierka> ^style
05:58:14 <fungot> Available: agora alice c64* darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
05:58:19 <asiekierka> yay
05:58:22 <asiekierka> fungot: say something
05:58:22 <fungot> asiekierka: another problem is that stop causes the keyboard matrix tables should not exceed the limit. it will " wrap around" back to ascii text of the basic rom.
05:58:39 <asiekierka> fungot: I understand. Now, why would it wrap around?
05:58:39 <fungot> asiekierka: preparatory routines: none note: ror instruction is tacked on to location 894 which is decoded by your program will continue to do this either by hitting the return key
05:58:50 <asiekierka> :D
05:58:54 <asiekierka> ^style youtube
05:58:55 <fungot> Selected style: youtube (Some YouTube comments)
05:59:01 <asiekierka> fungot: How do you feel?
05:59:01 <fungot> asiekierka: and if there hadn't been people on board
05:59:09 <asiekierka> fungot: Then what?
05:59:09 <fungot> asiekierka: ive seen so many people wher on board this plane hit a forest at 200mph within 4 seconds of data to make a great father... your son seem to suggest, vote on.
05:59:16 <asiekierka> ^style c64
05:59:16 <fungot> Selected style: c64 (C64 programming material)
05:59:20 <asiekierka> :D
05:59:28 <asiekierka> so we have new styl-o-matics
06:00:08 <asiekierka> ^style speeches
06:00:09 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
06:00:15 <asiekierka> fungot: Are you nice?
06:00:23 <asiekierka> ...
06:00:28 <asiekierka> .........................
06:00:34 <asiekierka> what happened to the n-gram model?
06:00:40 <asiekierka> fungot: Are you nice?
06:00:45 <asiekierka> fungot: Hello.
06:00:49 <asiekierka> ...O_o;
06:03:19 <Sgeo> "Because I'm too busy right now to respond to important emails and update the site in a timely manner, I've taken the majority of the archives down."
06:04:02 <asiekierka> what? where?
06:05:30 -!- Infinitismal has joined.
06:06:02 <Sgeo> http://sites.google.com/site/c3dsarchives/
06:12:28 <asiekierka> i'm amazed how no-one made a "twitter" style yet
06:17:54 <Sgeo> hm?
06:19:52 <Infinitismal> a twitter style what?
06:22:44 <asiekierka> twits
06:22:50 <asiekierka> just like youtube comment style
06:22:53 <asiekierka> it has a lot of youtube comments
06:23:00 <asiekierka> so twitter style would have many "twits"
06:29:16 <Infinitismal> no thats people who use twitter
06:32:45 <asiekierka> oh
06:32:48 <asiekierka> twitter messages then
06:32:49 <asiekierka> also
06:32:51 <asiekierka> going off
06:32:56 -!- asiekierka has quit.
07:02:17 -!- bsmntbombdood has changed nick to bsmntbombgirl.
07:11:11 -!- kar8nga has joined.
07:25:55 -!- kar8nga has quit (Read error: 54 (Connection reset by peer)).
07:29:26 -!- kar8nga has joined.
07:54:49 -!- kar8nga has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:29 -!- puzzlet has quit (Remote closed the connection).
08:03:33 -!- puzzlet has joined.
08:32:46 -!- lereah_ has joined.
09:05:35 <fizzie> The messages themselves are "tweets", as I understand it.
09:28:23 -!- OKLOPOL has joined.
09:28:29 <OKLOPOL> hello i'm an OKLOPOL
09:28:35 -!- OKLOPOL has changed nick to oklopol.
09:29:28 <fizzie> Now you gone went smaller.
09:29:54 <oklopol> that's how i manage, man.
09:30:08 <oklopol> i just broke a plate.
09:30:13 <oklopol> i dropped it.
09:30:19 <oklopol> it made a crash.
09:30:29 <oklopol> my ears said yikes
09:30:32 <oklopol> .
09:31:37 <fizzie> Manage the age of man.
09:37:00 <oklopol> sera meganame manage mares <<< makes no sense maybe, but it's the best i could do.
09:43:04 <fizzie> E-manage moon, no omega name.
09:46:27 -!- oklopol has quit (Read error: 60 (Operation timed out)).
09:46:56 <fizzie> I didn't think it was that bad. :/
09:48:30 -!- Sgeo has quit ("Leaving").
09:57:38 -!- oklodok has joined.
10:03:18 -!- oklopol has joined.
10:21:17 -!- oklodok has quit (Read error: 113 (No route to host)).
10:41:08 -!- ais523 has joined.
11:20:40 -!- tombom has joined.
11:22:28 -!- jix has joined.
11:44:11 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:32:16 -!- ais523 has quit (Remote closed the connection).
12:46:51 -!- KingOfKarlsruhe has joined.
12:57:32 -!- asiekierka has joined.
12:57:34 <asiekierka> Hello
12:57:38 <asiekierka> ^style
12:57:38 <fungot> Available: agora alice c64 darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube
12:57:43 <asiekierka> ^style youtube
12:57:43 <fungot> Selected style: youtube (Some YouTube comments)
12:57:51 <asiekierka> fungot: Esoteric stuff!
12:57:59 <asiekierka> ...WTH?
12:58:02 <asiekierka> fungot: Hi
12:58:44 <fizzie> I'm guessing it's in ignore mode; it only does four or so replies for one particular person consecutively, to make it a bit less annoying for people who try to get something done.
12:59:00 <fizzie> fungot: Walk like a YouTubeian.
12:59:00 <fungot> fizzie: did every body die? sorry but thats just cuz she older and well documented crash but people died! put this in a box, and it wasn't...
12:59:14 <fizzie> There, now you have four replies again.
13:01:20 <asiekierka> fizzie: Oh.
13:01:29 <asiekierka> well, I just wanted to see if it works
13:02:42 <asiekierka> and also, I just want to make a C64 OS :P
13:04:42 <asiekierka> And I think I finally know how to do it :D
13:07:28 <asiekierka> Well, I first need to have a way to output a single char. Answer: self-modifying code! :D
13:07:40 <asiekierka> well, you can also do it with A and X but nah
13:07:48 <asiekierka> you would still need to output it there anyway
13:27:14 -!- jix has quit ("leaving").
13:33:18 -!- lereah_ has quit (Remote closed the connection).
13:37:47 <AnMaster> Erlang is perfect for a bf optimiser really
13:37:55 <AnMaster> the pattern matching makes it very easy
13:38:07 <AnMaster> + the "multiple entry points to function"
13:38:34 <AnMaster> for example the "combine ++ into +" is:
13:38:36 <AnMaster> optimise([#bfn{ ins = add, off = Offset, val = V1 }|T],
13:38:36 <AnMaster> [#bfn{ ins = add, off = Offset, val = V2 } = A|Result]) ->
13:38:36 <AnMaster> optimise(T, [A#bfn{ val = V1 + V2 }|Result]);
14:09:46 -!- KingOfKarlsruhe has quit (Remote closed the connection).
14:23:44 -!- upyr[emacs] has joined.
14:33:10 <tombom> fungot: what does this do
14:33:10 <fungot> tombom: megadeth is who plays the role heath ledger plays in the movie?
14:36:13 <ehird> hi upyr[emacs]
14:36:16 <ehird> haven't seen you around
14:36:18 <ehird> you new?
14:38:54 <ehird> slashes is totally a reverse ripoff of my lanaugae
14:40:35 <ehird> http://oerjan.nvg.org/esoteric/SlashesCounter.hs
14:40:36 <ehird> wow
14:40:37 <ehird> oerjan coding
14:40:46 <ehird> punossible
14:44:33 <fizzie> It's not just oerjan-coding, but clever coding too. I did have the "use a character which scans through the program" idea too (it's so common in string-rewritingy things) but thought it'd need some looping; but of course it doesn't need to be unbounded there.
14:45:08 <ehird> verily
14:52:54 <upyr[emacs]> ehird: hi.
14:53:04 <ehird> hi
14:54:30 <upyr[emacs]> pseudorandom number generator with brainfuck - it's real?
14:55:02 <ehird> upyr[emacs]: Sure. it produces the same results every run, of course ...
14:55:18 <ehird> But the list of results it outputs should be more or less sufficient for pseudorandom purposes.
14:55:54 <asiekierka> I should implement it for my C64 OS later on
14:56:01 <ehird> upyr[emacs]: If you need, say, 1000 random numbers from 0-255, you can just tell the user to run as ((head -c 1000 /dev/urandom && cat) | bf foo.b)
14:56:12 <ehird> and 1000 ,>s at the start of your program
14:56:20 <ehird> but if you don't mind it being the same evry time...
14:59:56 <asiekierka> YOu could pretty much say "PRESS ENTER" and run an infinite loop of pseudorandom generation until the user hits enter
14:59:57 <asiekierka> :D
15:00:09 <asiekierka> also, doh, my printing code does not work
15:00:19 <ehird> asiekierka: you can't run code while listening for input
15:00:38 <asiekierka> ...
15:00:42 <asiekierka> you can't?
15:00:49 <ehird> , blocks
15:00:53 <ehird> this is trivial shit
15:01:03 <asiekierka> no
15:01:07 <asiekierka> this is IMPLEMENTATIONAL shit
15:01:13 <ehird> what
15:01:23 <upyr[emacs]> ehird: ok.thanks
15:01:23 <asiekierka> oh wait
15:01:26 <asiekierka> i forgot about something
15:01:33 <ehird> upyr[emacs]: yw
15:01:37 -!- asiekierka has set topic: #esoteric, the international hub for esoteric programming language design and deployment - #esoteric is not associated with the joke language Perl, please visit www.perl.org - logs: http://tunes.org/~nef/logs/esoteric/ | to make fungot talk different use ^style.
15:01:44 <asiekierka> here
15:02:00 -!- ehird has set topic: international pub http://tunes.org/~nef/logs/esoteric/.
15:02:25 -!- asiekierka has set topic: international pub http://tunes.org/~nef/logs/esoteric/ | to make fungot talk different use ^style.
15:03:39 <Slereah> ^help
15:03:39 <fungot> ^<lang> <code>; ^def <command> <lang> <code>; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool
15:03:52 -!- ehird has set topic: international pub http://tunes.org/~nef/logs/esoteric/.
15:03:53 <Slereah> ^show
15:03:53 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
15:03:55 <ehird> everyone knows about ^style
15:03:57 <ehird> :p
15:04:13 <asiekierka> ^show scramble
15:04:14 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
15:04:19 <asiekierka> ^scramble asciikierka
15:04:19 <fungot> aciirakekis
15:04:29 <ehird> ^scramble asterisks
15:04:30 <fungot> atrsskies
15:04:33 <ehird> ^unscramble atrsskies
15:04:34 <fungot> asterisks
15:04:43 <asiekierka> ^unscramble acirakekiis
15:04:43 <fungot> asciiirkaek
15:04:45 <asiekierka> :P
15:04:48 <ehird> it's the ehird srmlebac algorithm
15:04:52 <asiekierka> ^show srmlebac
15:04:53 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
15:04:53 <ehird> and its inverse
15:05:00 <asiekierka> they're the same
15:05:01 <asiekierka> doh
15:05:08 <ehird> asiekierka: scramble is an alias for srmlebac
15:05:15 <ehird> same with unscramble/uenlsbcmra
15:05:23 <ehird> ^scramble uenlsbcmra
15:05:23 <fungot> unscramble
15:05:53 <asiekierka> 18273645 is how it works
15:06:04 <ehird> I know
15:06:10 <ehird> ^scramble 123456789
15:06:10 <fungot> 135798642
15:06:17 <ehird> asiekierka: I did invent the algorithm, you know :P
15:06:18 <asiekierka> ^scramble 12345678
15:06:18 <fungot> 13578642
15:06:24 <asiekierka> erm...
15:06:25 <ehird> ^unscramble 123456789
15:06:26 <fungot> 192837465
15:06:30 <ehird> ^unscramble 12345678
15:06:30 <fungot> 18273645
15:06:34 <ehird> There you go.
15:06:35 <asiekierka> whew
15:06:54 <fizzie> ^unscramble eggs
15:06:54 <fungot> esgg
15:07:10 <ehird> ^scramble d eggs
15:07:10 <fungot> degsg
15:07:13 <AnMaster> <ehird> http://oerjan.nvg.org/esoteric/SlashesCounter.hs <-- "-- By �rjan Johansen, May 2009."?
15:07:21 <ehird> AnMaster: What about it?
15:07:28 <AnMaster> ehird, encoding fail I think.
15:07:33 <ehird> Nope, it's your fail.
15:07:35 * AnMaster tries ISO
15:07:36 <ehird> It slows up perfectly fine for me.
15:07:39 <ehird> *shows
15:08:00 <ehird> It has no charset= in the Content-Type, but oh well.
15:08:02 <AnMaster> ehird, maybe your client auto detect it as "ISO" and uses that.
15:08:11 <ehird> No, in my client it displays wrongly.
15:08:12 <AnMaster> on IRC I mean
15:08:14 <ehird> In my browser it does not.
15:08:15 <AnMaster> ah
15:08:16 <AnMaster> right
15:08:20 <ehird> -- By Ørjan Johansen, May 2009.
15:08:23 <AnMaster> well mine defaulted to UTF-8
15:08:24 <asiekierka> ^def ascram bf >>,[>,][[<]>.[-]>.[-][>]<.[-]<.[-]<]
15:08:24 <fungot> Defined.
15:08:24 <ehird> copy/pasting autoconverts
15:08:29 <asiekierka> ^ascram spartans
15:08:39 <asiekierka> ...
15:08:57 <asiekierka> ^def ascram bf >>,[>,]+[[<]>.[-]>.[-][>]<.[-]<.[-]<]
15:08:58 <fungot> Defined.
15:09:00 <asiekierka> ^ascram spartans
15:09:00 <fungot> sp
15:09:06 <asiekierka> ... *sigh*
15:09:21 <ehird> ^scramble spartans
15:09:21 <fungot> satnsarp
15:09:23 <ehird> scrambled spartans
15:09:31 <asiekierka> i want to have my own algorithm too
15:09:38 <ehird> mwaha
15:10:00 <asiekierka> ^def ascram bf >>,[>,]<[[<]>.[-]>.[-][>]<.[-]<.[-]<]
15:10:01 <fungot> Defined.
15:10:05 <asiekierka> ^ascram testing!
15:10:05 <fungot> te
15:10:30 <fizzie> The server sends "Content-Type: text/x-haskell" with no charset modifier, so it's a bit debatable. Unless Haskell happens to have a well-defined standard encoding?
15:10:43 <fizzie> Oh, ehird mentioned already. Still.
15:11:04 <ehird> Still, there's a lot of mojibake out there if you don't autodetect.
15:11:13 <asiekierka> ^def ascram >>,[>,]<[---<-<--<-----<][>>.<.>]
15:11:14 <fungot> Usage: ^def <command> <lang> <code>
15:11:18 <asiekierka> ^def ascram bf >>,[>,]<[---<-<--<-----<][>>.<.>]
15:11:19 <fungot> Defined.
15:11:22 <asiekierka> ^ascram test
15:11:27 <asiekierka> *SIIIGH*
15:11:35 <AnMaster> ^show scramble
15:11:35 <fungot> >>,[>,]<[<]>[.>>]<[>>]<2[.<2]
15:11:42 <AnMaster> try that
15:11:52 <asiekierka> i'm using my own algorithm
15:11:52 <AnMaster> its shorter too
15:11:52 <asiekierka> doh
15:12:16 <asiekierka> ^def ascram bf >>,[>,]<[---<-<--<-----<]>[>>.<.>]
15:12:16 <fungot> Defined.
15:12:19 <asiekierka> ^show ascram
15:12:19 <fungot> >>,[>,]<[-3<-<-2<-5<]>[>>.<.>]
15:12:26 <ehird> it looks like a crap algorithm :)
15:12:28 <asiekierka> ^ascram testtest
15:12:28 <fungot> rcoqrc
15:12:44 <asiekierka> ...testte... forgot about 2 bytes
15:12:53 <asiekierka> ^ascram testtestt
15:12:53 <fungot> `qsq`qsq
15:13:03 <asiekierka> O_O;;
15:13:57 * AnMaster considers non-destructive copy in bf. The shortest I can think of uses one scratch cell: [->+>+<<][+>-<] to copy to the cell two above, and use the one at one above for scratch.
15:14:00 <AnMaster> Any shorter way?
15:14:33 <asiekierka> ^def lasi bf ,[[>+<-],]
15:14:33 <fungot> Defined.
15:14:40 <asiekierka> ^lasi aaaaa
15:14:43 <asiekierka> oh
15:14:52 <asiekierka> ^def lasi bf ,[[>+<-],]>.
15:14:52 <fungot> Defined.
15:14:57 <asiekierka> ^lasi aaaaa
15:14:57 <fungot>
15:15:11 <upyr[emacs]> hm
15:15:18 <asiekierka> ...does fungot use 8 bits
15:15:18 <fungot> asiekierka: i like the old pics!!!!! no way, is it? i did get to me, the pilot if he tries to touch the ground
15:15:30 <fizzie> You don't really need to define commands for testing; you can just use "^bf code!input".
15:15:32 <asiekierka> !help
15:15:33 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg
15:15:44 <fizzie> And yes, the cells are 8 bits.
15:15:45 <asiekierka> I'd use egobot but it doesn't support input
15:15:48 <asiekierka> in any form or shape
15:16:17 <asiekierka> ...Are the cells wrapping
15:16:20 <fizzie> Yes.
15:16:36 <asiekierka> ^lasi AAAAA
15:16:36 <fungot> E
15:16:54 <asiekierka> it should be ASCs but nah
15:17:07 <asiekierka> Asiekierka's Stupid Checksum system
15:18:04 <asiekierka> ^bf ,[[>+<-]>>+<<,]>.>>+++++++++++++[<+++>-]<.!AAAAA
15:18:04 <fungot> E,
15:18:09 <asiekierka> ...something wrong (again
15:18:10 <ehird> 15:15 asiekierka: I'd use egobot but it doesn't support input
15:18:14 <ehird> ur an idyot
15:18:17 <ehird> daemons lol
15:18:18 <ehird> !help
15:18:18 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg
15:18:21 <asiekierka> !help bf
15:18:21 <EgoBot> Sorry, I have no help for bf!
15:18:28 <ehird> !daemon butt bf ,[.,]
15:18:28 <EgoBot> Daemon butt running.
15:18:31 <ehird> !butt on the floor
15:18:31 <EgoBot> on the floor
15:18:34 <ehird> !butt indeed
15:18:34 <asiekierka> ...oh
15:18:34 <EgoBot> indeed
15:18:38 <asiekierka> that works
15:18:42 <ehird> !bf ,[.,]!hmm does this
15:18:45 <ehird> nah
15:18:47 <asiekierka> :P
15:18:55 <ehird> !c printf("butt\n")
15:18:57 <EgoBot> butt
15:19:25 <Gracenotes> :o
15:19:37 <ehird> !c char b[1024];gets(b);puts(b)
15:19:38 <asiekierka> ^bf ,[[>+<-]>>+<<,]>.>>++++++++++++[<++++>-]<.!AAAAA
15:19:38 <fungot> E5
15:19:39 <ehird> er
15:19:44 <asiekierka> ^bf ,[[>+<-]>>+<<,]>.>>++++++++++++[<++++>-]<.!ABCDE
15:19:44 <fungot> O5
15:19:46 <ehird> !daemon cs c char b[1024];gets(b);puts(b)
15:19:47 <EgoBot> Daemon cs running.
15:19:49 <ehird> !cs abcdefg
15:20:42 <asiekierka> !daemon bottles chiqrsx9p 9
15:20:42 <EgoBot> Daemon bottles running.
15:20:44 <asiekierka> !bottles
15:20:50 <fizzie> !info
15:20:50 <EgoBot> EgoBot is a bot for running programs in esoteric programming languages. If you'd like to add support for your language to EgoBot, check out the source via mercurial at https://codu.org/projects/egobot/hg/
15:20:57 <fizzie> (Just for the link.)
15:21:16 <asiekierka> You know
15:21:27 <ehird> oh, of course
15:21:31 <Gracenotes> !c typedef struct { int omg; } WHAT_YOU_SAY; WHAT_YOU_SAY destruction = { 4}; printf("%d\n", destruction.omg);
15:21:33 <asiekierka> One day, I should make script-created lists of styles for each individual person on IRC
15:21:37 <ehird> !daemon cs c char b[1024];gets(b);puts(b);fflush(stdout)
15:21:37 <EgoBot> That daemon is already running!
15:21:40 <asiekierka> for example
15:21:41 <Gracenotes> .... .
15:21:41 <ehird> !delinterp cs
15:21:41 <EgoBot> That interpreter doesn't exist!
15:21:42 <ehird> !daemon cs c char b[1024];gets(b);puts(b);fflush(stdout)
15:21:42 <EgoBot> That daemon is already running!
15:21:46 <ehird> ...
15:21:48 <Gracenotes> it doesn't run my example! :_:
15:21:55 <asiekierka> there will be a style for Gracenotes, ehird, asiekierka
15:21:55 <fizzie> Kill, don't delinterp.
15:21:57 <ehird> !kill cs
15:21:57 <EgoBot> Daemon cs killed.
15:21:59 <ehird> !daemon cs c char b[1024];gets(b);puts(b);fflush(stdout)
15:22:00 <EgoBot> Daemon cs running.
15:22:01 <ehird> !cs aaa
15:22:02 <EgoBot> aaa
15:22:05 <ehird> !cs bbb
15:22:13 <asiekierka> aha!
15:22:13 <ehird> !daemon cs c char b[1024];for(;;){gets(b);puts(b);fflush(stdout);}
15:22:14 <EgoBot> That daemon is already running!
15:22:16 <ehird> !kill cs
15:22:16 <EgoBot> Daemon cs killed.
15:22:17 <ehird> !daemon cs c char b[1024];for(;;){gets(b);puts(b);fflush(stdout);}
15:22:17 <EgoBot> Daemon cs running.
15:22:19 <ehird> !cs a
15:22:23 <ehird> !cs b
15:22:24 <EgoBot> a
15:22:24 <EgoBot> b
15:22:26 <ehird> !cs c
15:22:26 <EgoBot> c
15:22:28 <asiekierka> !cs wtf, ehird
15:22:28 <ehird> !cs d
15:22:28 <EgoBot> wtf, ehird
15:22:28 <EgoBot> d
15:22:33 <ehird> yay
15:22:40 <asiekierka> !cs don't play with fire.c
15:22:40 <EgoBot> don't play with fire.c
15:22:50 <ehird> Gracenotes: if you have some non-function body stuff you need to declare main()
15:22:56 <EgoBot> can i talk with you, ehird?
15:23:02 <ehird> no, asiekierka
15:23:12 <Gracenotes> !c typedef struct { int omg; } WHAT_YOU_SAY; int main() { WHAT_YOU_SAY destruction = { 4}; printf("%d\n", destruction.omg); return 0; }
15:23:14 <EgoBot> ehird: but the plane said so!
15:23:25 <Gracenotes> *eyes suspiciously*
15:23:44 <tombom> what
15:23:48 <EgoBot> Gracenotes: wtf, plane
15:23:53 <tombom> is egobot a bot
15:23:55 <ehird> tombom: yes
15:23:58 <ehird> tombom: asiekierka is controlling him
15:24:00 <ehird> because he thinks it's funny
15:24:01 <Gracenotes> perhaps I also need...
15:24:05 <EgoBot> tombom: Of epic plane proportions, so but.
15:24:06 <ehird> he does this kind of stuff *a lot*
15:24:07 <tombom> rught
15:24:19 <Gracenotes> an include?
15:24:25 <EgoBot> aight, let's stop this nonsense
15:24:33 <Gracenotes> but not possible with semicolons
15:24:36 <ehird> !c typedef struct { int omg; } WHAT_YOU_SAY; int main() { WHAT_YOU_SAY destruction = { 4}; printf("%d\n", destruction.omg); fflush(stdout); return 0; }
15:24:44 <ehird> hm.
15:24:46 <asiekierka> !cs do i still work?
15:24:52 <ehird> ...
15:24:55 <asiekierka> seems nto
15:24:57 <asiekierka> not*
15:24:57 <ehird> uh oh
15:24:58 <asiekierka> yay
15:24:58 <ehird> !help
15:24:58 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg
15:25:04 <ehird> !forth ." hello world" cr
15:25:18 <ehird> how odd.
15:25:34 <Gracenotes> it works on GCC if I #include <stdio.h>
15:25:57 <fizzie> Based on a hg clone, it does: #include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <sys/types.h>\n#include <unistd.h>\nint main(int argc, char **argv) { <code from IRC> ; return 0; }
15:26:22 <ehird> fizzie: no, not if you declare things
15:26:22 <ehird> I think
15:26:31 <fizzie> I didn't see any code related to that, but I might've missed.
15:26:38 <ehird> hmmmmmmm
15:26:41 <ehird> GregorR!
15:26:59 <fizzie> !c struct { int omg; } destruction = { 4 }; printf("%d\n", destruction.omg); fflush(stdout)
15:27:04 <fizzie> Well, that's a no-go too.
15:27:40 <Gracenotes> some errors would be nice ;_;
15:27:52 <ehird> i'm sure it did
15:28:04 <Gracenotes> !c #include <stdio.h>\n typedef struct { int omg; } WHAT_YOU_SAY; int main() { WHAT_YOU_SAY destruction = { 4}; printf("%d\n", destruction.omg); return 0; }
15:28:12 <Gracenotes> DO NOT WANT!!
15:28:33 <tombom> !perl print "welp";
15:28:42 <tombom> THIS BOT IS NOT VERY GOOD
15:28:47 <ehird> it's broken
15:28:52 <ehird> asiekierka probably borken it
15:28:55 <ehird> !perl print "welp\n";
15:30:27 <fizzie> ^ul (left)(one)(this)(have)(just)(we)(now)(~S( )S:^):^
15:30:27 <fungot> now we just have this one left ...out of stack!
15:30:33 <fizzie> (Terminating conditions are so boring.)
15:31:30 <ehird> how large is the stackattack?
15:31:52 <Gracenotes> anyone else watch Vampire Hunter D?
15:32:25 <fizzie> Fungot's ^ul stack is ffaa*** characters.
15:32:49 <fizzie> That's the misleading underflow message, though.
15:33:10 <AnMaster> hm
15:33:19 <fizzie> ^ul (::::)(~:*~:^):^
15:33:19 <fungot> ...too much stack!
15:33:43 <ehird> so 22500 chars
15:33:47 <ehird> fizzie: what's the separator?
15:33:52 <ehird> <?
15:33:54 <ehird> '?
15:33:55 <ehird> "?
15:33:57 <ehird> )?
15:34:00 <ehird> \0
15:34:01 <ehird> ?
15:34:06 <fizzie> \0, I think.
15:34:09 <Gracenotes> ......................................................................................................................................................
15:34:18 <AnMaster> what would be a good name for an optimiser pass for bf that changes: add, move pointer, add into: add, add offset 1, move pointer
15:34:19 <AnMaster> ?
15:34:31 <ehird> umm
15:34:35 <ehird> that's nothing special
15:34:42 <ehird> but
15:34:44 <fizzie> ehird: Actually "\0, I'm sure", since I use STRN's G/P to manipulate, and that does nul-terminated.
15:34:45 <ehird> bf2c.hs calls it
15:34:54 <AnMaster> the phrase "store motion pass" pops up but probably isn't relevant.
15:35:19 <ehird> AnMaster: "combine Move-s along the program by pushing them to the end"
15:35:21 <ehird> you're welcom
15:35:21 <ehird> e
15:35:27 <ehird> i'd call it move shifting
15:35:30 <AnMaster> ehird, and I never said it was special. I just need a short snappy name.
15:35:34 <AnMaster> ah shifting works
15:35:35 <ehird> fizzie: including the I'm sure?
15:35:42 <ehird> AnMaster: so (define (shift-moves ...
15:35:50 <fizzie> ehird: Yes. It's like Perl's "0 but true".
15:35:58 <AnMaster> ehird, um. I'm not working on after. I'm working on in-between
15:36:00 <AnMaster> atm
15:36:21 <ehird> fizzie: does it accept \0s over irc?
15:36:22 <ehird> >:)
15:36:39 <fizzie> You can't send \0s over IRC; it's disallowed by the protocol.
15:36:46 <fizzie> Well, I'm not sure how true that is in practice.
15:36:58 <ehird> i'd bloody well find out, except...
15:37:04 <ehird> i forget the key combination
15:37:21 <AnMaster> fizzie, I'm pretty sure it is true
15:37:21 <asiekierka> ...hey, did i just break EgoBot
15:37:22 <asiekierka> !help
15:37:22 <EgoBot> Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg
15:37:24 <ehird> ah, C-v C-S-2
15:37:27 <asiekierka> ...No, i didn't
15:37:28 <asiekierka> :(
15:37:31 <pikhq> !bf .++++++++++.
15:37:45 -!- fkjdskfdshjf has joined.
15:38:01 <fkjdskfdshjf> a
15:38:04 <ehird> darn
15:38:05 <ehird> that was a\0b
15:38:16 <ehird> just \0 said no text to send
15:41:07 -!- fkjdskfdshjf has quit (Remote closed the connection).
15:44:16 <upyr[emacs]> ^bf ,[>,]<[.<]!123
15:44:17 <fungot> 321
15:46:22 <upyr[emacs]> ^bf >++++++[<++++++++>-]>++[<+++++>-]<[<.+>-]
15:46:22 <fungot> 0123456789
15:47:29 <asiekierka> ^bf ,[>,]<[<.>.<<]!12345
15:47:29 <fungot> 4523
15:47:40 <asiekierka> ^bf ,[>,]<[<.>.<<]>[.]!12345
15:47:41 <fungot> 4523
15:47:42 <ehird> * Clang replacing GCC in the base system
15:47:44 <ehird> http://lists.freebsd.org/pipermail/freebsd-stable/2009-May/049873.html
15:47:44 <asiekierka> nah
15:47:49 <ehird> god, freebsd is looking hot
15:47:58 <ehird> jail(), clang ...
15:49:47 <upyr[emacs]> ^bf ++++++[>++++++++++<-]>++.<+++[>----------<-]>.[++++++++++>,----------]<[<]>[>.]!test
15:49:53 <fungot> > ...out of time!
15:52:12 <GregorR> * Clang replacing GCC in the base system // so everything is going to be compiled via LLVM? Interesting.
15:52:20 <ehird> GregorR: not everything
15:52:22 <ehird> just the base system
15:52:22 <GregorR> Even the kernel?
15:52:26 <ehird> user applications will still be gcc'd
15:52:29 <ehird> and I'm not sure about that
15:52:31 <GregorR> Is the kernel part of the base system? :P
15:52:32 <GregorR> Heh
15:52:38 <ehird> but base applications
15:52:41 <ehird> definitely
15:52:49 <GregorR> In my experience, compiling a kernel to a virtual machine is probably a fairly pointless task :P
15:52:55 <GregorR> So pcc is out then? ^^
15:52:56 <ehird> GregorR: LLVM fail.
15:52:59 <ehird> It isn't a virtual machine, really.
15:53:00 <tombom> what is clang
15:53:05 <tombom> why is it betrter thasn ghcc
15:53:08 <ehird> tombom: a c compiler
15:53:19 <ehird> and because it's faster, cleaner and bsd-licensed
15:53:22 <ehird> and because it builds on top of LLVM
15:53:29 <tombom> ah cool
15:53:33 <ehird> which is an intermediate "virtual machine" (notrly) that compiles to native code
15:53:42 <ehird> (it can also do JITting, so you can turn your compiler into a REPL etc)
15:53:46 <tombom> but doesn't gcc have better optimisations and stuff though
15:53:49 <ehird> that wouldn't work for the kernel ofc :p
15:53:57 <ehird> tombom: llvm's been developed by 2000 and is funded by Apple
15:54:01 <tombom> ahhhh
15:54:01 <ehird> it does advanced optimizations
15:54:03 <ehird> and so does clan
15:54:03 <ehird> g
15:54:08 <tombom> i hadn't realised it had been around so long
15:54:08 <ehird> although they're not totally production-ready yet
15:54:13 <tombom> cool
15:54:15 <ehird> e.g. clang's c++ support isn't really ready
15:54:35 <ehird> yeah, it will be cool
15:54:52 <ehird> well, apple does more than fund, really; it's practically Apple's project
15:55:02 <ehird> due to a lot of Apple-employed developers
15:55:05 <ehird> it's still technically independent though
15:55:08 -!- FireFly has joined.
15:55:21 <ehird> hmm apparently apple started the clang projec
15:55:21 <ehird> t
15:55:33 <ehird> that'd explain the objective-c support
15:56:03 <ehird> tombom: there's also gcc-llvm
15:56:10 <ehird> which is gcc's frontend + llvm's backend; that should be pretty much rock solid
15:56:18 <ehird> although you get a lot of the disadvantages of gcc
15:56:37 <tombom> what are the disadvantages of gcc actually
15:57:21 <ehird> (1) gcc's code sucks (2) so does its architecture (3) it's not all that fast optimizations-wise (4) GPL (5) apparently the team can be hard to work with; don't quote me on this
15:57:38 <ehird> (6) tries to compile every language on the planet; this leads to mediocrity
15:58:01 <ehird> tombom: apparently clang's error messages are miles better too
15:58:02 <tombom> heh, that's reasonable
15:58:10 <ehird> http://clang.llvm.org/diagnostics.html
15:58:25 <ehird> looks nice, I didn't realise it was THAT good
15:59:08 <ehird> $ clang -fsyntax-only t.cpp
15:59:08 <ehird> t.cpp:12:7: error: incompatible type assigning 'vector<Real>', expected 'std::string' (aka 'class std::basic_string<char>')
15:59:11 <ehird> str = vec;
15:59:13 <ehird> ^ ~~~
15:59:21 <ehird> i thought there was some technical reason for awful c++/stl template errors
15:59:33 <ehird> i will now kill the g++ developers
16:01:26 <ehird> GregorR: The LLVM developers are very helpful fixing most of the bugs we've reported (over 100). Unfortunately we are currently blocked on some bug reports that prevent us from building libc, libm, libcrypto and various CDDL libraries with Clang but the FreeBSD kernel itself compiles and boots.
16:01:30 <ehird> so the kernel is built with it.
16:01:33 <ehird> hot
16:02:01 <GregorR> >_O
16:02:03 <GregorR> That's ... confusing.
16:02:09 <GregorR> Doesn't it need to have a little bit of inline asm?
16:02:18 <ehird> GregorR: Maybe it does?
16:02:23 <ehird> Nothin' wrong with that.
16:02:27 <ehird> GregorR: Protip: LLVM is not a "virtual machine"
16:02:30 <ehird> It's not a VM as such
16:02:34 <ehird> It's just a generic architechture
16:02:42 <ehird> It still has plenty of machine-code like things
16:02:44 <ehird> It's close to the machine
16:02:51 <GregorR> Right ... a generic architecture with its own assembly code variant ...
16:02:56 <ehird> GregorR: Also, you can always compile the .s's separately
16:02:56 <GregorR> So i386 assembly code is presumably no go ....
16:02:59 <ehird> and call into them from .c
16:03:00 <GregorR> 'struth.
16:03:01 <ehird> and who said that?
16:03:04 <ehird> that's silly
16:03:09 <ehird> it'll just only work on x86
16:03:49 <ehird> http://wiki.freebsd.org/BuildingFreeBSDWithClang ← Yep, it does inline asm just fine
16:04:29 <GregorR> Huh
16:05:31 <ehird> GregorR: http://www.llvm.org/docs/LangRef.html#inlineasm
16:05:40 <ehird> THE MOAR YAU NAEO
16:05:57 <ehird> wait
16:06:01 <ehird> that's referring to llvm asm
16:06:02 <ehird> hrm
16:06:08 <ehird> Oh whatever :P
16:06:46 <GregorR> I was gonna say, seeing as that bswap is a link to one of their pages :P
16:07:29 <asiekierka> yay, the "print" procedure of Codename CELF is done
16:07:38 <asiekierka> as is putc and clrscr
16:07:44 <asiekierka> now gotoxy :P
16:08:40 <ehird> asiekierka: celf?
16:09:10 <Slereah> There should be a language based on n-tuples of niggers.
16:09:21 <ehird> Er.
16:09:22 <ehird> Or not.
16:09:24 <GregorR> .....................
16:09:30 <ehird> ...
16:09:48 * ehird hands Slereah the "Can't Think Of Anything To Say" medal
16:10:41 <ehird> "Clever presentation, but a weak database: The soon-to-be-launched Wolfram Alpha search engine is already being touted as the "Google killer." SPIEGEL ONLINE has tested a preliminary version. The conclusion: It knows a lot about aspirin, a little about culture -- and it thinks German Chancellor Angela Merkel's political party is an airport. "
16:10:45 <asiekierka> ehird: Codename CELF? It's my C64 pseudo-shell/OS
16:10:48 <ehird> It isn't‽‽‽‽‽‽‽‽‽
16:10:48 <ehird> http://www.spiegel.de/international/zeitgeist/0,1518,624065,00.html
16:10:50 <asiekierka> Progressing slowly but nicely
16:10:57 <ehird> asiekierka: in asm I assume?
16:11:16 <asiekierka> yup
16:11:28 <ehird> Nice.
16:11:29 <asiekierka> if I did it in C it would probably be up to loading a few drivers :DDD
16:11:31 <ehird> Try and avoid spaghetti :-P
16:11:41 <asiekierka> ehird: Oh, I forgot about comments
16:11:43 <asiekierka> I should add some
16:11:50 <asiekierka> to the ones that aren't quick to understand
16:11:52 <ehird> asiekierka: Meh, just make sure you don't splutter over memory and registers :P
16:11:58 <asiekierka> ehird: Making sure of it
16:12:01 <ehird> asiekierka: How are you gonna handle memory allocation?
16:12:05 <asiekierka> ehird: Not sure yet
16:12:11 <asiekierka> Probably a list
16:12:13 <ehird> You only have 64K, so that will be challenging
16:12:16 <asiekierka> ehird: Yup
16:12:23 <ehird> asiekierka: The list will take up a good amount of memory, though
16:12:28 <asiekierka> ehird: Yup too
16:12:34 <ehird> Maybe a slab allocator, asiekierka?
16:12:34 <asiekierka> I plan to make it as small as possible
16:12:37 <asiekierka> ehird: slab?
16:12:45 <ehird> http://en.wikipedia.org/wiki/Slab_allocator
16:12:49 <ehird> it should conserve memory
16:12:49 <asiekierka> looking at it
16:12:55 <ehird> and also the list size
16:13:26 <asiekierka> Well, I will allocate the space of... $2000-$9000 to programs
16:13:32 <ehird> That's not much at all.
16:13:43 <asiekierka> 28KB
16:13:43 <ehird> I'd give almost all the memory to programs, and golf the kernel's data space.
16:13:52 <ehird> I bet you could give the programs 50K
16:13:53 <asiekierka> ehird: I can add a little more though
16:14:01 <asiekierka> the kernel already has space from $0800-$2000
16:14:08 <ehird> hmm
16:14:09 <asiekierka> which is 6KB
16:14:14 <asiekierka> and there is extra space left
16:14:24 <ehird> asiekierka: Challenge: give the programs 56K or more.
16:14:29 <asiekierka> ehird: Unpossible
16:14:33 <ehird> You sure?
16:14:35 <asiekierka> Because 8KB is taken up by the kernal
16:14:41 <ehird> Yes...
16:14:44 <asiekierka> and raw accessing of stuff via drivers will probably take more
16:14:44 <ehird> And the rest is for programs.
16:14:50 <asiekierka> ehird: What about the kernel? O_O
16:14:55 <ehird> asiekierka: It gets 8K.
16:15:03 <asiekierka> the KERNAL is not the kernel
16:15:05 <GregorR> the clang driver uses gcc for assembling and linking, we need to write FreeBSD ccc "hostinfo" so it can use as(1) and ld(1) directly (in progress).
16:15:06 <ehird> Oh.
16:15:07 <GregorR> lawl
16:15:07 <pikhq> asiekierka, you should totally do this on x86.
16:15:08 <asiekierka> the KERNAL is like a BIOS
16:15:19 <asiekierka> i'm already turning off the BASIC rom full of crap
16:15:23 <asiekierka> which gives me +8kb
16:15:27 <ehird> asiekierka: hmm, okay, the kernel takes 8k
16:15:30 <pikhq> GregorR, why can't it just always use as and ld?
16:15:30 <ehird> err
16:15:31 <ehird> kernal
16:15:37 <ehird> then the kernel/drivers take 8K
16:15:38 <asiekierka> then there's a bunch of space for memory-mapped registery
16:15:41 <ehird> that should be more than enough
16:15:42 <pikhq> I'm pretty sure that all GCC does is... Call as and ld. ;)
16:15:45 <asiekierka> $D000-$FFFF i think
16:15:46 <ehird> and gives the programs about 48K
16:15:47 <GregorR> pikhq: All as-es and ld's have different syntaxes.
16:15:54 <GregorR> pikhq: Whereas GCC has the same syntax on every platform.
16:15:55 <ehird> asiekierka: a bit less than 48K should be doable
16:15:57 <pikhq> *Really*?
16:16:00 <pikhq> That is crazy.
16:16:05 <GregorR> ........... you didn't know that? :P
16:16:19 <pikhq> I figured they'd at least standardise on command-line syntax.
16:16:22 <asiekierka> $0000-0800 is used by the screen/kernel
16:16:24 <GregorR> Hell, all ccs have different syntaxes, you're lucky to get "-c" and "-o" to mean the same thing.
16:16:24 <ehird> pikhq: nope
16:16:31 <ehird> it's binary format specifci a lot of the time
16:16:31 <asiekierka> $0800-$BFFF is free
16:16:32 <ehird> *specific
16:16:35 <pikhq> I don't go outside of GNU-land much.
16:16:39 <asiekierka> then there's $C000-$CFFF, free again
16:16:43 <asiekierka> then there's no more left
16:16:46 <GregorR> pikhq: None of us do ;)
16:16:47 <ehird> asiekierka: how much does that get you?
16:16:52 <ehird> GregorR: I do.
16:16:54 <pikhq> For good reason.
16:16:56 <ehird> BSD kernel and userland!
16:16:57 <asiekierka> ~50KB
16:17:01 <asiekierka> so I think 40KB is doable
16:17:07 <asiekierka> allocating 10kb for kernel/drivers
16:17:10 <pikhq> ehird, that's aboust as far out of GNU-land as anyone sane goes.
16:17:12 <ehird> asiekierka: yep, should do
16:17:14 <GregorR> ehird: I will now mark all sarcastic lines with the tag [SARCASM] to remain clear [SARCASM]
16:17:23 <pikhq> Because BSD userland, though a tiny bit different, is at least *sane*.
16:17:24 <asiekierka> remember I also plan to have a "vector map", so drivers can make their own ways of doing stuff
16:17:27 <ehird> pikhq: it predates gnu-land, so it's pretty away.
16:17:27 <asiekierka> like, hack "putc"
16:17:38 <ehird> asiekierka: if your kernel turns out to use less in practice - say 8K - the programs can get more too
16:17:42 <asiekierka> ehird: Yeah
16:17:43 <GregorR> It predates GNU-land, so it's pretty primitive >_>
16:17:43 <ehird> GregorR: i know
16:17:48 <GregorR> Better than Solaris though.
16:17:48 <ehird> pfft
16:17:49 <asiekierka> but i also allocate this space for the maps
16:17:52 <ehird> it's not primitive
16:17:53 <ehird> it's just minimalist
16:18:03 <GregorR> Finefine.
16:18:09 <pikhq> GregorR: BSD userland has the advantage of implementing that primitive stuff well.
16:18:11 <asiekierka> my "variable map" starts at $0880
16:18:13 <GregorR> If there's one thing the GNU userland is not, it's minimalistic.
16:18:17 <asiekierka> it has all the vars and maps and stuff
16:18:18 <pikhq> Making it better than every other authentic UNIX.
16:18:20 <pikhq> ;)
16:18:23 <asiekierka> then comes the kernel (after .align $10)
16:18:27 <ehird> asiekierka: why do you have a notion of variables in asm?
16:18:38 <asiekierka> ehird: well, text_x: .byte 0
16:18:40 <asiekierka> text_y .byte 0
16:18:42 <pikhq> ehird: Asm itself does.
16:18:43 <ehird> ah.
16:18:44 <asiekierka> and text_c .byte 0
16:18:45 <GregorR> pikhq: Solaris is solid as a rock. The rock it will proceed to beat you over the head with if you're stupid enough to use it.
16:18:47 <ehird> pikhq: well, sure
16:18:50 <asiekierka> so I don't have spaghetti running all over
16:18:53 <ehird> solaris makes me want to vomit
16:19:01 <asiekierka> instead of $0880, i have text_x, etc.
16:19:02 <ehird> asiekierka: i take back what i said about you not being able to code
16:19:11 <pikhq> GregorR: Solaris does have one saving grace.
16:19:12 <asiekierka> ehird: I can send you the ASM code if you still don't believe i can code
16:19:13 <asiekierka> :D
16:19:18 <ehird> Sure :p
16:19:20 <asiekierka> ok
16:19:20 <pikhq> Its userland is sufficient for installing a GNU one.
16:19:25 <GregorR> I'm surprised they haven't just replaced the userland with GNU in interactive shells :P
16:19:30 <pikhq> And you can install it with just a GNU userland these days. ;)
16:19:37 <GregorR> Whaaaa? You can?
16:19:44 <pikhq> OpenSolaris distros.
16:19:45 <GregorR> Oh, are you referring to Nexenta?
16:19:46 <pikhq> ;p
16:19:47 <GregorR> Ah
16:19:47 <GregorR> :P
16:19:50 <pikhq> Yeah.
16:20:13 <GregorR> Ever since Linux got the CFS, Solaris has no appreciable advantage.
16:20:18 <ehird> asiekierka: i don't understand a thing about the code but it looks good
16:20:25 <ehird> GregorR: One word. Zfs.
16:20:27 <pikhq> http://www.dailycupoftech.com/2009/05/04/the-geek-must-do-before-you-die-checklist/ This is a... Lame list.
16:20:38 <GregorR> God people go humpfest over ZFS.
16:20:41 <ehird> add a third monitor?
16:20:42 <ehird> lol.
16:20:45 <ehird> GregorR: dtrace
16:20:53 <ehird> anyone with >1 monitor is stupid ← generalization
16:20:57 <pikhq> ehird: That was the first thing ported to Linux.
16:21:08 <ehird> Build a Linux Firewall? WHY.
16:21:10 <pikhq> ehird: I've got two monitors.
16:21:19 <GregorR> pikhq: Wow, that is a lame list.
16:21:20 <ehird> I have a perfectly good firewall! It even runs Linux.
16:21:22 <pikhq> The second one is attached to my firewall/outer.
16:21:24 <Asztal> I have two too
16:21:30 <GregorR> "Carry a Computer Cleaning Arsenal on Your USB Drive" // only if you use lame-OS
16:21:30 <Asztal> and a tutu too
16:21:35 <ehird> LOL
16:21:35 <ehird> LOL
16:21:37 <ehird> LOL
16:21:39 <ehird> LOL
16:21:41 <ehird> LOL
16:21:43 <ehird> LOL
16:21:45 <ehird> Build an HTML based Website using Notepad
16:21:47 <ehird> ahahahahahhah
16:21:50 <pikhq> Wow.
16:22:00 <ehird> "Bypass a Computer Password on All Major Operating Systems"
16:22:03 <ehird> good luck doing that on a bsd
16:22:14 <pikhq> I did that... For my Geoshitties site before they got bought out by Yahoo!.
16:22:19 <ehird> "Convert Cassette Tapes to Digital Audio Files"
16:22:28 <ehird> "Crack a Wi-Fi Password" ← WPA2 Personal, bitch.
16:22:29 <pikhq> ehird: Yeah, seriously. *Really* good luck doing that on OpenBSD.
16:22:34 <tombom> [16:21:45] (ehird): Build an HTML based Website using Notepad
16:22:36 <tombom> ahahahahahaha
16:22:43 <pikhq> "Compile a Linux kernel".
16:22:44 <ehird> "Create a Disposable E-Mail Account"
16:22:45 <pikhq> ... I was 12.
16:22:46 <asiekierka> ehird: Make a C64 OS in 1 second
16:22:46 <ehird> If you die without doing this
16:22:48 <ehird> YOU HAVE FAILED LIFE
16:22:51 <pikhq> And had been using Slackware for 2 weeks.
16:22:51 <asiekierka> that should be there
16:22:55 <ehird> asiekierka: don
16:22:55 <ehird> e
16:22:59 <asiekierka> oh, wait
16:23:03 <asiekierka> forgot to tell ya
16:23:11 <asiekierka> the thing that I sent is nowhere near an OS
16:23:12 <pikhq> "Execute a shell script."
16:23:14 <pikhq> ...
16:23:16 <ehird> asiekierka: i guessed
16:23:18 -!- MigoMipo has joined.
16:23:18 <ehird> "Create a WordPress Plugin"
16:23:21 <ehird> WORDPRESS?!
16:23:24 <ehird> What a crock of shit.
16:23:32 <pikhq> I did that a tiny bit *before* I had installed Linux for the first time.
16:23:35 <ehird> "Create Music with Keyboard"
16:23:40 <pikhq> (guess what Slackware's installer is)
16:23:49 <ehird> "Download a Video from YouTube"
16:23:52 <ehird> and it links to an automated shitsite to do that
16:23:56 <tombom> "Create Music with Keyboard"
16:24:00 <tombom> i guessed this was a joke
16:24:01 <ehird> tombom: beat you to it
16:24:02 <tombom> but no
16:24:04 <tombom> what
16:24:09 <tombom> this is horrible
16:24:10 <GregorR> Wow this list is lame.
16:24:11 <ehird> "Download Wikipedia"
16:24:16 <ehird> ...Including images.
16:24:25 <pikhq> "Learn the fastest way to kill a computer."
16:24:32 * pikhq brings out the Etherkiller.
16:24:33 <pikhq> :D
16:24:43 <GregorR> pikhq: Open this list, making you so pissed off you literally beat the shit out of it.
16:25:03 <ehird> :-D
16:25:05 <GregorR> (Computers totally have shit)
16:25:08 <tombom> 39.Know Who Mulder and Scully Arehttp://en.wikipedia.org/wiki/Mulder_and_Scully_(song)
16:25:13 <ehird> "Find a Website IP Address Without Web/CommandPrompt Access"
16:25:13 <tombom> goddamn
16:25:17 <ehird> tombom: :DDDDDD
16:25:24 <ehird> this is the hilariestest thing ever
16:25:35 <ehird> Irrecoverably Protect Datahttp://www.truecrypt.org/
16:25:39 <ehird> irrecoverably
16:25:45 <ehird> encrypt = const 0
16:26:01 <tombom> ha
16:26:22 <ehird> Make Your Office Ergonomic
16:26:26 <ehird> Permanently Delete Data on a Hard Drive
16:26:29 <ehird> dd if=/dev/zero
16:26:33 <ehird> Permanently Delete Your Facebook Account
16:26:35 <ehird> now THAT i agree with
16:26:35 <ehird> Permanently Delete Your Facebook Account
16:26:36 <ehird> Permanently Delete Your Facebook Account
16:26:38 <ehird> Permanently Delete Your Facebook Account
16:26:40 <ehird> ~end of list~
16:26:49 <tombom> i was just going to mention that
16:26:56 <ehird> "Read 1337 At Normal Speed"
16:27:10 <ehird> "Recover Deleted Files" i like how this comes after telling you to remove them irreversably
16:27:31 <tombom> 50% of them are really pathetic and the other 50% are things nobody should care about
16:27:52 <tombom> "Upload a Video to YouTube"
16:27:56 <ehird> :D
16:28:08 <ehird> "Run Multiple Computers with one Keyboard and Mouse"
16:28:19 <GregorR> Apparently I can't be a Geek 2.0 because I can't wear a leather wristband (wtf)
16:28:24 <ehird> "Setup a Computer in the Cloud"
16:28:25 <tombom> 99.Use Bittorrent Effectivelyhttp://infinitium.blogspot.com/2005/03/js-essential-howto-guide-bittorrent.html
16:28:27 <ehird> THE CLOUD OF CLOUDNESS
16:28:31 <ehird> IT'S LIKE CLOUDS
16:28:39 <tombom> web 4.0
16:28:47 <ehird> web/cloud 9.0
16:28:48 <ehird> geddit
16:29:02 <GregorR> Web 2.6.29
16:29:10 <ehird> "Survive in a Linux Argument"
16:29:15 <ehird> Most people die when arguing about Linux.
16:29:24 <ehird> lol, it links to the old shitfest linux.com
16:29:58 <tombom> i like how it's all computer related stuff and then blam
16:30:01 <tombom> "Learn How to Hot Wire a Car"
16:30:16 <GregorR> tombom: Nowadays, that's computer related stuff ;)
16:30:58 <ehird> "Understand What “There’s no Place Like″ Means"
16:31:06 <ehird> "Unbrick a Smartphone"
16:31:10 <ehird> RETARDS
16:31:14 <ehird> "Use a Camera in Manual Mode"
16:31:34 <ehird> http://www.dailycupoftech.com/wp-content/uploads/2009/05/geek2.gif
16:31:43 <ehird> Geek 1.0: Person who doesn't care about societal norms
16:31:47 <ehird> Geek 2.0: Douchebaggius maximus
16:31:52 <tombom> pretty much
16:32:00 <GregorR> Hah, exactly
16:32:13 <GregorR> And I can't accomplish that because I can't wear the leather wristband!
16:32:19 <GregorR> And besides that, I wear my phone on my wrist.
16:32:27 <tombom> why not
16:32:40 <tombom> well apart from the fact it makes you look like a pillock
16:33:04 <GregorR> I'm allergic to leather.
16:33:14 <tombom> :o ah
16:33:22 <GregorR> So pillock + welts all over my arm = an interesting look :P
16:33:46 <tombom> it's unique, at least
16:33:50 <pikhq> ... "Use a camera in manual mode"...
16:34:02 <pikhq> I didn't know using an SLR was hard.
16:34:02 <pikhq> Or geeky.
16:34:16 <GregorR> pikhq: BOW DOWN BEFORE TECHNOLOGY :P
16:34:27 * pikhq beats GregorR with his SLR
16:34:42 * pikhq then hits the darkroom to see what interesting shots were made from the above process
16:35:07 <GregorR> You have an ANALOG camera? D-8
16:35:43 <pikhq> I also possess a digital SLR.
16:36:11 <GregorR> <pikhq> I also possess a digital SLURPY.
16:36:18 <GregorR> (And with that, I disapperate)
16:37:50 <pikhq> And the image below the list...
16:38:31 <pikhq> Y'know, D&D is still a somewhat common geek pastime...
16:38:34 <AnMaster> hm
16:39:00 <AnMaster> running the optimiser passes recursively until nothing changes might not have been the best possible idea...
16:39:19 <pikhq> LMAO
16:39:39 <AnMaster> I think it ran all the passes around 50 times or so for lostkingBF
16:39:47 <pikhq> Damn.
16:40:09 <pikhq> And what sort of improvement did you make for Lost Kingdom?
16:40:12 <AnMaster> without the shifting pass it just makes 5 passes
16:40:32 <AnMaster> pikhq, esotope-bfc is the best compiler currently. Mine is doing basic stuff
16:40:40 <pikhq> Hmm.
16:40:53 <pikhq> I thought that you were producing optimised Brainfuck, BTW. ;)
16:41:13 <AnMaster> in this case the pass was changing "add > add" into "add add:offset=1 >"
16:41:24 <AnMaster> as well as sorting by offset
16:42:08 <AnMaster> to allow more combining for stuff like ++>-<+, with the offset thing you would get add:2 add:-1:offset:1 add:1
16:42:27 <AnMaster> but then it also sorts it so the combiner pass can combine the first and the last add
16:42:50 <AnMaster> pikhq, and I am. Just not aiming for the level that esotope-bfc is on
16:43:22 <pikhq> There's a limited amount of stuff that you can optimise in Brainfuck when you're outputting Brainfuck.
16:43:23 <AnMaster> since it can optimise that hello world program on the wiki into a single PUTS("Hello, World!");
16:43:26 <AnMaster> without special casing
16:43:39 <pikhq> So I assume the fanciest thing you can do is dead-code elimination.
16:43:41 <AnMaster> pikhq, I'm not outputting BF
16:43:51 <AnMaster> I'm output-agnostic
16:43:54 <pikhq> "Producing optimised Brainfuck"
16:43:54 <AnMaster> so far I have a C backend
16:44:03 <AnMaster> but you could write a BF one too
16:44:09 <pikhq> Oh, so you're setting it up so you can *have* a Brainfuck backend.
16:44:12 <pikhq> Gotcha.
16:44:32 <AnMaster> pikhq, in fact I'm setting it up so I can have a Erlang backend, a Scheme backend, a C backend and possibly a BF backend.
16:44:36 <AnMaster> plus a lot of other ones
16:44:49 <AnMaster> and I'm doing semi-plugin-like optimiser
16:44:58 <AnMaster> each pass is in a separate module
16:45:29 <AnMaster> the main optimiser routine has a list of optimiser modules (could be changed to enumerate them on the file system I guess), and calls them
16:45:53 * pikhq checks out esotope-bfc
16:45:54 <AnMaster> and after calling all once it checks if the parse tree is the same or not, if not it runs them all again
16:46:28 <AnMaster> pikhq, http://rafb.net/p/ZilcqJ72.html
16:47:02 <AnMaster> ib_opt_cleanup is rather silly. It handles the "add 0" sometimes produced by the combiner
16:47:11 <AnMaster> like +- will result in "add 0" :D
16:47:28 <AnMaster> probably no real BF code contains that.
16:48:20 <AnMaster> "real" meaning "not a test suite for an optimiser, and not written by an idiot, and not auto generated by !bf_txtgen".
16:48:29 <AnMaster> !bf_txtgen foo
16:48:32 <pikhq> Some generated BF code contains it...
16:48:35 <EgoBot> 49 ++++++++++[>++++++++++>+>><<<<-]>++.+++++++++..>. [239]
16:48:40 <AnMaster> that contains >><<
16:48:52 <pikhq> PEBBLE generated code could generate it, except that I have an optimising pass.
16:48:54 <AnMaster> though in that case the other <<< would swallow that move 0
16:48:59 <pikhq> Which eliminates dead code. :)
16:49:18 <AnMaster> err the other <<
16:49:19 <AnMaster> rather
16:50:03 <AnMaster> hm, might be interesting to add a BF backend in fact. See how much better it makes LostKingBF
16:50:15 <AnMaster> however it would be kind of a pain
16:50:17 <pikhq> Yeah.
16:50:34 <AnMaster> since the initial "add" at start of the program will get turned into "set" in my next pass
16:50:46 <AnMaster> since memory starts out as 0
16:51:17 <AnMaster> then that backend needs to change [-]+ into "+" for example at start of program
16:51:26 <AnMaster> hm
16:51:44 <AnMaster> I'm not sure what is the best way to handle "assume 0 at start of program"
16:52:07 <AnMaster> I mean, I need to keep track of somehow of balanced loops near the start and so on
16:52:14 <AnMaster> tracking values of cells as far as possible
16:53:09 <AnMaster> maybe I should have a loop analyser pass that somehow marks loops as balanced...
17:00:12 <pikhq> Well, seems that esotope-bfc doesn't fully handle string optimisation right...
17:00:19 <pikhq> There's a lot of PUTCs in LostKng.
17:00:45 <asiekierka> PUTC?
17:00:46 <asiekierka> oh
17:00:48 <asiekierka> Put Char
17:01:52 <pikhq> *Oh*. Because when it gets to the things it PUTCs, it isn't sure of the value of the cell.
17:01:55 <pikhq> ;)
17:02:59 <AnMaster> pikhq, It isn't always possible to figure that out
17:03:07 <AnMaster> consider ,[.,] for example :P
17:05:20 <pikhq> bYeah.
17:06:15 <Asztal> you should compile that into a symlink to cat
17:06:41 <GregorR> Hah :P
17:06:47 -!- ais523 has joined.
17:06:52 <GregorR> Except that cat will happily cat things that contain nulls.
17:06:56 <GregorR> Whereas that will fail.
17:07:07 <ais523> nulls are tasty
17:07:11 <ais523> if you're a feline, anyway
17:09:33 <AnMaster> heh
17:10:00 <AnMaster> Asztal, doing that would be insane AND incorrect as GregorR showed.
17:10:04 <AnMaster> [Opt] Did 75 passes in total.
17:10:07 <AnMaster> not 50
17:10:10 <AnMaster> I underestimated
17:10:12 <AnMaster> pikhq, ^
17:10:33 <pikhq> Heh.
17:10:50 * AnMaster tries rearranging the passes to see if it helps to have the set pass first
17:11:07 <AnMaster> nop. still 75 passes
17:11:52 <AnMaster> however, it was a bit faster.
17:12:06 <AnMaster> I guess it was due to less loops to descend in.
17:12:55 <ehird> Public service announcement: asiekierka can in fact code.
17:13:05 <AnMaster> ehird, [citation needed]
17:13:32 <ehird> AnMaster: I'm talking with him about a (non-cooperative) multitasking OS for the c64.
17:13:42 <ehird> And he's written a bit of c64 asm for it.
17:13:49 <AnMaster> ehird, "a bit"
17:13:53 <AnMaster> how much of it?
17:14:16 <asiekierka> AnMaster: divmod, putc, puts, gotoxy, and a simple "main" routine
17:14:16 <ehird> AnMaster: It has enough to print "hello world" to the screen; which is a lot considering the fussy C64 graphics memory.
17:14:23 <AnMaster> um
17:14:27 <asiekierka> well
17:14:29 <AnMaster> asiekierka, what about the multi-tasking bit?
17:14:29 <ehird> And he's figured out how to do multitasking.
17:14:30 <asiekierka> there's text mode
17:14:32 <asiekierka> which is not fussy
17:14:37 <ehird> AnMaster: he hasn't written it yet
17:14:43 <ehird> we're still discussing how best to copy the stack etc
17:14:44 <asiekierka> AnMaster: I can't even run a SINGLE PROCESS
17:14:48 <asiekierka> let alone MULTIPLE
17:14:56 <AnMaster> asiekierka, that was what I expected!
17:15:02 <asiekierka> well
17:15:06 <asiekierka> i'm too early in the stage
17:15:30 <asiekierka> Also, I sometimes utilize a little bit of self-modifying code
17:15:32 <ehird> AnMaster: you're being a jerk
17:15:34 <asiekierka> for example, to input addresses
17:15:47 <ehird> you just started writing an OS and it can't run multiple processes on a 1mhz computer with 64k of ram and no multitasking support?
17:15:47 <pikhq> gcc -OS optimised LostKng is 624K...
17:15:49 <ehird> HA! you can't code!
17:16:24 <asiekierka> well
17:16:24 * pikhq observes that multitasking is hard
17:16:34 <asiekierka> I started writing that OS and it has enough to input some text
17:16:36 <asiekierka> oh wait
17:16:40 <asiekierka> I forgot to do newlines!
17:16:43 <asiekierka> OH NOOOOOOOOOOOOOOOOO *dead*
17:16:47 <ehird> :p
17:16:52 <ehird> bsmntbombgirl: how goes your compy shippy
17:17:04 <asiekierka> augh
17:17:06 <ehird> 17:16 AnMaster: he knows how to program a bit yes. He just doesn't know HOW he should program to solve a specific issue. I remember him saying he couldn't implement DOBELA himself due to having no idea how to do a sparse array.
17:17:16 * ehird has full disclosure policy on /msgs :}
17:17:26 <asiekierka> well, I'm working in assembly
17:17:43 <ehird> asiekierka: i think ignoring AnMaster until he writes a multitasking OS for the c64 is a good policy
17:17:48 <AnMaster> ehird, see /msg
17:17:49 <ehird> 17:17 AnMaster: he is kind of like I was back when I coded in Pascal. I could code, but I didn't know how to code non-trivial stuff.
17:17:51 <asiekierka> Yup :P
17:17:54 <ehird> 17:17 GregorR: HA HA EHIRD IS A RETARD (full disclosure policy?)
17:18:01 <GregorR> Hmmmmmmmmm
17:18:02 <AnMaster> ehird, fine with you
17:18:03 <GregorR> I seeeeeeeeeeee
17:18:05 <AnMaster> with me*
17:18:10 <asiekierka> also, a newline would need to be a weird char
17:18:14 <tombom> i have that problem, how do i learn ebtter
17:18:14 <asiekierka> as chars 1-26 are text
17:18:22 <ehird> asiekierka: doesn't the c64 have graphical chars?
17:18:26 <asiekierka> yes it does
17:18:28 <pikhq> In other words, asiekierka should code more.
17:18:28 <asiekierka> but i want to use them
17:18:33 <ehird> asiekierka: what's char 0?
17:18:36 <pikhq> And possibly work on a CS degree.
17:18:40 <asiekierka> It's "@"
17:18:44 <ehird> hmmmmm
17:18:46 <GregorR> What a weird place to put @#
17:18:48 <GregorR> *@
17:18:48 <ehird> asiekierka: what's char 255
17:18:56 <AnMaster> anyway it isn't strange, you first learn how to write code. Then you learn HOW to program.
17:18:56 <pikhq> GregorR: C64. ;)
17:19:00 <AnMaster> they are different things
17:19:06 <asiekierka> chars 128-255 are reversed images of chars 0-127
17:19:08 <ehird> AnMaster: get off your high horse :)
17:19:16 <asiekierka> char 127 is
17:19:17 <ehird> asiekierka: what you're saying is, there's no space in a byte for a newline
17:19:17 <asiekierka> ##
17:19:19 <asiekierka> ##
17:19:19 <asiekierka> ##
17:19:20 <asiekierka> ##
17:19:29 <ehird> asiekierka: have newline be a separate procedure
17:19:33 <ehird> Puts("Hello, world!"); Newline
17:19:43 <AnMaster> ehird, just speaking out of own experience. For example would you say SICP is about how to write code, or how to program?
17:19:50 <AnMaster> I'd say it is about the latter.
17:19:53 <ehird> AnMaster: asiekierka can program
17:20:05 <AnMaster> ehird, yes. Better now than before.
17:20:07 <asiekierka> done
17:20:15 <asiekierka> the newline is ready
17:20:27 <asiekierka> it's pha, lda #$00, sta text_x, inc text_y, pla, rts
17:20:44 * pikhq observes that he needs more RAM...
17:20:52 <ehird> pikhq: asiekierka's working with 64k
17:20:52 <ehird> :p
17:20:55 <pikhq> When you start getting swap-bound compilation, you need more RAM.
17:20:58 * AnMaster wonders how large the generated BF for LostKing would be with NO optimisation.
17:20:58 <ais523> asiekierka: that reminds me of 6502 asm
17:21:03 <ehird> ais523: that's cuz it is
17:21:05 <ais523> ah
17:21:10 <pikhq> AnMaster: Huge.
17:21:10 <ehird> ais523: he's writing a multitasking OS for the C64
17:21:24 <GregorR> Isn't there already ... lunix or something.
17:21:32 <ehird> GregorR: Yeah
17:21:37 <pikhq> GregorR: And Contiki.
17:21:47 <AnMaster> pikhq, sure. But even with just combining ++ -- >>> and so on it is much less than the original program source.
17:21:50 <pikhq> Which has a per-process overhead measured in bytes.
17:21:53 <pikhq> ;)
17:21:57 <ehird> Still, I'm not sure anyone's done multitasking the way we have
17:21:59 <pikhq> AnMaster: Yesh.
17:22:10 <pikhq> ehird: That way being?
17:22:23 <GregorR> "Preemptive multitasking (up to 32 tasks, 7 priorities)" Do you need 7 priorities with a max of 32 tasks? :P
17:22:27 <ehird> pikhq: Set up a timer on a clock for 0.small seconds.
17:22:38 <ehird> pikhq: Then, when it sets off, find the process that's been ran the last
17:22:39 <ehird> as in
17:22:45 <ehird> the process that's had the longest time without executing
17:22:50 <ehird> to suspend a process, we do the pretty normal thing
17:22:53 <ehird> copy registers, copy stack
17:22:58 <ehird> and the obvious thing to resume
17:23:01 <AnMaster> the shift pass reduces it from 1.3 MB to 958K btw
17:23:03 <ehird> but I'm not sure the others use a timer
17:23:08 <pikhq> That's a rather normal multitasking method.
17:23:36 <ehird> on non-c64, sure
17:23:36 <asiekierka> well, I could program for LUnix
17:23:55 <pikhq> I don't think it's done often on a C64.
17:23:59 <ehird> exactly
17:24:03 <asiekierka> pikhq: Well, LUnix has multitasking
17:24:05 <asiekierka> and it has source
17:24:07 <pikhq> C64's timer does interrupts?
17:24:14 <asiekierka> pikhq: Yes
17:24:14 <ehird> not as much fun to read other OS's source
17:24:17 <asiekierka> well
17:24:21 <asiekierka> I just want to check it out
17:24:30 <pikhq> asiekierka: Contiki preempts whenever a process makes a blocking call.
17:24:31 <pikhq> ;)
17:24:33 <ehird> just don't copy any code; license issues.
17:24:38 <ehird> pikhq: see, that's lame
17:24:50 <pikhq> It's meant to run on microcontrollers.
17:24:52 <ehird> ours can multitask when it's doing scientific computation or whatever ;-)
17:24:55 <asiekierka> ehird: Dude, it's from 1997
17:25:06 <ehird> asiekierka: it's lame to copy other OS's code anyway :P
17:25:16 <ehird> long-term goal is multiple graphical apps running at once, although that'll be sloow
17:25:39 <pikhq> BTW, LostKng with gcc -O2 -m32 is 564K.
17:25:42 <AnMaster> pikhq, as well as timer?
17:25:47 <pikhq> That's a 60 kilobyte savings.
17:25:48 <AnMaster> pikhq, what optimiser
17:25:51 <AnMaster> :/
17:26:07 <pikhq> esotope-bfc.
17:26:07 <AnMaster> esotope?
17:26:08 <AnMaster> ah
17:26:22 <pikhq> s/-O2/-Os/...
17:26:26 <AnMaster> I haven't dared compiling the generated lostkingdom!
17:26:41 <tombom> what about -o3
17:26:45 <pikhq> It uses up quite a bit of RAM.
17:26:50 <AnMaster> tombom, then the output file is called 3
17:26:51 <AnMaster> :P
17:26:54 <pikhq> tombom: I don't have the RAM for that.
17:26:56 <ehird> -O3 runs forevr
17:26:58 <asiekierka> http://hld.c64.org/poldi/lunix/lunshots.html
17:26:59 <ehird> *forever
17:27:05 <ehird> on lostkng.b esotoped
17:27:09 <AnMaster> um. That wasn't what he said though
17:27:13 <AnMaster> he said -o3 not -O3
17:27:14 <AnMaster> :P
17:27:35 <tombom> clever
17:27:47 -!- BeholdMyGlory has joined.
17:27:56 <GregorR> ./3
17:28:46 <pikhq> Nice thing about this compiled LostKng...
17:28:51 <pikhq> strings does something!
17:29:02 <AnMaster> <asiekierka> http://hld.c64.org/poldi/lunix/lunshots.html <-- "comments"?
17:29:05 <ehird> pikhq: :-D
17:29:08 <asiekierka> i don't know
17:29:20 <ehird> AnMaster: french guy, I think
17:29:24 <ehird> it means "help"
17:29:25 <asiekierka> But I think i'm not exactly the person that should do an OS
17:29:31 <ehird> asiekierka: are you giving up on celf?
17:29:31 <ehird> :<
17:29:36 * ehird stab
17:29:39 <AnMaster> ehird, like "do you want help"?
17:29:40 <asiekierka> ehird: Probably not
17:29:42 <asiekierka> but it's hard!
17:29:44 <ehird> AnMaster: yes
17:29:48 <ehird> asiekierka: no shit sherlock :-P
17:29:51 <ehird> i may learn c64 asm.
17:30:17 <tombom> why
17:30:21 <ehird> to code on celf?
17:30:27 <AnMaster> pikhq, what is the size of the source for that lostking.
17:30:29 <AnMaster> the C source
17:31:00 <tombom> oh#
17:31:43 <pikhq> 684K.
17:32:00 <pikhq> Yeah, it's smaller than LostKng.b
17:32:02 <pikhq> ;)
17:32:14 <GregorR> Can has upx?
17:32:26 <pikhq> GregorR: Will install it.
17:35:20 <pikhq> ... Gentoo installs a binary package for upx.
17:35:23 <pikhq> *Why*?!?
17:35:37 <GregorR> Hm, UPX can pack but not unpack an already-compressed version of that linux kernel. That makes "sense"
17:35:46 * AnMaster ponders parallel code generator
17:36:08 <AnMaster> basically threads handling sub-trees + mapreduce
17:36:13 <AnMaster> simple, and boring
17:36:16 <GregorR> pikhq:
17:36:16 <GregorR> UPX uses the NRV compression library for compression services. A compatible but somewhat less efficient OpenSource implementation is available through the UCL compression library.
17:36:31 <GregorR> It must be supplying the proprietary (read: lame) NRV version instead of the UCL version.
17:36:40 <pikhq> Ah.
17:37:05 <pikhq> And, yeah, what UPX does to compress the Linux kernel is kinda interesting...
17:37:21 <pikhq> You see, the Linux kernel includes a decompression routine that a bootloader jumps to.
17:37:39 <pikhq> UPX decompresses the compressed bits, compresses them again, and inserts its own compression stub.
17:38:28 <pikhq> UPX'd, it's 48K.
17:38:30 <pikhq> *48K*.
17:38:35 <GregorR> Pretty.
17:41:19 <ehird> wow
17:41:21 <ehird> pikhq: is that slow?
17:41:27 <ehird> to run
17:41:30 <pikhq> Actually, lemme try upx --lzma --ultra-brute
17:41:31 <pikhq> ehird: No.
17:41:38 <ehird> so why isn't it standard
17:42:02 <pikhq> Because it has some disadvantages, like not sharing common segments in memory.
17:43:47 <pikhq> 44K if I use --lzma --ultra-brute.
17:44:03 <pikhq> And decompression time is not noticable.
17:45:40 * pikhq statically links it just for the hell of it; let's see how feasible it is to get LostKingdom on a floppy
17:45:56 <GregorR> UPX supports "TMT/Adam" as a binary format. So I looked it up and the UPX page says it's a Pascal compiler, and links to tmt.com for information. "TMT offers products for the taphole area at blast furnaces or reduction furnaces. Through the application of TMT measuring technology the blast furnace process can be optimized."
17:46:11 <ehird> :-D
17:46:19 <GregorR> Those blast furnaces are powered by Pascal.
17:47:19 <pikhq> ehird: With any luck, I should be able to run LostKingdom from a 5 1/4" floppy.
17:47:31 <GregorR> pikhq: On a C64?
17:47:31 <pikhq> (assuming the kernel itself is somewhat UPX-able. ;))
17:47:42 <pikhq> GregorR: No, that would take a bit more work.
17:47:56 <pikhq> Like compiling this to a C64 binary.
17:48:03 <pikhq> ... And having more than 64K RAM.
17:48:15 <pikhq> You see, UPX decompresses the whole thing to memory.
17:48:19 <asiekierka> pikhq: Does Lost Kingdom really use more than 30000 cells
17:48:28 <pikhq> asiekierka: No.
17:48:39 <asiekierka> you can use a 1581
17:48:40 <pikhq> The binary itself is more than 64K, though. ;)
17:48:44 <asiekierka> which has DD diskettes
17:48:48 <ehird> pikhq: just load the binary incrementally
17:48:52 <ehird> load one block, add code to load the next at the end
17:48:54 <ehird> jump
17:48:59 <pikhq> That involves more work.
17:49:04 <pikhq> Like I said.
17:49:12 <ehird> Well, yes.
17:49:29 <pikhq> I didn't say it was impossible; the C64 is a perfectly capable system, after all.
17:49:51 <pikhq> The binary would probably benefit from 16-bit pointers, though.
17:52:15 <asiekierka> you can use 16-bit pointers
17:52:18 <asiekierka> via self-modifying code
17:52:19 * pikhq wishes GCC would learn about this wonderful, wonderful function called "free()".
17:55:03 <ehird> pikhq: they use a gc
17:55:06 <ehird> boehm
17:56:28 <pikhq> ehird: And Boehm hates "free()".
17:56:44 <pikhq> Okay, statically linked, I've got LostKng at 232K.
17:56:52 <pikhq> glibc is freaking huge.
17:57:19 -!- oklodok has joined.
17:57:23 <ehird> pikhq: use uclibc
17:57:25 <ehird> ors th
17:57:51 <pikhq> If I had it available, I would.
17:57:52 <pikhq> *shrug*
17:58:46 <ehird> don't you have a package management system pikhq
18:02:30 <pikhq> Yes, but uclibc is not some easily-installed package.
18:03:04 <pikhq> You need to install an entire build chain for it...
18:03:06 <ehird> Why not?
18:03:15 <pikhq> Basically, you install a freaking cross-compiler.
18:03:16 * ehird shrug.
18:03:23 <ehird> Just use your current toolchain
18:03:32 <pikhq> But that doesn't work.
18:03:37 <ehird> heh
18:03:41 <ehird> use a different libc?
18:03:58 <ehird> pikhq: http://www.fefe.de/dietlibc/
18:04:01 <pikhq> My current toolchain produces pc-linux-gnu binaries.
18:04:16 <pikhq> To use uclibc, I would need to produce a pc-linux-uclibc toolchain.
18:04:23 <ehird> dietlibc!
18:04:38 <pikhq> Which cheats instead of making a pc-linux-dietlibc toolchain.
18:04:48 <pikhq> Said cheats are crufty and unreliable. ;)
18:04:59 <ehird> pikhq: yer just compiling lostkng!
18:05:20 * pikhq installs crossdev
18:05:48 <ehird> the dietlibc author is a kook, interestingly
18:06:06 <ehird> he worships djb (I suspect some homosexual undertones) and wrote this laughfest: http://www.fefe.de/nowindows/
18:06:13 <ehird> maybe I'll port all of his software to windows out of spite :)
18:08:53 <asiekierka> do it
18:10:55 <pikhq> Y'know, that's really, really dumb when you consider that there is ReactOS.
18:11:13 <pikhq> A free Windows implementation. ;)
18:11:39 <pikhq> Also, porting dietlibc to Solaris wouldn't help a nonfree software company any more.
18:12:00 <pikhq> Last I checked, Stallman recommended Solaris as an OS that only ships with free software. :p
18:15:53 <ehird> ahh, c64 asm is nice and simple
18:15:57 <ehird> three registers, A X Y
18:15:58 <fizzie> There's also "buildroot"; it quasi-automagically gets and builds a full uclibc cross-toolchain. (Well, when it works.)
18:16:04 <ehird> very risc
18:16:11 -!- oklodok has quit (Read error: 113 (No route to host)).
18:17:16 <pikhq> I think I'll stick with crossdev.
18:17:25 <pikhq> It's Gentoo's automagic cross-compiler-maker. ;)
18:18:52 <ehird> C64 called xor EOR
18:20:10 <pikhq> crossdev -t x86_64-pc-linux-uclibc.
18:20:11 <pikhq> :)
18:24:23 <AnMaster> Lost Kingdom is now down to 885K generated C code, from 956K in previous revision
18:25:11 <AnMaster> yay crossdev, it makes crosscompiling easy. Without crossdev it tends to be a major PITA.
18:27:14 * pikhq waits for his currently-running build to finish before running crossdev
18:33:26 <AnMaster> hm
18:33:37 <AnMaster> is [+>-<] always same as [->+<]
18:33:59 <ehird> yes..
18:34:07 <AnMaster> even if the non-index cell is set to a non-zero value. Right
18:34:41 <AnMaster> ehird, so then that can turn into p[1]+=p[0]; p[0]=0;
18:34:48 <ehird> yes...
18:35:02 <AnMaster> wouldn't it be -= for one and += for the other?
18:35:07 <AnMaster> or what am I confusing here
18:35:48 <AnMaster> ehird, ?
18:35:58 <ehird> umm what
18:36:07 <ehird> [->+<] is just
18:36:16 <ehird> p[0]--;p[1]++;
18:36:20 <ehird> and it conditions on p[0], so
18:36:27 <ehird> p[1]+=p[0];
18:36:30 <ehird> p[0]=0
18:36:32 <ehird> ;
18:36:32 <AnMaster> yes
18:36:33 <AnMaster> that is clear
18:36:44 <AnMaster> but what about the other one: [+>-<]
18:37:03 <AnMaster> that is p[0]++;p[1]--;
18:37:12 <ehird> p[0] += p[1]
18:37:13 <AnMaster> and condition is on p[0]
18:37:14 <ehird> p[1]=0
18:37:16 <ehird> oh
18:37:24 <AnMaster> err
18:37:25 <AnMaster> no
18:37:28 <ehird> AnMaster: err
18:37:33 <ehird> it's
18:37:36 <AnMaster> p[1] won't be 0
18:37:37 <ehird> p[0]=0
18:37:42 <ehird> p[1] = shit
18:37:47 <ehird> sorry, i'm confused atm
18:37:50 <AnMaster> um no
18:37:52 <AnMaster> you can reorder them
18:38:04 <AnMaster> to [>-<+]
18:38:15 <AnMaster> why is p[1] == shit hm..
18:38:23 <AnMaster> right
18:38:47 <fizzie> For [+>-<] you do p[1] -= (N-p[0]), which (modulo N) is probably p[1] += p[0] too.
18:38:58 <fizzie> Assuming wrapping cells, of course.
18:39:14 <ehird> yeah
18:39:18 <ehird> p[1]+=p[0];p[0]=0;
18:40:11 <AnMaster> fizzie, so they are the same with wrapping cells? right
18:40:12 <ehird> haha, this c64 emulator blurs the display to emulate a crt
18:41:03 <fizzie> Console emulators tend to have all kinds of "darken every second line to simulate TV scanlines" display options, too.
18:41:08 <ehird> it does that too
18:41:19 <fizzie> Is it vice or something else?
18:41:20 <ehird> very convincing
18:41:25 <ehird> yeah vice
18:41:28 <ehird> with PAL emulation turned on
18:41:31 <ehird> and 2x scale
18:41:34 <ehird> well
18:41:35 <ehird> not scale
18:41:37 <ehird> just 2x bigger
18:41:42 * ehird uploads piccy
18:41:52 <AnMaster> I know what it looks like
18:41:54 <AnMaster> I used vice before
18:41:58 <ehird> i didn't talk to you
18:42:08 <ehird> for anyone who hasn't seen it, http://xs539.xs.to/xs539/09202/picture_1751.png
18:42:10 <AnMaster> the PAL emulation isn't convincing IMO
18:42:34 <ehird> is on a tft
18:42:36 <ehird> at least
18:42:48 <AnMaster> ehird, depends on how high res the TFT is
18:42:57 <ehird> 100dpi
18:43:02 <AnMaster> 86 dpi :P
18:43:07 <ehird> poor you
18:43:38 <ehird> ah, SIDs are wonderful
18:43:42 <AnMaster> <fizzie> For [+>-<] you do p[1] -= (N-p[0]), which (modulo N) is probably p[1] += p[0] too. <-- "probably"?
18:43:58 <fizzie> Well, I don't like doing unqualified statements.
18:44:06 <AnMaster> ah.
18:44:13 <fizzie> If it sounds plausible to you, you can remove the "probably" part.
18:44:47 <AnMaster> I guess I need to prove it. Sigh
18:45:19 <AnMaster> actually, it is simpler to just brute force it for the unsigned char case :)
18:45:31 <fizzie> Uh, well.. a - (N-b) = a + b - N = a + b (mod N); there you go.
18:46:03 <ehird> proving it takes about 5 seconds in wetware
18:46:08 <ehird> vs 10-15 seconds to write bruteforcer
18:46:09 <AnMaster> hah. I finished writing the short iterate for brute force half a second before that line :P
18:46:23 <AnMaster> bbl
18:46:29 <ehird> brute forcing: the tool for brutes' minds.
18:51:46 -!- asiekierka has changed nick to asie[brb].
19:03:28 <AnMaster> wow
19:03:39 <AnMaster> pikhq, I'm at 218 passes for LostKing now
19:03:49 <AnMaster> I think I need to make my shift pass do more at once.
19:05:51 <bsmntbombgirl> ehird: finally got to commerce city
19:05:55 <AnMaster> it would be faster if it moved more in both directions, swapping as it went, rather than moving a bit then doing a new scan over it
19:06:02 <AnMaster> hm
19:06:20 <ehird> bsmntbombgirl: \o/
19:06:36 <bsmntbombgirl> supposed to get here tommorow
19:09:13 <ehird> decided what os yet?
19:09:21 <bsmntbombgirl> i think freebsd
19:09:26 <bsmntbombgirl> linux is boring
19:09:51 <GregorR> If it's non-boring you're looking for, go ReactOS or BeOS or OS/2 :P
19:10:01 <GregorR> Or maybe NT 3.51
19:10:07 <ehird> bsmntbombgirl: linux is boring but uh... also practical
19:11:03 <GregorR> <ehird> ah, SIDS is wonderful
19:11:07 <GregorR> *gasp*
19:11:33 <ehird> ...
19:12:11 <GregorR> OK, so I'm slightly misquoting you :P
19:21:06 <bsmntbombgirl> god
19:21:09 <bsmntbombgirl> people are stupid
19:21:15 <bsmntbombgirl> http://asserttrue.blogspot.com/2009/05/one-of-toughest-job-interview-questions.html
19:21:18 <bsmntbombgirl> toughest question ever?
19:21:53 <bsmntbombgirl> sed 's/[^a-z]\+/ /g'|tr ' ' '\n'|awk '{words[$0] += 1} END{ for(word in words) print words[word], word; }'|sort -nrk1|head -10000
19:21:57 -!- asie[brb] has changed nick to asiekierka.
19:21:57 <ehird> that blog is funny because the author is a retard
19:21:59 <bsmntbombgirl> OH FUCK, IMMA GENIUS
19:23:37 <ehird> INC $D020
19:23:39 <ehird> DEC $D020
19:23:42 <ehird> JMP $2000
19:23:53 <GregorR> Jump TWO THOUSAND DOLLARS
19:24:13 <ehird> yes
19:24:21 <ehird> well actually put A2000 before that first inc
19:24:25 <ehird> and also MON<ENTER> before
19:24:28 <GregorR> Anyone with a blog named "assert true" would pretty much have to be a retard.
19:24:32 <ehird> and also emulator→load catridge→tfc3
19:24:43 <ehird> and also reboot-while-holding-commodore-key
19:24:44 <ehird> err
19:24:46 <ehird> i'm not sure which key
19:24:49 <ehird> it's mapped to esc here
19:26:00 <ehird> Fun C64 fact: the drive was more powerful than the C64.
19:26:27 <GregorR> ... and it's even written as "assertTrue()" ... idiot
19:26:39 <GregorR> The drive could solve the halting problem?
19:26:40 <bsmntbombgirl> i fucking hate that function name
19:26:42 <ehird> GregorR: assertTrue() is a function in javahead assertion libraries
19:26:47 <bsmntbombgirl> classic example of bloat
19:26:48 <ehird> assertTrue(foo) is.. assert(foo)
19:26:51 <ehird> there's things like assertFalse
19:26:55 <ehird> and assertEquals(foo,bar)
19:27:01 <bsmntbombgirl> that is sooooo stupid
19:27:14 <ehird> yep
19:27:15 <ehird> assert(foo)
19:27:16 <GregorR> ... wtf?
19:27:16 <ehird> assert(!foo)
19:27:18 -!- jix has joined.
19:27:18 <ehird> assert(foo==butt)
19:27:31 <ehird> but the javaheads can't introspect on the code used so they use that to get half-decent output ;-)
19:27:33 <GregorR> jix!
19:27:45 <ehird> fyb2
19:27:50 <GregorR> !addinterp jix sh echo 'Jix is not a programming language.'
19:27:51 <EgoBot> Interpreter jix installed.
19:27:56 <GregorR> !jix foo
19:28:06 <ehird> lol
19:28:11 <GregorR> ....
19:28:14 <GregorR> >_>
19:28:17 <GregorR> !delinterp jix
19:28:17 <EgoBot> Interpreter jix deleted.
19:28:32 <pikhq> ehird: Really; that's terrible.
19:28:34 <jix> hey don't delete me!
19:28:46 <ehird> jix: GregorR made fukyorbrane2
19:29:05 <bsmntbombgirl> "programming languages should not be designed by piling feature upon feature, but by removing the limitations that make extra features seem necessary"
19:29:07 <GregorR> I did?
19:29:13 <ehird> to egobawt
19:29:19 <GregorR> !fyb
19:29:19 <EgoBot> Use: !fyb <program name> <program>
19:29:22 <ehird> bsmntbombgirl++, although that sentence is ironically in R6RS.
19:29:25 <GregorR> I didn't change the language :P
19:29:50 <GregorR> Huh, EgoBot has gone wonko ...
19:29:53 * GregorR figures out why.
19:30:01 <pikhq> bsmntbombgirl: In other words, all languages should be a superset of Lisp.
19:30:04 <pikhq> :p
19:30:14 <ehird> pikhq: it's RnRS's intro
19:30:17 <ehird> GregorR: asiekierka was fucking with it
19:30:20 <pikhq> RnRS?
19:30:34 <bsmntbombgirl> pikhq: the scheme standard
19:30:38 <ehird> pikhq: Revised^N Report on the Algorithmic Language Scheme.
19:30:39 <pikhq> Ah.
19:30:43 <pikhq> Appropriate.
19:30:47 <ehird> Currently at R5RS; some heathens think it's at R6Rs.
19:30:49 <ehird> *R6RS
19:31:30 <pikhq> I don't think there's many languages that embody that more than Scheme...
19:31:38 <bsmntbombgirl> nope :D
19:31:59 <ehird> LAMBDA: The Ultimate *.
19:32:10 <ehird> ( http://en.wikipedia.org/wiki/Lambda_Papers )
19:32:35 <ehird> I WAS TALKING TO pikhq
19:32:36 <ehird> <<<<<<<
19:33:02 <bsmntbombgirl> i've got all of them printed out somewhere
19:38:35 -!- GregorR-L has joined.
19:38:38 <GregorR-L> Fixtlawl
19:38:43 <GregorR-L> !bf +++++++++++[>+++++++>+++++++++>++++>+<<<<-]>-----.>++.+++++++..+++.>.------------.<++++++++.--------.+++.------.--------.>+.>-.
19:38:44 <EgoBot> Hello, world!
19:38:58 <tombom> !bf <-----------------------------------------
19:39:02 <tombom> !bf <-----------------------------------------.
19:39:02 <EgoBot>
19:39:36 -!- kar8nga has joined.
19:39:43 <GregorR> If you're trying to break it, there are much better routes to try.
19:39:50 <GregorR> !c printf("%p\n", malloc(1024))
19:39:51 <EgoBot> 0x7f7c97aa3010
19:40:09 <tombom> : !c printf("%p\n", malloc(240934))
19:40:16 <tombom> !c printf("%p\n", malloc(240934))
19:40:17 <EgoBot> 0x7f8c1e449010
19:40:44 <GregorR> Hm, it has a much smaller VM limit than that, it must be using mmap.
19:40:57 <GregorR> Oh wait, that's only 240k :P
19:41:03 <tombom> !c printf("%p\n", malloc(24093400))
19:41:04 <EgoBot> 0x7f5dede87010
19:41:08 <tombom> !c printf("%p\n", malloc(240934000))
19:41:09 <EgoBot> (nil)
19:41:37 <GregorR> (If you want to poke at it and not bother #esoteric , there's #egobot )
19:43:57 * pikhq reads Lambda: the Ultimate Imperative
19:43:59 <pikhq> Fun read.
19:47:34 <bsmntbombgirl> they all are
19:47:57 <ehird> so's r5rs
19:48:38 <GregorR-L> I'm going to create a blog called Kappa the Penultimate
19:49:14 <ehird> Omega the Indubitably
19:49:16 <bsmntbombgirl> lawl
19:49:43 <ais523> Mu: the Postultimate
19:49:58 <Gracenotes> as mentioned in #haskell, you can't miss "Lambda: The Ultimate Blub"
19:50:12 <ehird> Gracenotes: Paul Graham reference detected. Bozo bit set.
19:51:00 <Gracenotes> not my joke! And you realize that's the adorable bit, right?
19:55:33 * GregorR-L sets mode: +ooo ais523 Gracenotes ehird
19:55:46 * ehird has kicked GregorR-L
19:56:08 * GregorR-L sets mode -o+b ehird ehird!*@*
19:56:24 <ehird> how, you're not here
19:56:34 <GregorR-L> I soytenly seem to be!
19:56:42 <Gracenotes> the channel has mysteriously become -n while you weren't watching
19:56:52 <Gracenotes> because GregorR-L unset the mode lock
19:56:59 <ais523> what, you can set /modes/ from outside on a -n channel?
19:57:11 <Gracenotes> ais523: uh, dunno. It's a guess though :
19:57:13 <ais523> that makes no sense, how would you be an op if you weren't even in the channel?
19:57:21 <ehird> grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
19:57:42 <Gracenotes> ais523: perhaps he'd set up an autoban then
19:57:43 <GregorR-L> Nobody here even has opability on #esoteric , do they?
19:57:50 <ais523> fizzie does
19:58:27 <GregorR-L> WE ALL WURVE YOU FIZZIE
19:58:44 <Gracenotes> OUR WURVLES TO U
19:59:13 <tombom> what is a wurvle
19:59:34 <fizzie> That's the sort of relic-from-the past I am. Although I guess lament's been seen quasi-recently, too?
19:59:38 * GregorR-L takes all of tombom's wurvles and gives them to FireFly
19:59:40 <GregorR-L> Err
19:59:43 <GregorR-L> I meant fizzie, but sure.
19:59:48 <FireFly> Alright
20:00:11 <Gracenotes> tombom: A DISCRETE UNIT OF LURV
20:00:38 -!- pikhq has quit ("leaving").
20:01:40 <ehird> fizzie and lament and Aardappel (← last one being a joke :p)
20:01:50 <ehird> AARDAPPEL IS WITH US . . . IN SPIRIT
20:03:02 <Gracenotes> ...
20:03:10 <Gracenotes> this is rather confusing >_>
20:04:17 -!- tombom_ has joined.
20:05:13 <fizzie> Ⓨ⒠⒮, ⒤⒯ ⒤⒮.
20:06:03 -!- GregorR-L has changed nick to vsnprintf.
20:06:22 <fizzie> Ⓦⓗⓞⓞⓟⓢ. I accidentally the parenthesized letters instead of circled ones.
20:08:32 <fizzie> Strange. On this very much not an Apple computer, gucharmap shows the private-use-area letter U+F8FF () as the Apple logo.
20:09:16 <vsnprintf> <-- greatest nick ever
20:09:37 <comex> no
20:09:39 <comex> greatest nick ever is rlwinm
20:09:49 <ais523> what's so great about that nick?
20:09:54 <comex> it's a powerpc instruction
20:10:01 <ais523> what does it do?
20:10:26 -!- vsnprintf has changed nick to no-op.
20:10:34 <no-op> This nick is unowned.
20:10:37 <no-op> Can you believe that?
20:10:50 <no-op> (nop and noop are owned :P )
20:11:05 <ehird> the c64 has an instruction called
20:11:06 <ehird> PHP
20:11:11 <no-op> lawl
20:11:19 <ehird> it means Push Processor Status on Stack
20:11:38 -!- no-op has changed nick to Egolitarian.
20:11:42 <Egolitarian> I think this is a good nick.
20:11:52 <fizzie> Stop calling them C64 instructions, since the 6502 is used absolutely everywhere. :p
20:11:59 <ais523> is the c64 6502-based, or does it just have the same instructions?
20:12:06 <ais523> fizzie: ah, you answered my question for me
20:12:20 <ehird> yes, well
20:12:24 -!- asiekierka has quit.
20:12:24 <ehird> f
20:12:25 <ehird> fu
20:12:37 <ehird> ais523: 6510.
20:12:37 <comex> the powerpc has an instruction called
20:12:39 <comex> eieio
20:12:46 <ais523> comex: that's a great name
20:12:48 <comex> (enforce in-order execution of I/O)
20:12:53 <ais523> and probably deliberate
20:12:58 <comex> true
20:13:08 <ehird> hurd has an error EIEIO
20:13:13 <ehird> it's the kernel panic code
20:13:16 <ehird> the string?
20:13:19 <ehird> Computer has gone to the farm.
20:13:19 <AnMaster> real 1m3.411s -> real 0m12.334s
20:13:22 <AnMaster> that's a bit better
20:13:39 <ehird> no wait
20:13:41 <ehird> computer brought the farm
20:13:45 <Egolitarian> AnMaster ran the "divide time by 6" operation
20:13:53 <AnMaster> Egolitarian, hah
20:13:53 <ais523> AnMaster: what program?
20:13:57 <ais523> that's too slow to be cfunge
20:14:00 <AnMaster> ais523, "in-between"
20:14:05 <fizzie> Z80 gpg-error.h has "GPG_ERR_EIEIO = GPG_ERR_SYSTEM_ERROR | 44"; I'm not quite sure what it's used for.
20:14:24 <fizzie> Er, not Z80 gpg-error.h; the usual gpg-error.h
20:14:24 -!- pikhq has joined.
20:14:25 <Egolitarian> find / -type f | xargs grep -i eieio
20:14:28 <ehird> "UNPLUG MODEM TO GET IT TO WORK!"
20:15:24 <AnMaster> ais523, First I made the bf-to-C compiler called "before" (compiler written in C), Then I made the bf-to-C compiler called "after" (coded in scheme), Now I'm making the bf-to-selectable-backend compiler called "in-between" (coded in erlang)
20:15:31 <AnMaster> and that was on lostking
20:15:55 <ais523> ah, ok
20:16:45 <Egolitarian> >_O
20:16:48 <Egolitarian> O_<
20:17:01 <Egolitarian> AnMaster: And what will you call the one written in BF?
20:17:12 <AnMaster> Egolitarian, "not done by me"
20:17:44 * Egolitarian writes that down.
20:17:45 <ais523> bf-before
20:17:55 <ais523> which is the name that would be produced if before was compiled via gcc-bf
20:17:55 <AnMaster> ais523, what I did was to change which list I add back the swapped operands to in the function sorting additions, sets and so on based on offset (changes ++>-<+ into +++>-< and so on).
20:18:00 <ehird> THIS IS LIVE FIRE IN THE YERA OF 1994,
20:18:03 <AnMaster> I now add back to the Input List
20:18:05 <ais523> or bf-unknown-none-before if you wanted to give the full triplet
20:18:08 <AnMaster> instead of the Output one
20:18:14 <ehird> *year
20:18:19 <AnMaster> thus meaning I need fewer passes over it
20:18:22 <AnMaster> to properly sort it
20:19:22 <AnMaster> ais523, what "triplet"?
20:19:40 <AnMaster> that is four sections
20:19:55 <ais523> bf-unknown-none is the triplet name for gcc-bf
20:20:02 <AnMaster> ah
20:20:03 <AnMaster> but
20:20:06 <ais523> triplets are used by the GNU build system to identify a target processor
20:20:08 <AnMaster> before is a dead project
20:20:11 <AnMaster> it had a bad design
20:20:19 <AnMaster> meaning it was hard to add optimising properly
20:20:22 <ais523> and yes, but it would technically speaking be written by you, and in BF
20:20:39 <AnMaster> heh
20:20:50 <AnMaster> ais523, I run the optimiser passes in a loop until the last time around didn't change anything.
20:21:08 <AnMaster> the "change list to add back to" reduced it from 218 iterations for lostking to just 5.
20:21:20 <AnMaster> quite a big difference
20:21:52 -!- tombom has quit (Read error: 110 (Connection timed out)).
20:21:53 -!- tombom_ has changed nick to tombom.
20:22:06 <ehird> bah, how come VICE doesn't map ← to anything intelligable
20:22:24 <AnMaster> ehird, what ← ?
20:22:41 <ehird> The commodore had a ← key to the left of 1 and just above CTRL.
20:22:44 <AnMaster> As in AltGr - whatever that generates the ← or the arrow key?
20:22:46 <AnMaster> aha
20:22:47 <AnMaster> that one
20:22:49 <ehird> Same sort of place ESC is on current keyboards.
20:22:54 <ehird> VICE purports to map ^ to it.
20:23:00 <ehird> But Shift-6 (=^) doesn't trigger it.
20:23:06 <ehird> It triggers &
20:23:29 <ehird> 8 2 4 8 /* C -> C */
20:23:29 <ehird> 9 3 7 8 /* V -> V */
20:23:30 <ehird> 10 7 1 8 /* ^ -> Left Arrow */
20:23:32 <ehird> 11 3 4 8 /* B -> B */
20:23:34 <ehird> 12 7 6 8 /* Q -> Q */
20:23:52 -!- tombom has quit ("Peace and Protection 4.22.2").
20:24:23 <ehird> AnMaster: you said you used vice right
20:24:30 <AnMaster> with ERL_COMPILER_OPTIONS='[inline,native,{hipe,[o3]}]' time is reduced to real 0m8.942s
20:24:34 <AnMaster> ehird, yeah, for some game
20:24:39 <AnMaster> forgot which one
20:24:43 <AnMaster> was a year ago or so
20:24:43 <ehird> i assume you didn't use backarrow
20:24:56 <AnMaster> ehird, I probably didn't indeed.
20:25:06 <ehird> can't use TURBO-ASSEMBLER without it :-(
20:26:34 <AnMaster> while (p[0]) {
20:26:34 <AnMaster> p[0]-=1;
20:26:34 <AnMaster> p[1]=1;
20:26:34 <AnMaster> }
20:26:37 <AnMaster> strange loop
20:26:50 <ehird> AnMaster: verily
20:26:56 <AnMaster> yes that is from optimised lostkingdom
20:27:24 <AnMaster> and I'm *quite* sure that is really what happens in lostkingdom.
20:27:31 <AnMaster> Just need to locate it. Near the beginning
20:28:00 <ehird> that can be optimized AnMaster
20:28:02 <AnMaster> >[-]+<[-]+[>[>[-]+<-]
20:28:03 <ehird> to p[0]=0;p[1]=1;
20:28:05 <AnMaster> ehird, I'm aware
20:28:13 <AnMaster> ehird, I just haven't written any pass that does it
20:28:17 <AnMaster> yet
20:28:29 <AnMaster> but that code is right at the beginning of lostkingdom
20:28:41 <AnMaster> it is rather silly!
20:29:14 <ehird> it is generated
20:29:19 <ehird> AnMaster: use mandelbrot.b for a real benchmark
20:29:36 <AnMaster> ehird, yes I manage that quite fine. And I can compile that without GCC running out of memory
20:29:53 <ehird> yes, but for speed
20:29:54 <fizzie> It is also not *quite* that silly; it basically does "if (p[0]) p[1] = 1;".
20:29:58 <ehird> lostkng is just shitty generated code
20:30:25 <AnMaster> fizzie, ah true
20:30:33 <AnMaster> I haven't implemented the if pass yet
20:30:41 <AnMaster> since I haven't yet implemented the loop analyser
20:30:42 <ehird> does esotope do ifs
20:30:45 <fizzie> If you just turn it to p[0] = 0; p[1] = 1; you end up setting p[1] to 1 every time, while it wouldn't happen if p[0] were 0.
20:30:45 <AnMaster> ehird, yes
20:30:47 <AnMaster> iirc
20:30:57 <AnMaster> ehird, but I don't aim for that good.
20:30:59 <ehird> ah, true enough fizzie
20:31:10 <AnMaster> indeed
20:31:36 <AnMaster> I'm going to turn it into an if yes.
20:31:38 <fizzie> Although it could be [>[-]+<[-]] so that it doesn't do that set-to-one too many times. But maybe p[0] is for other reasons guaranteed to be 0/1.
20:32:07 * AnMaster wonders what is best: if (p[0]) { code; p[0] = 0; } or if (p[0]) { code; } p[0] = 0;
20:32:08 <ehird> http://www.youtube.com/watch?v=owHCjEWjAvs&feature=related
20:32:15 <AnMaster> the latter could potentially be merged
20:32:20 <AnMaster> if p[0] was modified after
20:32:32 <AnMaster> but if it wasn't it would set it when it wasn't needed
20:32:58 <ehird> shitty movie but interesting use of an atari
20:33:05 <ehird> i didn't know it could do such high quality stuff
20:33:22 <AnMaster> I could detect that, but it seems quite a bit of work. a pass after all other ones scaning for that.
20:34:45 <ehird> This is driving me crazy!!!
20:34:46 <ehird> >_<
20:39:03 * AnMaster defines a three state bool.
20:39:15 <ehird> that's not a bool
20:39:27 <AnMaster> s/not a/no/
20:39:42 * ehird throws vice out the window
20:39:42 <AnMaster> ehird, and it is a SQL-like bool
20:39:56 <AnMaster> true | false | unknown
20:40:00 * ehird stomp stomp stomp
20:40:05 <AnMaster> good name for it?
20:40:12 <ehird> AnMaster: | floyd
20:40:14 <AnMaster> short word for the data type
20:40:16 <AnMaster> ehird, ...
20:40:27 <ehird> AnMaster: FRC reference.
20:40:35 * AnMaster googles FRC
20:40:45 <AnMaster> Definitions of FRC on the Web:
20:40:45 <AnMaster> Family Resource Center
20:40:45 <AnMaster> en.wiktionary.org/wiki/FRC
20:40:47 <AnMaster> kay
20:41:03 <AnMaster> ehird, was that the meaning of it?
20:41:05 <ehird> The Fantasy Rules Committee is a nomic-like game that started as a special committee of NomicWorld. It did however survive the disbanding of the latter game, and still exists as an independent entity.
20:41:06 <ehird> In FRC (as it is called in short), there are subsequent rounds. Each round starts with all players being eligible (except one who functions as the judge). Players try to make valid rules, that is, rules consistent with all previous ones. A valid rule extends a player's eligibility to fourteen days after the rule was posted, but an invalid one decreases it by two days. The last eligible player (who in almost all cases is also the player who posted the las
20:41:12 <ehird> t valid rule) is the winner, and will function as the judge in the next round.
20:41:13 <ehird> Round 29
20:41:15 <ehird> Theme "Logic", or more properly "FLogic"
20:41:17 <ehird> Where you can find out whether <.-.> is Frue, Talse or Floyd!!
20:41:19 <ehird> http://www.win.tue.nl/cs/fm/engels/frc/
20:41:27 <AnMaster> I see
20:41:30 <ehird> Archived, by the looks of it, by oerjan.
20:41:31 <AnMaster> but irrelevant for this
20:41:38 <ehird> Or at least, same university as his site.
20:41:41 <ehird> He used to play FRC.
20:41:41 <AnMaster> mhm
20:41:45 <ehird> AnMaster: Sure it is, it's a third truth value.
20:42:29 <AnMaster> ehird, what is <.-.> supposed to be
20:42:34 <ehird> What do you mean?
20:42:39 <AnMaster> "<ehird> Where you can find out whether <.-.> is Frue, Talse or Floyd!!"
20:42:43 <AnMaster> that
20:42:47 <ehird> Yes...?
20:42:51 <AnMaster> a weird smiliy?
20:42:55 <AnMaster> smiley*
20:42:57 <ehird> No?
20:43:01 <AnMaster> ehird, then what
20:43:07 -!- jix has quit ("brb").
20:43:15 <ehird> what do you mean?
20:43:18 <AnMaster> ...
20:43:35 <AnMaster> Does "<.-.>" have any meaning? Or is it just random.
20:43:55 <ehird> Read the round?
20:44:05 <ehird> Presumably it'll define it.
20:44:07 -!- jix has joined.
20:45:19 <AnMaster> FTheorem 29.12.1 <.-.>
20:45:35 <AnMaster> tl;dr
20:45:47 <AnMaster> anyway
20:45:52 <ehird> AnMaster: Good god, what on earth is your problem? What is so confusing about "Where you can find out whether <.-.> is Frue, Talse or Floyd!!"
20:46:10 <AnMaster> I need a good name for a type which is true, false or undefined.
20:46:22 <ehird> BikeshedIsRed
20:47:10 <AnMaster> ehird, serious suggestion please. Plus it must be start with a lower case letter to be a valid type name.
20:47:32 <ehird> Why the fuck do you have to ask me to decide a trivial type name
20:47:35 <ehird> I thought you could code
20:47:39 <AnMaster> s/undefined/unknown/
20:47:49 <AnMaster> ehird, yes, but I suck at making up good names.
20:48:01 <ehird> RogerMikeBob
20:48:19 <AnMaster> bool_or_unknown seems so long.
20:49:07 <ehird> # Copyright 1995 Olaf 'Rhialto' Seibert. All Rights Reserved.
20:49:07 <ehird> # You are not allowed to read this using any kind of Micro$oft product.
20:49:14 <ehird> ITT: License fail.
20:49:32 <AnMaster> ITT?
20:50:50 <ais523> err, I'm not sure a licence can do that
20:51:00 <ehird> ais523: thus the "fail".
20:51:07 <ehird> it's not even a license, actually, it's just a note in the file
20:51:15 * ehird opens 500 VMs of Windows and opens it in each
20:51:30 * AnMaster watches ehird's computer swap trash
20:51:31 <ais523> 500 VMs of Windows probably wouldn't fit in even your computer's memory
20:51:43 <ehird> well, let's see
20:51:47 <ehird> windows 3.1 would do
20:51:52 <ehird> it can run on ... 16MB of RAM?
20:52:05 <ehird> so 8GB
20:52:09 <ehird> eh, easy peasy.
20:52:20 <AnMaster> ehird, ITT?
20:52:31 <FireFly> What about an EULA which indicates that the program can't be run?
20:52:38 <pikhq> ehird, copy on write.
20:52:45 <FireFly> Or has to be run under some odd circumstances
20:52:46 <pikhq> I think you'd need less than 8G.
20:52:47 <pikhq> ;)
20:52:54 <ehird> 8G ain't much these days :p
20:53:09 <AnMaster> yes. Yes it is.
20:53:14 <pikhq> It is a decent chunk of RAM, though.
20:53:29 <ehird> AnMaster: no it's not, you can buy 128GB of ram for like $1k
20:53:34 <ehird> for a server
20:53:56 <pikhq> Yes, because everyone plops down $1,000 for a system.
20:53:58 <AnMaster> pikhq, that assumes you manages some memory sharing between those VMs. Which is a lot harder than for plain applications. I would be surprised if any of the current VMs did that. Because in most cases where you could share memory, it would be non-trivial to detect that it could be done.
20:54:07 <ehird> pikhq: not the point
20:54:12 <ehird> http://www.newegg.com/Product/Product.aspx?Item=N82E16820159025
20:54:13 <AnMaster> ehird, very much the point.
20:54:15 <ehird> 8GB DDR2 for $80.99
20:54:23 <ehird> that's quite mainstream territory
20:54:38 <AnMaster> ehird, for the state of art desktops.
20:54:45 <pikhq> ehird, most people these days buy rather cheap systems.
20:54:58 <ais523> yes, but $81 isn't all that much on top of the price of a typical computer
20:55:01 <ehird> I'd say the typical ram expenditure for a new, mid-range system is $40
20:55:08 <AnMaster> pikhq, that, and the average is a few years behind
20:55:13 <ehird> $81 for 8GB ... you can't say 8GB is difficult to buy
20:55:14 <ais523> and 8 GB is a massive amount to someone like me, who's used to really low-powered computers
20:55:16 <ehird> or even odd
20:55:17 <AnMaster> since most people don't upgrade every year
20:55:26 <ehird> if you want 8GB, you can get it, unless you're completely and utterly broke
20:55:26 <AnMaster> but maybe every 5th year
20:55:28 <AnMaster> ehird, ^
20:55:39 <ehird> AnMaster: I'd listen to what you're saying if it was relevant at all
20:55:45 <pikhq> ehird: That's the attitude that makes 8GB RAM usage necessary.
20:55:47 <AnMaster> ehird, it is.
20:55:52 <ehird> the point is that 8GB is not odd, expensive or strang
20:55:53 <ehird> e
20:55:55 <AnMaster> but there is no point arguing with you.
20:56:13 <ehird> indeed there isn't, because I don't simply admit you're right when you blab about irrelevant shit :)
20:56:27 -!- Egolitarian has quit ("Leaving").
20:56:51 <AnMaster> except it is relevant. bbl
20:57:05 <ehird> ah, right, I also don't accept arguments by assertion
20:57:12 <ehird> all in all I'm a pretty bad person to try and convince of stupid things
20:57:54 <Deewiant> I think the standard update interval for gamers is 2-4 years
20:58:23 <AnMaster> It is relevant, because you were asserting that 8 GB "ain't much these days". That implies that the majority have more than that. Which simply isn't true yet. In a few years sure.
20:58:44 <AnMaster> now, I have better stuff to do than argue with you. Cya
20:59:06 <ehird> that's actually not what I said.
20:59:14 <ehird> "8GB ain't much these days" != everyone has >8GB
20:59:28 <ehird> "8GB ain't much these days" = "it is not difficult, extravagantly costly or hard in any way to get 8GB of RAM at all"
20:59:41 <AnMaster> everyone has >8GB != "majority"
20:59:45 <AnMaster> so that wasn't what I said
21:00:00 <AnMaster> majority == 50% or more
21:00:21 <ehird> congrats, you can nitpick at irrelevant bits to avoid rebutting my actual point.
21:00:37 <AnMaster> ehird, yes it is. Because unless you have a very recent system you will need to upgrade your mobo too
21:00:43 <AnMaster> and then probably the CPU too
21:00:46 <AnMaster> so yes it is costly
21:00:48 <ehird> if you have a low-end mobo, sure.
21:01:05 <AnMaster> ehird, even if you have a high end mobo from a 2-4 years ago.
21:01:10 <Asztal> I have a 3 year old system and it supports 16GB fine
21:01:15 <ehird> AnMaster: you're bullshitting
21:01:21 <ehird> what mobo has less than 4 slots?
21:01:21 <Asztal> well, I haven't tried that, but it would
21:01:27 <ehird> what mobo supports less than 8GB?
21:01:35 <AnMaster> ehird, most ones I have seen have 2 or 3 slots
21:01:35 <ehird> A: one you bought on the cheap, or one that's ancient.
21:01:37 <AnMaster> not 4
21:01:48 <ehird> AnMaster: i guess sweden is where they keep the dinosaurs
21:02:06 <AnMaster> as I said above. I don't consider "state of the art" as the norm
21:02:16 <ehird> that's fine, because I never said these are state of the art
21:02:18 <AnMaster> I rather consider average the norm.
21:02:27 <ehird> a motherboard with 4 DDR2 slots is not state of the art 3 years ago at all
21:02:30 <AnMaster> And not "gamer average". But "all user average"
21:03:18 <ehird> Argumentum ad AnMaster: Keep talking about a minor aspect of the argument that doesn't affect its actual truth value while ignoring future statements. This helps you seem like you're winning the argument without any fiddly thinking or rebutting or having facts on your side.
21:03:21 <AnMaster> and most people actually buy low end systems.
21:03:23 <AnMaster> <pikhq> ehird, most people these days buy rather cheap systems.
21:03:29 <ehird> 21:03 AnMaster: and most people actually buy low end systems.
21:03:33 <ehird> That's objectively false.
21:03:36 <ehird> If it's the norm, it's not low-end.
21:03:37 <AnMaster> ehird, proof?
21:03:50 <AnMaster> ehird, low end compared to your standards.
21:03:51 <ehird> AnMaster: the very definition of low-end, and norm.
21:03:54 <AnMaster> was what I meant.
21:03:55 <ehird> Uh huh.
21:04:06 <ais523> I define low-end as being lower than the average of what's on sale
21:04:10 <ais523> as opposed to the average of what people buy
21:04:22 <ehird> you can buy supercomputers
21:04:26 <ehird> bam, suddenly everything is low-end
21:04:27 <AnMaster> ais523, that is a better definition.
21:04:36 <ais523> ehird: except there aren't very many on sale
21:04:49 <ais523> maybe, let's say the median of all computers that haven't been sold yet, but can be bought
21:04:55 <ehird> sure there are
21:05:04 <ais523> but there are more non-supercomputers
21:05:42 <ehird> i'd say that your definition leads to very vague and fuzzy definitions of the ends
21:05:51 <ehird> since you have to analyze the exact proportions and specs of computers being sold
21:12:07 -!- Sgeo has joined.
21:22:28 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
21:26:57 -!- BeholdMyGlory has quit (Remote closed the connection).
21:29:40 -!- oerjan has joined.
21:31:10 -!- BeholdMyGlory has joined.
21:40:51 <oerjan> <ehird> Archived, by the looks of it, by oerjan.
21:41:21 <oerjan> yep, although that was of course many years ago
21:41:39 <Sgeo> What did oerjan achieve?
21:41:53 <oerjan> archiving frc during its first years
21:42:06 <Sgeo> oh
21:42:17 <Sgeo> I loved reading the FRC archives
21:42:21 <oerjan> otherwise, looping in ///
21:42:40 <oerjan> but i have a simpler method now
21:43:38 <oerjan> (the horribly inefficient iterative scan should be unnecessary)
21:49:13 <ehird> :-D
21:49:37 <oerjan> just need to actually code it :)
21:49:55 <ehird> oerjan: port it to the c64
21:50:01 <oerjan> er...
21:50:05 <oerjan> no, thanks
21:50:10 <ehird> :)
21:52:08 <AnMaster> GCC's -O0 is horrible. It doesn't even constant fold +0
21:52:09 <AnMaster> :(
21:52:18 <AnMaster> I mean, that can't possibly hurt debugging
21:52:38 <GregorR> GCC -O0 isn't "don't do anything to hurt debugging", it's "perform no optimizations whatsoever"
21:52:44 <GregorR> It doesn't even assign values to registers with -O0
21:52:49 <AnMaster> to make i = 1 + 1 + 0 ; be i = 2; instead of calculating that at runtime.
21:53:04 <AnMaster> GregorR, therere should be a mode for "don't do anything to hurt debugging" then
21:53:10 <AnMaster> because -O1 does hurt debugging
21:53:26 <oerjan> -O0.5430897
21:53:35 <GregorR> I agree, there should be a -O<the two most basic optimizations there are, being constant folding and register allocation>
21:53:36 <ehird> what is -O by default?
21:53:40 <GregorR> ehird: 0
21:53:48 <ehird> so gcc is shit by default
21:53:48 <ehird> cool
21:53:54 <AnMaster> I'm asking for something that does basic constant folding + "mov $0,%eax" => "xor %eax,%eax" and such
21:53:56 <GregorR> ehird: Oh, you mean if you specify -O? Then it's -O1 I think
21:54:02 <ehird> nope
21:54:05 <ehird> I meant if you don't specify
21:54:11 <GregorR> Right, yeah, that's -O0
21:54:19 <ehird> AnMaster: I bet those turn into the same microcode these days
21:54:21 <ais523> default optimisation is -O0, unless you have some -O sitting in your cflags somewhere
21:54:22 <AnMaster> ehird, then it depends on ./configure time options iirc
21:54:30 <ehird> that's not gcc
21:54:33 <AnMaster> ehird, um that doesn't matter.
21:54:42 <ehird> ...
21:54:51 <GregorR> ./configure puts things in the Makefile, thereby passing them to gcc X_X
21:54:52 <ehird> if "mov $0,%eax" and "xor %eax,%eax" turn into the same microcode
21:54:55 <ehird> they're the same thing
21:54:58 <AnMaster> ehird, since the opcode for mov $0,%register is longer than xor %reg,%ref
21:54:59 <ehird> GregorR: yeah but I asked about gcc
21:55:00 <AnMaster> reg*
21:55:03 <ehird> not autohell
21:55:05 <ehird> AnMaster: oh noes
21:55:10 <AnMaster> ehird, so not the same thing when it comes to cache
21:55:11 <GregorR> ehird: That was at AnMaster, not you
21:55:16 <ehird> ah
21:55:17 <ehird> well right
21:55:21 <ehird> i agree :P
21:55:34 <AnMaster> <GregorR> ./configure puts things in the Makefile, thereby passing them to gcc X_X <-- in ./configure for gcc you can select default -march, -O and such iirc
21:55:44 <AnMaster> THAT is what I was talking about
21:55:46 <GregorR> OH
21:55:48 <AnMaster> when configuring gcc itself
21:55:49 <GregorR> That I didn't know.
21:56:03 <ehird> Ah
21:56:03 <GregorR> And that's interesting.
21:56:06 <ehird> How odd
21:56:19 <ehird> That sounds stupid actually
21:56:24 <ehird> liable to break stuff
21:56:24 <AnMaster> I'm 100% sure you can select default -march, not 100% sure about default -O
21:56:25 <GregorR> ehird: GCC uses this whole complicated mess of "spec files", it would just have to add the appropriate flag to the spec file for that.
21:56:33 <ais523> oerjan: your /// looping method looks like what I was trying and failing at
21:56:59 <GregorR> Why is /// colloquially called "slashes" instead of "slashslashslash"
21:56:59 <ehird> oerjan: now implement BF in /// ;-)
21:57:03 <ehird> GregorR: shorter.
21:57:14 <GregorR> That's it, I'm making a language called //
21:57:18 <AnMaster> <GregorR> I agree, there should be a -O<the two most basic optimizations there are, being constant folding and register allocation> <-- some basic DCE would work too. Like when GCC emits "mov $0,%eax; mov $0,%eax;" after each other
21:57:22 <AnMaster> yes I saw that on -O0
21:57:42 <GregorR> Sure, sure.
21:57:46 <ehird> "As it is, text takes a lot of memory so dissuading the programmer from using a lot of text was probably a good thing."
21:57:49 <GregorR> It's hard to draw the line :P
21:57:56 <ehird> ais523: you know you talked about inherently large things?
21:58:03 <ehird> on the C-64, text was inherently large :-)
21:58:13 <GregorR> <ehird> ais523: you know you talked about inherently large things? *THAT'S WHAT SHE SAID*
21:58:16 <AnMaster> GregorR, not really. If it hurts debugging in gdb then don't do it
21:58:17 -!- puzzlet_ has joined.
21:58:17 <ais523> heh
21:58:18 <ehird> GregorR: Oh snap.
21:58:18 <AnMaster> simple
21:58:24 <ais523> that heh was at ehird
21:58:32 <GregorR> AnMaster: "Hurts debugging in gdb" is ill-defined.
21:58:38 <oerjan> ehird: actually i'm considering an actual turing machine, that fits better i think
21:58:52 <ehird> oerjan: as a first step, why not implement slashes in slashes?
21:58:55 <AnMaster> GregorR, "value optimised out" is HURT definitely.
21:58:59 <GregorR> Yes :P
21:59:02 <ehird> that doesn't prove anything, but if slashes can do an infinite counter and also implement itself
21:59:04 <ehird> it seems likely to be TC
21:59:10 <ehird> bonus: simple
21:59:15 <ehird> (require preparsing ofc)
21:59:21 <AnMaster> GregorR, anything breaking s is too. If it breaks si then I'm fine with it.
22:00:50 <oerjan> ehird: but a turing machine or cellular automaton is so easy to do with local substitutions
22:01:03 <ehird> oerjan: do BCT
22:01:06 <oerjan> s/local/global/, possibly
22:01:06 <AnMaster> optimise([#bfn{ ins = add, off = Offset, val = V2 }|T],
22:01:06 <AnMaster> [#bfn{ ins = set, off = Offset, val = V1 } = A|Result]) ->
22:01:06 <AnMaster> optimise(T, [A#bfn{ val = V1 + V2 }|Result]);
22:01:15 <ehird> oerjan: BCT can be done with repeated really-regular regexs
22:01:16 <AnMaster> that is so beautiful.
22:01:17 <AnMaster> :)
22:01:26 <AnMaster> Pattern matching RULES!
22:01:31 <ehird> oerjan: so it's very trivial to prove a lang tc with it
22:01:41 <AnMaster> ais523, ^
22:02:04 <ehird> AnMaster: how is ais523 meant to respond to that
22:02:08 <ehird> "oh, that's nice"?
22:02:17 <AnMaster> ehird, that would be one of many alternatives.
22:02:39 <ehird> "I am a piece of bread on fire."
22:02:58 <AnMaster> ehird, not as likely, but not technically impossible.
22:03:02 <AnMaster> another would be saying something like "oh like in prolog"
22:03:03 <AnMaster> :P
22:04:12 <oerjan> ehird: hm yeah BCT might be nice
22:04:26 <ehird> yep
22:04:30 <ehird> very trivial to implement
22:05:21 <AnMaster> what is BCT in this context? Below Turing Complete? Bread fire Control Template?
22:05:22 <AnMaster> ;P
22:05:31 <oerjan> http://esoteric.voxelperfect.net/wiki/BCT
22:05:35 <ais523> bitwise cyclic tag
22:05:47 <ais523> possibly the simplest of all languages to implement
22:05:56 <ehird> Boh Clike Tinprolog
22:05:57 <ais523> you can do cyclic tag in stuff where even BF would be a nightmare
22:06:26 <AnMaster> ais523, ah
22:06:31 * ehird notes that a piece of bread on fire is colloquially called "toast"
22:06:38 <ehird> Bitwise Cyclic Toast.
22:06:52 <oerjan> *charcoal
22:07:09 <AnMaster> -p[-2]=0;
22:07:09 <AnMaster> -p[-2]+=p[-7];
22:07:09 <AnMaster> +p[-2]=p[-7];
22:07:10 <AnMaster> :)
22:07:39 <AnMaster> a bit better
22:10:41 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
22:11:15 <oerjan> hm also with BCT both the program and data might simply be data in the /// program, needing only trivial recoding
22:11:40 <oerjan> while for a turing machine you'd recode the state transitions as substitutions
22:11:58 <ehird> so get on coding ;-)
22:12:01 <ehird> it should be ubertrivial
22:14:10 <AnMaster> oerjan, are you about to prove /// TC?
22:14:11 <AnMaster> :D
22:14:21 <oerjan> maybe
22:14:23 <ais523> shouldn't take long, BCT is more or less a natural fit for this sort of thing
22:14:30 <ais523> I'm not sure if an interp or compiler would be easier, though
22:17:33 <ehird> the true marvel is that bct is tc
22:17:52 <AnMaster> ehird, agreed
22:18:12 <ehird> "PRESS PLAY ON TAPE" — C64.
22:18:20 <AnMaster> :D
22:18:27 <AnMaster> ehird, do that then
22:18:36 <ehird> AnMaster: There is no tape :-P
22:18:45 <AnMaster> ehird, there is a tape emulator surely
22:18:49 <ehird> well, yes
22:18:51 <ehird> it has no play button
22:18:56 <ehird> unfortunately my .prg doesn't seem to load... it just tries to load forever
22:18:59 <AnMaster> ehird, what emulator are you using
22:19:00 <ehird> probably I missed an entry point
22:19:02 <ehird> AnMaster: VICE.
22:19:08 <AnMaster> still... mhm
22:19:19 <ehird> ah hm
22:19:28 <ehird> from asie's celf_main.asm ".null $9e,^main"
22:19:32 <ehird> I assume that has something to do with it
22:19:49 <AnMaster> is that perl asm? :D
22:19:57 <ehird> nope; Turbo Assembler
22:20:06 <AnMaster> hah
22:20:38 <AnMaster> cd /usr/bin; sudo ln -s perl turbo-sed
22:20:57 <ehird> Did I mention that the C-64's 5'44" floppy drive was more powerful than the C-64?
22:21:07 <ehird> (sold separately)
22:21:14 <AnMaster> ehird, um. Powerful in what measure?
22:21:25 <ehird> CPU, I think RAM
22:21:30 <ehird> not sure about RAM though
22:21:35 <AnMaster> why did the tape have a CPU...
22:21:36 <AnMaster> err
22:21:38 <AnMaster> tape drive
22:21:40 <AnMaster> but still
22:21:43 <Deewiant> Floppy drive.
22:21:44 <ehird> AnMaster: it implemented DOS
22:21:47 <ehird> not that DOS
22:21:48 <AnMaster> ah
22:21:52 <ehird> but the disk operating system
22:21:54 <AnMaster> floppy drive
22:21:55 <ehird> and the filesystem
22:21:59 <AnMaster> ehird, heh...?
22:22:18 <ehird> AnMaster: from the C-64 you called out to the floppy drive to run disk-operating-system commands
22:22:21 <ehird> to manipulate the filesystem
22:22:25 <AnMaster> I see...
22:22:29 <ehird> you could access the floppy directly but it was harder
22:22:30 <AnMaster> that's kind of crazy
22:22:39 <ehird> not really
22:22:48 <ehird> AnMaster: the c64 ran at 0.9mhz in pal countries
22:22:50 <ehird> and had 64K of RAM
22:22:52 <Deewiant> That's kind of how every piece of hardware works these days
22:22:56 <ehird> it made sense to outsource the disk operation
22:22:57 <Deewiant> I.e. it has firmware.
22:23:04 <ehird> due to the insanely low system resources
22:23:14 <ehird> and what Deewiant said
22:23:15 <AnMaster> ehird, what about US?
22:23:15 -!- BeholdMyGlory has quit (Read error: 104 (Connection reset by peer)).
22:23:17 <AnMaster> what speed there
22:23:19 <fizzie> For contrast, the tape drive doesn't really have much in the way of electronics in it; so you have to PRESS PLAY ON TAPE manually.
22:23:23 <ehird> AnMaster: NTSC was 1mhz.
22:23:31 <AnMaster> ehird, why was it faster.
22:23:32 <ehird> well
22:23:35 <ehird> NTSC = 1.02MHz
22:23:39 <ehird> PAL = 0.985MHz
22:23:41 <AnMaster> I don't see how this is related
22:23:43 <ehird> AnMaster: I don't know... screen refresh rates?
22:23:46 <AnMaster> ah ok
22:23:48 <ehird> power supply?
22:23:50 <ehird> from the wall
22:23:54 -!- kar8nga has quit (Remote closed the connection).
22:23:54 <AnMaster> guess it was slow enough you had to time them
22:24:03 <Deewiant> Screen refresh rates are my guess
22:24:04 <ehird> they are not very fast machines
22:24:08 <ehird> Deewiant: yeah
22:24:20 <ehird> probably it's timed so it can do calculation and update the screen at the native fps of the television
22:24:31 <AnMaster> ehird, US has 110 V and Europe has 230 V. Power supply can't be the reason.
22:24:31 <Deewiant> NTSC is 29.97 fps, PAL is 25
22:24:32 <fizzie> Different video signal pixel clock, and just a suitable fraction of that for the CPU.
22:25:05 <AnMaster> fizzie, so video refresh was faster than CPU?
22:25:09 * ehird attempts to input a * on this c64
22:25:11 <AnMaster> Wait, you meant the other way around
22:25:12 <ehird> emulator
22:25:12 <AnMaster> right
22:25:17 <ehird> I can't find the key :^)
22:25:23 <ehird> ah
22:25:24 <ehird> ]
22:25:52 <fizzie> It's more about the pixel clock than actual frame rates. But yes, the video clock is faster than the processor, I think. It depends on the sort of resolution you want, of course.
22:26:10 * ehird attempts to figure out how to list the files on the drive
22:26:50 <fizzie> Wikipedia says "14.31818 MHz (NTSC) or 17.73447 MHz (PAL)" clock for the video chip, and that was divided with some suitable constant to get the CPU clock signal.
22:26:59 <Deewiant> ehird: LIST, IIRC
22:27:14 <ehird> fizzie: I wonder if the demosceners tried to do calculation on the video chip
22:27:19 <fizzie> LOAD "$",8,1 and the LIST. Or some such thing.
22:27:21 <ehird> "Just a second, the screen will go haywire..."
22:27:27 <ehird> Deewiant: LIST
22:27:27 <ehird>
22:27:28 <ehird> READY.
22:27:29 <Deewiant> "$"?
22:27:34 <ehird> Well, I guess I've loaded it the wrong.
22:27:41 <Deewiant> LOAD "*",8,1
22:27:45 <fizzie> Yes, you load "$" to get a LISTable list of the disk.
22:27:47 <ehird> or assembled it the wrong
22:27:51 <Deewiant> Ah.
22:27:54 <fizzie> LOAD "*" will load the autoloadable program.
22:27:56 <ehird> fizzie: ?OUT OF DAT ERROR
22:28:01 <ehird> (with the two spaces)
22:28:02 <ehird> *DATA
22:28:09 <ehird> i guess
22:28:09 <Deewiant> I haven't actually used a C64, so maybe I should just shut up.
22:28:09 <ehird> % ./64tass flickr64.asm -o flickr64.prg
22:28:10 <ehird> is wrong.
22:28:11 <fizzie> And 8 is the unit. I don't really remember what the 1 is.
22:28:19 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
22:28:41 * ehird pilfers more CELF code.
22:28:45 <Deewiant> fizzie: Device number, target location IIRC
22:28:46 <fizzie> I don't think I have a working C64 emulator and/or any .d64 file, so I can't really try these. But I do seem to remember that it was LOAD"$" and LIST.
22:28:51 -!- puzzlet has joined.
22:28:57 <Deewiant> 8 being the first disk drive, 9 being the next
22:29:26 <Deewiant> The other one was some kind of enum where 0 was for BASIC and 1 for asm proggies
22:29:32 <Deewiant> Can't remember the details of that one
22:30:32 * ehird kicks the assembler
22:30:38 <ehird> I'll try and assemble CELF to see if that works.
22:30:53 <AnMaster> p[-36]=0;
22:30:53 <AnMaster> -p[0]=p[-36];
22:30:53 <AnMaster> -p[-36]=0;
22:30:53 <AnMaster> +p[0]=0;
22:30:55 <ehird> Indeed so
22:30:59 <AnMaster> yet another step :)
22:31:01 <ehird> It prints "LOADING CELF..."
22:31:09 <ehird> So im doin it rong
22:31:49 <ehird> The question is... what am I doing wrong?
22:33:07 <ehird> you'd think it'd be easy to compile
22:33:08 <ehird> main
22:33:09 <ehird> inc $d020
22:33:10 <ehird> inc $d021
22:33:12 <ehird> jmp main
22:33:26 * ehird reads the 64tass manual
22:34:12 <ehird> It works! \o/
22:34:33 <AnMaster> ehird, what was the issue?
22:34:47 <AnMaster> also what is 64tass
22:34:59 <ehird> 64tass = port of Turbo Assembler to unices/windows.
22:35:02 <AnMaster> ah
22:35:10 <ehird> well.
22:35:10 <ehird> ansi c.
22:35:20 <ehird> AnMaster: and I'm not sure; I copied CELF's header and it didn't work but the one in the 64tass manual worked.
22:35:25 <ehird> I suppose CELF changed it for OSly things
22:35:31 <AnMaster> ehird, so Turbo is optimising?
22:35:35 <AnMaster> Or why is it called Turbo?
22:35:39 <ehird> Nope.
22:35:41 <ehird> It's called Turbo because it's fast?
22:35:44 <ehird> Or, I don't know.
22:35:46 <ehird> Just a nice name.
22:35:52 <AnMaster> hah
22:35:55 <ehird> http://xs539.xs.to/xs539/09202/picture_1960.png ← Pretty ugliness.
22:36:05 <ehird> (the program increments the border background, the regular background, then loops.)
22:36:14 <ehird> (Since it does this in a tight loop, it happens more than once per screen redraw.)
22:36:16 * AnMaster writes the loop analyser.
22:36:31 -!- jix has quit ("night").
22:36:53 <ehird> the header in question is
22:36:54 <ehird> *=$0801
22:36:54 <ehird> .word ss,2005
22:36:56 <ehird> .null $9e,^main;will be sys 4096
22:36:58 <ehird> ss.word 0
22:37:00 <ehird> *=$1000
22:37:02 <ehird> and I have no idea what it does
22:37:04 <ehird> I think *=$foo means
22:37:06 <ehird> skip ahead to foo
22:37:08 <ehird> in the assembled file
22:37:10 <ehird> ($foo = hex)
22:37:19 <ehird> and I suppose 2005 is a magical c64 header
22:37:33 <ehird> it's $07d5
22:37:37 <ehird> then... I don't know what the null thing is
22:37:43 <ehird> Or exactly what ss is doing
22:37:45 <ehird> But meh.
22:38:17 <AnMaster> while (p[0]) {
22:38:17 <AnMaster> p[-1]+=1;
22:38:17 <AnMaster> p[0]-=1;
22:38:17 <AnMaster> p[1]=0;
22:38:17 <AnMaster> p[8]=0;
22:38:18 <AnMaster> p[12]=1;
22:38:20 <AnMaster> p[13]=0;
22:38:22 <AnMaster> p[14]=0;
22:38:24 <AnMaster> }
22:38:26 <AnMaster> I wonder
22:38:28 <AnMaster> what is the best way to optimise that
22:38:35 <fizzie> prog.add(new Data(new byte[] {0x0c, 0x08, 0x0a, 0x00, (byte)0x9e,
22:38:35 <fizzie> (byte)'0', (byte)'2', (byte)'0', (byte)'6', (byte)'2', 0, 0, 0}));
22:38:42 <ehird> AnMaster: you can do that without any sort of loop
22:38:43 <ehird> fizzie: wuzzat
22:38:44 <fizzie> I've only been doing c64 .prg files completely manually. :p
22:38:53 <ehird> AnMaster: c[-1] = p[0];
22:38:55 <AnMaster> ehird, Um needs an if at least
22:38:58 <ehird> err
22:38:59 <AnMaster> it might be run zero times
22:39:00 <ehird> well yes
22:39:06 <fizzie> It's the sort of header that should be there; I think that (byte)0x9e corresponds to what you have.
22:39:12 <ehird> if (p[0]) {p[-1]=p[0];p[0]=0;the rest of the stuff you had}
22:39:16 <ehird> is the optimal optimization
22:39:18 <ehird> fizzie: ah.
22:39:18 <AnMaster> ehird, but that is kind of Strong AI opt as far as I can see.
22:39:19 <fizzie> The header is there in order to make the BASIC interpreter run the assembly program.
22:39:25 <AnMaster> or maybe not
22:39:28 <ehird> AnMaster: err
22:39:28 <ehird> how
22:39:34 <ehird> it's trivial that's what it is
22:39:38 <AnMaster> ehird, trying to see how the program could figure this out
22:40:12 <AnMaster> it is a copy,set with side effects
22:40:15 <AnMaster> right
22:40:49 <bsmntbombgirl> i wonder how powerful of a computer can you make utterly solid state
22:40:53 <bsmntbombgirl> (no fans or pumps)
22:41:13 <AnMaster> bsmntbombgirl, with a large enough passive heat-sink: any
22:41:28 <AnMaster> mind you, you might need a larger room in the most extreme cases
22:41:31 <bsmntbombgirl> it's hard to transfer heat to a huge enough sink
22:41:34 <ehird> bsmntbombgirl: any: radiator
22:41:36 <ehird> heatsink
22:41:39 <bsmntbombgirl> heatpipes aren't magical
22:41:47 <ehird> bsmntbombgirl: see: totally no noise by zalman
22:41:50 <GregorR> Yes they are.
22:41:58 <ehird> bsmntbombgirl: http://www.silentpcreview.com/article302-page1.html
22:42:04 <ehird> bsmntbombgirl: convective cooling
22:42:06 <ehird> err no
22:42:07 <AnMaster> what was that DC thing
22:42:08 <ehird> that's not it
22:42:12 <AnMaster> petire
22:42:14 <AnMaster> or something
22:42:19 <ehird> which one is it, I forget
22:42:32 * ehird searches
22:42:44 <ehird> here
22:42:45 <ehird> bsmntbombgirl: http://www.silentpcreview.com/article301-page1.html
22:42:53 <ehird> completely passively cooled system that was quite good in 2006
22:42:58 <ehird> you could use the same sort of techniques to cool anything
22:43:20 <bsmntbombgirl> that is pretty cool
22:43:23 <ehird> yeah
22:43:37 <ehird> pretty useless though; you can get a system with one or two fans for like a bajillion times less fuss
22:43:40 <bsmntbombgirl> but i think you have to allow a pump to be practical
22:43:43 <ehird> and if you put it a meter or so away from you inaudible
22:44:00 <ehird> if you can cool something with few fans, it's probably the quietest way
22:46:09 * ehird searches for a simple reference of all c64 opcodes
22:46:27 <ehird> *6510 :p
22:47:25 <bsmntbombgirl> seems like the psu is the most difficult to cool in such situatioins
22:47:25 <AnMaster> the best way is anti-sound
22:47:39 <AnMaster> use interference to cancel out the loud fans
22:47:40 <AnMaster> :)
22:47:41 <ehird> bsmntbombgirl: you can get passive psus
22:47:43 <fizzie> Re the disk drive, probably the most important use for the processor in there is that you can make it do music. http://www.youtube.com/watch?v=5gnMgmlKi_o promises to have an example; I don't feel like listening to it right now.
22:47:45 <ehird> up to about 380W
22:47:52 <ehird> iirc
22:47:54 -!- oerjan has quit ("leaving").
22:47:55 <ehird> hmm
22:47:58 <ehird> bsmntbombgirl: look up silverstone
22:48:03 <ehird> http://www.hardware.info/images/news/silverstone_st45_1_550.jpg
22:48:06 <AnMaster> ehird, what do you think about that idea
22:48:07 <bsmntbombgirl> i bet they're shit without some forced airflow
22:48:08 <ehird> 450W passive psu by silverstone
22:48:15 <ehird> bsmntbombgirl: everything's shit without airflow
22:48:23 <ehird> bsmntbombgirl: endpcnoise do some high-end fanless computers
22:48:25 <ehird> lemme find one
22:48:32 <ehird> bsmntbombgirl: http://www.endpcnoise.com/cgi-bin/e/std/sku=fanless_mcubed_pc.html
22:48:53 <ehird> so core 2 duo 3.3ghz, 280 watt seems to be the most you can feasibly do fanlessly
22:49:00 <ehird> w/ an ssd of course
22:49:02 <ehird> that's not bad at all
22:49:03 <AnMaster> ehird, my solution should solve ALL the issues!
22:49:10 <AnMaster> not sure how practical it is
22:49:47 <AnMaster> but I remember reading about headphones that used interference to cancel out outside noise.
22:49:53 <bsmntbombgirl> AnMaster: sucks
22:49:58 <AnMaster> bsmntbombgirl, why
22:50:03 <ehird> the easiest way to muffle computer noise is via the AcoustiPaks.
22:50:15 <ehird> soundproofing materials, pretty much
22:50:17 <ehird> http://www.acoustiproducts.com/en/acoustipack.asp
22:50:20 <ehird> nice things.
22:50:39 <AnMaster> bsmntbombgirl, why
22:50:58 <bsmntbombgirl> AnMaster: cheating, won't work well
22:51:09 <AnMaster> bsmntbombgirl, why is it cheating. And why won't it work well
22:51:25 <bsmntbombgirl> what are you, 4?
22:51:55 <ehird> bsmntbombgirl: empirical evidence suggests yes ;-)
22:51:58 <AnMaster> bsmntbombgirl, I'm aware of that it isn't technically trivial. But with enough effort it should be possible to get it to work
22:52:06 <AnMaster> but I don't see why it is "cheating"
22:52:07 <AnMaster> ...
22:52:16 <AnMaster> as long as it works
22:52:52 <bsmntbombgirl> AnMaster: i said solid state
22:52:56 <bsmntbombgirl> not noiseless
22:53:04 <ehird> yep
22:53:11 <bsmntbombgirl> http://www.qrdc.com/Quiet_Computer_PC_Parts/PC_Water_Cooling/ATX_Watercooled_500W_PSU/221
22:53:14 <ehird> bsmntbombgirl: did you look at www.endpcnoise.com/cgi-bin/e/std/sku?
22:53:18 <ehird> also, watercooled!=passive
22:53:23 <ehird> err
22:53:23 <bsmntbombgirl> well, yeah
22:53:25 <ehird> http://www.endpcnoise.com/cgi-bin/e/std/sku=fanless_mcubed_pc.html
22:53:29 <AnMaster> bsmntbombgirl, Fair enough. But why do you want solid state.
22:53:35 <AnMaster> to reduce noise?
22:53:45 <bsmntbombgirl> for the lulz
22:53:51 <ehird> as a theoretical exercise
22:53:52 <ehird> aka lulz
22:53:52 <AnMaster> Or to reduce wear?
22:53:58 <AnMaster> ok
22:54:20 <ehird> AnMaster: also, you simply can't get 0dB without fully solid state
22:54:31 <ehird> totally inaudible, yes. 0dB, no.
22:54:49 <AnMaster> ehird, Hm... I wonder how feasible cancelling out the sound would be though.
22:55:01 <AnMaster> just out of interest
22:55:03 <ehird> see acoustipack?
22:55:05 <ehird> that's what it's for
22:55:10 <AnMaster> ehird, I meant with interference.
22:55:14 <ehird> oh.
22:56:24 <AnMaster> ehird, since I know it is possible. As I said above: I saw some headphones that used interference to cancel out outside noise.
22:57:02 <AnMaster> http://en.wikipedia.org/wiki/Active_noise_control
22:58:26 <bsmntbombgirl> http://forums.overclockers.com.au/showthread.php?t=744914
22:58:29 <bsmntbombgirl> that's almost fanless
22:58:34 <bsmntbombgirl> could be with a better radiator
22:59:13 <ehird> bsmntbombgirl: hellooo? i've been linking you to a totally solid state computer that's relatively good spec-wise
22:59:22 <ehird> :p
22:59:22 <bsmntbombgirl> meh
22:59:26 <bsmntbombgirl> diy is funner
22:59:29 <ehird> sure
22:59:30 <ehird> but
22:59:33 <ehird> as a proof of what you can do
22:59:35 <ehird> max out http://www.endpcnoise.com/cgi-bin/e/std/sku=fanless_mcubed_pc.html
23:00:06 <bsmntbombgirl> meh, doubt it works
23:00:12 <ehird> bsmntbombgirl: what do you mean doubt it works?
23:00:13 <AnMaster> ehird, um the cd isn't solid state
23:00:17 <AnMaster> FAIL
23:00:21 <ehird> AnMaster: so take it out, child.
23:00:23 <AnMaster> that isn't completely solid state
23:00:26 <bsmntbombgirl> 280 watts isn't very impressive
23:00:27 <AnMaster> ehird, that works
23:00:42 <ehird> bsmntbombgirl: it's enough to power a dual-core @ 3.33ghz & 4gb *shrug*
23:00:49 -!- olsner has quit ("Leaving").
23:00:53 <ehird> the superpowered i7 I'm getting maxes out at around 400 watt
23:01:00 -!- inurinternet has joined.
23:04:53 <AnMaster> I even used headphones with ANC when flying once.
23:05:11 <ehird> The Amazing Flying Human
23:06:01 <fizzie> I doubt anyone will want to wear headphones all the time, though; and noise cancellation is rather a lot trickier when you don't have such a good control as to what sound's going to enter the ear.
23:06:04 <AnMaster> ehird, nah, Just sitting in the co-pilot seat. The heaphones with com and radio had noise cancelling.
23:06:17 <ehird> AnMaster: you sit in seats in the air‽‽‽‽
23:06:24 <AnMaster> ehird, hah
23:06:41 <AnMaster> fizzie, no way I'm going to take off the headphones in a noisy C-172 though!
23:08:36 <ehird> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
23:08:40 <ehird> i wrote my awesome c64 program
23:08:44 <ehird> but I used 16 bit variables
23:08:51 <ehird> guess how many bits the c64 registers are?
23:08:52 <ehird> 8
23:09:06 <ehird> sooooo I either have to split it across two registers or put it in memory
23:09:25 <bsmntbombgirl> i have a c64 somewhere
23:09:38 <ehird> think my dad has one somewhere.
23:09:52 <bsmntbombgirl> never actually used it
23:09:54 -!- FireFly has quit ("Later").
23:10:26 <ehird> hmm
23:10:36 <fizzie> I have a C128 in the closet ↑ that way, like I've probably said several times.
23:10:44 <fizzie> It has a reasonably compatible C64 mode, though.
23:10:51 <ehird> ok, if instead of
23:10:54 <ehird> ldx #$d800
23:10:55 <ehird> i do
23:10:57 <ehird> ldx #$d8
23:11:00 <ehird> ldy #$00
23:11:07 <ehird> oh wait, it adds on
23:11:07 <ehird> hmm
23:11:20 <ehird> as in, "inc x,y" is inc (x+y) i think
23:11:27 <fizzie> You can't really use 'xy' as a pair, anyway.
23:11:34 <ehird> i'd like to, though.
23:11:37 <ehird> since the maths would be simple
23:11:40 <fizzie> Well, you can't.
23:12:07 <fizzie> If you want to do 16-bit arithmetics, you'll have to do it with add-with-carry and some carry-handling.
23:12:09 <ehird> i know, thus im trying to figure out how to do it best :P
23:12:24 <ehird> fizzie: my loop is very mundane
23:12:40 <ehird> it's just "loop x from $d800 to $dbff"
23:12:45 <ehird> startldx #$d800
23:12:45 <ehird> continc xfffff
23:12:46 <ehird> ;increment, if >$dbff reset
23:12:48 <ehird> inx
23:12:50 <ehird> lda $dc00
23:12:52 <ehird> cmp x
23:12:53 <bsmntbombgirl> on a 64 bit proc, is a long long 128 bits?
23:12:55 <ehird> bne start
23:12:56 <ehird> jmp cont
23:12:58 <ehird> bsmntbombgirl: yep
23:13:26 <fizzie> It's just not a 16-bit CPU, you can't use it like it were. :p
23:13:32 <ehird> i know
23:13:41 <ehird> i just don't know how to address, say, $dbff when all you can do is
23:13:43 <ehird> inc x,y
23:13:45 <ehird> which is inc (x+y)
23:13:56 <ehird> oh wait
23:14:02 <ehird> the literals can be $xxxx
23:14:05 <ehird> if you do inc $xxxx
23:14:08 <ehird> hrm
23:14:23 <fizzie> You can use absolute addressing with INC, so you can increment any byte in memory.
23:14:32 <ehird> oh?
23:14:32 <ehird> how?
23:14:48 <fizzie> Like you did there, inc $xxxx. I mean, assuming it's constant.
23:15:05 <ehird> fizzie: well, it's not, since I'm looping from $d800 to $dbff
23:15:05 <ehird> :p
23:15:12 <bsmntbombgirl> and i wonder if sse is any good for crypto
23:15:15 <fizzie> If you need a 16-bit pointer-type of thing, you're pretty much going to have to use the indirect addressing modes.
23:15:25 <ehird> fizzie: great, how do you use them
23:15:28 <ehird> these docs are woeful
23:17:11 <fizzie> LDA ($ab,X) or LDA ($ab),Y -- where $ab is a memory address on the zero page (there's a couple free for temporary use, I think); the first will load A with the data in memory address pointed to by $ab+X and $ab+X+1.
23:17:24 <ehird> ah, the 4-byte zero page?
23:17:29 <ehird> asie said something about that
23:17:45 <fizzie> For the second, it's the memory address pointed to by $ab and $ab+1, with Y added to it after indirection.
23:17:55 <ehird> fizzie: but... those are still 8 bit right?
23:18:22 <fizzie> Well, no, in the sense that it uses the bytes at $ab and $ab+1 to form the 16-bit address where to load the 8 bits of A from.
23:18:48 <ehird> ah
23:18:50 <ehird> gross :)
23:18:59 <fizzie> Then you can (painfully) increment the 16-bit value at $ab and go on with your loop.
23:19:08 -!- coppro has joined.
23:19:14 <ehird> fizzie: so if you have $ab=ff and $ab+1=33, it behaves like LDA $ff33?
23:19:27 <fizzie> I think it might've been little-endian.
23:19:30 <fizzie> Not quite sure.
23:19:35 <ehird> ah
23:19:39 <ehird> well the c64 is so
23:19:41 <ehird> $33ff
23:19:47 <ehird> fizzie: is $ab an example or the actual addr :P
23:20:13 <fizzie> An example; I don't remember what the "free" bytes are (if you don't want to mess the C64 kernal stuff).
23:20:36 <ehird> hrms
23:22:57 <fizzie> Anyway, if you want to write A to all bytes $d800..$dbff, you probably want to: loop through the values $d8..$db at some zero-page address $00ab (and keep $00ac == 0); and for each of those values do a single inner loop of Y=0..Y=$ff executing STA ($ab),Y.
23:23:23 <ehird> yeah
23:23:30 <ehird> should be easy enough once i figure out where the zero page is
23:23:32 <AnMaster> bzr branch http://rage.kuonet.org/~anmaster/bzr/in-between/trunk in-between
23:23:36 <AnMaster> in case anyone is interested
23:23:39 <AnMaster> it is far from done
23:23:40 <bsmntbombgirl> i want a tile64
23:23:45 <AnMaster> but is quite ok already
23:23:46 <ehird> bsmntbombgirl: what would it do
23:23:57 <bsmntbombgirl> ehird: be awesome
23:24:01 <AnMaster> ais523, you might be interested
23:24:06 <AnMaster> same for lifthrasiir
23:24:06 <fizzie> ehird:
23:24:07 <ehird> bsmntbombgirl: what is tile :p
23:24:08 <fizzie> FREKZP00FB-00FE251-254Free 0-Page Space for User Programs
23:24:15 <bsmntbombgirl> http://www.tilera.com/products/TILE64.php
23:24:15 <ehird> fizzie: ooh, thanks, where's that from
23:24:18 <fizzie> ehird: Those are the four officially free bytes you can use there.
23:24:22 <fizzie> http://www.cbmitapages.it/c64/c64ram.htm
23:24:32 <ehird> bsmntbombgirl: what arch is it?
23:24:33 <ais523> AnMaster: now is a bad time for me, RL-wise
23:24:41 <AnMaster> ais523, ok. It will stay there.
23:24:52 <ais523> fizzie: 4 bytes? the BBC Micro had an entire 32 bytes of Page Zero for the user
23:24:55 <fizzie> I think the official C64 programming guide had a reasonable memory map in it too; that is available as an e-text somewhere. In many places, I think.
23:24:56 <AnMaster> I think the design is very nice thoigh
23:24:58 <AnMaster> though*
23:25:07 <ehird> ais523: the c-64 is rather hardcore
23:25:08 <fizzie> ais523: There are a lot of bytes you can abuse, IIRC.
23:25:21 <ais523> actually, given that it's only 256 bytes large, 32 was an immensely large allocation for the user to play with
23:25:58 <ehird> 23:22 fizzie: Anyway, if you want to write A to all bytes $d800..$dbff, you probably want to: loop through the values $d8..$db at some zero-page address $00ab (and keep $00ac == 0); and for each of those values do a single inner loop of Y=0..Y=$ff executing STA ($ab),Y.
23:26:01 <ehird> don't you mean put it in 00ac
23:26:04 <ehird> and leave 00ab = 0
23:26:11 <fizzie> Right.
23:26:22 <fizzie> I was a bit big-endian there.
23:26:25 <ehird> I wonder if them defaulting to 0 is in the speck
23:26:27 <AnMaster> http://bzr.kuonet.org/in-between/trunk/files
23:26:27 <ehird> yes, speck
23:26:28 <AnMaster> btw
23:26:31 <AnMaster> for browsing it
23:26:53 <ehird> bsmntbombgirl: what do they run on
23:26:55 <ehird> tile64s
23:26:59 <bsmntbombgirl> what?
23:27:02 <ehird> arch
23:27:29 <bsmntbombgirl> wtf are you talkign about
23:28:54 <ehird> bsmntbombgirl: what architecture do the tile64s use
23:28:56 <ehird> fizzie: foo.asm:17: Extra characters on line "sta ($00fb),0"
23:29:03 <bsmntbombgirl> ehird: their own
23:29:05 <ehird> seems like we dun be supporting nonuvat syntax.
23:29:07 <ehird> bsmntbombgirl: oh.
23:29:22 <ehird> bsmntbombgirl: shrug; it seems like you'd need something really hugely parallel to use it properly
23:29:28 <bsmntbombgirl> ...no shit
23:29:44 <fizzie> ehird: It's "STA ($FB),Y" you want; there's no such thing as ",0" there -- if you don't want an offset, you'll have to clear Y.
23:29:51 <ehird> ah.
23:30:05 <ehird> there's a better way to clear y than "ldy #$00"? :p
23:30:43 <ehird> fizzie: seems not
23:30:44 <ehird> lda #$ff
23:30:44 <ehird> ldx #$00
23:30:46 <ehird> sta ($fb),x
23:30:48 <ehird> foo.asm:18: Constant too large "sta ($fb),x"
23:31:26 <fizzie> You need to use Y with it.
23:31:41 <ehird> fizzie: it's a bloody odd syntax if you have to put ,y in there
23:31:42 <fizzie> Or you can write "STA ($FB,X)" if you want, since X=0.
23:31:55 <ehird> welp, works now with y
23:32:09 <ehird> hmm
23:32:14 <ehird> nothing happens on the graphical display
23:32:17 <ehird> how queery.
23:32:47 <fizzie> It's either indexed-indirect with ($ab,x) or indirect-indexed with ($ab),y; but you always have to use x and y depending on the style you want. It's a bit... limited.
23:33:06 <ehird> Yeah.
23:33:13 <ehird> I'm using ($ab),y.
23:33:27 <ehird> Hmm...
23:33:35 <ehird> Is $d800-$dbff not actually video memory?
23:34:30 <fizzie> I've completely forgotten what the graphics modes look like; but I'm sure there's no direct-mapped framebuffery thing. It's all very 8x8-raw-pixel-tiley.
23:35:07 <ehird> Oh, I know, I'm doing text mode here
23:35:20 <fizzie> Oh. Well, I don't remember where that was either. :p
23:35:22 <ehird> asiekierka said that $d800-$dbff was the colours for chars, I think.
23:35:27 <ehird> The issue may be that there's no char there.
23:35:46 <ehird> Of course, finding a slot that is used would be überwork.
23:38:28 <fizzie> Yes, the foreground color of characters seems to be at that range; one byte per character, but only 4 lower bits are actually stored.
23:39:03 <ehird> fizzie: do you just sort of pick up the info from anywhere or are you getting this from an infallable resource?
23:39:06 <ehird> i'd like to know which if the latter
23:39:57 <fizzie> Googling for random strings this time. I did have some sort of bookmark collection back when I was doing a bit of C64 stuff, but I'm sure I've misplaced it.
23:41:06 <fizzie> http://www.c64.ch/programming/c64prg10.txt is the official reference guide; large sections of it are pretty basic-oriented, but there's useful stuff too.
23:42:17 <fizzie> For example, even though the "programming graphics" chapter 3 speaks of POKEing a lot, the memory addresses are the same. And chapter 5 is about assembly-things.
23:42:50 <fizzie> It is a bit overfond of decimal numbers, though.
23:42:55 <ehird> decimal ftl
23:44:41 <fizzie> Will have to sleep now; have 64fun.
23:44:48 <ehird> bai
23:45:42 * bsmntbombgirl POKEs fizzie
23:47:28 -!- Dewi has joined.
23:48:03 <ehird> “here is my virus, it's contained in the scanner for HIV 1. it scanns the disk for HIV1 (and removes it when it is found) but infects with HIV2.”
23:48:04 <lifthrasiir> AnMaster: finally i splitted esotope-bfc into bfc package. not refactored yet, but it is being closer to pluggable architecture.
23:48:15 <AnMaster> lifthrasiir, "bfc package"?
23:48:16 <ehird> just like the fake antiviruses for windows of today!
23:48:19 <bsmntbombgirl> ...wait what?
23:48:23 <lifthrasiir> the name of package is "bfc".
23:48:32 <ehird> bsmntbombgirl: c64 viruses
23:48:34 <ehird> called HIV1/HIV2
23:48:38 <ehird> to clear up confusion :p
23:48:39 <lifthrasiir> Expr is moved to bfc.expr module, IR is to bfc.nodes, etc.
23:48:41 <AnMaster> lifthrasiir, ah
23:48:48 <bsmntbombgirl> omg ehird has aids
23:48:56 <ehird> clearly.
23:52:46 -!- ais523 has quit (Remote closed the connection).
23:55:50 <ehird> litle know fact
23:56:29 -!- oerjan has joined.
23:58:01 <bsmntbombgirl> http://www.koolance.com/water-cooling/includes/modules/image_browse.php?code=665&type=more&nindex=0
23:58:04 <bsmntbombgirl> submerged
23:58:44 -!- comex has quit (Remote closed the connection).
23:59:54 -!- Dewio has quit (Read error: 101 (Network is unreachable)).
←2009-05-11 2009-05-12 2009-05-13→ ↑2009 ↑all