00:04:39 <pikhq> fizzie: Any idea how you make urxvt handle the compose key?
00:11:12 <pikhq> Hrm. Well, now I wonder if it's screen that's screwing with me.
00:11:22 -!- pikhq has quit ("leaving").
00:12:12 -!- pikhq has joined.
00:12:22 <pikhq> Quick! Someone use Unicode!
00:13:03 <pikhq> ... A question mark?
00:13:29 <ais523> that's the same as ehird's with a different accent
00:13:33 <pikhq> GOD DAMNED YOU URXVT.
00:13:53 <pikhq> I see question mark after question mark.
00:14:17 <pikhq> fizzie: You said urxvt actually worked for you?
00:14:20 <pikhq> What magic did you do?
00:14:38 <ehird> is yer terminal set right pikhq?
00:17:40 <pikhq> More question marks.
00:19:45 <pikhq> It shows every Unicode character with a single question mark.
00:20:16 <pikhq> Odd, given that it's using Deja Vu Sans, which I *know* has Unicode characters.
00:22:00 <ehird> anyone have a fast internet connection and an open udp port? fizzie?
00:22:16 <ehird> I'm talking to ais523 about internet latency; we'd like to have a roundtrip of less than a tenth of second
00:26:53 <GregorR> 6 a i o pb qt rm sd we xl yuk zn
00:28:20 <GregorR> That's the status of my pangram seeker :P
00:28:32 -!- ais523 has quit (Remote closed the connection).
00:28:34 <ehird> GregorR: make it optimize for longer words.
00:28:53 <GregorR> ehird: In retrospect I would do that, but it's too late now.
00:29:03 <ehird> GregorR: That'll take years, sir
00:29:10 <ehird> GregorR: Make a self-describing sentence
00:29:17 <GregorR> I'm not convinced that it will *shrugs*
00:29:17 <ehird> This sentence has 1 As, ...
00:31:27 -!- sebbu3 has changed nick to sebbu.
00:39:07 <pikhq> ehird: A tenth of a second? I wish. I've got a lag of 4 seconds ATM.
00:42:08 <oerjan> lag lag lag your boat, gently down the tubes...
00:42:16 -!- bsmntbombdood_ has quit (Read error: 110 (Connection timed out)).
00:43:12 -!- bsmntbombdood_ has joined.
00:44:34 <ehird> http://www.telegraph.co.uk/scienceandtechnology/science/sciencenews/5255394/Alien-skull-spotted-on-Mars.html
01:11:36 -!- puzzlet_ has joined.
01:23:10 <comex> Prelude> ((/) 2) 8
01:23:37 <ehird> ones infix ones prefix
01:23:48 <comex> except _/x is not valid syntax
01:24:04 <comex> then do I have to do (`subf` x)
01:24:12 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
01:25:27 -!- Gracenotes has quit ("Leaving").
01:26:02 -!- Gracenotes has joined.
01:26:04 <comex> what if I have a f a b c d
01:26:11 <comex> and I want to curry the c
01:26:49 <oerjan> (\c -> a f a b c d) yourC
01:27:16 <oerjan> flip (a f a b) d, i think
01:27:17 <comex> the first 'a' was an article, you know :p
01:27:42 <comex> flip :: (a -> b -> c) -> b -> a -> c
01:28:03 <oerjan> (`whatever` x) = flip whatever x
01:28:49 <oerjan> but you can only use `` with single identifiers
01:29:53 <oerjan> also, subf exists, it's called subtract
01:30:27 <comex> it was a contrived example anyway :p
01:30:36 <oerjan> it exists for a technical reason
01:30:51 <oerjan> because (- x) is negative x, not a section
01:31:10 <oerjan> so you need to use (subtract x) if you want the section
01:52:31 -!- oerjan has quit ("Good night").
02:05:28 <pikhq> I'd like to take this opportunity to state that all sellers of digital information are guilty of price fixing.
02:05:29 -!- psygnisfive has quit (Remote closed the connection).
02:11:29 -!- bsmntbombdood_ has quit (Read error: 131 (Connection reset by peer)).
02:12:03 -!- bsmntbombdood_ has joined.
02:49:10 -!- psygnisfive has joined.
03:09:14 <GregorR> The commercials for Star Trek $MOVIE_NOT_NUMBERED makes it look godawful.
03:14:46 -!- Sgeo has joined.
03:15:52 <Sgeo> Anyone feel that programming classes shouldn't be required for non-programmers?
03:15:53 <pikhq> Also, I note that Sam Hughes needs to write for Star Trek.
03:16:11 <pikhq> Sgeo: No, but they should be taught better.
03:16:40 <Sgeo> psygnisfive, good luck with that
03:16:44 <pikhq> (there's a freaking programming class for non-programmers at my school that uses C++. C++ for non-programmers? Madness!)
03:17:05 <Sgeo> Saw some student who wanted help testing. I saw code like:
03:17:13 <Sgeo> MULTIPLICATION = multiplication()
03:17:20 <pikhq> psygnisfive: C++! Madness!
03:17:26 <Sgeo> since he never figured out void functions
03:18:04 <Sgeo> (yes, a function like multiplication() made sense in context. The fact that it returned something (always 0), not so much)
03:21:36 <GregorR> <pikhq> This summer, I have so far designed a new (miniscule) processor architecture, written an emulator for it, and came up with an optimising Brainfuck compiler in Brainfuck.
03:22:23 <pikhq> Ah, yes. That was a productive summer for me.
03:22:33 <pikhq> And to think, I did it all on dialup.
03:22:35 <GregorR> I can't seem to find Sgeo's first messages in the logs ...
03:23:10 <GregorR> * Sgep is using konq, and can't figure out Java, so I can't really see EsoShell :-(
03:23:16 <GregorR> YOUR NAME CHANGE CONFUSES AND INFURIATES ME
03:24:20 <GregorR> Hah, psygnisfive (then augur)'s first messages were "<augur> GregorR -- gregor richardson? <augur> i know a gregor richardson and i was gonna be all like <augur> ZOMG IS IT YOU"
03:25:38 <GregorR> How many people here HAVEN'T had a name change?
03:25:52 <psygnisfive> how many people here HAVEN'T has a sex change?
03:25:53 <pikhq> pikhq <-- always pikhq
03:26:07 <psygnisfive> i wouldve stayed augur if it werent for some cock using that name
03:26:09 <pikhq> I've had this nickname for *11 freaking years*.
03:26:10 <GregorR> ehird <-- had a backtick, but otherwise
03:26:27 <pikhq> Doesn't seem like that long, but, well, I'm 19. Forever for me.
03:27:38 <GregorR> <bsmntbombdood> how does one learn to speak Klingon?
03:27:58 <pikhq> I think I remember that.
03:48:22 <Sgeo> http://www.reddit.com/r/funny/comments/8hqgy/fire_check_shot_check_idiot_check/
03:55:56 <GregorR> Lodz VFW benchmarks jug pix qty.
03:57:55 <pikhq> It still needs to be said.
04:03:18 <GregorR> <Brian> And it suddenly makes a lot more sense when you consider 'jugs' can be a euphemism!
04:03:19 <GregorR> <Brian> I honestly typed "pictures of jugs" into Google
04:23:31 <Sgeo> Is "OSAM Autorun Manager" good?
04:35:54 -!- puzzlet has joined.
04:38:23 <GregorR> <puzzlet> http://puzzlet.org/puzzlet/~Funge/PuzzletChung/SquareRoot <puzzlet> One of my experiments..
04:39:17 <GregorR> Damn, pgimeno hasn't been on in 5 months.
04:49:07 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)).
04:49:17 <puzzlet> still can be found at http://puzzlet.org/personal/wiki.php/~Funge/PuzzletChung/SquareRoot
04:50:46 -!- Gracenotes has quit (Remote closed the connection).
05:21:23 -!- bsmntbombdood_ has quit (Connection reset by peer).
05:37:05 <GregorR> puzzlet: I'm quoting peoples' first few words.
05:38:43 <psygnisfive> puzzlet, this is a befunge program that takes square roots?
05:41:18 -!- bsmntbombdood has joined.
05:42:03 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
05:42:18 -!- puzzlet has joined.
05:42:31 <GregorR> Heh, my first words here were about FYB.
05:42:37 <GregorR> I should get that goin' again :P
05:42:49 <GregorR> Somebody's got to beat logicex-3
05:59:34 -!- Sgeo has quit ("Leaving").
06:06:50 <EgoBot> Use: !fyb <program name> <program>
06:09:46 <GregorR> Now I just need to get somebody interested in FYB again ...
07:04:58 -!- GreaseMonkey has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:17:43 -!- Slereah has joined.
08:32:35 -!- tombom has joined.
08:48:38 -!- coppro has quit (Read error: 110 (Connection timed out)).
10:43:56 -!- GreaseMonkey has quit ("YES -> thor-ainor.it <- THIS IS *DELICIOUS*!").
11:16:27 -!- jix has joined.
11:44:50 -!- oklopol has joined.
12:05:29 <kerlo> (^x.xx)(^x.xx) = /x/^x.xx/xx, but I don't think ^x.xx can be translated.
12:11:58 <fizzie> You are probably just imagining being here.
12:15:55 <kerlo> AnMaster: a mixture of lambda calculus and ///.
12:19:33 <Slereah> I guess it's /a/b/c -> replace a's by c in b, given the context?
12:19:59 <fizzie> It's /a/b/c -> replace a's by b in c, actually.
12:20:11 <AnMaster> but that is just plain /// isn't it?
12:20:31 <Slereah> Although you'll have variable collision if you do that
12:20:47 <oklopol> do you think i should be a farmer?
12:22:17 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
12:23:27 -!- oklopol has joined.
12:25:04 <oklopol> last time i read that as "dickandsuck"
12:42:39 -!- oerjan has joined.
12:47:35 <AnMaster> hm did xkcd update two days after each other
12:48:11 <oerjan> ah yes and it's a multipart story
12:48:27 -!- oklopol has quit (Read error: 110 (Connection timed out)).
12:50:14 -!- oklopol has joined.
13:00:09 -!- oklopol has quit ("PJIRC @ http://webirk.dy.fi").
13:04:55 <oerjan> <psygnisfive> /a/b/c is very similar to (.a.c) b
13:05:19 <oerjan> the problem is that that also garbles any instances of /a/b/ in c
13:06:25 <oerjan> the problem is, it is _very_ hard to modify just _some_ instances of anything
13:07:24 <oerjan> i mean to show slashes TC is hard
13:07:40 <oerjan> because it _doesn't_ work like lambda calculus
13:08:23 <oerjan> oh btw it's (\a.b) c, if anything
13:10:40 <oerjan> oh you need to escape all / in b
13:11:52 <psygnisfive> im not entirely up on how the slashes get escaped
13:14:07 <fizzie> Personally I couldn't even do an infinite loop in ///, one that wouldn't have a single non-terminating /// expression. To loop "aaa" you need some code that translates "x" into "aaa [code that translates x into aaa] x", and it seems to be pretty difficult to do anything involving just the first "aaa" part without messing up the latter code.
13:18:18 <Slereah> He means shit ain't TC so stop trying
13:18:28 <psygnisfive> i think that ///s might be an alternative notation for de bruijn notation lc.
13:19:04 <psygnisfive> de bruijn notation is almost identical, except /a/b/c is (b) [a] c
13:19:29 <psygnisfive> it could be an important difference tho. i dont know.
13:22:20 <fizzie> I just mean that anything with /// that involves generating code seemed to be rather tricky in practice. I couldn't write a /// expression Z that would turn "x" into "Zx", for example. (And in fact /x/...x.../ will never terminate, of course, so you'd need something pretty clever.)
13:23:32 <oerjan> ah yes, the substitution is repeated until it no longer applies
13:23:52 <fizzie> I mean /x/...x.../ will never terminate, since it keeps applying the substitution as long as there is a single x in the rest of the code.
13:24:12 <psygnisfive> well, surely that by itself wont not terminante, since its substituting x for ...x... in nothing
13:24:55 <psygnisfive> /a/b/c keeps replacing a with b in c and all the versions of c that get produced by substitutions?
13:25:21 <psygnisfive> so /a/b/c -> /a/b/c' -> /a/b/c'' ... until c^(n) has no a's?
13:26:11 <oerjan> it means that afterwards, there _will_ be no a in the code
13:26:35 <oerjan> and so some easy ways of looping are excluded
13:26:36 <psygnisfive> i guess thats a problem if you have a /// that should apply to another version of itself
13:27:53 <oerjan> in particular, if b contains a you get a tight infinite loop, which never prints anything
13:31:52 <oerjan> to get around this, i recall trying thinking about making a something with more than a single character, so you can reconstruct it
13:32:05 <oerjan> (if a were a single character, you could never get it back)
13:32:25 <oerjan> but then the need to escape slashes gets added to that, and i gave up
13:32:40 <psygnisfive> so that \a doesnt match a until the replace cycle??
13:33:08 <psygnisfive> :|} is a frustrated guy with an amish beard
13:33:20 <oerjan> broke his wagon wheel?
13:33:31 -!- jix has quit ("leaving").
13:33:38 -!- jix has joined.
13:33:56 <fizzie> I did also try thinking about using some other longer strings, and then replacing them back with something like a simple /foo/bar/, but that hit the snag that it would of course replace any later "/foo/bar/" you wanted to run in the whole future of the program with a /bar/bar/.
13:33:58 -!- jix has quit (Remote closed the connection).
13:34:22 -!- jix has joined.
13:34:23 <fizzie> An easy language it is not.
13:35:49 -!- jix has quit (Remote closed the connection).
13:36:04 -!- jix has joined.
13:43:12 <Slereah> Par la guerre personne ne devient grand
13:44:16 <Deewiant> That's a good attitude for a linguist to have
13:46:38 <Slereah> Don't you call me cockface
13:46:40 * oerjan imagines psygnisfive somewhere in the depths of the amazon, saying "english, cockface."
13:46:46 <Slereah> Until your cock is in my face.
13:47:39 <Slereah> But this place is full of finns and Frenchmen
13:48:17 <psygnisfive> apparently some nutters have tried to apply type theory to the social sciences
13:48:49 <oerjan> first it was darwinism, now it's type theory
13:50:40 <Slereah> The holocaust was because of type theory
13:50:54 <Slereah> Bertrand Russell is a murderer
13:51:18 <oerjan> he was just following orders
13:52:26 <Slereah> Are you aware that Hilbert is just an anagram for Hitler b
13:52:59 <Slereah> Hilbert came up with the extermination of untyped objects.
13:53:28 <psygnisfive> In the second argument of `(+)', namely `jew'
13:53:32 <psygnisfive> In the definition of `it': it = german + jew
13:53:49 <Slereah> Let's make a language out of this
13:53:56 <oerjan> + has a strict segregation policy
13:56:09 <Deewiant> int process_spell_target(int who, int what, int y0, int x0, int y1, int x1, int spell, int level, u32b flg, int region_id, int delay, int damage_div, bool one_grid, bool forreal, bool player, void retarget(int *ty, int *tx, u32b *flg, int method, int level, bool full, bool *one_grid), bool *cancel)
13:56:41 <Slereah> is it some code for magic?
13:57:12 <Deewiant> I got it from http://roguelikedeveloper.blogspot.com/2009/04/moral-simplification.html
13:57:49 <fizzie> Some people would've just used a typedef for the function pointer in there. I call those people quitters!
14:02:05 -!- oerjan has quit ("Later").
14:43:46 -!- Sgeo has joined.
14:47:10 <lifthrasiir> it's likely that SSA-based analysis is needed to propagate brainfuck IL correctly.
14:48:16 <lifthrasiir> intermediate language, used in esotope-bfc compiler
14:49:20 <lifthrasiir> i have written analysis code for one basic block, but there are so many small basic blocks and i should analyze them in the whole...
14:49:28 <lifthrasiir> Sgeo: http://hg.mearie.org/esotope/bfc/file/tip/esotope-bfc.py
14:50:16 <lifthrasiir> there are many rooms of improvement, many of them requires SSA form or something like that
14:51:35 <lifthrasiir> wikipedia contains some article on it: http://en.wikipedia.org/wiki/Static_single_assignment_form
14:51:54 <lifthrasiir> it is a popular technique in the compiler construction.
15:18:36 <Sgeo> ehird, new Fine Structure out
15:22:54 <pikhq> Another new one? Sweet.
15:23:06 <pikhq> Oh, it's a few days old.
15:30:14 -!- jix has quit (Read error: 113 (No route to host)).
15:42:06 -!- puzzlet_ has joined.
15:44:55 -!- puzzlet has quit (Read error: 145 (Connection timed out)).
16:12:30 -!- KingOfKarlsruhe has joined.
16:16:00 -!- impomatic has joined.
16:17:38 -!- puzzlet has joined.
16:17:40 -!- puzzlet_ has quit (Remote closed the connection).
16:25:56 -!- MigoMipo has joined.
16:27:28 -!- Slereah has quit ("Leaving").
16:35:49 <GregorR> I'm up to 14 potential 26-letter pangrams :)
16:35:53 <GregorR> They're all pretty terrible though :P
16:41:27 -!- sebbu2 has joined.
16:43:32 <lifthrasiir> GregorR: are there common pattern in them? for example, certain word is likely to appear in them?
16:44:34 -!- sebbu has quit (wolfe.freenode.net irc.freenode.net).
16:58:21 <impomatic> Have you heard about Lee Sallow's pangram machine?
16:58:56 <impomatic> Cool looking machine from about 25 years ago.
17:12:31 -!- FireFly has joined.
17:32:11 -!- Hiato has joined.
17:33:03 <GregorR> lifthrasiir: Yes. Those acronyms I didn't manage to filter out are popular :P
17:33:25 <ehird> 01:05 pikhq: I'd like to take this opportunity to state that all sellers of digital information are guilty of price fixing.
17:33:26 <ehird> 01:05 pikhq: That is all.
17:33:29 <ehird> Ex-fucking-XACTLY.
17:33:46 <ehird> Bits are not scarce; there is infinite supply and finite demand.
17:34:47 <lifthrasiir> ehird: http://code.google.com/p/esotope-bfc/ i once heard of mercurial support in google code, but when i registered the project i realized mercurial support is for invited users... :S
17:34:52 <GregorR> That's by definition. The free market has not yet figured out how to deal with non-scarce resources, for that very reason, and to compensate they're treating them like scarce resources.
17:35:02 <ehird> lifthrasiir: Github ftw ;-)
17:35:17 <GregorR> lifthrasiir: If you'd like mercurial support, I could set you up a page on codu.org/projects .
17:35:19 <ehird> GregorR: Selling non-scarce resources is inherently immoral, imo.
17:35:28 <ehird> Also, free markets are dumb to the max :P
17:35:57 <lifthrasiir> GregorR: i feel google code is quite convenient, except for its VCS support
17:35:57 <ehird> lifthrasiir: you can integrate google code with mercurial
17:36:02 <ehird> lifthrasiir: go to the admin panel
17:36:05 <ehird> to do the tabs panel
17:36:08 <ehird> input Source in the box
17:36:11 <ehird> now, edit the Source wiki pag
17:36:18 <ehird> and put checkout instructions on there and a link to the web interface
17:36:25 <ehird> = the source tab on google code links to that; hooray
17:36:32 <ehird> you can also hide e.g. Downloads if you're not going to use that
17:36:43 <ehird> lifthrasiir: I've done it befor
17:36:47 <ehird> it works excellently
17:36:52 <ehird> http://code.google.com/p/github-and-google-code/
17:36:57 <ehird> the actual github project has been deleted
17:37:00 <ehird> but that shows the tab
17:37:31 <GregorR> <ehird> the actual github project has been deleted // I'm going to use this out of context hundreds of times >: )
17:37:32 <ehird> lifthrasiir: then if you put in e.g. the URL field on your hgweb, you can put a link to the google code there
17:37:43 <ehird> I deleted it myself
17:37:57 <GregorR> <ehird> the actual github project has been deleted <ehird> I deleted it myself
17:38:05 <ehird> GregorR: Er, what's so funny?
17:38:10 <ehird> That's what she said?
17:38:24 <GregorR> That says nothing about Google code. If I take that out of context, it sounds like you're saying you deleted github :P
17:41:04 <ehird> GregorR: I deleted the project-on-github
17:42:04 <GregorR> Of course you did, that's clear enough.
17:42:14 <GregorR> But it's less clear when I don't include those details, hence "out of context"
17:42:24 <GregorR> This joke has now been so over-explained it's been beaten to death.
17:43:34 -!- MigoMipo has quit (Read error: 60 (Operation timed out)).
18:09:59 -!- KingOfKarlsruhe has quit (Remote closed the connection).
18:20:51 -!- ais523 has joined.
18:24:58 -!- MigoMipo has joined.
18:26:35 -!- ais523_ has joined.
18:27:13 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
18:28:00 -!- impomatic has left (?).
18:29:05 -!- tombom has quit ("Peace and Protection 4.22.2").
18:37:15 -!- ais523 has quit (Read error: 110 (Connection timed out)).
18:45:10 -!- ais523_ has changed nick to ais523.
18:45:19 <ais523> this connection's rather flaky, it seems
18:50:48 -!- FireFly has quit (Read error: 60 (Operation timed out)).
19:45:17 -!- Slereah has joined.
19:56:53 -!- WangZeDong has quit (Read error: 110 (Connection timed out)).
20:00:13 <ais523> some of Perl6's features seem only useful to golfers
20:00:34 <ais523> for instance, the pair (foo => 42) can be abbreviated :foo(42), which can be abbreviated :42foo
20:04:03 <lifthrasiir> so it treats 42 and foo as two tokens, not an error (still)?
20:04:19 <ais523> not just that, it's a deliberate abbreviation AFAICT
20:04:30 <ais523> :42 foo would mean something entirely different, probably
20:04:50 <ais523> actually, even (foo => 42) is an abbreviation for ('foo' => 42)
20:05:07 <fizzie> What would :42'foo' mean?
20:05:21 <ais523> probably a syntax error
20:05:23 <fizzie> What's that : about, anyway?
20:05:46 <ais523> Everyone wants the colon.
20:13:35 <ais523> more fun Perl6 syntax: "\c[NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE]"
20:15:00 <lifthrasiir> >>> u'\N{NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE}'
20:16:50 <fizzie> >>> u'\N{tetragram for vastness or wasting}'
20:16:55 <fizzie> The most useful thing ever.
20:17:22 <fizzie> I wonder how many copies of over-a-megabyte Unicode character name database I have because of stuff like this.
20:17:24 <ais523> what about glagolitic capital letter spidery ha?
20:18:15 <ehird> >>> print u'\N{glagolitic capital letter spidery ha}'
20:18:21 <lifthrasiir> fizzie: no, it surely can be compressed less than 64K. i have done such thing once.
20:18:38 <ehird> AnMaster: what did I do now?
20:18:44 <lifthrasiir> afaik python also uses such compression, making entire database less than 100K iirc
20:19:02 <AnMaster> ehird, it was a sigh in awe of the glagolitic capital letter spidery ha clearly!
20:19:05 <ais523> that's still over 5% of a floppy disk
20:19:34 <ehird> AnMaster: 20:17 ais523: what about glagolitic capital letter spidery ha?
20:19:42 <ehird> AnMaster: If you think I did that spontaneously, lern2scrollback.
20:19:51 <lifthrasiir> but python distribution doesn't fit in a floppy disk, does it?
20:19:58 <AnMaster> ehird, did I say it was spontaneous...
20:20:14 <ais523> lifthrasiir: maybe not, but I've had to fit python onto a small computer with only 16MB Flash space before now
20:20:31 <ais523> we did manage it in the end by uninstalling all the things we didn't need
20:20:33 <ehird> AnMaster: the 'sigh' seemed to imply you were blaming me.
20:20:34 <ais523> lifthrasiir: hadn't heard of it
20:20:41 <AnMaster> ehird, "<AnMaster> ehird, it was a sigh in awe of the glagolitic capital letter spidery ha clearly!"
20:20:56 <ehird> AnMaster: if I took that seriously you'd accuse me of lacking a sarcasm detector AKA mind reader.
20:21:07 <lifthrasiir> tinypy is a minimalistic python implemenation whose loc is just over 60K lines.
20:21:33 <lifthrasiir> if you absolutely have to integrate python within restricted environment, it might help
20:21:33 <ehird> lifthrasiir: '60K lines', 'minimalistic'
20:21:57 <fizzie> -rw-r--r-- 1 root root 481008 2009-02-18 06:20 /usr/lib/python2.5/lib-dynload/unicodedata.so
20:22:05 <fizzie> The fact that it can be compressed of course doesn't mean it will.
20:22:15 <AnMaster> ehird, isn't sqlite rather minimalistic iirc? Yet it is something like 90k lines iirc
20:22:50 <lifthrasiir> fizzie: it also contains normalization tables for NFK?[CD]
20:54:54 <ais523> I love the way the Perl6 manual talks repeatedly about a function called "if"
20:55:03 <ais523> the idea being it's talking about how to do weird things with the parser
20:55:14 <ais523> in this case, how to use a function with a name that means something else
20:55:29 <ais523> likewise, it talks about how to refer to a variable called $@%$@
20:55:35 <ais523> or something like that, anyway
21:01:56 -!- olsner has joined.
21:06:30 -!- impomatic has joined.
21:06:55 <impomatic> Hi, just a quick question. How does this channel get logged? We want to log the #corewars channel
21:07:14 <ehird> impomatic: don't bother
21:07:19 <ehird> last log was accepted in 2005 iirc
21:07:29 <ehird> because it's unmaintained
21:07:35 <ehird> nef doesn't maintain it, Faré doesn't care
21:07:49 <ehird> when you COULD get it, it was done by asking
21:08:12 <ehird> impomatic: there are many free IRC log services
21:08:14 <ehird> try ircbrowse.com or something
21:08:24 <impomatic> Ah, okay. How do I ask? It's worth a try.
21:08:32 <ehird> impomatic: you can't; they don't exist :P
21:08:44 -!- ais523_ has joined.
21:08:46 <ehird> impomatic: there's one that does it by filling out a web form
21:09:19 <ehird> impomatic: http://www.irseek.com/
21:09:22 <ehird> fill in the opt in form
21:09:28 <impomatic> Does that count as unauthorised public logging? I saw a warning about that!
21:09:48 <ehird> You have to put it in the topic.
21:10:05 <ehird> impomatic: it may not be the best option for long-term archival
21:10:06 <ehird> "IRSeek will keep channel logs for upto 7-years (for example, a message that has been archived by our log-bots on January 1st, 2001 will be kept in our database until January 1st, 2008, unless a channel contact/operator has specifically requested that we remove it before that time). This policy will reduce the concern that a message once sent to a logged-channel will be archived forever. "
21:12:04 <ehird> impomatic: does anyone in the channel have a server?
21:12:39 <impomatic> I think we all used shared hosting for our webpages.
21:12:46 <ehird> ← impomatic: I may be able to set up something.
21:16:04 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
21:18:37 -!- puzzlet has joined.
21:18:44 <ais523_> > {my $x = "dnab0001.png"; say ++$x;}
21:18:47 <ais523_> now that's just showing off
21:20:20 <GregorR> That's a little bit scary actually.
21:21:37 <ais523_> > {my $x = "foobar 1.0.1"; say ++$x;}
21:21:43 <ais523_> that definitely isn't what I expected
21:21:50 -!- ais523 has quit (Nick collision from services.).
21:21:52 -!- ais523_ has changed nick to ais523.
21:22:32 <ais523> that contradicts the spec, though, must be a bug in rakudo
21:22:35 <Deewiant> ais523: Parses it as a floating-point 1.0 and discards the rest?
21:22:38 <ais523> the spec would indicate "foobar 2.0.1"
21:26:32 <GregorR> How 'bout "foobar 1.0.1" + 0.0.1
21:28:01 <fizzie> And do you get a "foobar 2.3.4" out of "foo 1.1.1" + "bar 1.2.3"?
21:28:39 <GregorR> I suppose a link in the topic that's required to show that there's public logging going on should probably not be obfuscated :P
21:29:02 <ais523> umm, how is that any different from a direct link?
21:29:08 <ais523> neither are obviously logs from the structure of the URL
21:29:14 -!- ais523 has set topic: Logs: <http://dickensurl.com/1b34/It%E2%80%99s_my_old_girl_that_advises._She_has_the_head._But_I_never_own_to_it_before_her._Discipline_must_be_maintained.>.
21:29:20 <fizzie> The word "Logs:" could...
21:29:33 <fizzie> I even spelled it the same way.
21:29:47 -!- GregorR has set topic: Logarithms: <http://dickensurl.com/1b34/It%E2%80%99s_my_old_girl_that_advises._She_has_the_head._But_I_never_own_to_it_before_her._Discipline_must_be_maintained.>.
21:29:48 <fizzie> You must be some sort of thought-pire.
21:30:47 <ais523> > {my $x = "αωω"; say ++$x;}
21:30:51 <ais523> ugh, Rakudo encoding fail
21:37:03 * GregorR voodoos FYB at the channel.
21:37:12 <GregorR> You know you want to beat logicex-2!
21:37:48 <EgoBot> Use: !fyb <program name> <program>
21:37:55 <ehird> How do you show the scoreboard?
21:38:24 <GregorR> Right now when you submit a program it just runs it against all the other ones it's seen and gives you the total, when I get home tonight I'm integrating int-e's nice scoreboard (in some way)
21:38:36 <ehird> GregorR: what's the additional instructions again
21:38:53 <GregorR> http://codu.org/eso/fyb/ // spec is here
21:39:24 -!- MigoMipo has left (?).
21:40:21 <ehird> > | 3 | moves the data pointer to the right (looping if necessary)
21:40:37 <GregorR> You have a pointer in the opponent's code.
21:40:38 <ehird> GregorR: also, show logicex-2? :P
21:40:49 <GregorR> It's also on that site, under exa/
21:42:09 <ehird> !fyb :@%>+++++++++++++++[..............................................................................................................................................................................+]*;:++!>;*
21:42:09 <EgoBot> Use: !fyb <program name> <program>
21:42:12 <ehird> !fyb butt :@%>+++++++++++++++[..............................................................................................................................................................................+]*;:++!>;*
21:43:29 <impomatic> By the way, what happened to BF Joust?
21:43:37 <ais523> impomatic: Goethe the contestmaster deregistered
21:43:53 <ais523> I want em to restart it, now might be a bad time though
21:44:02 <ais523> e reregistered but Agora's rather busy with contest shenanigans atm
21:44:19 <ais523> anyway, my plans for BF Joust are:
21:44:20 <EgoBot> Use: !fyb <program name> <program>
21:44:39 <GregorR> Stop calling them all butt :P
21:45:12 <GregorR> Amazingly, the "only-comments" FYB program doesn't win so much :P
21:45:36 <Deewiant> !fyb butt ++++++++++++++:{>}!;*
21:45:56 <Deewiant> !fyb butt ++++++++++++++:{>>>>}!;*
21:46:11 <GregorR> Deewiant: You realize the chance of that actually committing a bomb is near-zero, right?
21:46:34 <GregorR> Ah, so you're just poking around and haven't actually read the spec ;)
21:46:36 <ais523> !fyb test {>}[+]++++++++++++++!
21:46:55 -!- oerjan has joined.
21:47:05 <Deewiant> GregorR: I don't get program buffers
21:47:16 <Deewiant> I read what ! does but I don't get it :-P
21:47:47 <ais523> !fyb test {>}[+]++++++++++++++!;
21:47:48 <Deewiant> I have to modify space first using +-
21:48:11 <Deewiant> But anyway, ! on its own just... commits.
21:48:25 <ais523> anyway, quick rules of ais523-modified BF joust:
21:48:29 <impomatic> Has anyone played with Corelife? It's a 2D version of corewar
21:48:31 <GregorR> The changes you make aren't in the program code until you commit them.
21:48:35 <ais523> two BF programs share a tape, > for one program is < for the other
21:48:55 <ais523> each starts at the < end of the tape from their own point of view on a cell with value 128, all other cells have value 0
21:49:04 <ais523> programs run simultaneously, each command takes one tick
21:49:13 <Deewiant> !fyb butt :{>>>>}++++++++++++++!;*
21:49:31 <ais523> and if at the end of each of two consecutive turns, the starting value of the tape of a program is 0, that program loses
21:49:37 <ais523> also, a program loses if it goes off the end of the tape
21:49:42 <ais523> . and , are no-ops, but still take one tick
21:49:44 <Deewiant> Hmm, it won't be zero will it now, hence the [+].
21:50:44 <GregorR> Deewiant: {} searches for the opponent's program pointer, [] is like BF's.
21:50:49 <Deewiant> !fyb butt :{>>>>}[+]++++++++++++++!;;{<<<}[+]++++++++++++++!;*
21:50:51 <GregorR> Deewiant: So that's not likely to be zero.
21:50:59 -!- Hiato has quit (Read error: 60 (Operation timed out)).
21:51:14 <Deewiant> Threads share the data pointer?
21:51:48 <Deewiant> Does the program buffer wraparound (if I <, do I get to the end)?
21:51:49 <GregorR> +++!;;{<< <-- notice a problem here :P
21:51:55 <impomatic> ais523: so ------- etc on the flag wouldn't win because it isn't 0 for 2 consecutive rounds.
21:52:17 <impomatic> but [-] would win if run on the flag because it stops when it gets to zero
21:52:22 <Deewiant> !fyb butt :{>>>>}[+]++++++++++++++!;:{<<<}[+]++++++++++++++!;*
21:52:26 <GregorR> ais523: And how big is the buffer in BF Joust, btw?
21:52:53 <ais523> GregorR: oh, it used to be rather long, but for my version I suggest random from 10 to 30 inclusive
21:52:59 <impomatic> In the one which was online before, about 130
21:53:13 <ais523> because the old long buffer menat that you couldn't both attack and defend, and had plenty of time to set up defences
21:53:47 <ais523> impomatic: yes, the two-rounds thing should invalidate most of the degenerate strategies from last time
21:53:56 <ais523> and give defensive strategies an actual chance of working
21:54:25 <ais523> woe betide anyone who tries [>[-]+] this time, they're likely to fall off the end against a defensive strategy
21:54:38 <GregorR> Maybe you should get to thread.
21:54:41 <Deewiant> !fyb butt :{<}[+]++++++++++++++!;
21:54:57 * GregorR has no idea what difference that made :P
21:55:05 <Deewiant> !fyb butt :{>}[+]++++++++++++++!;
21:55:08 <Deewiant> !fyb butt :{>}[+]++++++++++++++!;*
21:55:26 <GregorR> Strange, did it just magically start working >_O
21:55:32 <Deewiant> !fyb butt :{>>}[+]++++++++++++++!;*
21:55:34 <Deewiant> !fyb butt :{>>>}[+]++++++++++++++!;*
21:55:36 <Deewiant> !fyb butt :{>>>>}[+]++++++++++++++!;*
21:55:46 <Deewiant> Maybe I typoed the number of +
21:56:10 <Deewiant> !fyb butt :{>>>>}[+]++++++++++++++!;:{>>>>}[+]++++++++++++++!;
21:56:11 <pikhq> !fyb vejni +[:{>>}+;]
21:56:27 <Deewiant> !fyb pietje :{>>}[+]++++++++++++++!;
21:56:35 <Deewiant> !fyb pietje :{>>}[+]++++++++++++++!;*
21:56:37 <GregorR> pikhq: Any given ':' can be spent, so doing it in a loop is mostly pointless.
21:56:52 <Deewiant> !fyb pietje {>>}[+]++++++++++++++!
21:57:06 <Deewiant> !fyb pietje :fooooooooooooooooooooooooooooooooooooooooooooooooooooooooo;{>>}[+]++++++++++++++!
21:57:12 <pikhq> GregorR: I was doing random symbols. Wee.
21:57:19 <Deewiant> !fyb pietje :************************;{>>}[+]++++++++++++++!
21:57:24 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
21:57:34 <Deewiant> !fyb pietje :**********************;{>>}[+]++++++++++++++!
21:57:38 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
21:57:40 <pikhq> !fyb vejni All of this is a comment. Really.
21:57:42 <ehird> !fyb pietje :{>>}<[-]++++++++++++++!;*
21:58:07 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!:****;
21:58:07 <ehird> !fyb butt :{>>}[-]<+>++++++++++++++!;*
21:58:13 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
21:58:16 <EgoBot> Use: !fyb <program name> <program>
21:58:25 <EgoBot> Use: !fyb <program name> <program>
21:58:41 <impomatic> http://retrocode.blogspot.com/2009/02/bf-joust-hill.html
21:59:12 <ehird> !fyb butt ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
21:59:16 <ehird> !fyb butt ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;
21:59:20 <ehird> !fyb butt ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::>+;;;;;;;;;;;;;;;;
21:59:23 <ehird> !fyb butt ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::>+!;;;;;;;;;;;;;;;;
21:59:31 <GregorR> ehird: Each thread is one more point of weakness.
21:59:33 <pikhq> I'm afraid that null beats doing stuff.
21:59:39 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
21:59:47 <Deewiant> !fyb pietje :***********************;{<<}[+]++++++++++++++!
22:00:13 <ehird> !fyb {>}[-]++++++++++++++!
22:00:14 <EgoBot> Use: !fyb <program name> <program>
22:00:17 <ehird> !fyb butt {>}[-]++++++++++++++!
22:00:20 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
22:00:49 <ehird> !fyb butt {>}[+]++++++++++++++!
22:00:49 <Deewiant> Anyway, I'm going to stick with the 'this is random as hell' stance
22:00:58 <ehird> Deewiant: evidently there is a -
22:01:03 <oerjan> <ehird> try ircbrowse.com or something <<< i thought that died, it was the one cmeme used
22:01:05 <ehird> because my [-] won more :P
22:01:18 <GregorR> There's no - because that would make putting bombs much quicker and easier.
22:01:25 <ehird> !fyb butt +[{>}[+]++++++++++++++!]
22:01:25 <Deewiant> !fyb comment {>}[x]++++++++++++++!
22:01:51 <oerjan> it was very nice when it worked, although often horribly slow
22:02:03 * GregorR wonders why he can't kill the tide of fukyorbranes :P
22:02:03 <ehird> GregorR: what does the any given : thing mean
22:02:14 <ehird> !fyb butt +[:{>}[+]++++++++++++++!;]
22:02:19 <ais523> !fyb selfdestruct ?[>]++++++++++++++!
22:02:20 <ehird> | | NOTE: any given : will only fork once, then it's spent
22:02:31 <ais523> err, how did selfdestruct win so much?
22:02:38 <Deewiant> ehird: If you put a : in your code, the forking will happen only the first time it's executed.
22:02:42 <Deewiant> ehird: But you can have multiple :.
22:02:46 <GregorR> ehird: If it comes across a ':' at that program position again, it will not fork again.
22:02:48 <ais523> I was trying to get it to suicide by putting a bomb in its /own/ code
22:02:57 <ehird> ais523: | | NOTE: You cannot set a bomb in your own program, so it doesn't have a character.
22:03:03 <GregorR> ais523: Except your own code has no %'s, so that's an infinite loop.
22:03:13 <ais523> !fyb selfdestruct ?[>]++++++++++++++!%
22:03:16 <Deewiant> That just means you can't place one directly.
22:03:26 <ais523> GregorR: ok, it does even better now
22:03:26 <ehird> how did that win 2
22:03:35 <ehird> they killed themselves in less than one tick?
22:03:42 <EgoBot> Use: !fyb <program name> <program>
22:03:45 <EgoBot> Use: !fyb <program name> <program>
22:03:49 <EgoBot> Use: !fyb <program name> <program>
22:03:53 <ais523> and you can set a bomb, just only by self-editing
22:03:57 <ehird> ais523: no you can't!
22:04:02 <ehird> | | NOTE: You cannot set a bomb in your own program, so it doesn't have a character.
22:04:03 <ehird> | | NOTE: You cannot set a bomb in your own program, so it doesn't have a character.
22:04:18 <GregorR> Actually, you can set up us the bomb.
22:04:23 <ais523> ehird: that spec note is misleading, in that you can't set a bomb in the initial program
22:04:27 <ais523> but you can edit one into your own program later
22:04:41 <GregorR> I'll fix that when I get home tonight.
22:04:56 <GregorR> Deewiant: That's both 'so' and 'as', actually :P
22:05:09 <GregorR> Deewiant: I didn't give it a character because you're not allowed to put one in your source.
22:05:28 <Deewiant> I still think 'as' would be better ;-)
22:05:37 <ehird> !fyb buttstolen :{>}[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+]]]]]]]]]]]]]]]+++++++++++++!>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%;:@[>+++]!;*
22:06:00 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
22:06:07 <ehird> Deewiant: what does pietje mean?
22:06:22 <ehird> !fyb pietje :**************************************************************************************************************************************************************************************************************************************;{>>}[+]++++++++++++++!
22:06:27 <ehird> meant to rename to butt
22:06:35 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
22:06:52 <ehird> !fyb pietje ::**********;*;{>>}[+]++++++++++++++!
22:06:56 <Deewiant> !fyb pietje :***********************;{>>}[+]++++++++++++++!
22:07:03 <ehird> !fyb butt ::**********;;{>>}[+]++++++++++++++!
22:07:35 <Deewiant> I use it where somebody else might use "Jack"
22:08:07 <ehird> !fyb butt ::**********;;:{>>}[+]++++++++++++++!;
22:08:18 <ehird> !fyb butt ::**********;;::{>>}[+]++++++++++++++!*;;
22:08:28 <ehird> !fyb butt ::**********;;:{>>}[+]++++++++++++++!*;
22:08:40 <ehird> !fyb butt ::**********;;:[{>>}[+]++++++++++++++!]*;
22:10:04 <GregorR> http://codu.org/eso/fyb/report.txt is now automatically generated. Although it looks a bit freaky mid-generation :P
22:10:26 <ehird> GregorR: can you order it properly?
22:10:53 <GregorR> ehird: You mean by points? I can if you write a new mkreport program that does that ;)
22:11:45 <GregorR> It would be even easier if I made a new version of fukyorbrane that exited with a status code specifying which one won rather than having to parse its text output (I was an idiot in 2005 :P )
22:15:29 <GregorR> ehird: The only reason why it's "hard" is that the current one is just a simple script that outputs as it goes, doesn't keep any info around.
22:16:24 <pikhq> Pipe it into sort.
22:16:33 <GregorR> pikhq: Look at the output then say that again :P
22:16:53 <GregorR> Oh, btw, like the rest of EgoBot, !fyb accepts URLs, so don't think you have to fit these in an IRC line :P
22:17:18 -!- impomatic has left (?).
22:17:48 <ais523> GregorR: is !fyb programmed any differently from the rest of EgoBot?
22:17:59 <ais523> I should write a !bfjoust so we can have that too
22:18:14 <GregorR> ais523: It's just another scmd. Feel free to check out the source.
22:18:18 <GregorR> ais523: That would be sveet.
22:19:29 <pikhq> GregorR: I assume you have it as a shell script?
22:19:49 <GregorR> But there's nothing shell-script-dependent about multibot of course.
22:20:00 <pikhq> Erm. mkreport, I mean.
22:20:15 <GregorR> Yeah, that's a shell script.
22:21:21 <pikhq> sort is really insanely flexible. ;)
22:21:42 <pikhq> Hmm. Where is this script, anyways?
22:21:57 <GregorR> The mkreport that that uses presently only exists in EgoBot.
22:22:08 <GregorR> (I managed to hunt down int-e and get a copy of it, he made it in the first place)
22:22:24 <pikhq> So, codu.org/eso/fyb/in_egobot/mkreport.sh
22:23:26 * GregorR leaves for home, he'll see everybody in either fifteen minutes or forty-five minutes depending on how hungry he gets on the way.
22:24:27 <pikhq> ehird: Short for "Gxis la revidu."
22:33:21 -!- ais523_ has joined.
22:33:53 -!- ais523 has quit (Nick collision from services.).
22:33:54 -!- ais523_ has changed nick to ais523.
23:02:52 <ais523> wow, Perl6 has short-circuit exclusive or
23:02:59 <ais523> which can only happen if you write $a ^^ $b ^^ $c
23:03:11 <ais523> which is different from ($a ^^ $b) ^^ $c
23:05:17 <ais523> $a ^^ $b ^^ $c means "exactly one of $a, $b, $c is true"
23:22:17 <kerlo> The US International keyboard layout refuses to put a circumflex over a g.
23:23:03 <kerlo> â ^b ^c ^d ê ^f ^g ^h î ^j ^k ^l ^m ^n ô ^p ^q ^r ^s ^t û ^v ^w ^x ^y ^z
23:23:08 <kerlo> Proper vowels only.
23:23:36 <oerjan> that's the only ones in latin-1 i think
23:23:54 <oerjan> it's the same with a norwegian keyboard
23:24:14 <kerlo> I want a keyboard that can make circumflex-g.
23:24:26 <kerlo> Hmm, I wonder if I can find an Esperanto keyboard layout.
23:24:39 <ehird> "First of all, these fears are nonsense. C and C++ are never going to disappear. Why? Because there are classes of programming problems that are still and will always be CPU bound and there is still no language as fast as C or C++ for these problems. I highly doubt that there ever will be. "
23:25:35 <kerlo> I can type English (Zimbabwe) and Estonian (Estonia), but nothing in between.
23:25:38 -!- olsner has quit ("Leaving").
23:26:26 <kerlo> Too bad Esperanto is something like the only language with those characters.
23:26:36 <ais523> ehird: there was that experiment recently in which an OCaml program turned out to be faster than an equivalent C program
23:26:43 <ais523> although the C program was probably badly written
23:27:03 <ais523> kerlo: look at the Esperanto Wikipedia, they have their own format for writing Esperanto in
23:27:38 -!- puzzlet_ has joined.
23:28:28 <ais523> it basically involves writing x after a letter to circumflex it
23:28:32 <ais523> but there are a few special cases
23:29:45 <kerlo> Wow. The source code does indeed contain x like that.
23:29:49 <kerlo> What are the special cases?
23:30:47 <pikhq> ehird: A well-written assembly program can at least match the C program. ;)
23:31:03 <ais523> kerlo: I don't know off by heart
23:31:10 <ehird> pikhq: Unlikely. Modern CPUs are insane.
23:31:18 <ehird> well, maybe it can beat gcc
23:31:19 <ais523> I don't know Esperanto, so I've never bothered to learn how to write in the Esperanto Wikipedia
23:31:22 <ehird> gcc isn't the best at optimizing...
23:31:38 <ais523> but I think it's to do with cases where you actually want an x, and with capital letters
23:31:52 <ehird> pikhq: "well-written" probably comes to "identical to the compiler's output".
23:31:59 <pikhq> The CPU being insanely good has *nothing* to do with how fast assembly is compared to C.
23:32:13 <ais523> pikhq: CPUs nowadays are so complex that writing asm for them by hand is very fast
23:32:27 <ehird> pikhq: The only way to beat a good compiler is to generate the same code nowadays.
23:32:32 <pikhq> ais523: Well, yes.
23:32:34 <ehird> It's as simple as that
23:33:04 <pikhq> ehird: In some cases, the assembly programmer will generate better code.
23:33:08 <pikhq> (no optimiser is perfect)
23:33:18 <ehird> Very few nowadays I would imagine.
23:33:23 <ehird> And no human optimizer is perfect.
23:33:32 <pikhq> Obviously, in general, the assembly programmer will be, at best, generating equivalent code...
23:33:56 <ehird> are the microcode specs for modern cpus available?
23:34:02 <pikhq> Of course, all this is in response to someone claiming that there is no language as fast as C...
23:34:05 <ehird> you could improve an optimizer a lot with those, I imagine
23:34:09 <pikhq> Which, frankly, is dumb.
23:34:27 <ehird> if we're still coding C in 50 years I'll weep
23:34:42 <pikhq> Assembly is just the *obvious* language with similar performance.
23:35:01 <ehird> OCaml: 0.6 seconds interpreted, 0.3 seconds fully compiled.
23:35:03 <ehird> Java: 1 minute 20 seconds.
23:35:05 <ehird> Python: over 5 minutes."
23:35:08 <pikhq> Sorry, similar performance characteristics.
23:35:10 <ehird> OCaml is insanely fast. Wonder if you could get Haskell that fast.
23:36:36 <pikhq> It'd take a lot of work, but I bet you could.
23:36:50 <ehird> pikhq: Oh, there are C-competitive Haskell programs.
23:36:54 <pikhq> Also, I wonder how that Java program is when compiled to machine code.
23:37:05 <ehird> Put a bit of inlining hints, some strict-forcing bang-patterns.
23:37:08 <ais523> I wonder if asm is beatable?
23:37:16 <ehird> pikhq: he said that in a few years java took 0.7s with 1s startup time
23:37:19 <ais523> maybe by using undocumented machinecode opcodes that can't be generated from the asm?
23:37:24 <ais523> or by compiling straight to hardware?
23:37:29 <ehird> ais523: can you run microcode?
23:37:37 <ehird> if not by a supported way, via an exploit?
23:37:44 <pikhq> ais523: Theoretically, no. In practice? Possibly.
23:37:45 <ais523> ehird: no idea, it's certainly worth thinking about though
23:37:52 <ais523> I wasn't lying about going home, though
23:37:53 -!- ais523 has quit (Remote closed the connection).
23:38:24 <pikhq> If you assume a perfect assembly programmer, this hypothetical programmer will always be able to generate code that is at least as fast as its competition.
23:38:29 <pikhq> Of course, no man is perfect.
23:38:45 <ehird> If you assume a perfect assembly programmer, that there was the singularity.
23:39:00 <kerlo> In many cases, English is faster than any programming language.
23:39:15 <pikhq> kerlo: Not for computer execution.
23:39:41 <kerlo> I don't have to defend my point because I've forgotten what I meant by it.
23:39:49 <ehird> kerlo: Take any number of words on the command line; sum the ASCII digits of each one, then take the product and print it out.
23:40:06 <ehird> main = interact (show . product . map (sum . ord) . words)
23:40:26 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
23:40:27 <ehird> Er, wait, that's invalid
23:40:31 <ehird> main = interact (show . product . map (sum . map ord) . words)
23:40:49 <ehird> Ah, you want a newline at the end of that
23:40:56 <ehird> main = interact ((++ "\n") . show . product . map (sum . map ord) . words)
23:41:05 <ehird> Shorter than the English and about as readable.
23:43:17 <pikhq> foreach $args i {incr ::sum [expr [join [split $i {}] "+"]]};puts $sum
23:43:28 <pikhq> (why doesn't Tcl have a builtin map?)
23:43:29 <ehird> pikhq: I can golf, also:
23:43:37 <oerjan> main = print . product . map (sum . map ord) . words =<< getContents
23:43:42 <ehird> main=interact$(++"\n").show.product.map(sum.map ord).words
23:44:48 <ehird> pikhq: that's not it
23:44:49 <ehird> you forgot the product
23:45:06 <ehird> ('h'+'e'+'l'+'l'+'o')*('w'+'o'+'r'+'l'+'d')
23:45:18 <pikhq> Oh. Well, then. Just a sec.
23:45:20 <ehird> So you have to do that shorter than main=interact$(++"\n").show.product.map(sum.map ord).words
23:45:47 <oerjan> main=print.product.map(sum.map ord).words=<<getContents
23:45:47 <pikhq> I'm trying to do it elegantly; sorry. ;)
23:46:17 <oerjan> since print includes show and ++"\n" automatically
23:46:21 <ehird> pikhq: good luck getting more elegant than main = print . product . map (sum . map ord) . words =<< getContents
23:46:29 <ehird> I wanted that at first
23:48:05 <ehird> GregorR: wtf is wrong with my/oerjan's code
23:48:15 <ehird> amusingly, it has NO foos and bars, it has no names
23:48:24 <ehird> I thought foobarf was barfing at my/oerjan's code :P
23:48:31 <pikhq> proc map {lambda x} {foreach $x i {lappend ret [apply {*}$lambda $i]}};puts [* {*}[map {{x} {+ {*}[split $i {}]]}
23:48:42 <ehird> pikhq: Now THAT's barf-worthy.
23:48:45 <pikhq> That'd be so much more shorter if I didn't have to implement map first.
23:48:59 <ehird> Even without the map, it'd take me a while to figure out even the algorithm from that.
23:49:02 <GregorR> I see there are no new FYB programs X-P
23:49:05 <ehird> I'm going to enroll #haskell to golf it :P
23:49:47 <pikhq> Fine, y'want golf?
23:49:57 <ehird> pikhq: Absolutely.
23:50:09 <ehird> Haskell, in its divine elegance, can stay beautiful and tiny at the same time.
23:50:15 <ehird> You have no chance to survive, make your Tcl.
23:50:31 <ehird> You think C will be shorter?
23:50:38 <ehird> We can defeat your follies.
23:51:37 <GregorR> If I'm allowed to define the programming language, than I can always write a program shorter and clearer than Haskell :P
23:52:01 <GregorR> Oh, you wrote 99 Bottles of Beer in 200 characters of Haskell? Well, I just wrote it in one character of HQ9+
23:52:02 <ehird> GregorR: Yeah, but we won't listen to you :-)
23:55:32 <oerjan> main=getContents>>= \c->print$product[sum$map ord w|w<-words c]
23:55:48 <ehird> on which planet is this shorter, oerjan?
23:55:53 <ehird> main=print.product.map(sum.map ord).words=<<getContents is shorter
23:56:00 <oerjan> i just wanted to write it out to check
23:56:05 <pikhq> i,c,d;main(a,char**b){(**b)?c*=main(a-1,b++)return;:while(*b[i],d+=*b[i++]);return d;}
23:56:18 <pikhq> And that's not quite right.
23:56:26 <ehird> pikhq: 31 characters extra to do it wrong fail :-)
23:56:32 <oerjan> since some of that mapping could be removed with a list comprehension
23:56:41 <ehird> see how awesome haskell is pikhq?
23:56:57 <pikhq> GregorR: Any way of getting command line arguments in Plof?
23:57:36 <ehird> pikhq: command line arguments?
23:57:40 <ehird> Sir, we use stdin.
23:57:44 <ehird> That's what the Haskell dose.
23:58:46 <oerjan> main=print.product.map(sum.map ord)=<<getArgs
23:58:53 <oerjan> except you need an import as well
23:59:01 <ehird> we need an import for Data.Char
23:59:06 <ehird> but let's just assume we don't
23:59:13 <ehird> because imports are silly
23:59:46 <oerjan> ord = fromEnum, type restricted
23:59:53 <ehird> that's longer, my son.
23:59:59 <ehird> other languages can ignore imports too