←2009-11-14 2009-11-15 2009-11-16→ ↑2009 ↑all
00:00:10 <oklofok> but... there is nothing that has to do with chrome as such, just the tab closing
00:00:45 <oklofok> i mean it could've been firefox's "close all blah"
00:00:54 <oklofok> chrome is not relevant
00:01:04 <oerjan> what, you expect me to actually provide relevant _information_? you know how unlikely that is, right?
00:01:35 <oklofok> ...is that a joke too?
00:01:41 <oerjan> of course
00:01:50 <oklofok> is that?
00:02:00 * oklofok runs in terror
00:02:11 <oerjan> everything is either a joke or a tragedy. and i try to be spare on tragedies in this channel.
00:02:24 <oerjan> but i can see we are approaching one.
00:02:24 <oklofok> oh but you shouldn't
00:03:15 * oerjan thinks that was not an appropriate use of the word "spare".
00:04:12 <oerjan> ok there is also a slight occurence of completely trivial blathering
00:04:30 <oerjan> sometimes turning into monologue
00:04:41 <oklofok> "try to be spare on tragedies" sounds weird to me
00:04:52 <oerjan> yes. yes it is.
00:05:04 <oerjan> sparing, maybe.
00:05:33 <oerjan> "sparsom", i'm just not managing to convert it into english
00:06:10 <oerjan> frugal?
00:07:12 <oklofok> i just didn't get a joke, no use asking me anything
00:07:39 <oklofok> (also even with finnish i usually just google everything)
00:07:54 <oklofok> (with languages)
00:07:59 <oklofok> (oh wait i guess finnish implies that)
00:11:30 <oerjan> ah wikipedia time
00:18:59 <Sgeo> "Other popular web development frameworks include CakePHP (for PHP programmers), Django (for Python programmers), and jQuery (for JavaScript)."
00:19:02 * Sgeo facepalms
00:41:51 * AnMaster prods
00:41:54 <AnMaster> still connected?
00:42:02 <AnMaster> oerjan, ^
00:42:13 <AnMaster> hm how strange
00:42:30 <AnMaster> I lost connection and my IP changed, yet I'm still connected to this network
00:42:31 <AnMaster> XD
00:42:39 <oerjan> mhm
00:42:42 <AnMaster> oh ipv6 tunnel, of course
00:42:42 <AnMaster> duh
00:44:03 <AnMaster> afk
00:44:09 <AnMaster> night →e
00:44:15 <AnMaster> s/e$//
00:44:30 <oerjan> nighte night
00:48:49 -!- ais523 has quit (Remote closed the connection).
00:51:47 -!- oerjan has quit ("Good night").
01:25:07 -!- Gracenotes has quit (Remote closed the connection).
01:34:31 -!- Gracenotes has joined.
01:55:31 -!- fax has joined.
02:00:36 <fax> http://en.wikipedia.org/wiki/Arithmetic_combinatorics
02:00:37 -!- Gregor has quit (Read error: 104 (Connection reset by peer)).
02:01:37 -!- Gregor has joined.
02:09:54 -!- Rei_Murasame has joined.
02:10:04 -!- Rei_Murasame has left (?).
02:25:57 <oklofok> fax: what about it?
02:26:10 <fax> sounds cool
02:29:58 <oklofok> hmm. i agree
02:33:33 <Sgeo> "Caroline didn't exactly have these thoughts as I have set them down here;"
02:33:41 <Sgeo> Who uses I like that in fiction?
02:34:01 <Sgeo> In a 3rd person story, I mean
02:36:54 <fax> http://en.wikipedia.org/wiki/Combinatorial_species
03:32:07 -!- fax has quit ("quit").
03:39:48 -!- immibis has joined.
03:45:36 -!- coppro has quit (Remote closed the connection).
03:57:34 -!- Gracenotes has quit (Remote closed the connection).
04:01:20 -!- Gracenotes has joined.
04:08:04 -!- Gracenotes has quit (Remote closed the connection).
04:08:56 <Gregor> Sgeo: It implies that the narrator is a person existing in the universe of the story, not an omnipotent observer.
04:09:23 <Sgeo> But, the narrator isn't a person existing in the universe of the story
04:09:53 <Gregor> Are you ... SURE?
04:10:07 <Gregor> Maybe he's somebody that a main character explained the story to a decade later, who then wrote it down.
04:11:41 <Sgeo> I finished reading the story
04:12:08 <Sgeo> Also, there was one (well, two) other characters around. Both were dead by the time the story ended
04:12:31 <Sgeo> ..........I just spoiled something major
04:12:40 <Sgeo> :(:(:(
04:18:52 <Gregor> I feel that all good fictional stories should end with every major character dying.
04:18:55 <Gregor> That way there are no loose ends.
04:21:09 -!- madbr has joined.
04:21:12 <madbr> hey
04:22:58 <Sgeo> Gregor, the fact that those particular characters are even capable of dying is a spoiler
04:24:34 -!- Gracenotes has joined.
04:25:01 <Gregor> Presumably the fact that there is a question to whether these particular characters are even capable of dying is itself a spoiler.
04:44:52 <Sgeo> Gregor, a spoiler to what the setting is, maybe
05:14:34 -!- immibis has quit ("ChatZilla 0.9.85 [Firefox 3.5.5/20091105041559]").
05:20:57 <pikhq> Gregor: I feel that all good fictional stories should start with everyone dying.
05:21:00 <pikhq> :P
05:42:34 -!- Gracenotes has quit ("Leaving").
05:58:16 -!- puzzlet_ has quit (Remote closed the connection).
05:58:21 -!- puzzlet has joined.
06:51:15 -!- Sgeo has quit ("Leaving").
07:47:21 -!- madbr has quit ("Radiateur").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:08 -!- fax has joined.
08:49:03 <fax> oklopop http://en.wikipedia.org/wiki/Symbolic_combinatorics
09:02:04 -!- fax has quit ("quit").
09:02:31 -!- adam_d has joined.
09:13:27 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
09:13:31 -!- puzzlet has joined.
09:55:55 -!- adam_d has quit (Read error: 60 (Operation timed out)).
10:03:48 -!- Pthing has quit (Read error: 110 (Connection timed out)).
10:04:29 <MizardX> http://tav.espians.com/paving-the-way-to-securing-the-python-interpreter.html
10:04:56 <MizardX> a few months old, but new to me.
10:16:14 -!- BeholdMyGlory has quit (Read error: 110 (Connection timed out)).
10:35:03 -!- adam_d has joined.
10:54:44 -!- fax has joined.
12:13:41 <AnMaster> hm once I get ick fully working on classic I should make some sort of installer script
12:13:56 * AnMaster looks around for some "Apple Installer SDK" he has a vague memory of
12:22:09 <AnMaster> damn flex generates this just before the function:
12:22:11 <AnMaster> #ifndef __cplusplus
12:22:11 <AnMaster> extern int isatty (int );
12:22:11 <AnMaster> #endif /* __cplusplus */
12:22:45 -!- kar8nga has joined.
12:24:12 <AnMaster> so a function rather than a macro is needed
12:38:23 -!- fax has quit ("quit").
12:47:09 -!- puzzlet has quit (Remote closed the connection).
12:47:13 -!- puzzlet has joined.
12:53:24 * AnMaster is looking for an apple share sever for *nix
12:53:29 <AnMaster> fizzie, any idea?
12:54:07 <AnMaster> this would be useful for keeping the ick thing in sync between emulator, real mac, and linux
12:54:15 <AnMaster> as in, one working copy only
13:18:47 <AnMaster> interesting, the system headers with MPW are really broad. There is even stuff there for defined(__GNUC__) && defined(__linux__)
13:18:51 <AnMaster> that was quite unexpected
13:19:27 <AnMaster> however there is a "warning unsupported compiler" after it, but it then goes on to define various stuff for it
13:20:00 <AnMaster> oh mingw egcs? what the hell
13:20:25 <AnMaster> oh and there seems to have been a gcc for mpw once upon a time
13:20:49 <AnMaster> as in, that is yet another variant handled
13:21:32 <AnMaster> (and there is "visual C++ with Macintosh target" too!)
13:22:13 <AnMaster> a sun compiler. Okay these guys were crazy. half of these handled cases aren't even relevant for a mac...
13:41:50 -!- fax has joined.
14:08:26 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
14:09:31 -!- puzzlet has joined.
14:22:26 -!- kar8nga has quit (Remote closed the connection).
14:25:18 -!- impomatic has joined.
14:25:20 <impomatic> Hi :-)
14:46:46 <AnMaster> MPW shell sure has strange commands (and command names): "Dolt - highlight and execute a series of shell commands"
14:47:18 <AnMaster> anyway I can't find any simple way to write \r or \n in it...
15:04:43 <AnMaster> okaaay.... I found out, but it seems undocumented for writing LF. CR is ∂n but it seems that ∂r actually works for LF.
15:04:51 <AnMaster> yet the latter is as far as I can tell undocumented
15:14:05 <AnMaster> oh yes found it documented in release notes for a minor update
15:14:10 <AnMaster> well hidden
15:15:04 -!- fax has quit ("quit").
15:47:24 -!- ehird has joined.
15:47:37 <ehird> how edible
15:48:59 <ehird> 10:52:17 <fizzie> This has some rendering issues in the input line window: http://zem.fi/~fis/ircle.png
15:48:59 <ehird> USE SYSTEM 6 FUCKER
15:49:01 <ehird> :P
15:54:25 * AnMaster waits for ehird's comments on the MPW rant just above
15:54:31 <ehird> 12:01:02 <ais523> oh, I think it's a mix of spaces and tabs
15:54:32 <ehird> 12:01:07 <ais523> that looks correct with tab=8, as it always should be
15:54:32 <ehird> i'd argue, but you don't know anything about tabs or their history and i do and you still insist you're right, so i won't
15:54:32 <ehird> 12:02:57 <coppro> but tabs are dumb anyways
15:54:32 <ehird> no they're not
15:54:34 -!- BeholdMyGlory has joined.
15:54:35 <ehird> AnMaster: getting there! :P
15:54:51 <ehird> 12:04:01 <coppro> tab-space mixing is such a truly horrible idea
15:54:52 <ehird> 12:04:22 <coppro> if you use tabs properly, everything will still look right to someone with a different tab setting
15:54:52 <ehird> ++ * infinity
15:54:53 <AnMaster> ehird, the tabs vs. spaces will be uh a pointless flamewar to read
15:55:09 <ehird> AnMaster: tabs vs spaces, yes, but you can define it as a set of tradeoffs
15:55:20 <ehird> 12:05:13 <ais523> coppro: any tab setting but 8 is wrong and broken
15:55:20 <ehird> ...this, however, is just ais523 making shit up
15:55:25 <AnMaster> ehird, you could also define it as a "holy flamewar"
15:55:37 <ehird> what i mean is that you can end spaces/tabs by listing the tradeoffs
15:55:52 <ehird> you can't argue against "tabs=8 OR YOU DIE because I said so QED"
15:56:03 <AnMaster> indeed
15:56:05 <ehird> apart from the same argument you use against any such assertion, "uh... no"
15:56:31 <ehird> 12:07:46 <ais523> coppro: the tab width setting is going to matter whenever you use spaces
15:56:31 <ehird> nope
15:56:38 <ehird> you use tab at the start of a line to indent
15:56:41 <ehird> tab to indent past that
15:56:43 <ehird> and spaces to align
15:56:45 <AnMaster> ehird, we said that already
15:56:47 <ehird> it's very simple, very sane
15:56:47 <AnMaster> didn't help
15:56:51 <ehird> AnMaster: just reiterating it
15:56:55 <ehird> because he thinks everyone agrees with him
15:56:59 <AnMaster> ehird, yes but ais doesn't logread
15:57:12 <ehird> eh
15:57:17 <AnMaster> or does he?
15:57:19 <ehird> I need to vent, because he's always an idiot about tabs=8
15:57:43 <ehird> 12:08:14 <ais523> coppro: tabs are too wide to indent a line
15:57:43 <ehird> Sweet, a circular argument!
15:57:58 <AnMaster> ehird, yeah, he managed at least one more iirc
15:58:04 <ehird> They're pretty rare in practice, but he's actually managed one.
15:58:34 <AnMaster> ehird, they are rare? They seems quite common in flamewars in my experience
15:58:53 <ehird> Well, sure, in flamewars, but not in things masquerading as actual arguments
15:58:59 <ehird> The only other people to regularly do it are the religious
15:59:14 <AnMaster> isn't "things masquerading as actual arguments" *also* pretty common in flamewars?
15:59:23 <AnMaster> when people try to pretend it isn't one
15:59:48 <ehird> w/e :P
15:59:57 <ehird> 12:08:57 <coppro> ais523: then indent with spaces and spaces only
15:59:57 <ehird> aw, don't copout of the argument — he's wrong and this just makes him think he's won
16:00:09 <ehird> 12:09:22 <AnMaster> <ais523> coppro: tabs are too wide to indent a line <-- not at all
16:00:10 <ehird> I agree even with tabs=8 that it's fine
16:00:14 <ehird> Don't nest so much!
16:00:43 <AnMaster> ehird, he ended up suggesting tab=3 was more common than tab=4 even iirc..
16:00:46 <ehird> 12:09:37 <ais523> (any editor that allows you to set tab to anything but 8 is suspicious, any editor that /defaults/ to anything but 8 is simply broken)
16:00:46 <ehird> Suspicious? ahahaha. And I guess that makes BBEdit, a very well-regarded editor, broken since 1993.
16:00:52 <ehird> AnMaster: O_O
16:01:00 <ehird> 12:09:45 <AnMaster> tabs are not 8 by definiton
16:01:00 <ehird> 12:09:49 <ais523> yes they are
16:01:00 <ehird> STUNNING ARGUMENT
16:01:21 <ehird> 12:10:05 <AnMaster> ais523, why
16:01:21 <ehird> how come you're the one being logical and rational and he's just asserting shit?
16:01:27 -!- impomatic has left (?).
16:01:36 <AnMaster> ehird, har har
16:01:41 <ehird> /aisMaster
16:01:58 <ehird> 12:11:15 <ais523> coppro: you'll break all the applications that assume that tab=8 if you do that
16:01:58 <ehird> 12:11:23 <AnMaster> ais523, yes because those apps are broken
16:01:59 <ehird> 12:11:25 <ais523> e.g. --help output often uses 8-space tabs
16:01:59 <ehird> No, they use tabs
16:02:04 <ehird> They look fine no matter what the spacing
16:02:16 <AnMaster> ehird, I would never argue for tab = 8 though. That wouldn't just be me. I used to use tab = 2, then later went tab = 4
16:02:23 <Deewiant> One problem with using tabs to indent is that if you want 80-column lines, what you get depends on the tab width.
16:02:30 <ehird> tab=8 is fine in C, great in Go
16:02:32 <Deewiant> (I've chosen to not give a shit.)
16:02:42 <ehird> tab=8 gets awkward if you nazi-like insist on 80 cols, ofc
16:02:55 <ehird> even ken thompson says not to worry about line length in go :P
16:03:06 <ehird> Deewiant: ha i wrote my shit before yours
16:03:12 <ehird> but yeah, nobody cares
16:03:20 <ehird> measure with =8 if you want, nobody sets it *above* that
16:03:34 <Deewiant> I measure with =3 and give no shit since nobody cares anyway
16:03:39 <AnMaster> ehird, I think someone suggested tab=13 a bit later
16:03:49 <AnMaster> (as a joke)
16:03:49 <ehird> also, wc can use tabs (chars\twords\tlines) and it'll look fine whatever the tab width
16:04:12 <ehird> some put a \t before the chars, which is stupid, but doesn't matter
16:04:21 <ehird> anyway
16:04:26 <ehird> ais523 is even wrong traditionally
16:04:34 <ehird> tabs go to the column that is the NEXT MULTIPLE of 8 traditionally
16:04:41 <ehird> before non-tab chars, this is 8 spaces
16:04:53 <ehird> but (6 chars)<tab>a is (6 chars)(two spaces)a
16:05:10 <AnMaster> ehird, btw, the thing about sun and java later was just to show how absurd he was acting when referring to indent(1) as some sort of authority
16:05:19 <AnMaster> in case you misinterpret that
16:05:29 <ehird> he probably has gnu indent, which uses gnu style by default
16:05:31 <ehird> some fucking authority
16:05:43 <AnMaster> ehird, yeah, he was referring to both gnu and sun ones.
16:05:48 <AnMaster> iirc
16:05:56 <ehird> ooh, sun; well-known purveyors of good unix
16:05:56 <ehird> not
16:06:19 <ehird> 12:14:18 <ais523> so if you use tabs alone for indentation, you end up in the stupid situation where you can't read the program in anything but an editor
16:06:20 <ehird> do your eyes suddenly start to bleed when you see 8 spaces?
16:06:23 <ehird> if not, sure you can read it fine
16:06:30 <ehird> with any tab width
16:06:38 <ehird> ofc, he thinks indentation=alignment prolly
16:06:42 <AnMaster> ehird, also there was this "setterm" command to make it work on a terminal
16:06:44 <ehird> which would probably be his counterargument
16:06:47 <AnMaster> I think it had been mentioned then already
16:06:56 <ehird> 12:14:45 <ais523> also, because of wanting to restrict lines to 80 columns so they fit on the screen, having variable-sized tabs means that you have no idea where to split your lines
16:06:56 <ehird> "fit on the screen"
16:06:57 <ehird> i knew it
16:07:02 <ehird> ais523 actually uses a vt100
16:07:10 <AnMaster> :D
16:07:13 <ehird> also, his editor can't line-wrap
16:07:31 <ehird> (you can set vim to add one more level of indentation post-wrapping iirc, which is nice)
16:07:41 <ehird> looks just like manual wrapping
16:08:49 <ehird> 12:15:06 <AnMaster> <ais523> also, because of wanting to restrict lines to 80 columns so they fit on the screen, having variable-sized tabs means that you have no idea where to split your lines <-- you don't. 100 columns is just fine. More than that isn't I agree
16:08:49 <ehird> wow, I would have put you down as an 80-columns type
16:08:51 -!- fax has joined.
16:09:04 <ehird> 12:15:10 <ais523> AnMaster: presumably that was added to cope with the broken editors
16:09:05 <ehird> IT'S A CONSPIRACY
16:09:12 <ehird> every counterargument is just because everything is broken!!!
16:09:27 <ehird> 12:15:24 <ais523> AnMaster: I can fit about 83 characters horizontally on my screen, on a half-screen-width window
16:09:27 <ehird> see, this is why people don't buy £300 laptops
16:10:20 <ehird> 12:17:32 <AnMaster> <ais523> oklofok: agreed; the reason to keep tabsize at a default of 8 is because that's what tabs have been for ever, and what a tab actually means <-- what a tab actually means says who?
16:10:20 <ehird> […]
16:10:20 <ehird> 12:17:48 <ais523> says more or less every program in existence, apart from a few editors
16:10:20 <ehird> by this of course he is discounting all your other examples
16:10:25 <ehird> because they're clearly because of broken editors!
16:10:30 <ehird> the fallacies are outstanding
16:10:37 <AnMaster> <ehird> wow, I would have put you down as an 80-columns type <-- why on earth. You edited cfunge yourself and commented upon that it went past 80 columns
16:10:43 <AnMaster> short memory? ;P
16:10:46 <ehird> can we _please_ start teaching basic rational argument early on in schools?
16:10:55 <ehird> the world would be a much better place
16:11:00 <AnMaster> ehird, I wish
16:11:20 <ehird> the conservative christians would complain :D
16:11:52 <AnMaster> ehird, only in US though. ais is in UK
16:12:00 <ehird> true
16:12:17 <AnMaster> ehird, and US is so backwards anyway that it is a lost cause.
16:12:29 <AnMaster> or is it "lost case"?
16:12:38 <ehird> the only reason to go to the US is to work at google or go to a university :P
16:12:40 <AnMaster> with all the lawyers there it probably is.
16:12:54 <ehird> well, or apple
16:12:57 <ehird> definitely not microsoft :P
16:13:01 <AnMaster> ehird, what about universities in Europe?
16:13:15 <ehird> MIT is the single best university for CS, so...
16:13:22 <AnMaster> true
16:13:54 <ehird> (and it's in Massachusetts, so you could pretend it's warm canada :P)
16:14:53 <AnMaster> ooh I found an old python version for classic mac os
16:14:57 <AnMaster> 2.2.1
16:14:59 <ehird> yeah, MacPython
16:15:06 <ehird> it has an IDE and stuff
16:15:15 <AnMaster> ehird, seems to be idle there
16:15:35 <ehird> maybe it was python for windows that had its own ide way back
16:16:05 <AnMaster> maybe
16:16:09 -!- kar8nga has joined.
16:16:16 <ehird> 12:18:35 <ais523> and that relied on tab=8
16:16:16 <ehird> 12:18:41 <ais523> AnMaster: it's used the \t forever
16:16:16 <ehird> 12:18:45 <ais523> since before I took it over
16:16:17 <ehird> 12:18:56 <ais523> further evidence that tab should equal 8...
16:16:17 <ehird> what, because you use it that way?
16:16:17 <AnMaster> the idle-lookalike (or idle) gives a traceback as the first thing
16:16:23 <ehird> (what kind of table-maker depends on tab=8?!)
16:16:26 <ehird> (just split on \t+)
16:16:39 <ehird> then you can align just fine if the entry is >8 chars, and it still works
16:16:50 <ehird> 12:19:27 <ais523> oklofok: the point was, I wasn't sure how wide each of the columns would be
16:16:50 <ehird> ...................so?
16:17:15 <AnMaster> ehird, does this python error look bad: "ValueError: Bad Marshal Data"
16:17:29 <ehird> marshal is an object deserialisation/serialisation model (unsafe so use pickle for user code)
16:17:30 <AnMaster> sorry, was lower case text
16:17:35 <ehird> it is used for .pyc objects etc
16:17:57 <AnMaster> ehird, yeah but you aren't supposed to get a traceback about that when opening python right?
16:18:06 <ehird> maybe one of the system files has an invalid pyc
16:18:07 <ehird> or pyo
16:18:12 <AnMaster> maybe hm
16:18:19 <ehird> remove them all and try again
16:18:46 <AnMaster> right. have to find them first
16:18:58 <ehird> 12:23:38 <AnMaster> ais523, it's like saying GNU cat is some role model for all cat's
16:18:58 <ehird> 12:23:41 <AnMaster> cats*
16:18:58 <ehird> "Here kitty kitty."
16:18:59 <ehird> "hewe kwitty kwitty"
16:18:59 <ehird> "YOU CAN TALK?!"
16:19:13 <oklofok> ehird: but he knew they were of size 6-7, so tabsize of 8 made most sense, because he didn't need to adjust them to make it look pretty
16:19:19 <ehird> "V FUCK YOU!"
16:19:20 <ehird> "emphasis FUCK YOU! end of line"
16:19:35 <ehird> oklofok: so he picked the tab width based on the contents? I thought it was 8 no matter what!
16:19:38 <ehird> :P
16:20:05 <ehird> 12:23:49 <Rugxulo> that's weird, actually, doesn't GNU coding style prefer tab width of 2?
16:20:05 <ehird> yes, as spaces
16:20:06 <ehird> if (foo)
16:20:09 <ehird> {
16:20:09 <ehird> ...
16:20:13 <ehird> }
16:20:16 <ehird> so 4 in practice, except for functions
16:20:18 <oklofok> or maybe more like 8 because 6-7 is such a common distribution
16:20:24 <ehird> and wraps
16:20:58 <ehird> 12:25:12 <ais523> AnMaster: err, I expect them to have followed industry practice at the time?
16:20:59 <ehird> do you have any idea how much sun's unices were hacked around?
16:21:02 <AnMaster> ehird, great. that value error happens randomly. about 3 times out of 7 or so of starting the IDE
16:21:06 <AnMaster> removing pyc files didn't help
16:21:14 <ehird> AnMaster: sheepshaver :P
16:21:21 <AnMaster> ehird, was on a real mac
16:21:22 <AnMaster> so no
16:21:26 <ehird> dunno then
16:21:32 <AnMaster> and what was the context of "industry practice" there?
16:21:42 <ehird> 12:26:03 <ais523> AnMaster: it doesn't even set it to an integer
16:21:42 <ehird> because tradition doesn't
16:21:54 <ehird> it's traditionally be go-to-next-multiple-of-8
16:21:58 <ehird> so all your argument-by-tradition is invalid
16:22:11 <ehird> AnMaster: their indent(1)
16:22:15 <ehird> assuming tabs=8
16:22:37 <ehird> 12:28:23 <ais523> given that this is a traditional flamewar, you can't go looking for a page that advocates one side of the flamewar, because there's bound to be one
16:22:37 <ehird> no, tabs vs spaces is traditional
16:22:45 <ehird> tabs=8 is never said by people who have learned what tab actually is
16:22:59 <AnMaster> ehird, ah
16:23:10 <ehird> 12:28:48 <ais523> 2 and 3 tend to be more common, 4 is a Pythonism
16:23:10 <ehird> a pythonism?! No...
16:23:10 <oklofok> i love it when ehird is on my side
16:23:15 <ehird> Pythonism is 4-spaces.
16:23:18 <ehird> Tabs are very much discouragedd.
16:23:21 <ehird> *discouraged
16:23:26 <ehird> and people were indenting C by 4 since —
16:23:27 <oklofok> you know you don't have to fight when there's someone like him
16:23:30 <AnMaster> oklofok, same.
16:23:30 <ehird> this is the 3 more common than 4 line
16:23:32 <ehird> ;_;
16:23:36 <ehird> you upset me ais523
16:23:38 <oklofok> energy, POWAH
16:23:40 <oklofok> he has
16:23:42 <oklofok> for fighting
16:23:43 <AnMaster> oklofok, yeah indeed. It is nice for a change
16:23:50 <ehird> oklofok: i have some kind of compulsion to viciously argue against idiots :D
16:24:06 <oklofok> :)
16:24:19 <oklofok> you're internet people
16:24:22 <AnMaster> ehird, I wonder why there is some "Build application" drag-python-file-to-me application thingy with this macpython
16:24:29 <ehird> makes a mac app
16:24:31 <ehird> out of python files
16:24:38 <ehird> still exists today
16:24:41 <AnMaster> ehird, native compiler?
16:24:43 <ehird> no
16:24:45 <ehird> includes python
16:24:49 <ehird> and your .pycs
16:24:50 <AnMaster> heh
16:24:58 <ehird> or .pyos, which are just optimised .pycs
16:25:00 <ehird> AnMaster: it's good for e.g. games
16:25:12 <AnMaster> ehird, there is an identical one called "build applet" too
16:25:18 <AnMaster> not sure what the difference would be
16:25:19 <AnMaster> as in
16:25:24 <AnMaster> identical icon
16:25:46 <ehird> 12:34:53 * SimonRC gets out his soldering iron; and the documentation for several popular HTML renderers.
16:25:46 <ehird> I'm here to solder things and read the documentation for several popular HTML renderers, and I'm allllll out of documentation.
16:26:58 <AnMaster> ehird, very strange line you quoted...
16:27:03 <ehird> 12:34:56 <ais523> SimonRC: DOS edit? Notepad? less without having to type out the -x option every time you view a file?
16:27:03 <ehird> 12:35:16 <ais523> more, fwiw, which doesn't have -x?
16:27:03 <ehird> It looks fine at tab=8, anyway.
16:27:13 <ehird> AnMaster: HTML renderers generally render as tab=4
16:27:27 <AnMaster> ehird, well, I mean the soldering iron. What has it got to do with things
16:27:32 <ehird> AnMaster: Who knows!
16:28:05 <AnMaster> <ehird> <ais523> WHICH IS BECAUSE THE WORLD IS DEAD AND BROKEN AND ITS ASHES SHITTED ON <--- I must have left by then? Or my memory refused to remember that
16:28:21 <ehird> 12:38:33 <ais523> AnMaster: well, I'm confused, because I'm 22
16:28:22 <ehird> dude, you had a bbc thingy when you were young
16:28:57 <ehird> either your parents didn't allocate much of their budget to buying you technology, your parents were poor, or they had this evil plan to bring you up as if it was years ago
16:29:11 <ehird> (the middle one meant i was using 3.11 in 1995 :-P)
16:29:20 <ehird> erm
16:29:21 <ehird> not 1995
16:29:23 <ehird> 1995+3
16:29:25 <AnMaster> ehird, yet you have a mac now. That's not cheap.
16:29:26 <ehird> 1998
16:29:36 <ehird> AnMaster: yes, because economic situations never change :P
16:29:47 <AnMaster> lucky you
16:29:55 <ehird> ehh, it's not like they're rich or anything
16:30:16 -!- FireFly has joined.
16:30:16 <AnMaster> "UNIX tools can be trivially ported to run in the MPW environment. Some examples of those that have been ported are awk, bison, yacc, lex, diff, flex, sed, perl, python, tags, and gcc."
16:30:17 <AnMaster> hm
16:30:24 <AnMaster> says apple's MPW "advantages" page
16:30:31 <ehird> I bet gcc wasn't so trivial
16:30:53 <AnMaster> ehird, wait till you read about the MPW include files in the scrollback
16:31:11 <AnMaster> ehird, hint: gcc/egcs
16:31:33 <ehird> i wish egcs didn't merge, it may have become something other than the worst GNU horror ever
16:32:33 <AnMaster> ehird, python and perl would be quite impressive too
16:33:52 <ehird> 12:40:17 <ais523> AnMaster: say you want to print out a Word document, or whatever
16:33:52 <ehird> You'd convert it to PostScript, and— oh, you're talking about shitty printers.
16:34:45 <AnMaster> ehird, did the tab discussion really go on for that long?
16:35:01 <ehird> It seems to have occupied the majority of an entire day
16:35:20 <AnMaster> s/day/night/ unless I misremember?
16:35:29 <oklofok> ehird: you were born in 1995 right?
16:35:32 <ehird> AnMaster: Sure.
16:35:36 <ehird> oklofok: Yeppers.
16:35:51 <oklofok> just surating
16:36:07 <ehird> (And yes, I did get a computer when I was 3... not sure why, but hey.)
16:36:07 <ehird> 12:41:33 <AnMaster> I'm happy to have grown up on mac
16:36:07 <ehird> 12:41:37 <AnMaster> things just worked there
16:36:07 <ehird> 12:41:47 <AnMaster> and there was no terminal
16:36:07 <ehird> The most un-AnMaster like thing ever said? You decide.
16:36:18 <ehird> Surated knife.
16:36:22 <AnMaster> ehird, wasn't the "unimportant edge case" I said once less un-AnMasterish?
16:36:34 <ehird> AnMaster: I don't know, being happy there was no terminall?
16:36:36 <ehird> *terminal
16:37:26 <ehird> 12:48:32 <fizzie> AnMaster: You could be Illiad in disguise.
16:37:26 <ehird> that would explain the terrible sense of humour
16:37:35 <ehird> userfriendly is marginally ffunnier than garfield
16:37:39 <ehird> *funnier
16:37:43 <AnMaster> ehird, I didn't say that. The scoping was wrong. As in "there was no terminal there" was not one of the reasons for being happy with it
16:37:50 <AnMaster> just it didn't matter either way
16:37:52 <ehird> Well, okay, but still :P
16:37:53 <AnMaster> bbiab food
16:40:29 * ehird flips back through a few UserFriendlies, sees a baww-type story about cancer and Pitr *still* talking faux-russian
16:40:35 <ehird> when did that start, 2000?!
16:40:40 <ehird> confirmed, still shit
16:41:02 <Deewiant> It started pretty early
16:41:37 <Deewiant> There's probably only a dozen or so strips at the start where he doesn't
16:44:56 <AnMaster> ehird, I stopped reading UF some time ago.
16:45:13 <ehird> 14:01:45 <coppro> indeed
16:45:13 <ehird> 14:01:51 <coppro> I wish I had written an answer like that :(
16:45:14 <ehird> 14:02:12 <coppro> oh wow, one of my answers hit 50 votes :)
16:45:14 <ehird> The problem with Stack Overflow is that it turns people into RPG-style karma whores instead of good helpers.
16:45:23 <ehird> Fuck that shit. Stack Overflow is a cesspool in practice which just proves it.
16:45:46 <ehird> At least Experts Exchange usually had the right answer if it had any.
16:45:49 <AnMaster> <ehird> Fuck that shit. Stack Overflow is a cesspool in practice which just proves it. <-- ah. That explains a lot about ick. cesspool.c
16:45:57 <ehird> Does it recur?
16:46:10 <AnMaster> ehird, what does?
16:46:45 <ehird> cesspool.c :P
16:46:46 <ehird> Stack overflow
16:46:48 <ehird> 14:30:38 <coppro> how about we stop using autoconf
16:46:49 <ehird> 14:31:14 <ais523> coppro: because if used correctly you can actually make it work
16:46:49 <ehird> Same with a knife, for murder.
16:47:07 <ehird> (Note: Autotools is actually literally as bad as knife murder.)
16:47:10 <ehird> ((Those poor knives!))
16:47:24 <AnMaster> ehird, hah. was a bad joke
16:47:55 * AnMaster happened to have that file open in an editor and thus read ehird's line as containing the word "cesspool.c" first time around
16:48:22 <ehird> http://www.lettersofnote.com/2009/11/say-yes-i-need-job.html
16:50:28 <ehird> Heh, "MakeFile"
16:50:43 <ehird> Okay, so f-thing is :
16:50:44 <AnMaster> ehird, hm?
16:50:49 <ehird> icelandic d is \
16:50:50 <ehird> AnMaster: MPW
16:51:02 <AnMaster> ehird, says Makefile here
16:51:13 <AnMaster> ?
16:51:24 <AnMaster> at least it refuses to highlight MakeFile and makefile for me
16:51:28 <ehird> MPW 3.1:Examples:CExamples:MakeFile
16:51:30 <AnMaster> which is very un-macish
16:51:40 <AnMaster> ehird, indeed you are right
16:51:46 <AnMaster> and that one does highlight
16:51:49 <AnMaster> how very strange
16:51:58 <ehird> Probably has a file type :P
16:52:10 <ehird> Anyway, uh, Link(1) looks scary.
16:52:22 <AnMaster> ehird, no it's TEXT as file type
16:52:27 <AnMaster> same all as the other ones
16:52:43 <ehird> I'm disappointed MPW uses file extensions :P
16:52:44 <AnMaster> ehird, Link? it crashes sheepshaver for me. PPCLink works
16:53:02 <ehird> Link is 68k duh :P
16:53:07 <AnMaster> ehird, I know
16:53:10 <ehird> Or maybe if(68k)
16:53:13 <ehird> else ppc
16:53:17 <ehird> I mean the syntax, anyway
16:53:24 <AnMaster> ehird, but then why does some 68k apps run under sheepshaver?
16:53:38 <AnMaster> (like ones I compiled on a real mac)
16:53:41 <ehird> fat binaries (both 68k & ppc) and 68k emulation
16:53:52 <ehird> just like universal binaries and rosetta from ppc→intel
16:53:53 <AnMaster> ehird, I made sure it wasn't a fat one
16:53:56 <AnMaster> I'm not stupid
16:53:59 <ehird> then the latter
16:54:08 <AnMaster> right
16:54:19 <ehird> except rosetta is a better ppc emulator than the 68k one was :P
16:54:22 <AnMaster> ehird, anyway what do you think about that crazy header in MPW I mentioned?
16:54:26 <AnMaster> in the logs
16:54:27 <ehird> for 68k that is xD
16:54:30 <ehird> AnMaster: still reading
16:55:01 <ehird> 14:36:50 <ais523> and my university does, but I couldn't sensibly put it there, it's unrelated to my research
16:55:01 <ehird> lol, tons of people have websites on university accounts
16:55:18 <ehird> <ais523> but they're evil! IT SAYS IN THIS POLICY—
16:55:22 <AnMaster> ehird, not ais. Same as he would never pirate anything
16:55:57 <ehird> "Probably all laws are useless; for good men do not want laws at all, and bad men are made no better by them." — Demonax
16:56:05 <ehird> I wonder what kind of man ais523 is, then
16:56:09 <ehird> "Crazy"? :P
16:56:14 <AnMaster> ehird, maybe
16:56:22 <AnMaster> ehird, who is that "demonax"?
16:56:30 <ehird> greek philosopher
16:56:33 <AnMaster> ah
16:56:38 <ehird> with the most awesome name ever
16:56:46 <ehird> he kills people with his demon axe!
16:57:07 <AnMaster> ehird, oooh I know the answer
16:57:12 <AnMaster> "to tell the good from the bad"
16:57:21 <AnMaster> without laws you can't point out who are the bad ones
16:57:28 <AnMaster> oh wait
16:57:32 <ehird> Good men can point out who the bad men are :P
16:57:32 <AnMaster> you could use "moral" for that
16:57:46 <AnMaster> ehird, bad men could lie about it and frame god men?
16:57:57 <AnMaster> (you forgot the category "stupid men")
16:59:13 -!- ehird_ has joined.
16:59:41 <ehird_> [16:57] ehird: (Utilitarianism FTW.)
16:59:42 <ehird_> [16:58] ehird: Gah, I lost my net connection?
16:59:42 <ehird_> [16:58] ehird: Hello?
16:59:42 <ehird_> [16:58] ehird: It's connecting...
16:59:49 <ehird_> Already logread.
16:59:53 <ehird_> Uh, not totally.
16:59:56 <ehird_> Just the bits I didn't hear
17:00:10 <ehird_> 08:57:46 <AnMaster> ehird, bad men could lie about it and frame god men?
17:00:11 <ehird_> 08:57:57 <AnMaster> (you forgot the category "stupid men")
17:00:11 <ehird_> I don't see what baring this has on Demonax's statement
17:00:30 <ehird_> More modernly rephrased, it's "Moral people are moral without laws, and immoral people ignore the laws".
17:00:51 <AnMaster> ehird_, what about the MPW header then?
17:01:04 <ehird_> I imagine that back in his time, there weren't people so afraid of authority that law was the only thing stopping them breaking it.
17:01:13 <ehird_> Such obedience is more of a modern thing, I think.
17:01:14 <AnMaster> headers*
17:01:18 <ehird_> AnMaster: Still reading the previous day :P
17:01:30 <AnMaster> ehird_, oh multi-place log reading?
17:01:49 <ehird_> Just for my disconnection
17:02:45 <ehird_> 14:51:12 <AnMaster> ais523, wb
17:02:46 <ehird_> 14:51:23 <AnMaster> ais523, wrong button?
17:02:46 <ehird_> 14:51:32 <ais523> no, I was leaving in exasperation
17:02:46 <ehird_> Basically it's passive-aggressiveness.
17:03:31 <oklofok> is this because punishments are smaller?
17:03:45 <ehird_> oklofok: in reply to my modern-obedience?
17:03:46 <oklofok> "ehird_: I imagine that..." <<<
17:03:48 <oklofok> yes
17:04:20 <ehird_> I think it's just culture. The conservatives advocate such crazy obedience to authority (well, when they're in power), but the liberals do too, really.
17:04:24 <oklofok> i mean that would make a lot of no sense
17:04:36 <ehird_> xD
17:04:51 <ehird_> Mostly libertarians aren't so obedient, but they're all so irritating that it doesn't help the cause.
17:05:59 <oklofok> i don't think that many things are modern things
17:06:08 <ehird_> 14:54:12 <ais523> the name is an unfortunate one
17:06:08 <ehird_> 14:54:19 <ais523> it's about as accurate as "biscuit semantics" would be
17:06:08 <ehird_> 14:54:23 <oklofok> we get that
17:06:12 <ehird_> oklofok: i mean modern quite loosely
17:06:29 <ehird_> definitely such a submissive, afraid-of-authority society isn't an ancient thing
17:06:40 <ehird_> maybe it's christianity that did it; "god-fearing" being positive
17:07:16 <oklofok> WELL DUNNO
17:08:23 <oklofok> but my historian gf usually disagrees when i try to say ideas or patterns are inherently modern.
17:08:59 <oklofok> hmm, maybe history gets simplified when it's written down??
17:09:01 <ehird_> i think most people ignore law anyway, because it's extremely hard to actually find out what all the laws are
17:09:05 <ehird_> oklofok: you don't say.
17:09:19 <oklofok> laws paws
17:09:34 <oklofok> did i blow your mind
17:09:37 -!- adam_d has quit (Read error: 60 (Operation timed out)).
17:09:51 <ehird_> http://www.diovo.com/2009/11/the-general-pirate-license/ what an awful license
17:10:16 <AnMaster> yay I got something that you can actually run directly after compile now (without messing around manually with copying ick-wrap.c and syslib.i and such
17:10:34 <AnMaster> ehird_, so what about the MPW HEADERS?
17:10:44 <ehird_> STILL FUCKING LOGREADING BITCH :|||||||||
17:11:10 <AnMaster> mhm
17:11:16 <AnMaster> HURRY UP?
17:11:32 <oklofok> the "fucking" joke never gets old
17:11:38 <ehird_> 15:43:08 <Sgeo> Hm.
17:11:38 <ehird_> 15:43:24 <Sgeo> Chrome's "Close tabs opened by this tab" only goes 1 level deep
17:11:39 <ehird_> 15:44:23 <oerjan> well otherwise it would have to recurse. and that would require recursion.
17:11:39 <ehird_> 15:45:22 <oklofok> i'm not sure i get that
17:11:39 <ehird_> 15:45:28 <oerjan> something which would necessitate a recurrence step.
17:11:39 <ehird_> 15:45:47 <oklofok> is this another fart joke?
17:11:41 <ehird_> XD
17:11:43 <ehird_> *xD
17:11:45 <ehird_> stupid capslock
17:12:13 <ehird_> 15:53:44 <oklofok> i'm going to grr you dead.
17:12:13 <ehird_> ;-)
17:13:29 <ehird_> 20:18:52 <Gregor> I feel that all good fictional stories should end with every major character dying.
17:13:29 <ehird_> 20:18:55 <Gregor> That way there are no loose ends.
17:13:32 <oklofok> i was angry and probably a bit scary too
17:13:33 <ehird_> What about the minor characters?
17:13:45 <ehird_> And mechanical happenings.
17:14:11 <oklofok> WHAT ABOUT THE PAST
17:14:21 <ehird_> What about your ass
17:14:25 <ehird_> ...That didn't even rhyme
17:14:27 <ehird_> why did i say that
17:14:28 <oklofok> touche
17:14:49 <ehird_> 05:22:13 <AnMaster> a sun compiler. Okay these guys were crazy. half of these handled cases aren't even relevant for a mac...
17:14:52 <ehird_> they'll just have bought the header files
17:15:05 <ehird_> 06:46:46 <AnMaster> MPW shell sure has strange commands (and command names): "Dolt - highlight and execute a series of shell commands"
17:15:06 <ehird_> I like the workspace thingy
17:15:10 <ehird_> Like a smalltalk transcript
17:15:13 <ehird_> Text that you can run parts of
17:15:16 <ehird_> by highlighting
17:15:22 <ehird_> *Worksheet
17:15:25 -!- ehird has quit (Success).
17:15:26 -!- ehird_ has changed nick to ehird.
17:15:39 <AnMaster> hm
17:16:16 <AnMaster> ehird, actually no. There is a comment at the end asking people to send in more compiler detection and defines to apple if one is missing
17:16:29 <ehird> it's for ported compilers, then
17:16:30 <ehird> remember
17:16:32 <ehird> metrowerks
17:16:35 <ehird> it's just for non-MPW stuff
17:16:39 <ehird> wasn't the only compiler in time, nor the most common
17:16:44 <ehird> (Metrowerks was the most common, I believe)
17:16:50 <AnMaster> ehird, some of them ran on pc. Like that C++ *targeting* mac.
17:17:00 <ehird> MPW cost too much
17:17:00 <AnMaster> but it says also "runs on windows nt"
17:17:06 <ehird> it was mostly for enterprisey things
17:17:22 <ehird> AnMaster: cross-compiling
17:17:26 <ehird> macs were kinda shit in those days
17:17:26 <AnMaster> ehird, I have metroworks around here somewhere too. Seems easier to use interface but less advanced
17:17:35 <ehird> so nobody developed on them
17:17:39 <ehird> and NT was a sturdy workstation OS
17:17:52 <AnMaster> ehird, and the egcs for MPW thingy?
17:18:08 <ehird> because gcc sucked
17:18:21 <ehird> (think compiling gcc-needing libraries, etc)
17:19:35 <AnMaster> that was why there was a native version for MPW?
17:19:39 <AnMaster> err.. okay...
17:19:46 <ehird> ?
17:19:54 <ehird> explain
17:20:06 <AnMaster> ehird, sec will find the header
17:20:26 <AnMaster> ehird, you know where your header files are?
17:20:31 <AnMaster> if not
17:20:41 <AnMaster> echo "{CIncludes}"
17:20:41 <AnMaster> iirc
17:21:00 <AnMaster> look at "ConditionalMacros.h" in that directory
17:22:07 <ehird> Open "{CIncludes}ConditionalMacros.h" tell me it doesn't exist
17:22:10 <ehird> Post-1988 I presume :P
17:22:20 <ehird> *tells
17:22:36 <AnMaster> oh hah
17:23:00 <ehird> Does About MPW... give you a fun animation?
17:23:05 <ehird> Does for me!
17:26:17 <AnMaster> ehird, yes
17:26:20 <AnMaster> ehird, in colour?
17:26:34 <ehird> No :P
17:26:41 <ehird> It assembles a floppy then spray-paints it white.
17:26:44 <AnMaster> about things flying out of a toolbox, then some paint sprayed on
17:26:45 <ehird> A CD for you, I'd wager.
17:26:51 <AnMaster> and end result is a blue floppy
17:26:56 <AnMaster> ehird, no
17:26:59 <ehird> Huh. Okay then.
17:27:03 <AnMaster> light blue floppy
17:29:29 <ehird> Incidentally, Go's networking is like Plan9's dial().
17:29:38 <ehird> No "sockets", just a connector returning a file.
17:29:52 <ehird> Unsurprising considering it's the same people.
17:29:55 -!- kar8nga has quit (Remote closed the connection).
17:32:51 <AnMaster> ehird, what about listening for connections?
17:33:03 <ehird> I was talking about connections.
17:33:06 <ehird> That you make.
17:33:14 <AnMaster> ehird, yes I understood that.
17:33:21 <ehird> "A Listener is a generic network listener for stream-oriented protocols. Accept waits for the next connection and Close closes the connection."
17:33:24 <AnMaster> but what if I want to implement a server
17:33:27 <ehird> type Listener interface {
17:33:27 <AnMaster> ehird, aha
17:33:27 <ehird> Accept() (c Conn, err os.Error);
17:33:27 <ehird> Close() os.Error;
17:33:27 <ehird> Addr() Addr; // Listener's network address
17:33:28 <ehird> }
17:33:44 <ehird> so
17:33:47 -!- puzzlet_ has joined.
17:33:55 <ehird> conn, err := listener.Accept();
17:34:08 <ehird> then conn is a subtype of Conn, which is a file
17:34:14 <ehird> (probably TCPConn)
17:34:31 <AnMaster> ehird, so more like normal networking then
17:34:42 <ehird> Not really, a listener is, of course, a sane concept.
17:35:05 <ehird> But having connections just be files with some useful extra stuff — BSD sockets rapes that.
17:35:24 <AnMaster> ehird, doesn't sound too different from binding to a socket? Just it happens to be listen() bind() and accept() instead of a object representing it
17:35:25 <ehird> I'm surprised Berkeley sockets are so fugly to use, actually. I'd expect better from the BSD guys.
17:35:32 <ehird> AnMaster: That's listeners.
17:35:42 <AnMaster> ehird, that's what I'm talking about
17:35:42 <ehird> The important thing is what you get from a listener, and how you connect yourself.
17:35:48 <ehird> There is nothing wrong with listeneers.
17:35:50 <ehird> *listeners
17:35:53 <AnMaster> ah
17:35:54 <ehird> There is something wrong with sockets.
17:36:07 <ehird> (especially connecting)
17:36:27 <ehird> (you have to do a bloody *ugly cast of a reference* just to connect with a BSD socket...)
17:36:33 <ehird> uh, by reference I mean pointer-by-&foo
17:36:41 <ehird> and pass the sizeof
17:37:34 <AnMaster> ehird, hah ick is trying to open :share:/ick-wrap.c
17:37:37 <AnMaster> that's hilarious
17:37:40 <ehird> heeh
17:37:41 <ehird> *heh
17:37:50 * AnMaster goes looking at the source for where to change that
17:37:54 <ehird> btw, you create a Listener by e.g.:
17:38:43 <ehird> var foo Listener = net.ListenTCP("tcp", net.ResolveTCPAddr("")
17:38:49 <ehird> which is a TCPListener
17:38:55 <ehird> erm
17:38:56 <ehird> s/$/)/
17:39:01 -!- oerjan has joined.
17:39:03 <ehird> you could construct a TCPAddr yourself, though
17:39:32 <ehird> {IP: net.ParseIP(""), Port: 6667}
17:39:32 <ehird> or
17:39:45 <ehird> {IP: net.IPv4(0, 0, 0, 0), Port: 6667}
17:39:56 <ehird> or even just passing
17:40:00 <ehird> "\0\0\0\0"
17:40:04 <AnMaster> oerjan, iwc
17:40:11 <AnMaster> oerjan, and D&D
17:40:19 <ehird> (same as {0,0,0,0} here; byte=uint8)
17:40:26 <ehird> (and type IP []byte)
17:40:38 <AnMaster> ehird, is Go statically typed?
17:40:41 <ehird> yes
17:40:51 <ehird> more strongly than C
17:40:54 <ehird> and yes, it has pointers
17:40:56 <AnMaster> oh interesting
17:40:58 <ehird> (no pointer arithmetic, though)
17:41:00 <AnMaster> ehird, more than ADA?
17:41:02 <ehird> no :P
17:41:06 <ehird> but you can't break the type-system
17:41:10 <AnMaster> aww, I love pointer arithmetics
17:41:12 <oerjan> <pikhq> Gregor: I feel that all good fictional stories should start with everyone dying.
17:41:13 <ehird> without using a module basically the same as Haskell's Unsafe.Shit.Crap
17:41:22 <oerjan> i understand some do
17:41:23 <AnMaster> ah
17:41:26 <ehird> AnMaster: also, it isn't OOP, btw
17:41:34 <oerjan> AnMaster: read it hours ago
17:41:41 <AnMaster> oerjan, same
17:41:57 <AnMaster> oerjan, which theme was it now again?
17:42:05 <ehird> it has structs, interfaces (basically a type full of function signatures, and anything with a method of a compatible type is typed as that interface; it's strongly-typed duck typing) and methods
17:42:07 <ehird> methods are just
17:42:08 <ehird> instead of
17:42:14 <ehird> func Foo(...)
17:42:16 <ehird> you do
17:42:24 <oerjan> AnMaster: something hobbitual
17:42:27 <ehird> func (thing SomeStructOrInterface) Foo(...)
17:42:28 <ehird> or
17:42:30 <ehird> func (thing *SomeStructOrInterface) Foo(...)
17:42:33 <ehird> and then you can do thing.Foo()
17:42:41 <ehird> and if you have e.g.
17:42:57 <ehird> type Foo struct {*Bar; ExtraField int;}
17:43:05 <AnMaster> oerjan, not a hobbit joke surely?
17:43:06 <ehird> then you can do someFoo.MethodOnBar()
17:43:13 <ehird> basically, struct entries without names are "included"
17:43:24 <oerjan> AnMaster: not a hobbit pun, no
17:43:30 <ehird> so we just have structs, interfaces, some syntactic sugar and unnamed-structs-are-inlined
17:43:35 <ehird> and we have a system *better* than OOP
17:43:43 <AnMaster> <ehird> func (thing SomeStructOrInterface) Foo(...) <-- so what is parameter list, and what is return type?
17:43:49 * AnMaster can't figure out how to read it
17:43:56 <ehird> func main()
17:43:58 <ehird> is
17:44:03 <ehird> a no-argument function main
17:44:05 <ehird> that returns nothing
17:44:07 <ehird> (like void)
17:44:09 <ehird> func foo() int
17:44:14 <ehird> is a no-argument function foo that returns an int
17:44:17 <ehird> func foo(a int) int
17:44:18 <AnMaster> ehird, oh that sounds like pascal
17:44:19 <ehird> is int→int
17:44:22 <AnMaster> iirc it had return type last too
17:44:31 <ehird> func (thing *Foo) blah(a int) int
17:44:32 <ehird> is
17:44:37 <AnMaster> well, yeah more languages than pascal do
17:44:39 <ehird> aFoo.blah(anInt) → int
17:44:55 <AnMaster> ehird, "thing"?
17:45:01 <ehird> thing is then aFoo.
17:45:03 <ehird> in blah()
17:45:06 <AnMaster> is that a key word?
17:45:07 <ehird> basically
17:45:08 <ehird> no
17:45:12 <ehird> it's a var name
17:45:16 <ehird> basically, you read
17:45:16 <AnMaster> oh
17:45:20 <ehird> func foo bar(baz) quux
17:45:21 <ehird> as
17:45:29 <ehird> function bar on foo, taking baz and returning quux
17:45:29 <ehird> i.e.
17:45:32 <ehird> func foo bar(baz) quux
17:45:33 <ehird>
17:45:35 <ehird> foo.bar(baz) → quux
17:45:37 <AnMaster> right
17:45:41 <AnMaster> makes sense
17:45:45 <ehird> you can also have multiple return vars
17:45:51 <ehird> so, for instance
17:45:52 <ehird> func (c *TCPConn) Read(b []byte) (n int, err os.Error)
17:46:00 <AnMaster> a bit hard to read, but that is just due to not being used to it
17:46:06 <ehird> means that you do aTCPConn.Read(aByteArray)
17:49:14 -!- oerjan has quit (orwell.freenode.net irc.freenode.net).
17:49:14 -!- fax has quit (orwell.freenode.net irc.freenode.net).
17:49:17 -!- Slereah has quit (orwell.freenode.net irc.freenode.net).
17:49:17 -!- rodgort has quit (orwell.freenode.net irc.freenode.net).
17:49:20 -!- Guest19337 has quit (orwell.freenode.net irc.freenode.net).
17:49:24 -!- AnMaster has quit (orwell.freenode.net irc.freenode.net).
17:49:28 -!- Warrigal has quit (orwell.freenode.net irc.freenode.net).
17:49:28 -!- Gregor has quit (orwell.freenode.net irc.freenode.net).
17:49:31 -!- sebbu has quit (orwell.freenode.net irc.freenode.net).
17:49:31 -!- iamcal has quit (orwell.freenode.net irc.freenode.net).
17:49:40 -!- ineiros has quit (orwell.freenode.net irc.freenode.net).
17:49:43 -!- jix has quit (orwell.freenode.net irc.freenode.net).
17:49:46 -!- puzzlet_ has quit (orwell.freenode.net irc.freenode.net).
17:49:46 -!- ehird has quit (orwell.freenode.net irc.freenode.net).
17:49:46 -!- FireFly has quit (orwell.freenode.net irc.freenode.net).
17:49:46 -!- puzzlet has quit (orwell.freenode.net irc.freenode.net).
17:49:48 -!- mycroftiv has quit (orwell.freenode.net irc.freenode.net).
17:49:51 -!- dbc has quit (orwell.freenode.net irc.freenode.net).
17:49:51 -!- mtve has quit (orwell.freenode.net irc.freenode.net).
17:49:53 -!- BeholdMyGlory has quit (orwell.freenode.net irc.freenode.net).
17:49:56 -!- HackEgo has quit (orwell.freenode.net irc.freenode.net).
17:49:59 -!- olsner has quit (orwell.freenode.net irc.freenode.net).
17:49:59 -!- Rembane has quit (orwell.freenode.net irc.freenode.net).
17:50:00 -!- augur has quit (orwell.freenode.net irc.freenode.net).
17:50:00 -!- oklofok has quit (orwell.freenode.net irc.freenode.net).
17:50:02 -!- SimonRC has quit (orwell.freenode.net irc.freenode.net).
17:50:04 -!- bsmntbombdood_ has quit (orwell.freenode.net irc.freenode.net).
17:50:04 -!- Leonidas has quit (orwell.freenode.net irc.freenode.net).
17:50:07 -!- pikhq has quit (orwell.freenode.net irc.freenode.net).
17:50:07 -!- fizzie has quit (orwell.freenode.net irc.freenode.net).
18:00:00 -!- SimonRC has joined.
18:00:00 -!- augur has joined.
18:00:37 -!- Warrigal has joined.
18:00:37 -!- ineiros has joined.
18:00:37 -!- mtve has joined.
18:00:37 -!- dbc has joined.
18:00:37 -!- olsner has joined.
18:00:37 -!- HackEgo has joined.
18:00:37 -!- Rembane has joined.
18:00:37 -!- Guest19337 has joined.
18:00:37 -!- AnMaster has joined.
18:00:37 -!- mycroftiv has joined.
18:00:37 -!- iamcal has joined.
18:00:37 -!- jix has joined.
18:00:37 -!- sebbu has joined.
18:00:37 -!- rodgort has joined.
18:00:37 -!- Slereah has joined.
18:00:37 -!- Gregor has joined.
18:00:37 -!- BeholdMyGlory has joined.
18:00:37 -!- fax has joined.
18:00:37 -!- FireFly has joined.
18:00:37 -!- ehird has joined.
18:00:37 -!- puzzlet_ has joined.
18:00:37 -!- oerjan has joined.
18:00:37 -!- oklofok has joined.
18:03:07 <ehird> fileiter=ICK_PATHUPTREE "include";
18:03:07 <AnMaster> which it is using partly
18:03:07 <AnMaster> maybe the guessdir parameter
18:03:07 <ehird> AnMaster: right, well, having an exact path is of course better than that hack
18:03:07 <ehird> (of hardcoding ..)
18:03:08 <AnMaster> ehird, problem is it adds / somewhere
18:03:08 <AnMaster> ehird, I think it is in that function
18:03:11 <AnMaster> which would be the cause of :share:/syslib.i
18:03:12 <ehird> well
18:03:12 <ehird> erm
18:03:12 <ehird> 16 while(*guessdir != '\0' && i<BUFSIZ-2) buf2[i++] = *guessdir++;
18:03:12 <ehird> 17 buf2[i++] = '/';
18:03:13 <ehird> just do
18:03:14 <ehird> if (buf2[i++] != ICK_PATHSEP)
18:03:14 <AnMaster> ehird, I think I could rewrite it. But I don't think I could patch it.
18:03:14 <ehird> buf2[i-1] = ICK_PATHSEP;
18:03:14 <ehird> erm
18:03:14 <ehird> make it
18:03:14 <AnMaster> ehird, ho
18:03:14 <AnMaster> uh*
18:03:15 <ehird> if (buf2[i] != ICK_PATHSEP) buf2[i++] = ICK_PATHSEP;
18:03:15 <AnMaster> where did the if come from?
18:03:15 <ehird> on line 17
18:03:15 <ehird> AnMaster: because :/
18:03:15 <ehird> if it just added :
18:03:15 <ehird> it'd be ::
18:03:15 <ehird> which is previous dir
18:03:15 <ehird> unlike // on posix
18:03:15 <ehird> 46 ret = ick_debfopen(buf2,mode); /* argv[0]/../lib/ */
18:03:15 <ehird> is also suspicious
18:03:16 <AnMaster> ehird, and ::: will be /../../
18:03:16 <ehird> AnMaster: right
18:03:16 <ehird> so add the if
18:03:16 <AnMaster> notice that the mapping isn't clean
18:03:19 <ehird> to only add the path sep if it doesn't have one
18:03:19 <AnMaster> hm
18:03:22 <ehird> it's for when you set it to /foo
18:03:22 <AnMaster> yeah would work I guess
18:03:22 <ehird> instead of /foo/
18:03:23 <ehird> normally /foo// is harmless
18:03:23 <ehird> but not in mac os
18:03:24 <AnMaster> indeed
18:03:33 -!- fizzie has joined.
18:03:36 <ehird> AnMaster: btw your next challenge is to port CLC-INTERCAL :D
18:03:36 <oklofok> is that ais523's code?
18:03:37 <ehird> oklofok: probably his
18:03:37 <ehird> either his or someone else who worked on c-intercal
18:03:40 <ehird> maybe esr, but I doubt it
18:03:40 <ehird> it looks very much like ais523
18:04:01 -!- bsmntbombdood_ has joined.
18:04:01 -!- Leonidas has joined.
18:04:01 -!- pikhq has joined.
18:04:04 <ehird> and it is pretty much the worst code I've seen today
18:04:07 <ehird> esp. repeating the 16 while(*guessdir != '\0' && i<BUFSIZ-2) buf2[i++] = *guessdir++; loop
18:04:07 <oklofok> yes i recognize by the way he dots his i's
18:04:08 <ehird> erm
18:04:08 <ehird> he repeats it for fileiter
18:04:08 <ehird> not guessdir
18:04:08 <ehird> whatever, I'd just do
18:04:08 <ehird> #define COPYTOBUF2(x) while (*x != '\0' ...
18:04:13 <ehird> then #undef COPYTOBUF2 at the end of the function
18:04:21 <ehird> correction, I'd throw away that code
18:04:23 <ehird> and rewrite it
18:04:44 <AnMaster> ehird, yeah I would, but how would I know I didn't break some weird system?
18:04:58 <ehird> who knows :P
18:05:04 <ehird> also, go has closures <3
18:05:09 <AnMaster> as in, I need to figure out what the current code does before I can rewrite it to extend it.
18:05:18 <ehird> I'm pretty sure I'm going to adopt it as my main language
18:05:19 <oklofok> i'd just buy a hamster and teach it to code my file iteration code
18:05:23 <AnMaster> ehird, many high level languages do. For low level ones it is less common.
18:05:32 <AnMaster> ehird, how high/low level is Go?
18:05:38 <ehird> Go is a systems programming language
18:05:43 <oklofok> or whatever that does, i didn't read the *whole* comment
18:05:49 <ehird> It has pointers, a GC and closures
18:05:51 <AnMaster> ehird, it seems higher level than C though
18:05:51 <ehird> Who can really say?
18:06:01 <ehird> You could write a kernel in it without too much bother.
18:06:08 <ehird> Probably.
18:06:16 <ehird> You could write coreutils in it without breaking a sweat.
18:06:19 <AnMaster> ehird, can you turn the GC off? Like for when you are implementing parts of the OS that needs to work before GC is ready
18:06:23 <ehird> You could write init in it.
18:06:27 <ehird> AnMaster: Not right now.
18:06:41 <AnMaster> ehird, planned feature? And what language is the GC written in then?
18:06:55 <ehird> The GC is a shitty mark-and-sweep that only works with gc (the generic name for the Ng compilers; confusing, I know; I think it's because it's written in C) and not gccgo right now
18:06:57 <AnMaster> or rather: How much of Go is written in Go (and what other languages are used)
18:06:58 <ehird> It's being redeveloped
18:07:01 <ehird> for both implementations
18:07:05 <ehird> as a shiny concurrent gc
18:07:14 <oklofok> go is gc with a half circle added to the c
18:07:26 <AnMaster> ehird, there are two Go implementations?
18:07:29 <AnMaster> *blink*
18:07:29 <ehird> yes
18:07:33 <AnMaster> when was this language released?
18:07:43 <ehird> A few days ago. Developed since 2007.
18:07:43 <oklofok> that tiny subset is what you'd use
18:07:44 <AnMaster> ehird, hm
18:07:46 <ehird> the implementations are by the same people
18:07:46 <ehird> ofc
18:07:50 <ehird> well
18:07:52 <ehird> gc is mostly ken thompson's I believe
18:08:03 <ehird> especially since it is basically like the plan 9 c compiler
18:08:17 <ehird> anyway, gccgo produces faster code but is much slower, does goroutines (concurrency) worse and has no gc
18:08:20 <AnMaster> ehird, well I will have to ask ais on that findandfopen function
18:08:21 <ehird> most people use gc.
18:08:30 <AnMaster> probably
18:08:37 <ehird> (and the stdlib is compiled with it)
18:08:44 <ehird> by default
18:08:49 <ehird> and the build system uses it by default
18:09:07 <ehird> oh, and if you use gccgo you can't use the plan 9 linker ofc
18:09:08 <AnMaster> ehird, if he can describe expected behaviour for it I would rewrite it to work for mac too.
18:09:11 <ehird> so it'll be sloooooooow
18:09:18 <ehird> AnMaster: I'd just do my mods, pretty easy
18:09:21 <AnMaster> ehird, oh? Is the linker the slowest part?
18:09:32 <ehird> Well, no, it's just that Plan 9's linker is really fast
18:09:52 <ehird> you can execute gc and the linker on ten files before gcc and ld set their mind on the first
18:10:10 <AnMaster> ehird, are you on OS X atm? I need you to check something for me
18:10:15 <ehird> sure
18:10:24 <AnMaster> ehird, basically, does the compiler there define macintosh
18:10:25 * ehird writes http://www.paulgraham.com/accgen.html in Go
18:10:32 <AnMaster> gcc on OS X that is
18:10:36 <ehird> although with int before number
18:10:42 <AnMaster> (or the preprocessor rather)
18:10:45 <ehird> AnMaster: define what
18:10:48 <ehird> #define macintosh?
18:10:51 <AnMaster> ehird, yes
18:10:54 <AnMaster> does it do that
18:10:56 <AnMaster> by defualt
18:10:59 <AnMaster> default*
18:11:05 <AnMaster> like it defines __GNUC__ probably
18:11:16 <ehird> $ gcc -E -x c /dev/stdin
18:11:16 <ehird> #ifdef macintosh
18:11:16 <ehird> #error bitch
18:11:16 <ehird> #endif
18:11:17 <ehird> # 1 "/dev/stdin"
18:11:17 <ehird> # 1 "<built-in>"
18:11:18 <ehird> # 1 "<command line>"
18:11:20 <ehird> # 1 "/dev/stdin"
18:11:22 <ehird> $
18:11:26 <ehird> maybe the headers define it, but i doubt it
18:11:29 <ehird> it'll be a ____ thiing
18:11:30 <AnMaster> right
18:11:47 * ehird writes http://www.paulgraham.com/accgen.html but with a fixed-size int instead of number first, to be precise
18:11:47 <AnMaster> so my "detect if this is mac" won't break that then
18:11:53 <ehird> I'm not sure we have bigfloats :P
18:12:02 <ehird> but I'll make it use an interface the second time I guess
18:12:40 <AnMaster> ehird, because the only common thing that all mac compilers I used (MrC, SC, CodeWarrior) defines is "macintosh"
18:12:47 <AnMaster> the PPC ones define powerc and __powerc
18:14:28 -!- kar8nga has joined.
18:14:42 <ehird> func foo(n int) func (int) int {
18:14:43 <ehird> return func(i int) int { return n += i}
18:14:43 <ehird> }
18:14:44 <ehird> erm
18:14:45 <ehird> make that
18:14:58 <oklofok> int is an interface?
18:15:01 <ehird> func foo(n int) func (int) int {
18:15:01 <ehird> return func(i int) int { return n += i }
18:15:01 <ehird> }
18:15:03 <ehird> oklofok: no
18:15:09 <ehird> I'm doing a fixed-size regular int first, just there
18:15:10 <ehird> lemme test it
18:15:17 <oklofok> right, right
18:15:52 <oklofok> oh you said that already
18:16:03 <oklofok> hard to read lines all the way to the end
18:16:22 <AnMaster> ehird, btw why did ais use indention=2 in that file if he liked indent=4 tab=8...
18:16:37 <ehird> dunno.
18:16:51 <ehird> btw, he chose to format the dna maze code with the intention of annoying the most amount of people
18:17:19 <ehird> it has almost no spaces, mixed spaces and tabs, 2 (iirc) indent, {s on the starting line, and }s on the same line as the last statement
18:17:26 <ehird> and it made me want to fucking rip his head off when trying to make it compile
18:17:28 <oklofok> i use dynamic indentation, i indent lines k times, if they are used O(n^k) times during a run of the program
18:17:33 <ehird> :D
18:17:45 <ehird> $ 6g intacc.go
18:17:45 <ehird> intacc.go:5: syntax error near int
18:17:45 <ehird> intacc.go:6: syntax error near int
18:17:45 <ehird> intacc.go:10: syntax error near bar
18:17:46 <ehird> not so good.
18:17:52 <Gregor> `addquote <oklofok> i use dynamic indentation, i indent lines k times, if they are used O(n^k) times during a run of the program
18:17:56 <HackEgo> 103|<oklofok> i use dynamic indentation, i indent lines k times, if they are used O(n^k) times during a run of the program
18:18:14 <oklofok> stalker1
18:18:15 <oklofok> *!
18:18:19 <AnMaster> ehird, the "detect absolute argv" thing won't work on mac
18:18:20 <AnMaster> because
18:18:23 <ehird> oops, += is a statement
18:18:29 <AnMaster> Volume:dir:file
18:18:33 <AnMaster> is absolute
18:18:33 <AnMaster> but
18:18:34 <ehird> (so there are no ++ ordering issues)
18:18:37 <AnMaster> :dir:file
18:18:38 <AnMaster> is relative
18:18:39 <AnMaster> and so is
18:18:42 <AnMaster> file
18:18:42 <ehird> ah, of course, you have to return a function pointer
18:18:46 <ehird> func foo(n int) *func (int) int {
18:18:48 <ehird> or more readably
18:18:50 <AnMaster> ehird, ^
18:18:53 <ehird> func foo(n int) *(func (int) int) {
18:18:55 <ehird> AnMaster: right
18:19:18 <AnMaster> ehird, non-trivial to check in C. Well trivial but a bit of work
18:19:44 <ehird> intacc.go:6: cannot use (node O-33) (type func(i int) (int)) as type *func(int) (int)
18:19:58 <ehird> took me a second to realise I needed & before the func in return func(i int) int { n += i; return n } there
18:20:02 <ehird> automatic pointerification would be scary
18:21:22 <ehird> hmm, you can't do &func ...
18:21:23 <ehird> strange
18:22:01 <AnMaster> ehird, oh and apps seems to get relative paths only *checks for mpw tools*
18:22:08 <ehird> oh wait
18:22:16 <ehird> you can return functions directly
18:23:02 <ehird> $ ./6.out
18:23:02 <ehird> bar(0) = 3
18:23:02 <ehird> bar(3) = 6
18:23:02 <ehird> bar(2) = 8
18:23:03 <ehird> excellent
18:23:06 -!- FireFly has quit ("Later").
18:23:08 <ehird> func foo(n int) (func (int) int) {
18:23:09 <ehird> return func(i int) int { n += i; return n };
18:23:09 <ehird> }
18:23:16 <ehird> erm, that last ; isn't required
18:23:50 <ehird> func foo(n int) (func (int) int) {
18:23:50 <ehird> return func(i int) int {
18:23:50 <ehird> n += i;
18:23:51 <ehird> return n;
18:23:51 <ehird> }
18:23:51 <ehird> }
18:23:53 <ehird> thanks gofmt
18:24:34 <ehird> ah
18:24:35 <ehird> func foo(n int) (func(int) int) {
18:24:36 <ehird> is better
18:25:23 <ehird> AnMaster: oklofok: http://sprunge.us/JXMf
18:25:29 <ehird> now to make a generic-number version
18:26:09 <ehird> it's nice how you can return a function that isn't a pointer
18:26:52 <ehird> by number paul graham means non-ints and bignum i guess
18:27:13 -!- Slereah_ has joined.
18:27:14 <ehird> bigThis package implements multi-precision arithmetic (big numbers).
18:27:14 <ehird> bignumA package for arbitrary precision arithmethic.
18:27:15 <ehird> Hmm...
18:27:20 <ehird> bignum is bigger
18:27:23 <ehird> and does non-ints
18:27:30 <ehird> This package has been designed for ease of use but the functions it provides are likely to be quite slow. It may be deprecated eventually. Use package big instead, if possible.
18:27:31 <ehird> XD
18:30:55 <oklofok> i think by number he means something you can increment and test against zero
18:31:13 <AnMaster> wait why is ais checking of argv[0] contains at least one /
18:31:14 <oklofok> that's the natural definition!
18:31:18 <AnMaster> I fail to see the point
18:31:23 <AnMaster> that could be absolute or relative
18:31:26 <AnMaster> and you can't know
18:31:34 <AnMaster> on *nix
18:32:04 <AnMaster> or is he reasoning like "oh, if it doesn't contain any path it probably isn't in current directory, but if it does it is probably relative current directory"?
18:32:07 <AnMaster> or something like that
18:32:24 <AnMaster> hm
18:33:42 <ehird> oklofok: you don't need to test against zero
18:33:43 <ehird> just increment :P
18:34:10 <ehird> $ 6g acc.go
18:34:11 <ehird> Bus error
18:34:11 <ehird> *boggles*
18:34:33 <oklofok> well yeah but i don't think a number that can't be compared to others is a very useful number
18:34:55 <ehird> heh, can't whittle it down
18:35:01 <AnMaster> ehird, gdb?
18:35:06 <AnMaster> or does gdb not support go yet
18:35:13 <ehird> AnMaster: gc is written in c
18:35:16 <AnMaster> or does it have it's own debugger?
18:35:20 <ehird> (6g = gc for 64-bit)
18:35:21 <ehird> but it doesn't use libc
18:35:24 <AnMaster> ehird, oh hah was that the compiler crashing?
18:35:27 <ehird> yep
18:35:32 <AnMaster> ehird, 6g makes me thing of i686
18:35:33 <ehird> (it uses lib9, plan9port's ported plan9 libc)
18:35:37 <AnMaster> rather than x86_64
18:35:56 <ehird> AnMaster: x*[8]6, amd[6]4, arm[INEXPLICABLE 5]
18:35:59 <ehird> erm
18:36:01 <ehird> AnMaster: x[8]6, amd[6]4, arm[INEXPLICABLE 5]
18:36:07 <AnMaster> yeah
18:36:24 <AnMaster> ehird, there is a 6 in x86 too
18:36:30 <ehird> yes, but it isn't the first digit
18:36:31 <AnMaster> wouldn't 8 and 4 have been safer?
18:36:39 <ehird> technically 8* is for 386 in plan9
18:36:40 <AnMaster> no collision risk then
18:36:50 <ehird> i.e. it calls it 386
18:36:50 <ehird> not x86
18:36:53 <AnMaster> ehird, would that be 3?
18:36:53 <AnMaster> :P
18:36:53 <ehird> but 3 was prolly taken
18:36:55 -!- Slereah has quit (Read error: 110 (Connection timed out)).
18:36:58 <AnMaster> ah
18:37:01 <ehird> anyway 6 is easily-memorable as 64-bit
18:37:11 <ehird> 8 is, eh, x86 nowadays, so pretty memorable
18:37:18 <ehird> and I'm sure if you did arm work 5 would become memorable too
18:37:37 <ehird> so it's not a big deal
18:37:50 <AnMaster> ehird, why use numbers? why not something like g -86 g -64 or such? (Not that those two are logical, but they are shorer than logical ones)
18:38:06 <ehird> AnMaster: separate binaries has a very good reason
18:38:13 <ehird> the nice upside is that if you just compile and install 5* on e.g. amd64
18:38:20 <AnMaster> ehird, because it seems so illogical you would keep thinking about "why", thus you would remember it
18:38:21 <ehird> you can use them to cross-compile
18:38:24 <ehird> i.e.
18:38:29 <ehird> each is portable
18:38:33 <ehird> cross-compiling becomes no big deal
18:38:53 <AnMaster> ehird, um how does having a binary able to compile to all not do that
18:38:56 <ehird> you can mix-and-match, and each program does one thing ("compile go source to ARM object" "link ARM objects in the plan 9 linker format")
18:39:01 <AnMaster> I have gcc -m32 and gcc -m64 after all
18:39:04 <AnMaster> that is one binary
18:39:08 <ehird> AnMaster: because it's wasteful to include every architecture+os in every compiler
18:39:15 <ehird> and the whole point is that you don't have to tell the build system
18:39:17 <ehird> hey cross compile it
18:39:24 <AnMaster> ehird, could do it as a wrapper that calls the right internal binary I guess
18:39:24 <ehird> you just tell it you're e.g. ARM
18:39:26 <AnMaster> meh
18:39:27 <ehird> it does 5g
18:39:28 <ehird> and voila
18:39:35 <ehird> AnMaster: no real point
18:39:38 <AnMaster> ehird, true
18:39:40 <ehird> since the internal binaries are usable as-is
18:40:03 <ehird> the only downside is that there's no way to quickly do "whatevertherightoneis file" in a build system or whatever
18:40:05 <ehird> but that's basically void
18:40:08 <ehird> because go has makefiles
18:40:21 <AnMaster> ehird, btw you mentioned in that ick_findandfopen there were lots of duplicate code?
18:40:22 <AnMaster> well
18:40:26 <ehird> TARG=progname
18:40:26 <ehird> GOFILES=foo.go bar.go
18:40:27 <ehird>
18:40:27 <ehird> include $(GOROOT)/src/Make.$(GOARCH)
18:40:27 <ehird> include $(GOROOT)/src/Make.cmd
18:40:27 <ehird> and you're done
18:40:31 <ehird> s/cmd/pkg and you generate a library
18:40:33 <AnMaster> ick_findandtestopen is basically a copy of it
18:40:34 <ehird> make install/clean works with both
18:40:34 <AnMaster> changed a bit
18:40:38 <ehird> very convenient
18:40:38 <AnMaster> horrible
18:40:48 <ehird> AnMaster: XD
18:41:10 <ehird> also the makefile snippet lets you install to different dirs too
18:41:10 <AnMaster> ehird, at least ick_findandfreopen() just calls ick_findandtestopen() plus does some extra stuff
18:41:14 <ehird> $ make install GOBIN=...
18:41:19 <ehird> and cross-compiling is easy:
18:41:21 <AnMaster> I fail to see why the first one couldn't do that too
18:41:23 <ehird> $ make GOARCH=amd
18:41:24 <ehird> erm
18:41:25 <ehird> $ make GOARCH=arm
18:41:48 <AnMaster> ehird, will that work under MPW?
18:41:57 <ehird> uhh. i think it requires gmake :P
18:42:04 <ehird> also, libraries (packages) are put in $GOROOT/pkg/$GOOS_$GOARCH
18:42:07 <AnMaster> ehird, damn
18:42:13 <ehird> so you can have a cross-compilation environment without different trees
18:42:16 <ehird> it's all very well thought-out
18:42:39 <ehird> (also, it does static libraries! package foo is just $GOROOT/pkg/$GOOS_$GOARCH/foo.a)
18:42:53 <AnMaster> ehird, {GOROOT}pkg:{GOOS}_{GOARCH} you mean (missing : in front of pkg intentional, GOROOT is assumed to end with :
18:42:54 <ehird> (and you don't need to explicitly link it, just import it in the source file and it leaves a note for the linker)
18:42:55 <AnMaster> (always)
18:42:58 <ehird> AnMaster: hyuk hyuk
18:43:07 <AnMaster> )
18:43:20 <ehird> one ugly thing about $GOROOT/pkg
18:43:21 <ehird> $ ls $GOROOT/pkg
18:43:21 <ehird> darwin_amd64~place-holder~
18:43:24 <ehird> hg is shit and doesn't track empty dirs :P
18:43:30 <AnMaster> hah
18:43:45 <AnMaster> ehird, reminds me of cvs
18:43:53 <ehird> eh, darcs does it too iirc
18:44:11 <ehird> you actually do
18:44:12 <ehird> $ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
18:44:16 <ehird> to install go
18:44:17 <ehird> well
18:44:20 <ehird> you do a make too
18:44:31 <ehird> but yeah, you actually get it from hg straight into the tree :P
18:44:56 <AnMaster> <ehird> eh, darcs does it too iirc <-- does what? not tracking empty dirs?
18:44:57 <AnMaster> uh uh
18:44:59 <ehird> it does take up a few environment variables, but it's a small price to pay to have a convenient, well-organised, easily-managable development tree that can cross-compile and works everywhere
18:45:03 <ehird> AnMaster: yes, and it's "uh huh"
18:45:04 <AnMaster> that would break my build script
18:45:14 <AnMaster> ehird, no "uh uh" as in "oops"
18:45:15 <ehird> uh uh sounds like that's the way, uh uh uh uh, I like it, uh uh uh uh
18:45:24 <ehird> AnMaster: ah :P
18:45:38 <ehird> Relevant: http://en.wikipedia.org/wiki/The_Complexity_of_Songs
18:45:40 <ehird> Knuth!
18:45:42 <AnMaster> ehird, I think classic mac os had that as one of the "beeps" you could select
18:46:03 <ehird> S_0 = e, S_k = V_k S_(k-1), k >= 1,
18:46:11 <ehird> V_k = 'That's the way,' U 'I like it,' U, for all k > 0
18:46:15 <ehird> U = 'uh huh, uh huh'
18:47:24 <AnMaster> ehird, that wikipedia link... what is that "(priority disputed)" there
18:47:30 <AnMaster> some wikipedia thing about the reference?
18:47:41 <ehird> I'm not surer.
18:47:45 <ehird> Not a Wikipedia thing, I think.
18:47:47 <ehird> *sure
18:47:54 <ehird> they're usually ^{[...]}
18:48:19 <AnMaster> <ehird> I'm not surer. <- surer than?
18:48:24 <AnMaster> ;P
18:48:35 <ehird> surise
18:48:48 <ehird> To be exact, here's how you install go:
18:49:11 <AnMaster> ready steady go!
18:49:46 <ehird> $ export GOROOT=~/go
18:49:46 <ehird> $ export GOBIN=~/bin
18:49:46 <ehird> $ export GOARCH=386
18:49:47 <ehird> $ export GOOS=linux
18:49:47 <ehird> $ export GOMAXPROCS=2
18:49:47 <ehird> $ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
18:49:48 <ehird> $ cd $GOROOT/src
18:49:50 <ehird> $ ./all.bash
18:50:06 <ehird> (Yes, AnMaster, I know you'd use GOROOT=~/local/go, GOBIN=~/local/bin and GOARCH=amd64 :P)
18:50:28 <ehird> (GOMAXPROCS is how many cpus/cores you have unless you want to limit go further than that, no real reason to though)
18:50:40 <ehird> (it defaults to 1, so concurrent programs won't be very good unless you set it)
18:50:58 <ehird> (GOBIN also defaults to ~/bin but really, it's simpler just to set them all, especially as you can view them with env | grep ^GO)
18:51:02 <AnMaster> ehird, how large is the go installation?
18:51:29 <ehird> $ du -sh go
18:51:29 <ehird> 242Mgo
18:51:29 <ehird> that's amd64/darwin
18:51:42 <ehird> with no extra packages or whatever installed
18:51:45 <AnMaster> ehird, larger than MPW.
18:51:48 <AnMaster> and rather huge
18:51:53 <AnMaster> ehird, I would have expected 100 MB at most
18:51:54 <ehird> that includes all the tools (apart from the debugger-in-construction)
18:51:56 <ehird> all the documentation
18:51:59 <ehird> all the stdlib (as .as)
18:52:19 <ehird> google's codereview scripts
18:52:27 <ehird> lib9, libio and libmach
18:52:29 <AnMaster> ehird, static analyser?
18:52:31 <ehird> (as .as)
18:52:37 <AnMaster> is that what those codereview scripts are?
18:52:45 <ehird> the ffi with some premade bindings
18:52:49 <ehird> emacs, vim and xcode support files
18:53:01 <ehird> and also, a ton of tests
18:53:09 <ehird> the test binaries are removed at the end though, Ithink
18:53:12 <ehird> *I think
18:53:18 <ehird> anyway, it's not that big
18:53:19 <AnMaster> ehird, still, bulky to say the least
18:53:24 <ehird> not really
18:53:27 <ehird> it's batteries-included
18:53:31 <ehird> it has a lot of useful stuff
18:53:48 <ehird> including an indent(1) equivalent but with defaults that everyone uses,
18:54:02 <ehird> a documentation generator that uses the web server in the stdlib and runs http://golang.org/
18:54:17 <ehird> a linker, a plan9 c compiler, a go compiler
18:54:24 <ehird> a plan9 assembler
18:54:28 <ehird> the ffi tool
18:54:32 <ehird> a yacc port
18:54:33 <ehird> etc
18:54:45 <ehird> codereview is for their code review site, where people review changes before merging them into the main line
18:54:55 <ehird> (oh, and the test runner tool)
18:56:00 <AnMaster> oh
18:56:02 <AnMaster> hm
18:56:13 <AnMaster> ehird, static code analysis would have been cooler
18:56:16 <ehird> how do you sort du -h output?
18:56:24 <ehird> AnMaster: yeah :P
18:56:47 <ehird> anyway, any amd64 machine will have a disk you can throw 220 MiB at and not notice anything
18:57:03 <AnMaster> ehird, you could do du | sort -n then some magic to get the file names and then pass those as arguments in the right order to du?
18:57:17 <ehird> my linux distro, with 32-bit and the tiny libc, will probably be more like slightly below 100 MiB
18:57:19 <AnMaster> or you could write a script to sort on K, M, G and such
18:58:21 <AnMaster> ehird, couldn't you fit a stripped down go into that?
18:58:37 <AnMaster> ehird, my /usr/include on ubuntu is 103 MB
18:58:40 <AnMaster> *blink*
18:58:40 <ehird> erm, what does du display in
18:58:42 <ehird> bytes right?
18:58:52 <AnMaster> ehird, 512-bit blocks
18:58:52 <AnMaster> iirc
18:58:56 <AnMaster> ehird, du -b is bytes
18:58:58 <AnMaster> and exact
18:58:58 <ehird> AnMaster: stripping down is pointless, there's no real support for anything but the full thing
18:58:59 <AnMaster> as in,
18:59:05 <ehird> and it's fine, tbh
18:59:06 <AnMaster> without -b it rounds to whole disk blocks
18:59:07 <ehird> keeps it simple
18:59:14 <ehird> providing the build system as two makefiles is great too
18:59:22 <AnMaster> so a 1 byte file is still one 512 bit block
18:59:25 <AnMaster> err
18:59:27 <ehird> it means that all the questions of what build system to use, where to install libraries to etc. is solved
18:59:28 <AnMaster> 512-byte
18:59:30 <AnMaster> not bit
18:59:33 <AnMaster> ehird, I think
18:59:43 <AnMaster> ehird, see man page. I'm not 100% sure. I know it is messy
18:59:44 <ehird> (as well as the fact that it does static libraries for you)
18:59:52 <ehird> go is like, a vehicle for all the plan 9 type things
18:59:58 <ehird> to sneak them in to everyone's mindset :P
19:00:08 <AnMaster> <ehird> AnMaster: stripping down is pointless, there's no real support for anything but the full thing <-- embedded targets?
19:00:16 <AnMaster> as in, develop in one place and run in another
19:00:18 <ehird> AnMaster: the resulting binaries are quite small
19:00:24 <ehird> static linking, remember
19:00:27 <AnMaster> hm
19:00:27 <ehird> it only links in the stuff it uses
19:00:36 <AnMaster> sure
19:00:45 <ehird> in fact all make install does with programs is copy the one binary to $GOBIN :P
19:00:53 <ehird> (ofc you could add to that if you need data files)
19:01:29 <ehird> AnMaster: so `make GOARCH=arm GOBIN=~/androidthing/bin install` should work fine and produce a quite small binary
19:01:32 <AnMaster> ehird, I keep reading it as "goo" mentally
19:01:32 <ehird> erm
19:01:36 <AnMaster> not a good start
19:01:37 <ehird> AnMaster: so `make GOARCH=arm GOOS=linux GOBIN=~/androidthing/bin install` should work fine and produce a quite small binary
19:01:40 <AnMaster> well
19:01:42 <ehird> if you're on os x :P
19:01:45 <ehird> well
19:01:46 <AnMaster> GOOS is clearly plural of foo
19:01:47 <AnMaster> goo*
19:01:49 <ehird> or GOOS=darwin
19:01:51 <AnMaster> :P
19:01:52 <ehird> when they get the iphone stuff working
19:01:54 <AnMaster> ehird, gooy!
19:02:00 <ehird> AnMaster: GOOS is an unfortunate name, yes :P
19:02:09 <ehird> no du -b here on bsd :P
19:02:11 <AnMaster> ehird, they never thought of GO_OS?
19:02:18 <AnMaster> ehird, -b is GNU iirc
19:02:18 <ehird> AnMaster: why be inconsistent with the other names
19:02:22 <ehird> and who cares if it's GOOS
19:02:25 <AnMaster> so yeah you are stuck with 512-byte blocks
19:02:31 <ehird> au connotraire
19:02:32 <AnMaster> ehird, they could all use _
19:02:39 <ehird> -m Display block counts in 1048576-byte (1-Mbyte) blocks.
19:02:41 <ehird> exactly what I wanted
19:02:44 <ehird> AnMaster: why?
19:02:47 <AnMaster> ehird, that would work too
19:02:49 <AnMaster> but not standard
19:02:52 <ehird> is it a problem that GOOS looks like the plural of goo?
19:02:53 <AnMaster> iirc
19:02:55 <AnMaster> not 100% sure
19:03:02 <ehird> besides, it has a real effecct
19:03:04 <ehird> *effect
19:03:10 <ehird> for setting them to cross-compile etc :P
19:03:35 <AnMaster> ehird, how much of go is written in go?
19:03:37 <fizzie> "du -k" for kilobytes seems quite widespread.
19:03:46 <ehird> AnMaster: the whole stdlib
19:03:48 <ehird> none of the compiler
19:03:52 <AnMaster> fizzie, and standard too
19:03:54 <AnMaster> unlike -m
19:03:57 <ehird> well not the whole of the stdlib, I guess, some is probably in C
19:04:04 <ehird> all of the main stdlib, at least
19:04:32 <ehird> awk '{print shift"M", $0}' puts "M " before the shifted thing o_O
19:04:44 <ehird> '{print shift,"M", $0}' too
19:05:04 <AnMaster> ehird, how do you call external code? Lets say you want to call function in a *.so (because you need to integrate with that app)
19:05:05 <AnMaster> or such
19:05:09 <ehird> cgo
19:05:14 <ehird> the c ffi
19:05:23 <AnMaster> ehird, can it load dynamically linked libraries?
19:05:29 <ehird> it uses gcc.
19:05:31 <ehird> for cgo
19:05:41 <ehird> there's support for that for packages only (commands should make a wrapper lib) in the make system
19:05:43 <AnMaster> that isn't the same though
19:05:48 <ehird> just define CGOFILES=fileusingcgo.go
19:05:55 <ehird> AnMaster: yes it is, you can pass arguments to the cgo compiler
19:05:56 <AnMaster> <ehird> there's support for that for packages only (commands should make a wrapper lib) in the make system <-- ?
19:05:59 <ehird> it's CGO_CFLAGS or something
19:06:08 <ehird> AnMaster: making it run cgo for you
19:06:15 <AnMaster> ehird, it compiles to C code?
19:06:26 <AnMaster> or what are you saying
19:06:45 <ehird> it compiles to two files of go code (your source code using cgo morphed slightly and an internal file) and two files of C code (one for gcc, one for the plan9 c compiler)
19:06:59 <AnMaster> mhm
19:07:03 <ehird> you can pass arguments to the c compiler(s, not sure, prolly just gcc)
19:07:07 <AnMaster> so it generates C glue?
19:07:10 <ehird> since the 9 c compiler is without much options
19:07:11 <ehird> AnMaster: yes
19:07:23 <ehird> in the go files it's very simple
19:07:25 <ehird> / #include <foo>
19:07:27 <ehird> erm
19:07:29 <ehird> // #include <foo>
19:07:31 <ehird> // #include "bar"
19:07:33 <ehird> import "C"
19:07:36 <ehird> then you can do C.func(...)
19:07:41 <ehird> etc
19:07:50 <AnMaster> ehird, I imagine the 9 c compiler would have at least "optimise" "debug info" and "output to file instead of default"?
19:07:58 <ehird> it has problems with opaque structs atm (as in, you can't use them) so wrapping xlib requires some ugliness (casting pointers to longs)
19:08:06 <ehird> but those will be fixed, presumably
19:08:08 <AnMaster> ehird, oh and probably "add this to the include path"
19:08:32 <ehird> http://plan9.bell-labs.com/magic/man2html/1/2c
19:08:59 <AnMaster> ehird, my 9c from plan9 from userspace calls gcc!?
19:09:03 <ehird> yes
19:09:05 <AnMaster> it's a shell script that calls gcc
19:09:05 <AnMaster> huh
19:09:06 <ehird> it's a wrapper
19:09:09 <AnMaster> ehird, why?
19:09:16 <ehird> so other programs can use it
19:09:19 <ehird> and for a compatible interface
19:09:30 <ehird> anyway, most of the options are useless on cgo's go ffile
19:09:51 <ehird> all you'd need is linking libraries (I think cgo handles that)
19:09:56 <ehird> include files are done by gcc, I believe
19:09:58 <ehird> in fact
19:10:02 <ehird> I think it links with gcc for that part
19:10:17 <ehird> so all the options are useless on the plan9 c code, I'd say
19:10:24 <ehird> and optimisation is default.
19:10:37 <ehird> AnMaster: incidentally, see vc in http://plan9.bell-labs.com/magic/man2html/1/2c?
19:10:47 <ehird> plan9 has cpu emulators, 8i emulates an x86 for instance
19:10:51 <ehird> so the mips emulator is...
19:10:51 <ehird> vi
19:10:56 <AnMaster> ehird, what license is Go user?
19:10:57 <AnMaster> under*
19:11:09 <ehird> BSD
19:11:19 <ehird> well
19:11:19 <AnMaster> http://plan9.bell-labs.com/magic/man2html/1/2c? <-- hm that ? made it error out.
19:11:20 <ehird> bsd-style
19:11:27 <AnMaster> usually a ? at the end makes no difference
19:11:32 <ehird> no, wait, it's BSD
19:11:36 <ehird> with the don't-use-Google's-name-to-endorse
19:11:38 <ehird> so 3BSD
19:11:45 <ehird> pretty boring stuff
19:11:55 <ehird> just MIT + don't-use-our-name-to-endorse-your-product
19:12:05 <ehird> and the latter is handled by most countries laws anyway i'd wager
19:12:08 -!- Sgeo has joined.
19:12:31 <ehird> anyway, the plan9 man page for emacs has see also vi(1)
19:12:40 <ehird> which points to the page about the cpu emulators :D
19:12:50 <AnMaster> ehird, bug
19:12:58 <ehird> in the man page?
19:13:01 <ehird> no, it's a joke
19:13:01 <AnMaster> ehird, does plan9 have vim?
19:13:02 <ehird> see http://man.cat-v.org/plan_9/1/emacs
19:13:04 <AnMaster> oh hah
19:13:11 <ehird> my favourite man page ever, btw
19:13:17 <ehird> BUGS
19:13:17 <ehird> Yes.
19:13:24 <AnMaster> ehird, no one ported emacs to plan9?
19:13:33 <ehird> there probably is a port, but using it would be a mortal sin.
19:13:44 <ehird> (there's also a gcc support. using that is also a mortal sin.)
19:13:46 <Gregor> BUGS
19:13:46 <Gregor> Yes.
19:13:47 <ehird> *gcc port
19:13:49 <Gregor> lol
19:13:51 <ehird> Gregor: Yes, I copied that too :P
19:14:00 <AnMaster> ehird, good. I'm already deep in it. what with this port of ick to mac os
19:14:03 <Gregor> I was busy reading the page :P
19:14:08 <AnMaster> ehird, maybe you could port ick to plan9? :D
19:14:08 <ehird> hmm, there is no 8i
19:14:09 <ehird> makes sense
19:14:14 <AnMaster> unless that has been done already
19:14:15 <ehird> just mips, arm, sparc, powerpc
19:14:21 <ehird> i guess emulating x86 is too crazy for them
19:14:24 <ehird> AnMaster: heh, maybe
19:14:36 <ehird> plan9 c is quite a different beast to regular c, though
19:14:39 <AnMaster> ehird, maybe as in "been done" or "maybe I should do it"?
19:14:42 <ehird> they diverged before ISO C, I think
19:14:52 <AnMaster> ehird, ouch so it isn't C89 even?
19:14:57 <AnMaster> that would hurt
19:14:59 <ehird> oh, it's quite similar to C89
19:15:08 <AnMaster> ehird, what are the differences then?
19:15:12 <ehird> wait, it's probably post-C89
19:15:17 <AnMaster> well then
19:15:25 <AnMaster> should just be a new build system I expect
19:15:25 <ehird> AnMaster: e.g. you can have a union in a struct without giving its field a name and it's addressable as theStruct->unionElement
19:15:29 <ehird> same with a struct I believe
19:15:41 <ehird> so you can do "subtyping" like struct foo { struct bar; ... }
19:15:44 <AnMaster> ehird, gcc has that as an extension iirc
19:15:48 <ehird> (this is used as the subtyping mechanism in go to great effect)
19:15:48 <AnMaster> or something very similar
19:15:51 <AnMaster> for the union thing
19:15:54 <ehird> oh, and I think all structs are typedeffed, so to speak
19:16:00 <ehird> i.e. struct foo {} makes the type foo
19:16:04 <ehird> c++ does this :P
19:16:10 <AnMaster> ehird, you mean automatic typedef?
19:16:11 <AnMaster> ugh
19:16:15 <AnMaster> that would break things
19:16:16 <ehird> it works fine in plan 9
19:16:26 <AnMaster> ehird, can't you use a -strict-ansi or something?
19:16:31 <ehird> it doesn't matter, almost all posix-style c programs break on plan 9
19:16:34 <ehird> AnMaster: no. port it or use gcc
19:16:34 <AnMaster> even this MPW compiler has that
19:16:50 <ehird> you need APE (posix compatibility layer) for most programs anyway
19:16:54 <ehird> because plan 9 libc is not posix
19:17:03 <AnMaster> ehird, I didn't say POSIX
19:17:04 <ehird> in just about every way
19:17:11 <AnMaster> ehird, I said ANSI C
19:17:16 <AnMaster> ehird, ick is happy with ANSI C
19:17:18 <AnMaster> mostly
19:17:27 <AnMaster> and the parts where it isn't are either optional or bugs
19:17:27 <ehird> yes, but what kind of c program exercises details of the ansi c standard without stepping outside a subset of standard libc?!
19:17:40 <AnMaster> ehird, um. Ick tries to
19:17:40 <AnMaster> :P
19:17:55 <ehird> anyway, plan 9 c is a marked improvement over regular c
19:17:55 <AnMaster> (or to have fallbacks)
19:18:36 <ehird> oh, plan 9 c also eliminates the regular preprocessor
19:18:42 <ehird> it only does #define, #include, #undef, #ifdef, #line and #ifndef
19:18:47 <ehird> you can do -p to get an ansi preprocessor
19:18:56 <ehird> (it has #pragma but that's in the compiler)
19:18:58 <Sgeo> "Did you know more kids will be shown to have left-handedness this year than AiDS, diabetes, and cancer, combined?"
19:19:05 <AnMaster> A structure value can be formed with an expression such as
19:19:05 <AnMaster>
19:19:05 <AnMaster> (struct S){v1, v2, v3}
19:19:05 <AnMaster>
19:19:05 <AnMaster> where the list elements are values for the fields of struct S.
19:19:07 <AnMaster> well
19:19:08 <ehird> [[ Some features of C99, the 1999 ANSI C standard, are imple-
19:19:10 <ehird> mented. ]]
19:19:10 <AnMaster> C99 that one
19:19:28 <ehird> - Structure initializers can specify the structure element
19:19:28 <ehird> by using the name following a period, as
19:19:28 <ehird> struct { int x; int y; } s = { .y 1, .x 5 };
19:19:29 <ehird> which initializes elements y and then x of the structure
19:19:29 <ehird> s. These forms also accept the new ANSI C notation, which
19:19:29 <ehird> includes an equal sign:
19:19:30 <Gregor> I don't think there's a full implementation of C99 to date anyway.
19:19:30 <ehird> int a[] = { [3] = 1, [10] = 5 };
19:19:33 <ehird> struct { int x; int y; } s = { .y = 1, .x = 5 };
19:19:34 <AnMaster> ehird, so far it seems MPW implements exactly one extension: long long
19:19:45 <AnMaster> that is also in C99 I mean
19:19:48 <AnMaster> sure there are mac specific ones
19:19:55 <AnMaster> sure,*
19:20:16 <AnMaster> struct { int x; int y; } s = { .y 1, .x 5 }; <-- C99 too
19:20:43 <ehird> interesting fact: the plan 9 c compiler (fun fact: valid as both (the (plan 9 c) compiler) and (the plan 9 (compiler)) has no -l
19:20:45 <AnMaster> Gregor, oh?
19:20:56 <Gregor> AnMaster: GCC is one of the closest, but it has missing features.
19:20:57 <AnMaster> ehird, -l?
19:20:58 <Deewiant> Gregor: Not Comeau?
19:21:13 <ehird> -l as in lowercase L
19:21:15 <ehird> you just do `8c foo.c /lib/libfoo.a`
19:21:16 <ehird> (/lib and /bin are actually a union)
19:21:22 <AnMaster> ehird, like MrC on mac then. no -l there either
19:21:31 <Deewiant> Or was Comeau just the one that did exported templates
19:21:32 <ehird> (of, I think, /(arch)/lib and $home/(arch)/lib)
19:21:39 <ehird> like /386/lib
19:21:43 <AnMaster> ehird, nice
19:21:43 <ehird> plan 9 doesn't just support cross-compilation
19:21:44 <ehird> it's a cross-systeem!
19:21:46 <ehird> *system!
19:21:54 <Gregor> Deewiant: Not complete to my knowledge, but I don't have encyclopedic knowledge of all C compilers ;)
19:22:00 <ehird> you could probably make a polyarchitecture plan 9 system
19:22:02 <Gregor> Lesse what wikipedia says ...
19:22:06 <ehird> i think it's mainly for the cluster stuff
19:22:11 <ehird> so you can use the same fs
19:22:15 <ehird> on different-arch machines
19:22:41 <Gregor> "According to Sun Microsystems, Sun Studio (which is downloadable without charge) now supports the full C99 standard."
19:23:15 <Gregor> If that's true at all, then that's the only one (according to Wikipedia)
19:23:23 <Deewiant> Ah right, that was the one
19:26:08 <ehird> AnMaster: I'm looking through the biggest files/dirs in go out of curiosity
19:26:33 <AnMaster> ehird, find . -exec du {} + | sort -n ?
19:26:39 <ehird> all but 59 MiB is in $GOROOT/src
19:26:40 <AnMaster> err
19:26:43 <ehird> $ du -m go | sort -nr | awk '{print $1"M\t"$2}' | e
19:26:46 <ehird> *$ du -m go | sort -nr | awk '{print $1"M\t"$2}' | e
19:26:51 <ehird> (trailing space :P)
19:27:00 <AnMaster> find . -type f -exec du {} + | sort -n
19:27:03 <AnMaster> that would work
19:27:04 <ehird> I think $GOROOT/src includes object files too, though
19:27:07 <ehird> type f?
19:27:10 <AnMaster> well -rn might be better
19:27:14 <AnMaster> ehird, "files and not dirs"
19:27:18 <ehird> I said files and dirs
19:27:21 <ehird> biggest files and dirs
19:27:28 <AnMaster> ehird, well that wouldn't be dir size
19:27:28 <ehird> without that i wouldn't have been able to tell you that $GOROOT/src has most stuff
19:27:32 <AnMaster> you need du -s then
19:27:42 <ehird> ? Why?
19:27:46 <AnMaster> ehird, because du just will give you how many blocks the directory structure takes...
19:27:48 <ehird> 184Mgo/src
19:27:48 <ehird> 163Mgo/src/pkg
19:27:49 <ehird> 26Mgo/src/pkg/exp
19:27:52 <ehird> I very much doubt that.
19:28:14 <ehird> Erm, `du -m -I.hg go | sort -nr | awk '{print $1"M\t"$2}' | e` actually
19:28:19 <AnMaster> hm wait, it just seems to print recrusively
19:28:24 <AnMaster> must have mixed it up
19:28:35 <ehird> 20Mgo/pkg/darwin_amd64
19:28:43 <ehird> So the stdlib static libraries are 20 MiBb
19:28:44 <ehird> Very good
19:28:47 <ehird> *MiB
19:28:49 <AnMaster> ehird, -I+
19:28:52 <AnMaster> s/+/?/
19:28:58 <ehird> Ignore matching
19:29:09 <AnMaster> ehird, oh, bsd extension
19:29:32 <ehird> Yep, $GOROOT/src includes object files, the test object file, and the resulting binary
19:30:00 <fizzie> C1x will probably be out before GCC gets their full C99 compliance done. (Incidentally, recent C1x standardization committee meeting removed gets from the draft. They could always still add it back, though, but most likely it's gone now.)
19:30:15 <ehird> Ignoring all them produces:
19:30:16 <ehird> 67Mgo
19:30:22 <ehird> 31Mgo/src
19:30:22 <ehird> 20Mgo/pkg/darwin_amd64
19:30:23 <fizzie> MiBb; a mebi-bit-byte.
19:30:42 <ehird> 4Mgo/src/pkg/exp
19:30:42 <ehird> Biggest "end" src directory.
19:30:56 <ehird> No, wait
19:30:58 <ehird> That's not an end
19:31:01 <ehird> exp/ogle is though
19:31:09 <ehird> Oh
19:31:11 <ehird> It has .6s
19:31:23 <ehird> And the binary is called ogle, making it hard to ignore
19:31:52 <ehird> 63Mgo without .6s
19:32:00 -!- ehird has left (?).
19:32:06 -!- ehird has joined.
19:32:16 <ehird> So, basically all of the bulk is the leftover .6s and binaries
19:32:35 <ehird> Wonder if there's a reason to keep them
19:32:41 <ehird> (well, yeah: making updates quicker)
19:32:48 <ehird> (only rebuilding the packages that are changed)
19:32:56 <ehird> So, that'll be why.
19:32:57 <ehird> Whatever.
19:33:04 <AnMaster> ehird, "ogle"?
19:33:05 <AnMaster> what
19:33:11 <AnMaster> what does that binary do
19:33:12 <ehird> ogle is the debugger in process.
19:33:13 <ehird> `define ogle
19:33:15 <HackEgo> * look at with amorous intentions \ [23]wordnetweb.princeton.edu/perl/webwn \ * The Optical Gravitational Lensing Experiment or OGLE is a Polish astronomical project based at Warsaw University that is chiefly concerned with ...
19:33:16 <ehird> *progress
19:33:22 <ehird> And [Go]ogle
19:33:30 <AnMaster> ehird, I know what ogle as a word means
19:33:36 <AnMaster> hm
19:33:37 <ehird> It's ogling the program. :P
19:33:42 <ehird> And Go is the language, ogle is the rest.
19:33:43 <ehird> In Google.
19:33:45 <AnMaster> ehird, that sounds dirty
19:33:53 <ehird> Yes. Yes it does.
19:34:10 <fizzie> Debugger are pretty dirty business.
19:34:30 <AnMaster> ehird, I know. There are jokes about google meaning "go ogle"
19:34:30 <AnMaster> and such
19:34:30 <ehird> Will be fun to search for information on the debugger if "go ogle" returns jokes like that
19:34:36 <ehird> Although "go" by itself is more of an issue
19:34:39 <ehird> (protip: "Go language")
19:34:54 <ehird> or http://go-lang.cat-v.org/go-search
19:35:04 <AnMaster> ehird, they should have opted for a non-existing word
19:35:14 <ehird> AnMaster: This is the people that brought you "C"
19:35:23 <ehird> Think they care about the accessibility of their name?
19:35:31 <ehird> They care about conciseness and, in this case, puns.
19:35:32 <AnMaster> ehird, google didn't exist back then so they at least had an excuse
19:35:41 <AnMaster> C wasn't googlable back then
19:36:07 <fizzie> Google typofix heuristics seem to cause it to return pretty much the same things for (unquoted) "go ogle" and "google". (Of course you can fix it by adding some quotes or +s.)
19:36:25 <AnMaster> <ehird> or http://go-lang.cat-v.org/go-search <-- is the search box in the page footer!?
19:36:31 <ehird> Ken Thompson is 66! He has the most gnarly beard ever! He invented Unix and B and UTF-8 and ed and "Along with Joseph Condon, he created the hardware and software for Belle, a world champion chess computer", and worked on Plan 9!
19:36:31 * AnMaster tries another browser
19:36:36 <ehird> He can do whatever the fuck he wants!
19:36:37 <ehird> AnMaster: Enable JS
19:36:44 <ehird> (I think the TOCs on golang.org require JS too)
19:36:53 <AnMaster> ehird, no. :P
19:37:04 <ehird> AnMaster: Your loss.
19:37:23 -!- adam_d has joined.
19:38:12 <AnMaster> "<ehird> He can do whatever the fuck he wants!" <-- even written reiserfs?
19:38:18 <AnMaster> </bad taste>
19:38:25 <ehird> Grammar fail, making your joke incomprehensible.
19:38:29 <ehird> Even write or even wrote?
19:38:42 <AnMaster> ehird, "could have"
19:38:48 <AnMaster> hm
19:38:51 <AnMaster> good point
19:39:43 <AnMaster> ehird, and it isn't incomprehensible just because the grammar is slightly off I think.
19:39:50 <ehird> I was confused.
19:39:50 <AnMaster> true
19:39:57 <ehird> The guy who has the language called "Go!" (with an exclamation mark) and published a book about it called "Lets Go!" (apparently adding an apostrophe to the title of that book was just too much work) amuses me. He didn't even "publish" the book, he self-published it on Lulu, which requires no humans. He did publish a research paper, however, but he doesn't even have a trademark on the name and he wouldn't get one, because Go is a fucking two-letter English wo
19:39:57 <ehird> Incredibly common! You can't own it...
19:40:01 <ehird> hey, clog stopped logging
19:40:10 <ehird> wait, no
19:40:19 <ehird> *English word
19:40:19 <ehird> cool
19:40:20 <ehird> if you give clog a line that's the max length
19:40:24 <ehird> it logs one line behind
19:40:35 <ehird> The guy who has the language called "Go!" (with an exclamation mark) and published a book about it called "Lets Go!" (apparently adding an apostrophe to the title of that book was just too much work) amuses me. He didn't even "publish" the book, he self-published it on Lulu, which requires no humans. He did publish a research paper, however, but he doesn't even have a trademark on the name and he wouldn't get one, because Go is a fucking two-letter English wo
19:40:35 <ehird> Incredibly common! You can't own it...
19:40:39 <ehird> let's see if it's two lines behind
19:41:23 <ehird> a
19:41:23 <ehird> b
19:41:23 <ehird> c
19:42:02 <ehird> wow, three
19:42:03 <ehird> :D
19:42:04 <Sgeo> Who owns clog?
19:42:14 <AnMaster> ehird, what has "Go!" got to do with this?
19:42:14 <AnMaster> and where is that quote from?
19:42:14 <ehird> Sgeo: nobody maintains it, François-René Rideau (fare) runs the server
19:42:17 <ehird> the author doesn't control it any more
19:42:17 <ehird> AnMaster: it's not a quote
19:42:17 <ehird> AnMaster: I wrote it
19:42:18 <ehird> AnMaster: and Go! is complaining to the Go authors
19:42:34 <ehird> http://code.google.com/p/go/issues/detail?id=9 ;; click and see tons of people who know fuck all about the language and saw it on techcrunch whining
19:42:51 <ehird> and suggesting names, often with a "I give you permission to use this" as if google will actually consider it
19:43:22 <ehird> [[google should change the name ... i think its enough of google employee arrogance,
19:43:22 <ehird> they think they are GOD's .. please come down to earth , you are humans.]]
19:43:31 <ehird> au contraire, I'm fairly sure Ken Thompson is a god
19:44:17 <fizzie> The suggested name there ("Issue 9") isn't too shabby either, though.
19:44:27 <ehird> Meh.
19:44:32 <ehird> It's kinda lame to name it that now, after the bug report.
19:44:51 <ehird> [[I appreciate mc cabe for rising up to defend what is definitely his ... we are with
19:44:51 <ehird> you mc cabe, well done, go ahead .. may the force be with you.]]
19:44:51 <ehird> Star Wars Episode VII: The Empire's Naming
19:45:07 <ehird> (The Emperor's New Name.)
19:45:14 <ehird> (It's Fnord)
19:45:24 <AnMaster> heh
19:46:13 <AnMaster> ehird, that "Go!", is it any good?
19:46:41 <ehird> if the guy whines so much and the only material is a self-published book that needs an apostrophe in the title and a research paper...
19:46:43 <ehird> it's probably crap
19:46:51 <ehird> (also, putting a ! in your name makes you as bad as Yahoo!.)
19:47:01 <AnMaster> ehird, the apostrophe isn't a sign of it being bad
19:47:04 <ehird> (your name == name for thing you created)
19:47:05 <AnMaster> just ask augur
19:47:05 <ehird> AnMaster: "Lets Go"
19:47:09 <AnMaster> ehird, yes and?
19:47:10 <Sgeo> /nick Sgeo!
19:47:15 <ehird> augur uses punctuation and capitalisation on his blog
19:47:31 <AnMaster> ehird, anyway "<ehird> (also, putting a ! in your name makes you as bad as Yahoo!.)" <-- counterproof: "Soundblaster Live!" was very good
19:47:41 <ehird> besides, if it was "lets go" with some subdued typographical styling I could live with it
19:48:00 <ehird> but it's http://static.lulu.com/items/volume_44/641000/641689/4/preview/320_641689.jpg?641689-0
19:48:08 <ehird> so it's clearly an error
19:48:08 <AnMaster> ehird, well is Soundblaster Live! as bad as Yahoo! then?
19:48:11 <AnMaster> yes or no
19:48:16 <ehird> and people who have an error in such large print on a book title...
19:48:19 <ehird> idiots
19:48:25 <ehird> AnMaster: it makes their creators as bad as Yahoo!
19:48:28 <ehird> for naming it so idiotically
19:48:42 <ehird> everyone calls it SBLive, anyway
19:49:08 <AnMaster> ehird, maybe
19:50:04 <AnMaster> "# MPW has an integrated scripting system you can use to perform operations of arbitrary complexity." <-- yes, like it being impossible to write any control code like \a or such with it. just a few are supported
19:50:22 <AnMaster> in fact in the MPW version you have ehird, even a LF can't be written in it
19:50:23 * Sgeo vaguely hopes that nothing bad will come out of using something intended for Python 2.4
19:50:26 <AnMaster> a CR yes but a LF no
19:50:38 <ehird> AnMaster: make a tool to do it
19:50:46 <ehird> FancyPrint "\a"
19:51:09 <AnMaster> ehird, how does that help when I want to do the equiv of tr '\n' '\r'
19:51:10 <AnMaster> :P
19:51:18 <AnMaster> there is Translate
19:51:20 <ehird> does it have $()
19:51:40 <ehird> Fancy Translate "\n" "\r"
19:51:40 <AnMaster> ehird, something like it.
19:51:46 <AnMaster> ehird, err that won't work
19:51:49 <ehird> Fancy fancies every argument, then runs it.
19:51:54 <AnMaster> ehird, tools can't call each other
19:51:58 <AnMaster> as I mentioned several times
19:52:09 <ehird> Okay then, what's the $()-like syntax?
19:52:26 <AnMaster> ehird, with "" around I think
19:52:47 <ehird> Translate "$(F \n)" "$(F \r)"
19:52:49 <AnMaster> ehird, still the newer MPW syntax works fine, other people can just upgrade to the version from Jan 2000 or later
19:53:00 <ehird> System 6 users can't
19:53:00 <AnMaster> ehird, didn't read what I just said?
19:53:10 <ehird> With "" around I think, you said
19:53:12 <ehird> $()-like syntax
19:53:31 <AnMaster> ehird, sucks to be them because you will need to patch various stuff due to missing long long anyway
19:53:39 <AnMaster> SC lacks support for long long
19:53:41 <AnMaster> MrC handles it
19:53:44 <ehird> You can't do long long in System 6, anyway
19:53:56 <ehird> It can address 8 MiB of memory and that's that, and I think int is 16-bit
19:54:00 <ehird> The end
19:54:13 <AnMaster> ehird, please reboot your brain right now
19:54:21 <ehird> Why
19:54:39 <AnMaster> ehird, you can do a 64 bit integer. I didn't say you would use it as a pointer...
19:54:41 <ehird> 8 MiB = 23-bit addresses
19:54:45 <ehird> So 24-bit address bus
19:54:45 <AnMaster> you can do 128 bit arithmetics just finme
19:54:47 <AnMaster> fine*
19:54:55 <AnMaster> ehird, again, who said anything about pointers?
19:55:06 <ehird> Just working it out
19:55:08 <ehird> AnMaster: doing 128-bit arithmetic with 16-bit intst?
19:55:10 <ehird> *ints
19:55:11 <ehird> are you crazy?
19:55:15 <ehird> that's juggling 8 values
19:55:16 <ehird> so slow...
19:55:18 <AnMaster> ehird, would take multiple operations yes
19:55:22 <AnMaster> but quite possible
19:55:24 <ehird> why does it need 64-bit?
19:55:53 <AnMaster> ehird in a few places
19:56:10 <AnMaster> yuk (the debugger) once in cesspool.c and once in perpet.c
19:56:23 <AnMaster> and I have no clue what exactly it uses them for
19:56:25 <AnMaster> I just gripped
19:56:41 <ehird> Just s/long long/long/ and Don't Worry, Be Happy
19:57:04 <ehird> Incidentally, I wonder how this PS/2→USB adapter handles sleeps and wakes
19:57:08 <ehird> They work fine
19:57:13 <AnMaster> ehird, oops, wrong. yuk needs it for timestamp it seems
19:57:27 <ehird> Timestamp in what format?
19:57:38 <AnMaster> unknown I just grepped with -C 2
19:57:42 <AnMaster> go read the source yourself
19:58:06 <ehird> Nah.
19:58:22 <AnMaster> there is also
19:58:29 <AnMaster> src/perpet.c- fprintf(of,"\";\n\nint ick_iffi_markercount=%d;\n"
19:58:29 <AnMaster> src/perpet.c: "long long ick_iffi_markerposns[][2]={\n",markercount);
19:58:29 <AnMaster> src/perpet.c- if(!markercount) fprintf(of,"{0,0}\n");
19:58:33 <AnMaster> no clue what that does
19:58:37 <fizzie> 68k is a sort of 32-bit processor anyway; the external bus is 16 bits wide, but the registers have 32 bits. It shouldn't be *that* slow. At least if you just do some additions and such.
19:59:02 <AnMaster> fizzie, how many GP registers?
19:59:23 <ehird> oh, it's 323-bit?
19:59:24 <ehird> *32
19:59:30 <ehird> but i think the system 6 finder is 16-bit
19:59:36 <ehird> I know that 32-bit finder broke stuff
19:59:49 <AnMaster> ehird, um not exactly. I think it has more than 16 bits memory
19:59:55 <AnMaster> err
20:00:00 <ehird> and?
20:00:00 <AnMaster> memory adressing*
20:00:10 <AnMaster> so it isn't 16-bit in any sense of the word
20:00:18 <ehird> [[Furthermore, they either have to convert back to zero-terminated strings
20:00:18 <ehird> when passing them to libs, or use the trick of appending ("quand m�me") a
20:00:18 <ehird> zero byte, which is redundant wrt to the array lenght.]] — on Go
20:00:18 <ehird> little does this wabbit realise they just do their own IO stuff!
20:00:23 <ehird> to hell with libc :P
20:00:42 <AnMaster> ehird, http://en.wikipedia.org/wiki/Mac_OS_memory_management#32-bit_clean
20:01:06 <ehird> right
20:01:07 <fizzie> AnMaster: For that I had to check some references; eight 32-bit general-purpose registers (D0 .. D7) and eight 32-bit address registers (A0 .. A7).
20:01:16 <AnMaster> ehird, basically "quite a mess"
20:01:28 <ehird> [[All this is more than just nit-picking. Pike claims a 10-20% loss compared
20:01:28 <ehird> to C, which would still be quite good. However, the first benchmarks tell
20:01:28 <ehird> another story at the moment:]]
20:01:28 <AnMaster> all mac os memory management up until OS X was
20:01:29 <ehird> sigh
20:01:47 <ehird> gc having the slow gc atm, the shootout programs being naive and non-concurrent (and GOMAXPROCS not being set anyway)...
20:01:49 <AnMaster> <ehird> when passing them to libs, or use the trick of appending ("quand m�me") a <-- what is that question mark?
20:01:59 <ehird> AnMaster: some byte that was wrongly encoded for me
20:02:03 <AnMaster> ah
20:02:04 <ehird> it shows up as that too for me
20:02:17 <ehird> anyway, I wish people would stop talking about the shootout
20:02:25 <AnMaster> ehird, shootout?
20:02:32 <ehird> the language benchmarks game
20:02:36 <ehird> shootout.alioth.debian.org
20:02:56 <AnMaster> <fizzie> AnMaster: For that I had to check some references; eight 32-bit general-purpose registers (D0 .. D7) and eight 32-bit address registers (A0 .. A7). <-- should be enough to do 128 bit arithmetics in registers most of the time
20:02:57 <AnMaster> at least
20:03:01 <ehird> the problems are contrived for non-scientific work (and are benchmarks), it's biased against non-C like languages (they admit this) and the programs submitted vary wildly from hyper-optimised unreadable crazy shit and ultra-naive
20:03:37 <AnMaster> fizzie, at least if you can do it in place (plus a few scratch) or don't need any scratch registers (but can't do it in place)
20:03:56 <ehird> http://repo.cat-v.org/goblin/ may end up being my coreutils
20:04:05 <ehird> depends how fast they are, I guess
20:04:44 <AnMaster> ehird, why go for them
20:04:50 <AnMaster> err
20:04:53 <AnMaster> "Why Go for them"
20:04:59 <AnMaster> would have been clearer
20:05:03 <ehird> because uriel loves go
20:05:25 <AnMaster> ehird, at least "C" doesn't introduce ambig. when written
20:05:30 <AnMaster> (only when spoken)
20:05:32 <AnMaster> ehird, why?
20:05:32 <ehird> neither does Go
20:05:33 <AnMaster> err
20:05:36 <AnMaster> who*
20:05:47 <AnMaster> ehird, yeah but I usually write most stuff in lower case
20:05:56 <ehird> uriel is a major plan 9 community guy. his political opinions are... crazy, but he's a good coder
20:05:56 <AnMaster> on irc I mena
20:05:58 <ehird> (wrote werc)
20:05:58 <AnMaster> mean*
20:06:11 <AnMaster> ehird, oh the cat-v site owner?
20:06:16 <ehird> yes
20:06:19 <AnMaster> right
20:06:23 <AnMaster> that would have meant a lot more
20:06:33 <ehird> the reasons to use them: 1. uriel is a plan 9 weenie, he'll produce minimalist utilities 2. he knows more about go than most others, so the code should be high-quality 3. i like go 4. they will be very liberally licensed (public domain or ISC/MIT is his usual license)
20:06:36 <AnMaster> ehird, also, goblin has been around for a few days at most?
20:06:41 <ehird> of course
20:06:44 <ehird> that's why I said "may end up being"
20:06:48 <AnMaster> ehird, how complete is it so far?
20:06:50 <ehird> also, Go doesn't produce ambiguity when written
20:06:51 <ehird> go does
20:06:55 <ehird> if you write it that way, that's your fault :P
20:06:58 <ehird> AnMaster: probably no to little code
20:07:14 <ehird> but the project has attributes that imply to me that it'll be a good choice
20:07:20 <AnMaster> ehird, I should make a language called liTtLe
20:07:23 <ehird> i can always start with another coreutils and switch
20:07:23 <AnMaster> or something like that
20:07:31 <AnMaster> actually
20:07:34 <AnMaster> use a longer word
20:07:38 <AnMaster> but common one
20:07:39 <AnMaster> hm
20:08:01 <ehird> (uriel *really* loves go; he's said that there's no reason to write user-space C code any more)
20:08:17 <ehird> (and is on-the-fence about kernel code until someone makes a kernel in go (presumably after the new gc is added))
20:08:41 <AnMaster> ehird, you still need to write some Go to write the GC in. Unless you want to write a whole GC in asm
20:08:44 <AnMaster> or do it in C
20:08:46 <AnMaster> but that is cheating
20:08:50 <ehird> no shit
20:09:03 <ehird> (C isn't really cheating tbh)
20:09:24 <ehird> (they don't have plans to rewrite gc in Go, although with gccgo bootstrapping wouldn't be an issue nowadays)
20:09:32 <AnMaster> ehird, well in this context... "no reason to write user-space C code" would imply the GC has no reason to be written in C
20:09:33 <ehird> (the stdlib includes a complete lexer and parser of go, though)
20:09:39 <ehird> AnMaster: user-space?
20:09:44 <AnMaster> ehird, well that too
20:09:45 <ehird> anyway, he said write
20:09:48 <AnMaster> same applies to kernel space
20:09:50 <ehird> of course go itself is an exception
20:09:53 <ehird> you're pulling at straws
20:10:04 <AnMaster> ehird, C is usually written in C though
20:10:08 <ehird> i know you love edge cases, but could you pick less obnoxious ones?
20:10:10 <AnMaster> so I can't see why Go can't be written in Go
20:10:34 <ehird> incidentally, go does subtypes without inheritance very ewll
20:10:35 <ehird> *well
20:10:39 <ehird> (it basically makes composition convenient)
20:10:49 <ehird> which is thank god.
20:10:57 <AnMaster> ehird, what do you mean? Example?
20:11:09 <ehird> by composition I mean the unnamed fields becoming part of it
20:11:25 <ehird> (and you can do aThingThatHasAnUnnamedFoo.MethodOnFoo())
20:11:26 <AnMaster> ehird, oh so you avoid foo->bar->quux but do foo->quux?
20:11:30 <ehird> right
20:11:38 <ehird> oh, one thing that isn't obvious is that go structs can have both private and public members
20:11:40 <AnMaster> ehird, well GCC does that as an extension
20:11:41 <fizzie> AnMaster: Yes. Though it has some silly quirks. (For example, there's no "add with carry" instruction; instead, there's "add extended", which computes destination+source+[X bit from flags register]; X is mostly set to same as C, except it's not touched by all instructions.)
20:11:49 <AnMaster> to be compatible with MSVC iirc?
20:11:49 <ehird> AnMaster: yes, but without methods it's useless for this
20:11:55 <ehird> Private members start with a capital letter, public members a lower
20:12:13 <ehird> so you can do aStruct.foo but not aStruct.Foo (unless the struct type is in this package, ofc)
20:12:35 <ehird> and when you compose a struct into another struct you can't access its private fields ofc
20:12:40 <ehird> (which is one of the main evils of inheritance)
20:12:48 <AnMaster> fizzie, hm so you couldn't add two 128 bit ints then in registers?
20:12:53 <AnMaster> due to needing that X bit register
20:13:04 <ehird> (well, ok, technically you can't access private inherited members, but most inheritance-using code ends up using things not in the main interface)
20:13:16 <AnMaster> fizzie, most arches seems to have a carry flag in some specific flags register
20:13:26 <ehird> whereas with go subtyping is just a convenient way to add stuff
20:13:36 <ehird> that you could do without subtyping, just more awkwardly
20:14:12 <fizzie> AnMaster: Sure you can. X is just another bit in the flags register, just like C. It's just quirky to have two different "carry" flags, with some instructions setting both, and some setting only one of them (C).
20:14:44 <AnMaster> fizzie, oh now I see what you meant
20:14:49 * ehird ponders using a VCS as a package manager
20:14:58 <ehird> that is, updating = pulling from each package repository
20:15:25 <AnMaster> ehird, directly to file system? interesting
20:15:37 <AnMaster> you could have a local branch for config file changes or such I guess
20:15:39 <ehird> that also means you can downgrade packages if you need to :P
20:15:52 <AnMaster> ehird, most sane package manager allows that
20:15:57 <ehird> yes, but I mean it comes free
20:16:19 <ehird> anyway, I'll consider it; if it means my "package manager" is just a few helpers to call the VCS and some VCS config files, I'll go for it
20:16:20 <AnMaster> ehird, portage has very good support for installing different versions
20:16:42 <ehird> but if it'll require a lot of work... ehh, I'll just write my own pkg manager
20:16:58 <AnMaster> ehird, writing your own also requires a lot of work
20:17:03 <ehird> well, exactly
20:17:08 * Sgeo wishes he could wrap his mind around Cython
20:17:10 <ehird> so if i have to do a lot of work to make it fit, I'll just write my own
20:17:23 <ehird> hmm, it means that you could install something like dwm with source-based configuration and merge your config changes
20:17:30 <ehird> without the package manager special-casing it
20:17:42 <AnMaster> ehird, btw did you look closely at the image on that goblin page?
20:17:58 <fizzie> There's postincrement and predecrement addressing modes for any of the eight address registers, that's pretty nice. Considering x86's complexity level, there's really very limited facilities for automatically manipulating addresses. ("push" and "pop", but they can only use esp/rsp as the address; and the stos/lods/movs string instructions, but they are always post-decrement/post-increment based on the direction flag, never pre-anything.)
20:18:01 <ehird> What about it?
20:18:06 <ehird> I'm looking now.
20:18:23 <AnMaster> ehird, it seems disturbing. check the file name too
20:18:32 <ehird> It's pretty silly, yes.
20:18:38 <AnMaster> ehird, it looks like the goblin will explode him/her self?
20:18:44 <ehird> And? :P
20:18:53 <AnMaster> well. "disturbing"
20:18:57 <ehird> Clearly the Goblin tools represent their crashiness.
20:19:07 <AnMaster> ehird, yeah.
20:19:39 <AnMaster> fizzie, that increment/decrement thing?
20:19:39 <AnMaster> eh
20:19:42 <ehird> Incidentally, Ken Thompson actively posts on the Go mailing list.
20:19:59 <AnMaster> fizzie, you mean like reading at that address will automatically increment the address afterwards
20:20:04 <AnMaster> so you can just read it again
20:20:07 <AnMaster> for the next bit?
20:20:08 <AnMaster> err
20:20:09 <ehird> (Unfortunately it's a rather crappy list; most people going "lol i don't know shit (look at this benchmark|add this feature)" and some sane people replying "No, you're an idiot, fuck off")
20:20:10 <AnMaster> byte*
20:20:26 <ehird> AnMaster: Duff's device!
20:20:38 <fizzie> AnMaster: I mean the usual; *(x++) -style addressing.
20:20:49 <AnMaster> ehird, how is that related more than any other thing scanning over memory?
20:21:01 <ehird> AnMaster: look at it closely
20:21:06 <AnMaster> it would be just as useful for strlen()
20:21:06 <AnMaster> or such
20:21:07 <ehird> case 0:do{*to = *from++;
20:21:08 <ehird> erm
20:21:09 <ehird> hey
20:21:11 <ehird> wikipedia changed it
20:21:12 <ehird> sigh
20:21:22 <ehird> wait...
20:21:23 <AnMaster> ehird, changed it how?
20:21:23 <ehird> http://groups.google.com/group/net.lang.c/msg/66008138e07aa94c
20:21:26 <ehird> i swear it was originally
20:21:29 <ehird> *to = *from;
20:21:32 <AnMaster> ehird, it was to memory mapped register
20:21:47 <AnMaster> ehird, no
20:21:48 <ehird> right but i recall something about it being *to = *from;
20:21:49 <ehird> originally
20:21:56 <AnMaster> ehird, not that I know
20:24:03 -!- Asztal has joined.
20:24:44 <AnMaster> ehird, that link you gave shows it wasn't
20:24:52 <AnMaster> but odd, no thread around it?
20:24:53 <ehird> I know
20:24:56 <AnMaster> that's just pure strange
20:25:03 <ehird> 1984
20:25:07 <ehird> lots of old messages are like that
20:25:14 <ehird> people replied sparingly, replies were long and civil
20:25:20 <AnMaster> ehird, oh where someone saved a few only?
20:25:25 <ehird> that too
20:25:29 <AnMaster> hm
20:25:34 <ehird> (everyone had short signatures, quoted properly and at the bottom...)
20:25:38 <ehird> (used bang-addresses... etc)
20:25:55 <ehird> http://groups.google.com/group/net.lang.c/topics
20:26:02 <ehird> the last messages before the big 8
20:27:38 -!- FireFly has joined.
20:27:41 <MizardX> http://groups.google.com/group/net.lang.c/topics?start=3206&sa=N <-- messages trough time :)
20:28:04 <AnMaster> MizardX, ?
20:28:09 <MizardX> Almost 30 year old messages
20:28:14 <AnMaster> yes?
20:29:08 <fizzie> That's not "almost 30"; those were written something like six months before I was born, and I am emphatically not "almost 30".
20:29:17 <AnMaster> ehird, didn't plan9 has it's own language iirc?
20:29:33 <AnMaster> fizzie, how old are you?
20:29:41 * AnMaster is too lazy to do the math
20:29:50 <ehird> 26 or something iirc
20:29:57 <fizzie> AnMaster: Not "almost 30"!
20:29:58 <AnMaster> okay I could understand that
20:30:09 <ehird> yeah 2009-1984 = 25
20:30:15 <ehird> and I seem to recall him saying 26 or something
20:30:26 <ehird> erm wait
20:30:28 <ehird> they're from 1982
20:30:33 <AnMaster> fizzie, sure if it is 26 or 27 I can understand that. But when you turn 29 you are definitely almost 30
20:30:37 <ehird> ha ha fizzie had a birthday and is now 27 i guess
20:30:45 <ehird> AnMaster: SHUT UP 30 IS THE SAME AS "ALMOST MID-LIFE CRISIS"
20:30:49 <fizzie> Not yet, no. Add six months to those posting times.
20:30:51 <ehird> he is not almost almost mid-life crisis! :P
20:30:54 <ehird> o
20:30:55 <ehird> 26 then
20:31:11 <AnMaster> ehird, 30 doesn't *require* a mid-life cfrisis
20:31:14 <AnMaster> crisis*
20:31:15 <ehird> 40 does
20:31:17 <ehird> and 30 is almost 40
20:31:18 <fizzie> Right. I guess. It's a complicated calculation. Anyway, you have to round these things towards zero to get decades, anyway.
20:31:25 <ehird> fizzie: don't worry, you're just almost 29.99999999999999999999999999999999999…
20:31:32 <fizzie> (That was an "anyway"-delimited message.)
20:31:58 <fizzie> As long as the representation starts with 2...
20:32:16 <fizzie> "2+28" is just fine, too.
20:32:39 <AnMaster> ehird, what about the crisis around 18 when you just realise you are now grown up and that you most likely have less than 1/5 of your life left? (sure you can become 100 or older, but unlikely, unless things changes drastically)
20:32:46 <AnMaster> err
20:32:48 <ehird> 18? seriously?
20:32:48 <AnMaster> less than 4/5
20:32:50 <AnMaster> of course
20:32:51 <AnMaster> duh
20:32:52 <ehird> people mostly have a crisis around 25
20:32:55 <ehird> quarter-life crisis
20:33:10 <AnMaster> ehird, that assumes you will live 100 years
20:33:11 <ehird> i've been having a continuous crisis since I fully realised what my mortality implies :)
20:33:18 <AnMaster> for it to be quarter-life
20:33:24 <ehird> AnMaster: shut up, it's just what the word meas
20:33:26 <ehird> *means
20:33:51 <ehird> all i can do is have the faint hope of singularity, or maybe cryonics, who knows
20:33:56 <AnMaster> ehird, sure. but yeah. I guess I only realised fully around 15 years old
20:34:19 <ehird> i knew i was mortal and would die and would be nothing and all that shizz but at one point i just sat there and thought about nonexistence and have been freaking out since :P
20:34:22 <AnMaster> ehird, then what is the crisis of 30 all about?
20:34:27 <ehird> no crisis of 30
20:34:29 <AnMaster> or of 40 for that matter
20:34:33 <ehird> I was joking that 30 is close to 40
20:34:35 <AnMaster> oh
20:34:37 <AnMaster> right
20:34:43 <AnMaster> what is the 40 one about?
20:34:50 <ehird> also, tons of stuff
20:34:58 <ehird> I think, mostly, it's "oh god, i'm 40, I've barely done anythhing"
20:35:00 <ehird> *anything
20:35:05 <fizzie> ehird: You can console yourself with the fact that, simply based on life expectancy and current age, your changes of getting to do a post-singularity mind-upload are better than mine.
20:35:06 <AnMaster> ehird, ah would make sense
20:35:16 <ehird> http://divorcesupport.about.com/od/isdivorcethesolution/f/midlifecrisis.htm
20:35:21 <ehird> http://en.wikipedia.org/wiki/Midlife_crisis
20:35:25 <ehird> fizzie: yep!
20:35:25 <AnMaster> ehird, my 18-years old crisis was "ouch there is so much to do, I will never have time to do everything I want"
20:35:32 <ehird> fizzie: although cryonics makes it about equal
20:35:38 <ehird> because the chances are so low anyway :P
20:35:51 <ehird> AnMaster: yeah, my less-immediate crisis is "post-singularity, how can we avoid entropy?"
20:36:09 <AnMaster> ehird, by reversing polarity
20:36:11 <ehird> i want infinite time so i can know things forever
20:36:22 <AnMaster> ehird, I bet it would become boring
20:36:26 <fizzie> Buying a motorcycle is a common 50-years-old thing to do around here, I hear.
20:36:35 <ehird> if it truly became so boring for so long, then I would commit suicide.
20:36:41 <AnMaster> fizzie, same in Sweden
20:36:41 <ehird> but i don't think it would
20:37:08 <ehird> maybe instead of committing suicide, I'd first try turning myself off for a long time
20:37:16 <ehird> (post-mind-upload that should be easy)
20:37:20 <ehird> and see what's new afterwards
20:37:43 <ehird> but to be honest i just like consciousness so much
20:37:56 <AnMaster> ehird, you do now.
20:38:14 <ehird> my main beef with cryonics is that it's done after your death, but more importantly after your aging
20:38:23 <AnMaster> ehird, anyway, what if we get a Matrix or Terminator scenario instead?
20:38:29 <ehird> is it possible to restore an 80-something year old to mid-20s intelligence?
20:38:37 <ehird> I'm not sure aging is reversible
20:38:41 <ehird> and I dread passing my mid-20s
20:38:42 <AnMaster> or what if the climate changes make everything end up badly
20:38:54 <AnMaster> like
20:38:54 <ehird> AnMaster: matrix and terminator are films. friendly ai would solve it
20:39:09 <ehird> and climate change will be mostly irrelevant as soon as we colonise other planets
20:39:14 <AnMaster> ehird, that's the point. What if we end up with an unfriendly AI instead
20:39:20 <ehird> (and totally irrelevant once we're all running on silicon)
20:39:28 <ehird> AnMaster: we have to write the friendly AI first
20:39:34 <ehird> if an unfriendly AI is written, nothing we can do about it
20:39:39 <AnMaster> ehird, what if we are hit by a K/T boundary style meteorite?
20:39:46 <ehird> colonise other planets first.
20:39:52 * Sgeo read The Metamorphesis of Prime Intellect
20:39:56 <AnMaster> ehird, what if we didn't have time?
20:39:58 <AnMaster> I mean
20:40:00 <ehird> Sgeo: I want to read that sometime
20:40:04 <ehird> AnMaster: then we are fucked.
20:40:11 <AnMaster> I mean, a good signularity is far from certain
20:40:34 <ehird> I probably will sign up for cryonics because it's cheap and it gives me a better chance of living longer
20:40:44 <ehird> but I don't think aging is likely to be reversible, alas
20:40:48 <AnMaster> ehird, you could be overrun by a car way before it happens
20:40:54 <ehird> yes I could be
20:41:05 <ehird> there is nothing I can do except hope i'm not
20:41:09 <ehird> or, you know, cryonics
20:41:19 <ehird> although if I smashed my brains out that'd be ... unlucky
20:41:23 <Sgeo> Cryonics won't help if the car destroys.. yea
20:41:23 <fizzie> ehird: Or, you know, getting an even bigger car to run other cars over with.
20:41:29 <AnMaster> ehird, don't we need to, you know, invent cryonics before that?
20:41:31 <ehird> fizzie: I MIGHT JUST
20:41:36 <ehird> AnMaster: We... have cryonics.
20:41:42 <ehird> http://alcor.org/
20:41:48 <ehird> http://www.cryonics.org/
20:41:51 <ehird> The two main organisations.
20:42:01 <ehird> We can't revive people yet, but we're certainly freezing them.
20:42:04 <ehird> (Vitrifying, actually)
20:42:08 <Sgeo> We don't have cryonics that preserves brain structure yet, do we?
20:42:09 <AnMaster> ehird, wikipedia says "Currently, human cryopreservation is not reversible, which means that it is not currently possible to bring people out of cryopreservation alive." indeed
20:42:20 <AnMaster> ehird, no one knows if that will ever be possible
20:42:24 <AnMaster> restoring them I mean
20:42:25 <ehird> Of course
20:42:35 <Sgeo> AnMaster, better than 0% possibility of ever being alive again
20:42:38 <ehird> But it's quite cheap, and I place a near-infinite value on living past my "death"
20:42:43 <AnMaster> Sgeo, sure, but still
20:42:50 <AnMaster> you can freeze to death can't you?
20:42:55 <ehird> So even though the probability of being revived is not that high, tiny*near-infinite is > the price of cryonics
20:43:00 <ehird> AnMaster: Vitrification is not freezing
20:43:11 <ehird> AnMaster: Livers have been vitrified, thawed and implanted
20:43:12 <ehird> (Animal)
20:43:14 <ehird> And it worked
20:43:20 <AnMaster> ehird, hm
20:43:21 <ehird> same with a mouse brain or something, iirc
20:43:23 <ehird> pre-death naturally
20:43:37 <ehird> Anyway, if cryoni...cised shortly after death, presumably the information won't be totally lost
20:43:51 <ehird> it'd be a matter of thawing it out safely, quickly doing the repair needed, and basically making the signals fire again
20:43:52 -!- fax has changed nick to facsimile.
20:44:03 <AnMaster> ehird, hm
20:44:09 <fizzie> Ooh, I can imagine some year 2300 cryotechnician cursing out loud about how we stupid twenty-first century people used these absurdly primitive methods and how reviving us is such a pain in the ass, but how it still needs to be done thanks to some politics bullshit about not just turning power off to the damn things.
20:44:16 <ehird> fizzie: :D
20:44:26 <ehird> It will be better if, before I die, it becomes legal to be cryopreserved before death
20:44:38 <ehird> based on my life expectancy I could get frozen at 80-something
20:44:45 <ehird> before I die of something
20:44:48 <ehird> which increases my chances hugely
20:45:04 <ehird> (and I'm not too interested lumbering about with a brain that barely works anyway)
20:45:16 * Sgeo would probably go for the neuro option, and donate his organs
20:45:34 <ehird> Alcor doesn't offer neuropreservation (just store the head) iirc
20:45:54 <ehird> I agree that the chance of cryonic revival happening before at least robotic bodies is low
20:45:55 <Sgeo> Although that does lower the probability of being revived (what if it requires the body)
20:46:06 <Sgeo> ehird, neither does CI, the other place you linked to)
20:46:11 <ehird> CI does neuropreservation
20:46:17 <ehird> or maybe I have it the wrong way around
20:46:22 <Sgeo> http://cryonics.org/prod.html
20:46:27 <Sgeo> "Q: What's the "neuro" option? And why don't you offer it?"
20:46:31 <ehird> I think perhaps the spine should be preserved too
20:46:42 <ehird> as iirc you can develop reflexes in the spine
20:47:23 <ehird> Anyway, my long-term perfect scenario is being a post-singularity uploaded mind forever.
20:47:34 <ehird> I guess pretty similar to The Culture, which I need to read sometime.
20:47:44 <Sgeo> ehird, also similar to TMoPI
20:48:05 <ehird> One thing I don't really want is to merge with other brains
20:48:09 <ehird> *minds
20:48:20 <ehird> I'm fond of my individuality
20:48:28 <oklofok> facsimile: why is your name what it is?
20:49:38 <ehird> "Prime Intellect operates under Asimov's Three Laws of Robotics"
20:49:41 <ehird> Fail
20:49:51 <oklofok> instead of freezing myself, i'm going to melt myself into liquid.
20:50:09 <AnMaster> hm
20:50:47 <ehird> oklofok: i think one of the x-men can do that :P
20:51:20 <oklofok> but can he live forever that way
20:51:32 <Sgeo> ehird, how is that automatically fail?
20:51:36 <ehird> i guess the water dies at one point
20:51:47 -!- ais523 has joined.
20:51:51 <ehird> Sgeo: the three laws of robotics both constrict too much and also allow evil
20:52:57 <Sgeo> hm?
20:55:00 <fizzie> The Culture culture is a pretty nice culture; I don't think I would mind living there. (Though if you canonically believe the The State of the Art novella, the Culture has already checked out Earth in 1977, and decided not to get involved. Because, you see, they need a bit of a control group to justify the morality of them getting involved elsewhere, which is a bit of a bummer from our viewpoint.)
20:55:30 <AnMaster> fizzie, ?
20:55:38 <AnMaster> what is this "Culture culture"?
20:56:03 <fizzie> AnMaster: What ehird referred to; the universe of (some of) Iain M. Banks' books.
20:56:13 <AnMaster> ais523, hi there
20:56:18 <AnMaster> ais523, some ick issues
20:56:27 <AnMaster> ais523, like it is looking for :lib:/syslib.i
20:56:30 <pikhq> ehird: Congrats on figuring out the premise of half of Asimov's robot stories. :P
20:56:36 <ehird> pikhq: lawls
20:56:42 <AnMaster> ais523, why not have a ICK_PATHSEP that can be \ / or :
20:56:51 <ehird> ais523: that ick_fopenorwhatever function?
20:56:53 <ehird> you suck at coding
20:56:54 <ehird> frrlz
20:56:55 <ehird> srsly
20:57:09 <fizzie> I managed to read the combination of "some lick issues; like it is looking for :lib:/syslib.i" as something like "I want to lick your eyeball".
20:57:17 <ehird> fizzie: when reading about it on wp one issue i had was that not suicidin' after some time is considered eccentric
20:57:36 <AnMaster> ais523, and why are those ick_findand* so ugly? And why the huge code duplication between ick_findandtestopen and ick_findandfopen?
20:58:03 <ais523> AnMaster: because the alternative is to write a wrapper for fopen that gives it the same argument list as freopen, then pass around function pointers everywhere
20:58:05 * oerjan read that as ick_finland
20:58:09 -!- Gracenotes has joined.
20:58:11 <AnMaster> ais523, further, the MPW equiv. of tr refuses to operate on syslib.3i and higher due to them not being text files
20:58:15 <ais523> an ICK_PATHSEP would be fine, though
20:58:33 <AnMaster> ais523, anyway I'm having trouble following the horrible function logic there
20:58:43 -!- Asztal has quit (Connection timed out).
20:58:44 <AnMaster> I showed ehird it and he said he would just rewrite it from scratch
20:58:46 <ais523> it's relatively simple, it just checks several possible locations for the file
20:58:58 <ais523> it's just that ugly due to C being truly awful at string handling
20:58:58 <AnMaster> ais523, however to do that I need to know how the hell it is supposed to work
20:59:00 <ehird> dude, ais523
20:59:04 <ehird> it repeats some code tons of times
20:59:07 <ehird> it hardcodes path separators
20:59:15 <ehird> it's a jumble of code without empty lines
20:59:17 <ehird> to mark logical breaks
20:59:20 -!- Asztal has joined.
20:59:22 <ehird> and the two functions are copypastes with somee changes
20:59:26 <ehird> *logical breaks *some
20:59:34 <ehird> you fail at programming forever :|
20:59:37 <Gracenotes> divisive issue? D:
20:59:55 <Gracenotes> ehird: what are you talking about, fail? That's a textbook example of code reuse!
21:00:11 <oerjan> Gracenotes: it's the people on Gr* vs. everyone else
21:00:38 <AnMaster> so everyone can see. Here is the whole file: http://sprunge.us/CUSH?c
21:00:43 <AnMaster> ehird, ^
21:00:47 <ehird> oerjan: mainly it's Gregor vs me because nobody else knows go yet
21:00:55 <ehird> but nobody else has about it, at least
21:00:59 <Gracenotes> I wrote some stuff in it
21:01:06 <ehird> yes, I've seen you in #go-nuts
21:01:13 <Gracenotes> and I have seen you! :o
21:01:28 <Gracenotes> namely, a 512-line IRC client that evaluates code sent to it over the internet
21:01:33 <Gracenotes> *Go code
21:01:43 <ais523> ah, I see what happened there
21:01:54 <ais523> the two functions were a lot more different than that originally
21:01:57 <Gracenotes> I'll be running it in Arch Linux in VirtualBox, neither of which I've used before. but it seems to be going well.
21:02:01 <ais523> but over the corse of refactoring, ended up mostly the same
21:02:02 <AnMaster> ais523, that code is not good practise in any sense. And I have no idea where to start fixing it because I can't follow it. I could rewrite it, but I wouldn't know if I introduced new issues
21:02:09 <ais523> kind-of the opposite of what code duplicatoin normally does
21:02:34 <oerjan> ais523: omg that code is aging backwards!
21:02:50 <AnMaster> ais523, to begin with it needs to know that you can't just throw in an extra ICK_PATHSEP anywhere. because foo// is safe but foo:: is not
21:02:54 <AnMaster> because foo:: is foo/../
21:03:05 <Gracenotes> it sort of looks like that code is not meant to be read
21:03:08 <ehird> Gracenotes: why not use your host system?
21:03:19 <Gracenotes> ehird: paranoia
21:03:28 <ehird> ah, right
21:03:35 <ehird> what's it called? put it in here
21:03:36 <AnMaster> ais523, and in my tests argv0 was always relative current dir. unless it was run as an alias, in which case it was relative the alias
21:03:44 <AnMaster> ais523, alias being similar to a symlink, but not quote
21:03:46 <AnMaster> quite*
21:04:02 <ais523> AnMaster: argv[0] is the command used to run the program
21:04:07 <ais523> so it's relative current dir if you write ../build/ick
21:04:11 <AnMaster> ais523, yes that is what I'm talking about
21:04:16 <ais523> and absolute if you write /home/ais523/esoteric/intercal/latest/build/ick
21:04:22 <Gracenotes> ehird: I'll also be using setrlimit in the main process, so the go-compiling subprocesses will have sbrk fail relatively early if they start, e.g., making a 1GB array
21:04:31 <Gracenotes> go-running, more importantly
21:04:33 <ehird> hmm
21:04:36 <ehird> you know what would be cool?
21:04:40 <ais523> argv0 could be either absolute or relative as a result
21:04:45 <AnMaster> ais523, a mac path is absolute if and only if it 1) doesn't start with a : 2) contains at least one :
21:04:46 <ehird> if you could dynamically load .(arch) files
21:04:54 <ehird> like 6c foo.c; blah foo.6
21:04:58 <AnMaster> ais523, if it starts with a : it is relative, if it contains no : at all, it is relative
21:04:59 <ehird> and it basically dlopen()s foo.6
21:05:00 <ais523> AnMaster: I think separate functions for Mac from UNIX/Windows might be needed
21:05:08 <ehird> ais523: nope
21:05:10 <ehird> I figured out what to do
21:05:12 <ais523> because the rules for forming paths are substantially different
21:05:13 <ais523> ehird: ah
21:05:21 <AnMaster> ais523, or you could just tell me exactly what it is supposed to do and let me rewrite it *clean*
21:05:21 <ehird> replace the ../ stuff with things that calculate the actual path (you bum)
21:05:24 <AnMaster> with well factored out code
21:05:26 <Gracenotes> ehird: that might be interesting
21:05:28 <ehird> and replace / or \ with ICK_PATHSEP
21:05:34 <AnMaster> ehird, yes
21:05:37 <ehird> Gracenotes: yes, it'd abolish dynamic linking but keep dynamic loading
21:05:47 <AnMaster> you only need to handle / on *nix and \ on dos/windows
21:06:04 <AnMaster> and only : on mac
21:06:20 <Gracenotes> I'm somewhat selfish, personally.. don't care about non-386. But that would be neat.
21:06:33 <ehird> Gracenotes: I meant .8 too
21:06:34 <Warrigal> Gregor: you not being in #hackiki is wrong. Please correct.
21:06:45 <ehird> hackiki is a tiny toy project, why does it need a channel
21:06:48 <AnMaster> ais523, well I have no clue what the function is supposed to do. As in, sure I could look in guesspath and current dir
21:06:51 <ehird> Gracenotes: also, 6g is older and more robust than 8g
21:06:51 <AnMaster> is that all it does?
21:06:52 <ehird> Gracenotes: so nyah
21:06:54 <AnMaster> or something more?
21:07:00 <ehird> Gracenotes: (6=64-bit)
21:07:05 <Gracenotes> eh. sowat
21:07:11 <ehird> is your computer old or sth? admittedly my distro will be i686
21:07:31 <Gracenotes> ehird: also, dynamic loading is sort of against the design goals of the language, I thoght
21:07:48 <ehird> Gracenotes: for normal use, yes
21:07:51 <ehird> still, it'd be a fun hack :P
21:08:03 <ais523> AnMaster: it looks in several dirs for a file
21:08:12 <Gracenotes> no, my CPU supports 64 bit. I don't want to spend the effort to find out if every single app I use regularly doesn't break with it
21:08:14 <AnMaster> ais523, hard coded ones, and always /?
21:08:19 <AnMaster> ais523, that's pure wrong
21:08:26 <ais523> guessdir, current dir, ../lib, ../include
21:08:50 <AnMaster> ais523, anyway I think there may be some mac specific API to get current dir. And yes what the hell is up with syslib.3i not being a text file?
21:09:08 <pikhq> Gracenotes: Most apps don't break on x86_64 any more.
21:09:08 <ais523> AnMaster: probably INTERCAL doesn't look very much like text
21:09:16 <AnMaster> ais523, syslib.i worked fine
21:09:18 <pikhq> (a small handful do; I've got a VM for those)
21:09:24 <AnMaster> just not .3i and above
21:09:29 <AnMaster> ais523, so what is the difference there
21:09:36 <ais523> AnMaster: there are some operators that only exist in base 3 and above
21:09:43 <AnMaster> ais523, outside ascii?
21:09:44 <ais523> the variations of @
21:09:51 <ais523> although @ isn't outside ASCII, maybe Macs don't like it
21:09:56 <ehird> Gracenotes: you use ubuntu right?
21:10:01 <ehird> if so, 64-bit will work absolutely splendidly
21:10:06 <AnMaster> ais523, hm. ASCII here means lower 127 chars
21:10:24 <AnMaster> ais523, and I'm pretty sure @ is outside that
21:10:29 -!- Asztal has quit (".").
21:10:40 <AnMaster> because it isn't used in befunge98 and befunge98 use all the lower 127 chars
21:10:45 <Gracenotes> ehird: but for go, how is 6g better, now?
21:10:45 <AnMaster> (apart from control codes)
21:10:48 <ais523> AnMaster: @ is inside the lower 127
21:10:50 <ais523> in fact, it's 64
21:10:55 <AnMaster> oh wait it is
21:10:55 <ais523> also, it ends a program in befunge98
21:10:56 <AnMaster> duh
21:10:59 * AnMaster needs to wake up
21:10:59 <ais523> or befunge93 fwiw
21:11:08 <AnMaster> ais523, if you didn't come in so late during evening
21:11:16 <ehird> Gracenotes:
21:11:17 <ehird> amd64 (a.k.a. x86-64); 6g,6l,6c,6a
21:11:17 <ehird> The most mature implementation. The compiler has an effective optimizer (registerizer) and generates good code (although gccgo can do noticeably better sometimes).
21:11:18 <ehird> 386 (a.k.a. x86 or x86-32); 8g,8l,8c,8a
21:11:18 <ehird> Comparable to the amd64 port. Not as well soaked but should be nearly as solid.
21:11:27 <ehird> Gracenotes: they're completely separate backends
21:11:36 <ehird> so amd64 probably has a better optimiser, and is maybe faster and stabler
21:11:55 <pikhq> Well, it is much easier to optimise for amd64.
21:12:08 <pikhq> The poor register allocator doesn't have as much work to do.
21:12:10 <AnMaster> ais523, hm... syslib.i is LF ended. but syslib.3i is CRLF
21:12:10 <ehird> yeah, registers
21:12:11 <Gracenotes> it does have more register space, eh?
21:12:13 <AnMaster> ais523, that could cause it
21:12:21 <pikhq> Gracenotes: Twice the register space.
21:12:25 <ehird> in fact, registers make me consider making my distro amd64
21:12:35 <Gracenotes> a further division in the whole binary-dividing-of-general-registers things
21:12:35 <ehird> (as well as 6g)
21:12:45 <AnMaster> ais523, let me test if it works when first converted to LF.
21:12:58 <ais523> argh, not CRLFs in the distro again
21:13:00 <pikhq> ehird: Hmm. You could even completely and utterly avoid most of the not-niceness of dual-lib setups.
21:13:08 <Sgeo> Why is there a blank white bar in Chrome?
21:13:12 <Sgeo> At the bottom?
21:13:12 <ehird> pikhq: yeah but... still
21:13:13 <ais523> that happens every now and then, thanks for warning me when that happens
21:13:16 <ehird> Sgeo: extensionnos
21:13:17 <ehird> *extensions
21:13:19 <ehird> did you install one
21:13:23 <Sgeo> No
21:13:26 <ehird> Sgeo: restart chrome
21:13:29 <pikhq> ehird: Still?
21:13:38 <Sgeo> Although it just disappeared. Didn't disappear by itself last time I had it, though
21:13:42 <ehird> pikhq: at least everything works on 386, no problems at all, and I don't even have to consider dual-lib
21:14:02 <pikhq> ehird: Given that you're doing static linking, you'd be able to mostly ignore it, anyways.
21:14:06 <pikhq> Still, whatever.
21:14:25 <ehird> pikhq: Silently having 32-bit binaries and libs in /bin and /lib sounds "scary"
21:14:43 <pikhq> 32-bit binaries generally get stuck in /bin as is normal.
21:14:57 <pikhq> You'd probably still want a /lib32, though.
21:15:01 <AnMaster> ais523, okay I found it. It was more complex than CRLF
21:15:23 <AnMaster> ais523, it was due to mac file type not being set to TEXT
21:15:35 <ais523> ah, something in the importer
21:15:36 <ehird> pikhq: yeah, which is directory and shit-i-have-to-care-about bloat :P
21:15:37 <AnMaster> and reason for that was it didn't auto translate .3i to anything
21:15:47 <AnMaster> ais523, .i was auto translated to some bbedit lite file
21:15:51 <AnMaster> source code for something I guess
21:15:51 <ehird> pikhq: eh, I can always bait-n-switch people to amd64 if i deem it to be a good idea
21:15:59 <AnMaster> and ended up with TEXT
21:16:01 <pikhq> ehird: Only if you want 32-bit libraries at all. :P
21:16:02 <Gracenotes> ehird: since I know next-to-nothing about 64-bit computing.. if /proc/cpuinfo supports lm, I should be fine, ne?
21:16:16 <ehird> Gracenotes: just boot the 64-bit ubuntu livecd and see if it works :-P
21:16:18 <AnMaster> ais523, thus I have to figure out how to make a "clean up file types" tool
21:16:21 <ehird> Gracenotes: what cpu model is it
21:16:27 <AnMaster> for mac
21:16:31 <ehird> pikhq: "Upgrade. By the way, this will make your system amd64."
21:16:36 <pikhq> ehird: Hahah.
21:17:10 <ehird> If I turn batshit insane and want multiple archs I guess I'd just have /$arch/pkg/
21:17:20 <Gracenotes> model name is Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz
21:17:30 <ehird> Gracenotes: all core 2 duos are 64-bit
21:17:32 <pikhq> ehird: Yeah, that'd probably work best.
21:17:55 <Gracenotes> hm. well, I'm not gonna reinstall Ubuntu for now, but I am going to reinstall 64-bit arch
21:17:58 <AnMaster> ehird, you don't generally need 32 bit libraries. Exceptions: libc. Most apps nowdays work as 64-bit. I know two remaining ones: zsnes and wine
21:18:10 <AnMaster> (because on windows the transition hasn't really happened yet)
21:18:11 <ehird> http://pkg.distro.org/686/foo/
21:18:32 <ehird> http://pkg.distro.org/686/foo/tree/ (wonder if it should be tree/ or root/)
21:18:56 <ehird> http://pkg.distro.org/686/foo/mkfile (for my maintenance use, although i could make this part of the installation process i guess)
21:19:08 <ehird> http://pkg.distro.org/686/foo/info (I guess. the general "package file")
21:19:09 <AnMaster> ehird, 686!? that won't work on my old hypothetical i486 then!
21:19:22 <ehird> and perhaps http://pkg.distro.org/686/foo/install.sh for install scripts and stuff
21:19:24 <ehird> well
21:19:26 <ehird> install.rc
21:19:30 <pikhq> AnMaster: ... I have a 64-bit zsnes...
21:19:40 <ehird> vs
21:19:48 <ehird> http://pkg.distro.org/amd64/foo/tree/
21:19:49 <Gregor> zsnes only has 32-bit asm code, but we're living in the future, you don't need to use the asm.
21:19:53 <AnMaster> pikhq, wait what? Since when? And on gentoo it is just 32-bit with multilib
21:19:54 <ehird> ofc at first it'll just be /foo/tree/
21:19:59 <pikhq> Hrm. I thought I did.
21:20:10 <pikhq> I guess it does -m32, then.
21:20:16 <AnMaster> yes
21:20:19 <AnMaster> anyway
21:20:30 <ehird> if I make multi-arch setups i'll just make /foo/ return "404 Use PKGREPO=http://pkg.distro.org/686/" instead
21:20:36 <AnMaster> ais523, what exactly is the job of the find_* functions
21:20:38 <ehird> Which is a name for 404 I just made up!
21:20:42 <AnMaster> I'd prefer just to change one
21:20:44 <ehird> Hooray for HTTP's flexibility!
21:20:48 <pikhq> Yeah, it's just emulators that don't do x86_64.
21:20:57 <ais523> AnMaster: to find the location of a file like the skeleton or the syslib
21:20:58 <AnMaster> ais523, as in, you merged them
21:20:59 <ais523> and open it
21:21:02 <Gracenotes> hmm. for the arch virtual machine specifically, is i686 or x86_64 better?
21:21:06 <AnMaster> ais523, and how is it supposed to search?
21:21:07 <ais523> or possibly, freopen it
21:21:11 <ais523> AnMaster: it checks a series of locations
21:21:17 <ehird> http://www.archlinux.org/news/440/
21:21:20 <AnMaster> ais523, and the difference between the test and fopen ones?
21:21:23 <ehird> Arch Linux are dropping i686 support...
21:21:25 <fizzie> I'm pretty sure I got a not-"-m32" really-64-bit zsnes compiled, though. It needed quite a pile of hacking, and crashed when ran, but it *compiled*.
21:21:27 <ais523> AnMaster: testopen doesn't leave the file open
21:21:29 <ehird> Gracenotes: What is your host OS?
21:21:31 <ais523> so you can freopen it afterwards
21:21:31 <AnMaster> ehird, check date
21:21:33 <AnMaster> ehird, duh
21:21:39 <ehird> Gracenotes: If 32-bit, 32-bit; else 64-bit.
21:21:40 <pikhq> fizzie: Zsnes has a lot of assembly, IIRC.
21:21:44 <ehird> AnMaster: I don't use Arch, I didn't know.
21:21:57 <Gracenotes> Ubuntu, 32 bit. I probably need 64-bit Ubuntu to run 64-bit Arch, huh? :/
21:22:02 <AnMaster> ehird, "2009-04-01"
21:22:06 <AnMaster> ehird, *plonk*
21:22:07 <ehird> AnMaster: And?
21:22:10 <ehird> I don't use Arch.
21:22:12 <AnMaster> ehird, 1 April
21:22:13 <ehird> I don't read their news.
21:22:15 <AnMaster> idiot
21:22:15 <ehird> Ohh.
21:22:26 <ehird> AnMaster: They could have written it less... sanely.
21:22:31 <ehird> I mean, I was half-agreeing by the end.
21:22:43 <ehird> Anyway, Quake II is 32-bit only. (It's also compiled with egcs XD)
21:22:45 <ehird> QED! :P
21:23:04 <Gracenotes> ehird: *is* it possible to run 64-bit VM on 32-bit OS, with 64-bit CPU? damn, I am such a newbie at this. gr
21:23:14 <AnMaster> ehird, when I pasted the date you still didn't understand.... Well, I think "idiot" was fully justified there
21:23:15 <ehird> Gracenotes: Yes, but it'll emulate 64-bit.
21:23:16 <pikhq> Gracenotes: Yes.
21:23:17 <ehird> it will be sloooooooooooooooooooooooooooow.
21:23:23 <Gracenotes> eek.
21:23:25 <ehird> AnMaster: I don't recognise ISO dates like that.
21:23:26 <fizzie> fis@eris:~$ file /usr/bin/* | grep 32-bit
21:23:26 <fizzie> /usr/bin/fnt2bdf: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
21:23:26 <fizzie> /usr/bin/skype: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
21:23:27 <AnMaster> ehird, no
21:23:30 <fizzie> The first one is pretty strange.
21:23:36 <ehird> AnMaster: I don't associate 2009-04-01 with April 1
21:23:38 <AnMaster> ehird, what sort of strange dates do you use then?
21:23:41 <fizzie> I don't see an obvious reason for fnt2bdf to be 32-bit.
21:23:44 <AnMaster> ehird, YYYY-MM-DD
21:23:46 <AnMaster> always use that
21:23:48 <ehird> AnMaster: I use ISO dates, but I know April Fool's Day as April 1.
21:23:49 <AnMaster> because of sorting
21:23:51 <ehird> And stop telling me what to do.
21:23:55 <ehird> I'll do what the hell I like.
21:24:01 <AnMaster> ehird, what?
21:24:03 <Gracenotes> particularly, VirtualBox is saying "VT-x/AMD-V hardware acceleration has been enabled, but is not operational."
21:24:08 <AnMaster> ehird, I said "no, it won't be slow"
21:24:16 <AnMaster> because you can switch to it then reset it
21:24:17 <ehird> No what won't be slow?
21:24:22 <AnMaster> if cpu supports 64-bit
21:24:23 <Gracenotes> "Your 64-bit guest will fail to detech a 64-bit OS" blah blah
21:24:23 <ehird> You haven't said that yet.
21:24:31 <AnMaster> ehird, <ehird> it will be sloooooooooooooooooooooooooooow. <-- that
21:24:36 <fizzie> Oh, fnt2bdf is a part of wine-bin-unstable, so that's why it's 32-bit.
21:24:39 <ehird> you never said no it won't be slow
21:24:45 <AnMaster> ehird, vmware on 32-bit windows did some nasty cpu tricks.
21:24:46 <ehird> [21:24] AnMaster: ehird, I said "no, it won't be slow"
21:24:49 <ehird> you did not say that
21:24:52 <AnMaster> ehird, whatever
21:24:54 <ehird> Gracenotes: anyway, just run it as 32-bit
21:25:07 <Gracenotes> omg okay
21:25:11 <AnMaster> ehird, point is. you can switch to 64-bit then later switch back to 32-bit (before returning control to host
21:25:27 <AnMaster> ehird, it even worked on my old sempron with a 32-bit host os running 64-bit guest
21:25:34 <AnMaster> and yes it refused to do that on a 32-bit cpu
21:25:52 <ehird> AnMaster: No real point though
21:25:52 <AnMaster> I'm 100% of what sort of magic was involved in it
21:25:55 <AnMaster> (to switch back I mean)
21:26:23 <ehird> `addquote <AnMaster> I'm 100% of what sort of magic was involved in it
21:26:24 <HackEgo> 104|<AnMaster> I'm 100% of what sort of magic was involved in it
21:26:30 <AnMaster> <Gracenotes> particularly, VirtualBox is saying "VT-x/AMD-V hardware acceleration has been enabled, but is not operational." <-- sure your cpu supports that then?
21:26:31 <ehird> AnMaster — the best choice for VM magic.
21:26:33 <ehird> He is all of it.
21:26:38 <pikhq> ... Wow...
21:26:39 <AnMaster> sorry
21:26:42 <AnMaster> "not 100"
21:26:43 <AnMaster> duh
21:26:44 <pikhq> I have a /usr/bin/lddlibc4.
21:26:45 <ehird> pikhq: ?
21:26:50 <ehird> :-D
21:26:51 <AnMaster> sure
21:26:52 <AnMaster> duh
21:27:00 <ehird> I think Quake II is linked with libc5
21:27:01 <AnMaster> ehird, it was a damn typo of course
21:27:06 <Gracenotes> AnMaster: apparently, ehird says my model supports it
21:27:06 <ehird> Although it requires SDL dynamic, I think
21:27:09 <ehird> AnMaster: So? I can still addquote it
21:27:13 <ehird> Gracenotes: No I said it does 54-bit
21:27:14 <ehird> *64
21:27:17 <AnMaster> Gracenotes, check /proc/cpuinfo
21:27:17 <ehird> Not the same thing as VT-x
21:27:23 <Gracenotes> AnMaster: it says 'lm'
21:27:24 <AnMaster> `addquote <ehird> Gracenotes: No I said it does 54-bit
21:27:25 <HackEgo> 105|<ehird> Gracenotes: No I said it does 54-bit
21:27:29 <AnMaster> Gracenotes, that's 64-bit
21:27:34 <ehird> `info
21:27:34 <AnMaster> Gracenotes, not VT-x
21:27:35 <HackEgo> File: dir,Node: TopThis is the top of the INFO tree \ \This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs<Return>" visits the Emacs manual, etc. \ \In Emacs, you can click mouse button
21:27:35 <AnMaster> ....
21:27:37 <Gracenotes> uh huh
21:27:44 <pikhq> Oh, right. I installed emul-linux-x86-compat..
21:27:45 <ehird> AnMaster: your knee-jerk reaction against my quoting your typo is irriitating
21:27:46 <ehird> `help
21:27:47 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
21:27:50 <ehird> your typo was funny when read that way
21:27:52 <ehird> mine wasn't
21:28:02 <Gracenotes> :/ AnMaster: okay, in terms of hardware knowledge, I am a dumb terminal. meh.
21:28:02 <ehird> `revert 313
21:28:03 <AnMaster> Gracenotes, I think it is either vmx or smx that is for the VT-x stuff
21:28:03 <HackEgo> Done.
21:28:14 <pikhq> Which sticks old libc versions into the library path somewhere.
21:28:14 <AnMaster> `revert 312
21:28:15 <HackEgo> Done.
21:28:16 <pikhq> Whooo.
21:28:34 <ehird> anyway
21:29:03 <AnMaster> ehird, either both stays or both goes
21:29:14 <ehird> AnMaster: you are getting emotional over a quote of a funny typo
21:29:17 <ehird> and likening it to an unfunny typo
21:29:19 <ehird> stop it, it's childish
21:29:26 <AnMaster> ehird, my typo wasn't funny at all
21:29:28 <AnMaster> your wasn't either
21:29:29 <ehird> nobody hates you because that was quoted
21:29:30 <AnMaster> so same thing
21:29:34 <ehird> `quote 67
21:29:34 <HackEgo> 67|<Deewiant> Reality isn't a part of physics
21:29:35 <ehird> erm
21:29:37 <ehird> `quote 97
21:29:37 <HackEgo> 97|<fungot> i am sad ( of course by analogy) :) smileys)
21:29:39 <ehird> `quote 910
21:29:39 <HackEgo> No output.
21:29:40 <ehird> `quote 10
21:29:41 <HackEgo> 10|<oerjan> what, you mean that wasn't your real name? <Warrigal> Gosh, I guess it is. I never realized that.
21:29:42 <ehird> fuck
21:29:43 <ehird> `quote 100
21:29:44 <HackEgo> 100|<oklopol> Warrigal: what do you mean by 21?
21:29:46 <ehird> `quote 102
21:29:47 <HackEgo> 102|<Madelon> I want to read about Paris in the period 1900-1914 <Madelon> not about the sexual preferences of a bunch of writers >.>
21:29:50 <ehird> where is the fucking thing
21:29:51 <ehird> `quote 110
21:29:52 <HackEgo> No output.
21:29:54 <ehird> `quote 109
21:29:55 <AnMaster> ehird, scrollback
21:29:55 <HackEgo> No output.
21:29:57 <ehird> `quote 107
21:29:58 <HackEgo> No output.
21:30:00 <ehird> mehh
21:30:01 <ehird> `quote 103
21:30:02 <HackEgo> 103|<oklofok> i use dynamic indentation, i indent lines k times, if they are used O(n^k) times during a run of the program
21:30:04 <ehird> `quote 104
21:30:05 <AnMaster> ..........................
21:30:05 <HackEgo> No output.
21:30:07 <ehird> wat
21:30:08 <AnMaster> SPAM SPAM SPAM
21:30:11 <ehird> you reverted it in /msg
21:30:14 <ehird> how childish, not even letting us know
21:30:15 <AnMaster> ehird, no I didn't
21:30:19 <AnMaster> ehird, I did it in channel
21:30:25 <ehird> ah.
21:30:27 <ehird> `revert 313
21:30:28 <HackEgo> Done.
21:30:31 <ehird> `quote 104
21:30:32 <HackEgo> 104|<AnMaster> I'm 100% of what sort of magic was involved in it
21:30:35 <AnMaster> `revert 314
21:30:36 <HackEgo> Done.
21:30:38 <ehird> pikhq: do you think that's funny?
21:30:38 <AnMaster> there
21:30:41 <ehird> even mildly?
21:30:42 -!- GreaseMonkey has joined.
21:30:46 <AnMaster> ehird, why are you getting childish over the one I added
21:30:51 <AnMaster> because that is what you are doing
21:30:59 <ehird> you're trying to remove it, I'm trying to stop you removing it
21:31:07 <AnMaster> ehird, you are removing the one I added
21:31:11 <AnMaster> I'm trying to stop that
21:31:17 <ehird> that is not what you are doing
21:31:21 <ehird> Gregor: stop this fucking bullshit plz
21:31:29 <AnMaster> ehird, sure it was. You began by reverting mine
21:31:47 <AnMaster> Gregor, please make ehird be sensible
21:31:52 <pikhq> ehird: Meh.
21:32:03 <AnMaster> ehird, see?
21:32:09 <ehird> Gregor: AnMaster is bawwing and overreacting because i added a funny-in-my-opinion typo of his, and then he added a random typo of mine that had no possibility of a joke (and he admits this), plz step into this dispute because AnMaster is so socially retarded that he can't accept people finding typos of him funny and is deeply upset by it
21:32:24 <ehird> jesus christ, and you call me childish
21:33:27 <AnMaster> Gregor, I added a quote I thought was funny, ehird began by reverting it. So I reverted the one he added too. He didn't like that (of course). Still it shows some extreme hypocrisy from his side.
21:33:39 <ehird> AnMaster: Funny, because you said:
21:34:02 <ehird> [21:29] AnMaster: ehird, my typo wasn't funny at all
21:34:02 <ehird> [21:29] AnMaster: your wasn't either
21:34:06 <Gregor> *yawn*
21:34:17 <AnMaster> ehird, yes and?
21:34:30 <fizzie> Obviously what we need is: ARBCOM to solve the case.
21:34:30 <ehird> To everyone who isn't a socially incapable retard who can't sleep if someone thinks a typo he made is funny: 32-bit advantages: support for older hardware, no multilib stuff, marginally more compatibility; amd64 advantages: 6g is more stable, MOAR REGISTERS!!11123423
21:34:38 <AnMaster> ehird, I just used your definition of "funny" last time
21:34:39 <AnMaster> *shrug*
21:35:09 <ehird> I think AnMaster was raped by a HackBot quote as a young boy or something, because he's done exactly this before...
21:35:27 <AnMaster> fizzie, ARBCOM?
21:35:45 <pikhq> ehird: More memory, also.
21:35:45 <fizzie> AnMaster: A shady Wikipedia cabal, the final judge, jury and executioner of all thinks Wiki.
21:35:53 <ehird> pikhq: 64-bit just uses PAE.
21:35:58 <ehird> pikhq: You can do that with 32-bit, too.
21:36:06 <fizzie> AnMaster: The Arbitration Committee, http://en.wikipedia.org/wiki/Wikipedia:ARBCOM
21:36:08 <pikhq> Not "just"...
21:36:22 <fizzie> Sometimes, when I'm bored, I go and read ArbCom's case archives.
21:36:30 <pikhq> PAE just lets you have more physical address space to map into a process's address space.
21:36:45 <pikhq> Doesn't let you map more than 4G per process, still.
21:37:12 <pikhq> 64-bit lets you map in quite a bit more stuff. Making mmap'ing an entire file feasible. Hooray.
21:37:24 <AnMaster> ehird, 64-bit is more than PAE. For a start: PAE is limited at 64 GB iirc. 64-bit has a higher limit.
21:37:24 <AnMaster> and what pikhq said
21:37:24 <ehird> pikhq: Yes, but only scientists use more than 4 GiB per process and they deserve to DIE IN A FIRE BECAUSE THEY USE HERETIC WITCHCRAFT.
21:37:24 <ehird> Ahem.
21:37:24 -!- coppro has joined.
21:37:24 <AnMaster> and a few more things
21:37:27 <ehird> 64 GiB, oh lord, I am so scared.
21:37:33 <ehird> I am absolutely targeting mainframes.
21:37:34 <ehird> Absolutely/
21:37:35 <AnMaster> pikhq, agreed
21:37:41 <ehird> *Absolutely.
21:37:47 <AnMaster> ehird, 640kb *is* enough for everyone
21:37:48 <pikhq> Granted, it's very freaking hard to go beyond what PAE lets you use per-system.
21:37:50 -!- BeholdMyGlory has quit (Read error: 60 (Operation timed out)).
21:37:55 <ehird> pikhq: what kinda pr ograms do you write that mmap a >4 GiB file
21:38:00 <ehird> *programs
21:38:02 <pikhq> ehird: I don't.
21:38:09 <AnMaster> ehird, a database file?
21:38:10 <ehird> use then
21:38:11 <pikhq> Just saying.
21:38:18 <AnMaster> ehird, just a suggestion
21:38:21 <pikhq> ehird: 32 GiB, not 64 GiB, BTW.
21:38:29 <AnMaster> pikhq, that low heh
21:38:35 <ehird> "low"
21:38:57 <pikhq> ... That's the Microsoft limitation, not the actual limitation. Never mind, it is 64 GiB.
21:38:59 <AnMaster> ehird, see what I said. I guess that in 5-10 years it will be low.
21:39:06 <AnMaster> pikhq, ah interesting
21:39:08 <ehird> even the crazy super-high-spec Mac Pro people who swap in their own slightly-higher-clock CPU by covering up some pins don't have 32 GiB of RAM
21:39:12 -!- BeholdMyGlory has joined.
21:39:23 <ehird> AnMaster: In 5-10 years I can fucking change a few lines to switch to amd64.
21:39:35 <fizzie> Over-4G processes aren't that rare on our cluster; admittedly we are a part of those heretic witchcrafty people.
21:39:43 <AnMaster> ehird, also there is the register thing. And somewhat saner ISA. And some other things
21:39:52 <ehird> the ISA isn't saner.
21:39:53 <AnMaster> fizzie, yeah. shame on you
21:40:00 <AnMaster> ehird, not much. a bit
21:40:01 <ehird> registers i mentioned.
21:40:05 <ehird> AnMaster: infinitesimally.
21:40:13 <AnMaster> ehird, there is RIP too
21:40:20 <ehird> x86 and derivatives are so shit that i don't care about the ISA
21:40:27 <AnMaster> ehird, what about RIP?
21:40:30 <ehird> what is RIP.
21:40:32 <pikhq> Hmm. Apparently mplayer attempts to mmap files it opens.
21:40:47 <AnMaster> ehird, relative IP adressing
21:41:09 <ehird> why do i care
21:41:11 <ehird> *do i care
21:41:20 <AnMaster> ehird, allows fast re-allocatable code. Allowing stuff like PIE executables for example
21:41:44 <pikhq> It allows address-space randomisation to occur without a performance hit.
21:41:45 * MizardX mmaps the internet
21:41:56 <pikhq> And dynamic linking has hardly any performance hit...
21:41:57 <AnMaster> which is useful for high security systems to make addresses harder to guess. PIE is slow on 32-bit x86
21:42:00 <ehird> AnMaster: position-independent you mean?
21:42:05 <Gregor> I'm sure there's a tuberwebs FS for FUSE :P
21:42:14 <AnMaster> ehird, yes I said PIE didn't I?
21:42:14 <ehird> can't do that with static binaries so i give no shits
21:43:03 <AnMaster> ehird, oh and scbl mmap()s 8 GB iirc on x86-64
21:43:21 <ehird> Yes, on -64.
21:43:23 <AnMaster> of course that is overcommitting memory
21:43:37 <AnMaster> ehird, still having more than 4 GB ram is nice
21:43:43 <AnMaster> and useful for mmap or such
21:43:49 <AnMaster> database was already mentioned
21:44:10 <pikhq> Being able to assume SSE support is also nice.
21:44:12 <ehird> 4 GiB of per-process RAM is all
21:44:19 <ehird> pikhq: 686 has sse doesn't it
21:44:22 <AnMaster> ehird, what about an emulator mmaping a dvd?
21:44:25 <pikhq> ehird: No.
21:44:29 <ehird> AnMaster: don't do that :P
21:44:32 <ehird> pikhq: hmm
21:44:34 <pikhq> 686 doesn't even necessarily have MMX.
21:44:38 <ehird> i still absolutely don't want a /lib32...
21:44:39 <AnMaster> ehird, seems sane enough to me
21:44:45 <AnMaster> pikhq, indeed
21:44:56 <AnMaster> ehird, so use /lib and /lib64 ?
21:44:57 <AnMaster> ;P
21:45:00 <AnMaster> no lib32 then
21:45:02 <ehird> Uh, no.
21:45:21 <pikhq> With 686, you can only assume that you have a floating point unit.
21:45:53 <AnMaster> ehird, anyway. you won't need much multilib. libc (including libpthreads and libm, same package) that's about it
21:45:58 <AnMaster> maybe ncurses too
21:46:04 <AnMaster> ehird, idea: /lib/32
21:46:09 <ehird> nah
21:46:10 <AnMaster> for the few 32-bit libraries needed
21:46:14 <AnMaster> ehird, why not?
21:46:22 <ehird> no reason
21:46:43 <ehird> anyway i definitely want quake ii to run, which is a "yikes" case of a libc5, egcs-compiled 32-bit binary
21:47:00 <ehird> hmm i think it dynamically loads sdl, i wonder if you can like, delink something
21:47:01 <AnMaster> ehird, better code optimisation base. a generic 686 target can't assume any sort of vector registers like MMX or SSE (like pikhq said)
21:47:01 <ehird> and relink it
21:47:04 <AnMaster> and lots of other stuff
21:47:11 <ehird> AnMaster: doesn't matter, things are fast enough
21:47:12 <AnMaster> the baseline 64-bit is much higher
21:47:32 <AnMaster> ehird, tell me that when you want to watch decode a dvd :P
21:47:40 <AnMaster> for you know watching
21:47:51 <ehird> eh
21:48:20 <AnMaster> ehird, or encode a dvd for burning
21:48:27 <AnMaster> why wait extra time
21:48:45 <ehird> buy an ssd, be happy
21:48:45 <AnMaster> ehird, oh and there are more quirks to support everything from 686 and up
21:48:48 <AnMaster> ehird, won
21:48:50 <AnMaster> won't help
21:48:53 <AnMaster> for encoding
21:48:55 <AnMaster> for burning
21:48:57 <ehird> yes it will, decoding to disk
21:48:58 <ehird> meh
21:48:59 <AnMaster> that is CPU intensive
21:49:01 <ehird> it's fast enough
21:49:04 <ehird> imo
21:49:06 <pikhq> With 686, your system actually checks for the damned floating-point bug.
21:49:07 <ehird> dvds are slow, stop using them
21:49:13 <ehird> pikhq: :-D
21:49:15 <AnMaster> pikhq, indeed.
21:49:15 <ehird> that's totally an advantage
21:49:21 <ehird> f00f!
21:50:21 <AnMaster> ehird, anyway I bet you can do a pure 64-bit distro with no multilib. You would have to use something else than grub of course
21:50:32 <ehird> I'm using lilo anyway.
21:50:33 <AnMaster> you might need something to compile parts of the kernel for boot up code
21:50:42 <AnMaster> ehird, not sure if it supports being compiled with 64-bit tools
21:50:57 <ehird> So, tell me how I'd do Quake II without multilib. :P
21:51:04 <ehird> It's 32-bit, egcs-compiled, libc5-using. Go!
21:51:31 <AnMaster> a 32/64-bit capable assembler (like nasm by default) + a 32/64 bit capable linker (easy too)
21:51:31 <Deewiant> chroot!
21:51:33 <pikhq> ehird: Static link that shit.
21:51:34 <pikhq> :P
21:51:41 <AnMaster> yeah what pikhq said
21:51:43 <AnMaster> that would work
21:51:53 <ehird> pikhq: But it's distributed as a binary.
21:52:02 <pikhq> Balls.
21:52:09 <ehird> pikhq: I totally need an unld.
21:52:21 <ehird> Turns a binary into an .o and a .plaintextinfoaboutthebinary
21:52:21 <AnMaster> ehird, is it statically or dynamically linked? because if it is dynamic anyway you are lost
21:52:27 <AnMaster> it won't work for your distro
21:52:33 <ehird> So you can tweak the .plaintextinfoaboutthebinary and ld the .o and some other stuff.
21:52:39 <pikhq> ehird: That sounds rather hard to o.
21:52:40 <ehird> AnMaster: Not if I relink it.
21:52:42 <pikhq> Do.
21:52:44 <ehird> pikhq: Badum-tish!
21:52:45 <ehird> Aww.
21:52:48 <ehird> You had to fix the typo.
21:52:52 <fizzie> ehird: You do Quake II without multilib by using a more modern version of it than some strange libc5-linked egcs-compiled binary.
21:53:20 <ehird> fizzie: Ehh, the thing I was doing was the official Quake II server.
21:53:28 <ehird> pikhq: surely unld of a binary to an .o is easy
21:53:46 <AnMaster> ehird, not really
21:54:02 <pikhq> ehird: Not really.
21:54:20 <ehird> xD
21:54:34 <ehird> Anyway, I dunno. 686 just feels so much more universal.
21:54:37 <AnMaster> pikhq, that was late
21:54:49 <ehird> Memory and registers... they just don't bother me that severely.
21:54:52 <pikhq> ehird: That's supporting CPUs as old as you are.
21:54:59 <AnMaster> ehird, how much ram do you have?
21:55:20 <AnMaster> ehird, and will you use PAE? it is quite a hack
21:55:27 <ehird> 64-bit uses PAE, you dolt.
21:55:32 <AnMaster> sounds like the opposite of what you want
21:55:36 <AnMaster> ehird, extended PAE yes
21:55:42 <ehird> Which is quite a hack as well.
21:55:43 <AnMaster> ehird, however. on 32-bit it is more of a hack
21:55:48 <AnMaster> than it is on 64-bit
21:55:48 <ehird> Not really.
21:55:52 <AnMaster> ehird, how so?
21:55:56 <ehird> pikhq: There's no baseline above 686
21:56:06 <ehird> AnMaster: It's a hack on 64-bit just as much.
21:56:10 <pikhq> x86_64 is a baseline nowadays.
21:56:11 <AnMaster> ehird, there is. amd64
21:56:15 <AnMaster> that's another baseline
21:56:16 <ehird> No it's not.
21:56:22 <ehird> The first Intel 64-bit CPU came out in 2006.
21:56:31 <pikhq> Everything sold in the past 4 years supports it.
21:56:33 <ehird> And AMD CPUs suck.
21:56:37 <ehird> pikhq: Hey, Atom hates you!
21:56:42 <Deewiant> ehird: You suck.
21:56:51 <pikhq> ehird: Oh, right. Some of the Atoms don't support it.
21:56:51 <ehird> It stares at you. IT STARES AT YOU WITH ITS EYE. Also it tries to kill you with its 4W of heat.
21:56:58 <ehird> CAN YOU FEEL THE HEAT
21:57:09 <AnMaster> ehird, oooh that must be a pentium4 right?
21:57:17 <AnMaster> ehird, is that the answer to the riddle?
21:57:20 <ehird> Actually it's based on Pentium 4's NetBurst
21:57:22 <ehird> architecture
21:57:39 <ehird> Uh, I think
21:57:46 <ehird> Nope
21:58:25 <ehird> Anyway, a lot of the best ThinkPads are 32-bit
21:58:25 <ehird> e.g. X40
21:59:03 <AnMaster> ehird, and? a lot of good computers are outdated by now
21:59:06 <AnMaster> that's no new
21:59:08 <AnMaster> news*
21:59:16 <ehird> Yes, but they're good and still quite zippy.
21:59:23 <ehird> You can run Ubuntu on them, no problems.
21:59:26 <ehird> Pentium M.
21:59:36 <ehird> I don't think not supporting them is a good idea.
21:59:40 <AnMaster> ehird, I can run linux on my old first gen ibook with no issues
21:59:43 <AnMaster> did it from a live cd
21:59:48 <AnMaster> ehird, your point?
21:59:51 <ehird> Yes, but that's PPC and shit.
22:00:00 <AnMaster> ehird, yes and?
22:00:02 <ehird> ThinkPads are one of the best PCs ever.
22:00:08 <ehird> But they suck recently, so the old ones are very popular.
22:00:11 <ehird> So...
22:00:47 <AnMaster> ehird, I don't think my one is too bad. maybe no the golden days, but it is fast and snappy and supports VT-x and so on
22:00:53 <AnMaster> and roubust
22:01:02 <AnMaster> ehird, and the wlan issue magically fixed itself as of recently
22:01:10 <fizzie> Incidentally, that version of Pentium M (if it's the 400 MHz bus one, like it seemed to be) doesn't support PAE either. (No Xen on them, therefore.)
22:01:11 <AnMaster> (no relevant upgrade around then)
22:01:18 <ehird> Quality did go down with Lenovo, though.
22:01:25 <ehird> Especially with widescreen...
22:01:27 <ehird> (T60 was okay)
22:01:28 <AnMaster> fizzie, xen needs PAE?
22:01:36 <ehird> (T61 too apart from being widescreen)
22:01:39 <ehird> But the Txxx series?
22:01:40 <ehird> Nah...
22:02:02 <ehird> fizzie: Eh, who uses Xen on a laptop :P
22:02:04 <AnMaster> ehird, so what about a new good laptop? would that be a mac?
22:02:20 <ehird> AnMaster: There... aren't any, really.
22:02:34 <ehird> A MacBook Pro is superb if you want Mac OS X, of course.
22:03:05 <ehird> Incidentally, still using that trackball.
22:03:18 <AnMaster> ehird, hm?
22:03:28 <ehird> ?
22:03:39 <AnMaster> ehird, I do like the trackpoint btw. much easier to use than the trackpad for me.
22:03:41 <AnMaster> err
22:03:43 <AnMaster> touchpad*
22:03:50 <ehird> It's trackpad.
22:03:56 <ehird> Unless you have multi-touch stuff.
22:04:03 <fizzie> AnMaster: Right; or more specifically, you need to use either a PAE or a non-PAE build of Xen, and they dropped support of the non-PAE version quite a while ago.
22:04:14 <fizzie> ehird: I used to, until they dropped the support of it. :p
22:04:17 <ehird> He never said anything about Xen
22:04:23 <AnMaster> ehird, yes I tried on a "you can't replace the battery" macbook recently that someone else at uni had
22:04:37 <AnMaster> didn't work too well for me. might take time getting used to
22:04:40 <ehird> AnMaster: MacBook or MacBook Pro?
22:04:49 <ehird> I guess Pro, the non-replacable MacBook is new.
22:04:50 <AnMaster> ehird, unibody thing
22:05:02 <AnMaster> was like a month ago or so
22:05:03 <ehird> Unibody MacBook or Unibody MacBook Pro, then.
22:05:14 <ehird> 13" unibody MacBook Pro = unibody MacBook
22:05:19 <ehird> basically identical when it switched over
22:05:19 <AnMaster> ehird, don't know if it was pro or non-pro
22:05:27 <AnMaster> ehird, 15" or so sounds about right?
22:05:33 <ehird> Then Pro
22:05:33 <AnMaster> not sure exactly
22:05:38 <AnMaster> ehird, probably
22:05:43 <ehird> Did it have insanely high resolution? If so then 17" :P
22:06:03 <AnMaster> ehird, higher than most but not insanely so
22:06:13 <fizzie> Didn't they recently put out a small variant of the Pro? I guess it was that 13" thing.
22:06:22 <AnMaster> slightly lower or around the same as my thinkpad I would say
22:06:28 <AnMaster> from a rouge estimate
22:06:43 <fizzie> I was sort of eyeballing it as a suitable replacement for the 12" iBook if it happened to break; hopefully it'll still hold for a while, though.
22:07:22 <ehird> 17" is 1920x1200
22:08:09 <AnMaster> ehird, and a 17" is quite a bit larger
22:08:12 <AnMaster> I would have noticed
22:12:10 <fizzie> Oh, are they doing 1920x1200 in laptops already? Funky.
22:14:29 -!- kar8nga has quit (Remote closed the connection).
22:15:07 <ehird> fizzie: for ages
22:15:13 <ehird> In a February 2000 slideshow, Rob Pike noted: "…although Alef was a fruitful language, it proved too difficult to maintain a variant language across multiple architectures, so we took what we learned from it and built the thread library for C."
22:15:25 <ehird> Alef could return multiple values as well :P
22:16:46 <ehird> "Actually Google will probably rename it Issue9 , as a reference the issue number nine raised by McCabe on the issue tracker of Google Go Programming Language. This is at least what a lot of people want to believe !"
22:16:46 <ehird> A world in which people whining on a bug tracker make Google do something
22:17:16 <ais523> reddit are trying really hard to get Google to rename it Issue 9
22:17:21 <ais523> although I'm not sure if anyone else cares
22:17:33 <ehird> proggit has gone down the shitter, has been down it for ages.
22:17:42 <ehird> issue 9 is a shit name anyway
22:17:55 <Deewiant> Since when is it officially a "Google" project instead of something based on 20% time?
22:17:57 <ehird> I think a good rule of thumb is if anyone calls google the creator of go they don't know shit about it
22:18:04 <ehird> Deewiant: It is a Google project, I believe
22:18:13 <ehird> http://www.youtube.com/watch?v=wwoWei-GAPo
22:18:20 <ehird> "The Go Programming Language
22:18:21 <ehird> [google logo]"
22:18:24 <ehird> by GoogleDevelopers
22:18:27 <ehird> The Google Code Channel
22:18:43 <Deewiant> Yes, they work at Google.
22:19:06 <facsimile> hay guys have you hard about this kool new language called Go
22:19:23 <ehird> Deewiant: lawl
22:19:31 <ehird> facsimile: the troll door →
22:20:16 <Deewiant> ehird: No, seriously. Using the Google logo, calling themselves GoogleDevelopers, and being able to get something on the Google Code Channel proves only that they work at Google. :-P
22:20:34 <ehird> I think what is a Google project is ill-defined anyway
22:21:15 <ehird> It's part of their work at Google, Google have put material about it with a Google logo on their YouTube account, AND
22:21:25 <ehird> Here at Google, we believe programming should be fast, productive, and most importantly, fun. That's why we're excited to open source an experimental new language called Go.
22:21:27 <ehird> — http://google-opensource.blogspot.com/2009/11/hey-ho-lets-go.html
22:21:36 <ehird> I rest my case.
22:21:52 <pikhq> I'm pretty sure that the term "Google project" includes 20% stuff.
22:22:39 <fizzie> Here's one more bit of "evidence": the source files have copyright notices for "Copyright 2009 The Go Authors"; and the AUTHORS file in the root has as its first line "Google Inc."
22:22:55 <Deewiant> ehird: By Robert Griesemer, Rob Pike, Ken Thompson, Ian Taylor, Russ Cox, Jini Kim and Adam Langley - The Go Team
22:23:10 <pikhq> I'm also pretty sure it doesn't matter -- if it turns out to be of any use, Google will be using it and supporting it quite well.
22:23:17 <pikhq> That's kinda what they do, after all.
22:23:17 <ehird> Deewiant: "We"
22:23:22 <ehird> On the Google open source blog
22:23:29 <Deewiant> ehird: We, the Go team.
22:23:29 <ehird> fizzie: That too.
22:23:41 <ehird> That is
22:23:47 <ehird> No google project has all of google working on it
22:23:50 <fizzie> Deewiant: "This is the official list of Go authors for copyright purposes" -- "Google Inc."; the "Inc." there makes it sound all official.
22:24:07 <Deewiant> fizzie: I don't know whether Google typically wants copyright for 20% projects.
22:24:14 <Deewiant> If not, then I'll take that as evidence.
22:24:26 <ehird> But if it's announced on the google open source blog, lists Google Inc. as an author in AUTHORS, has a promo about it on the Google code youtube channel with the Google logo below "The Go Programming Language"...
22:24:31 <ehird> then yeah, it's a Google project.
22:24:36 <ehird> Google works in teams all the time, you know.
22:25:11 <pikhq> ehird: Except arguably the project of "making money for Google".
22:25:39 <ehird> pikhq: You do realise that an awful lot of Google projects aren't profitable?
22:25:41 <ehird> For instance. Google Code
22:25:47 <ehird> No ads, no fees, nothing
22:26:13 <ais523> hmm... Microsoft Research's main purpose is to generate goodwill
22:26:24 <ais523> maybe most of Google is for the same purpose?
22:26:32 <pikhq> ehird: "Arguably".
22:27:53 <ehird> Microsoft Research's main purpose is to research for Microsoft.
22:28:41 <fizzie> Deewiant: I don't know that either; the references seem to be more about how you're free to focus on whatever you find interesting, not on who will get the profits. I guess they might have an "it's still work, even if you self decide what you do" convention.
22:28:42 <pikhq> That it just so happens that research generates goodwill is a nice side effect, as far as Microsoft is concerned.
22:29:48 <ehird> ghc being static will be fun
22:29:55 <ehird> 500M hello-world
22:30:24 <pikhq> GHC only supports static linking ATM.
22:30:25 <Deewiant> Eh? GHC is static. (As far as I understand what you mean by "being static".)
22:30:29 <fizzie> Microsoft Research's main purpose is to "enhance the user experience on computing devices, reduce the cost of writing and maintaining software, and invent novel computing technologies -- [and] to advance the field of computer science". It says right that on their web page, no need to speculate or anything.
22:30:36 <ehird> The GHC resulting executables are static?
22:30:40 <ehird> Even on libc and the like?
22:30:42 <ehird> I doubt.
22:30:51 <Deewiant> Well, maybe not libc.
22:31:00 <ehird> (Mostly I doubt because I've run ldd on ghc-produced executables and seen tons of dependencies.)
22:31:00 <Deewiant> But on the Haskell libs.
22:31:03 <pikhq> Oh, that. No, it dynamically links against C libraries.
22:31:05 <ehird> Well, duh.
22:31:07 <pikhq> (normally)
22:31:16 <ehird> It uses date() on ALL programs
22:31:18 <ehird> And crazy shit like that
22:31:22 <Deewiant> I doubt that adding static C libs will make it much bigger.
22:31:30 <ehird> Well, okay then.
22:31:32 <ehird> 20M hello-world
22:31:55 <Deewiant> What's the normal size, something like 1M?
22:32:02 <ehird> I think so
22:32:17 <Deewiant> Maybe 2M, then.
22:33:08 <pikhq> 624K.
22:33:25 <Deewiant> Maybe 1.5M, then.
22:33:29 <pikhq> Erm. That hello.hs does more than "Hello, world!"...
22:33:41 <Deewiant> Yep.
22:33:47 <pikhq> 592K. XD
22:33:54 <Deewiant> One need only run ./hello +RTS --help.
22:33:55 <pikhq> Can't get it to statically link, though.
22:34:44 <pikhq> Massive linker errors from a lack of static pthreads.
22:34:45 <ehird> What error?
22:34:48 <ehird> Ah.
22:34:59 <ehird> Oh yeah, ghc depends on pthreads ALWAYS.
22:35:02 <ehird> That'll be *fun*.
22:35:13 <AnMaster> ehird, why pthreads
22:35:25 <pikhq> The garbage collector can run in parallel.
22:35:28 <ehird> I'll look it up with my telepathy.
22:35:30 <AnMaster> pikhq, try /usr/lib/libpthread.a ?
22:35:31 <ehird> But what pikhq said.
22:35:39 <ehird> AnMaster: lack of static pthreads, he said.
22:35:46 <AnMaster> ehird, well I have it on my gentoo
22:35:49 <Deewiant> "gcc doesn't work" "try /usr/bin/gcc"
22:35:56 <ehird> Deewiant++
22:36:08 <AnMaster> Deewiant, "he uses gentoo, thus it should exist"
22:36:12 <ehird> pikhq: Incidentally, tcc or pcc: which do you think will have more compatibility
22:36:21 <AnMaster> pikhq, if it doesn't exist: how the hell did you manage that
22:36:22 <ehird> AnMaster: "I don't have any non-stock Gentoo packages installed; I am confident in my assertion"
22:36:43 <pikhq> AnMaster: I'm not sure why it's not linking against it.
22:36:47 <AnMaster> ehird, .... "I checked with qfile it came from libc"
22:36:51 <pikhq> It does exist, and I'm passing -lpthread to ghc.
22:36:52 <AnMaster> ehird, what about that one?
22:36:56 <AnMaster> sys-libs/glibc (/usr/lib64/libpthread.a)
22:36:59 <pikhq> Just... Not happening.
22:37:00 <ehird> pikhq: Just add /usr/lib/libpthread.a to it
22:37:07 <ehird> pikhq: OH!
22:37:15 <ehird> Oh oh oh
22:37:17 <ehird> pikhq: Do this:
22:37:24 <AnMaster> *waits*
22:37:32 <ehird> -static -optl-static -optl-pthread
22:37:42 <AnMaster> optl?
22:37:45 <ehird> option linker
22:37:49 <AnMaster> ah
22:38:01 <AnMaster> that could work
22:38:10 <ehird> It does
22:38:13 <ehird> It's a common ghc pitfall
22:38:17 <pikhq> 1.5M.
22:38:22 <Deewiant> Nailed it.
22:38:53 <pikhq> strip -s gets it down to 1.2M.
22:39:09 <pikhq> upx gets it down to 416K.
22:39:21 <ehird> http://imgur.com/b3wo6
22:39:23 <ehird> Oops, imgur crap
22:39:23 <ehird> http://imgur.com/b3wo6.png
22:39:51 <pikhq> upx --brute gets it down to 408K.
22:39:58 <Deewiant> --ultra-brute?
22:40:03 <ehird> http://images.google.com/images?q=google%20books%20fingers
22:40:10 <Deewiant> (May've been equivalent to --brute on Linux, I forget)
22:40:15 <bsmntbombdood_> omg, i read reddit too
22:40:27 <AnMaster> bsmntbombdood_, ?
22:40:43 <ehird> Translation: <bsmntbombdood_> Stop linking things linked anywhere else
22:40:52 <AnMaster> <ehird> http://images.google.com/images?q=google%20books%20fingers <-- what the hell happened? And what is that on the fingers
22:41:02 <Deewiant> I fail to see the point of that image
22:41:10 <ehird> People pressed scan before moving their fingers away, and finger condoms!
22:41:18 <ehird> Deewiant: It's vaguely amusing?
22:41:25 <AnMaster> ehird, ... why finger condomes?
22:41:27 <Deewiant> If you say so
22:41:29 <pikhq> I'd try it with uclibc, but I don't have a uclibc toolchain handy.
22:41:35 <ehird> AnMaster: *condoms
22:41:36 <ehird> AnMaster: WHO KNOWS
22:41:45 <pikhq> 408K with --ultra-brute.
22:41:46 <ehird> Maybe the scanning procedure involves finger sex.
22:41:53 <ehird> pikhq: there's a gentoo package for it
22:41:53 <ehird> iirc
22:42:06 <pikhq> ehird: Not really.
22:42:22 <pikhq> (I did try crossdev for it in the past; didn't exactly work)
22:42:56 <pikhq> hello.o is 4K.
22:43:07 <pikhq> So, nearly 1.2M of that is libraries...
22:43:18 <pikhq> That's impressive, but scary.
22:43:22 <ehird> Try ldd on a dynamically linked one
22:43:29 <ehird> Ooh, pretty useless functions!
22:43:31 <ehird> They sparkle.
22:44:02 <ehird> pikhq: btw, did you see http://sprunge.us/JXMf?
22:44:04 <pikhq> libm, libgmp, libdl, librt, libc, ld-linux-x86_64.so.2, and libpthread.
22:44:12 <AnMaster> ehird, why not strip useless functions?
22:44:14 <ehird> Paul Graham's closure-test in Go, except s/number/fixed-size int/
22:44:18 <ehird> AnMaster: ghc runtime uses them
22:44:21 <Deewiant> AnMaster: They're not useless.
22:44:23 <ehird> pikhq: ldd -whateveryouneedforfunctions
22:44:25 <AnMaster> hm
22:44:28 <ehird> it uses date(), for instance
22:44:37 <Deewiant> Oh noes date()
22:44:40 <ehird> pikhq: (I tried to do numbers but couldn't find a suitable number interface; I could have done bignums though)
22:44:44 <ehird> Deewiant: Why does it need date()?
22:44:50 <AnMaster> Deewiant, you could potentially optimise away the GC in simple programs
22:44:55 <AnMaster> in THEORY
22:45:10 <AnMaster> (probably pointless in practise)
22:45:15 <Deewiant> ehird: I dunno, why not?
22:45:30 <ehird> "Does God exist?" "I dunno, why not?"
22:45:52 <AnMaster> <ehird> pikhq: ldd -whateveryouneedforfunctions <-- nm -D?
22:45:55 <Deewiant> "Arbitrary statement" "What you just said" / my point proven
22:46:03 <AnMaster> ldd doesn't list used functions afaik
22:46:13 <pikhq> 121 different functions, according to nm -D...
22:46:18 <ais523> oh, incidentally, I found that virus on my computer
22:46:19 <ehird> Ah, nm is the one
22:46:21 <Deewiant> ehird: What /is/ date() anyway? I see no manpage for it.
22:46:21 <ais523> it's a Word macro virus
22:46:24 <ais523> and it was in the Agora archives
22:46:31 <AnMaster> ais523, huh
22:46:36 <ehird> Deewiant: Oh, it was gettimeofday()
22:46:39 <ehird> I think
22:46:40 <ehird> whatever
22:46:40 <AnMaster> ais523, agora accepts word files?
22:46:45 <ais523> AnMaster: it was in an attachment to a message
22:46:48 <ais523> containing part of a thesis
22:47:02 <AnMaster> ais523, and why?
22:47:08 <AnMaster> <ehird> Deewiant: Oh, it was gettimeofday() <-- not strange. duh
22:47:17 <ehird> Strange for hello world
22:47:18 <AnMaster> ehird, what about random seed for example
22:47:18 <Deewiant> ehird: So timing, which the RTS does.
22:47:27 <AnMaster> or yes timing for GC and what not
22:47:41 <ehird> ur mom
22:47:42 <ehird> :P
22:47:49 <AnMaster> ehird, you could just say "strange for hello world to use a GC"...
22:48:27 -!- Pthing has joined.
22:49:24 -!- Rugxulo has joined.
22:50:27 * pikhq notes that the dynamic libraries that hello.hs uses adds up to 2.7M...
22:50:54 * ehird responds to http://hoisie.com/post/my_thoughts_on_the_go_programming_language to vent
22:51:06 <ehird> "The environment variables for building go are weird. $GOROOT points to the source, and why do you actually need to set $GOARCH and $GOOS? It's easy to detect that."
22:51:06 <ehird> $GOROOT points to the TREE. Cross-compiling.
22:51:30 <Deewiant> A reasonable default is that you're not cross-compiling.
22:51:43 <ehird> Yes, but the whole thing is based around it.
22:52:08 * Rugxulo still thinks that 64-bit is heavily overrated ...
22:52:29 <ehird> "Go uses a custom, funky build system. Most linux programs are compiled through autoconf and make. The build system has quirks, like if the $GOBIN directory isn't added to your path, it won't install." It's not funky, it's how make should be used.
22:52:30 <ehird> "The build script automatically installs go. But you have to create the installation directory manually." Your $GOBIN should exist.
22:52:30 <ehird> "The binary naming scheme is weird. For i386 you have the following program names:" It's not weird, you're just not used to it. "8c - no idea what it does" Perhaps you should have looked it up, takes two clicks on the website.
22:52:30 <ehird> "If you have a different architecture, these binaries will be named differently (6a, 6g, 6l, 6c for amd64). I couldn't find out why they use this seemingly arbitrary naming convention." Plan 9 toolchain, for trivial cross-compiling.
22:52:31 <Deewiant> Those "Language Issues" are rather random.
22:52:34 <ehird> "Compiling and running a go program takes three steps (it would be nice if it
22:52:36 <ehird> was just one):" Python is that way.
22:52:38 <ehird> Phew, end of flood.
22:52:41 <pikhq> Rugxulo: The principle advantage is having twice the registers.
22:52:53 <ehird> Aargh, that was just the first section.
22:52:56 <ehird> "Sometimes semicolons are needed, and sometimes they're not." Semicolons are separators, not terminators. The end.
22:52:58 <pikhq> x86 is absurdly register-starved.
22:53:02 <ehird> (But you can use them to separate a statement and the end.)
22:53:08 <ehird> "The languages require braces for most control expressions, even if they only contain one inner expression." Good practice.
22:53:13 <ehird> "There isn't an exception mechanism" Feature.
22:53:15 <Deewiant> pikhq: principal*
22:53:21 <AnMaster> <ehird> "The build script automatically installs go. But you have to create the installation directory manually." Your $GOBIN should exist. <-- unusual
22:53:22 <ehird> "Ambiguous assignment. The following are identical:" Ambiguous because there's more than one way?
22:53:25 <ehird> Also, it's declaration.
22:53:37 <AnMaster> ehird, I would be annoyed if build system didn't create directories as needed
22:53:39 <ehird> "A compilation error happens when a variable is declared and not used. I'm not a huge fan of this." It's enforcing conciseness and non-laziness. There are no warnings.
22:53:48 <ehird> AnMaster: Shrug, it's a very minor issue
22:53:52 <Deewiant> ehird: If "a := 1" and "var a = 1" don't differ that's a bit weird.
22:53:58 <AnMaster> ehird, an annoying one
22:54:06 <AnMaster> ehird, and in $PATH?
22:54:09 <ehird> Deewiant: := is just shorthand
22:54:10 <AnMaster> what sort of crap is that
22:54:21 <ehird> AnMaster: GOBIN should be ~/bin or /usr/local/bin or whatever
22:54:27 <AnMaster> ehird, I symlink binaries from ~/local/foo/bin to ~/bin as needed
22:54:29 <ehird> It's just where it puts binaries of go tools and go-using pprograms
22:54:31 <ehird> *programs
22:54:41 <ehird> Installing every program coded in Go into a Go-specific location is madness.
22:54:42 <AnMaster> ehird, I refuse to have ~/local/foo/bin in baoth
22:54:43 <Deewiant> ehird: Aye, and I think that's a bit strange given that "var" isn't that long either. :-P
22:54:45 <AnMaster> in path*
22:54:48 <Rugxulo> <AnMaster> ehird, 64-bit is more than PAE. For a start: PAE is limited at 64 GB iirc. 64-bit has a higher limit.
22:54:51 <ehird> AnMaster: Point it to ~/local/bin.
22:54:58 <Rugxulo> but nobody is coming even close to reaching 64 GB yet (besides IBM)
22:55:00 <AnMaster> ehird, no such thing
22:55:01 <ehird> AnMaster: That's what you're meant to do.
22:55:06 <Deewiant> I tend to be a bit leery of fairly different syntaxes for the exact same thing.
22:55:10 <AnMaster> ehird, and. that is for Go itself I assume
22:55:10 <ehird> AnMaster: Stop bitching, nobody cares
22:55:13 <ehird> No.
22:55:14 <ehird> It's for both.
22:55:22 <Rugxulo> I think the main problem with PAE (and 64-bit) is drivers
22:55:24 <AnMaster> ehird, the Go programs should be able to run from build dir surely
22:55:26 <ehird> It installs the compilers, tools etc and programs written in go install to $GOBIN.
22:55:31 <pikhq> Rugxulo: ... Actually, nobody is coming close to *justifying* that on a normal system.
22:55:33 <AnMaster> ehird, I don't want to install every time I debug a program
22:55:40 <ehird> AnMaster: Yes, they do.
22:55:41 <AnMaster> that's pure madness
22:55:42 <ehird> Your point?
22:55:42 <pikhq> Big difference.
22:56:02 <ehird> "Weird debug statements. This happened when I had an out-of-bounds error." Translation: Oh god, it gives a stack trace and the values of registers. Kill me now.
22:56:04 <Rugxulo> <ehird> pikhq: Yes, but only scientists use more than 4 GiB per process and they deserve to DIE IN A FIRE BECAUSE THEY USE HERETIC WITCHCRAFT.
22:56:06 <Rugxulo> lol
22:56:09 <ehird> aand my responses are over
22:56:10 <AnMaster> ehird, and I want to be able to install built programs anywhere. Like I compile a C program, doesn't need to go into ~/local/llvm/bin
22:56:17 <AnMaster> just because I used llvm-gcc
22:56:21 <ehird> AnMaster: (1) Stop fucking bitching (2) make GOBIN=... install
22:56:33 <AnMaster> ehird, what sort of argument is this
22:56:41 <ehird> (3) You. Set. GOBIN. To. A. Non. Go. Specific. Directory. That. Is. The. Whole. Point.
22:56:55 <AnMaster> ehird, I install every app in a specific prefix. Always.
22:56:57 <AnMaster> period.
22:57:06 <AnMaster> plus I'm not about to install Go anyway
22:57:07 <ehird> Go use GoboLinux, whiner.
22:57:12 <AnMaster> not until I need it
22:57:18 <AnMaster> ehird, I considered that
22:57:22 <ehird> Nobody gives a shit about your personal conventions because nobody else uses them and you're using YOUR chosen conventions to complain about Go, which is an invalid argument.
22:57:28 <ehird> I'm not interested.
22:57:40 <AnMaster> ehird, "all other build systems work with this"
22:57:47 <ehird> You still chose it.
22:57:50 <AnMaster> ehird, anyway I don't have ~/bin in PATH
22:57:54 <ehird> As I said, I'm not interested. Do not expect any further responses..
22:57:57 <ehird> *responses.
22:57:57 <AnMaster> I only have /bin /usr/bin in PATH
22:58:21 <AnMaster> ehird, oh the usual "ehird being irritated at me being right mode"
22:58:25 <AnMaster> have a nice evening
22:58:32 * AnMaster puts ehird on ignore
22:58:52 <Deewiant> Gah, you both fail at conversation so hard that it's not even funny any more.
22:58:57 <ehird> Ah yes, "You're only not talking to me because I'm right! I'm going to ignore YOU!" — the age old trolling technique.
22:59:04 <ehird> Deewiant: Objection: I don't bother engaging in conversation with AnMaster.
22:59:09 <ehird> I just rile him up.
22:59:19 <AnMaster> Deewiant, I don't fail at it really. Seems ehird did though
22:59:29 <Deewiant> No, you both do.
22:59:34 <AnMaster> Deewiant, but yes it it hard to talk to him since he refuses to even consider my arguments
22:59:35 <ehird> What an unexpected response. I sure am sure that that'll change AnMaster's mind.
22:59:47 <ehird> Deewiant: I'm welcome to engage in conversation with anyone who isn't a blathering idiot.
22:59:55 <ehird> But it's hard to do that in here because AnMaster always pipes up.
23:00:05 <Deewiant> ehird: Yeah, see, that attitude is part of the failure. :-P
23:00:15 <ehird> Deewiant: Hey, I tried with AnMaster, I really did.
23:00:30 <Rugxulo> <pikhq> Being able to assume SSE support is also nice.
23:00:35 <AnMaster> Deewiant, the issue with such a build system is that it breaks standard conventions of what should work on *nix
23:00:50 <Rugxulo> it's not hard to run CPUID, besides ... P4 had SSE2 long before AMD (which is in heavy decline thanks to Core2Duo improvements)
23:01:05 <ehird> Another classic troll technique... somebody makes a comment about the war and the troll tries to force the issue on the commentator.
23:01:06 <AnMaster> Deewiant, everything is supposed to work when installed to a prefix, possibly needing passing a rpath argument, but most often not
23:01:17 <pikhq> Rugxulo: Congrats at misunderstanding the entire point of that sentence.
23:01:19 <AnMaster> and if this is static binaries? wouldn't need it
23:01:50 <Deewiant> Rugxulo: I dislike fat binaries that cpuid-switch over 8 different optimization levels. :-P
23:01:59 <AnMaster> Deewiant, but ehird seems to refuse to see this. I have to declare him a lost cause sadly
23:02:01 <pikhq> Rugxulo: You don't have to run CPUID, you just build everything with SSE support.
23:02:07 <Rugxulo> as opposed to separate builds for every microarchitecture??
23:02:16 <AnMaster> pikhq, then 686 is not the baseline
23:02:32 <ehird> Deewiant: are you going to tell AnMaster to stop continuing his argument with me to you? I'm pretty sure he's not going to stop
23:02:49 <Deewiant> ehird: I'm pretty sure it doesn't matter.
23:02:49 <AnMaster> pikhq, of course you don't need to declare 686 the baseline
23:02:55 <AnMaster> but that was what ehird wanted iirc
23:02:57 <ehird> That too.
23:03:33 <Rugxulo> <ehird> anyway i definitely want quake ii to run, which is a "yikes" case of a libc5, egcs-compiled 32-bit binary
23:03:37 <AnMaster> Deewiant, what doesn't matter? ehird being stupid about Go? If so agreed. It would be pointless to continue talking about it. *yawn*
23:03:37 <Rugxulo> what's the problem there?
23:03:47 <ehird> Rugxulo: what isn't the problem is easier to answer?
23:03:53 <ehird> Deewiant: i told you so
23:03:54 <ehird> :D
23:04:01 <Rugxulo> I mean, Quake II is open sourced now, right? just recompile it
23:04:13 <ehird> i only said quake ii to give an example of a pathological case that i want to work
23:04:14 <AnMaster> Rugxulo, oh good point
23:04:41 <ehird> and AnMaster goes into "start agreeing with everyone who says anything that even remotely contradicts what I say" mode :-/
23:05:10 <Rugxulo> when was Quake 2 released, late 90s? (Quake 1 was 1996)
23:05:13 <AnMaster> Rugxulo, of course it won't work for all possible programs. In case you for some reason want to run old old binary code
23:05:20 <Rugxulo> so yeah, it would have to use ECGS since nothing else existed
23:05:25 <ehird> uh
23:05:26 <ehird> gcc existed
23:05:34 <AnMaster> Rugxulo, what about gcc?
23:05:38 <Rugxulo> I mean GCC 2.95 (which is what EGCS became) just barely came out in 1999
23:05:50 <AnMaster> Rugxulo, EGCS was based on gcc
23:05:51 <AnMaster> it was a fork
23:05:54 <Rugxulo> I know
23:05:55 <AnMaster> that re-merged again
23:05:59 <Rugxulo> Quake 1 used GCC 2.7.2
23:06:04 <Rugxulo> originally
23:06:05 <AnMaster> Rugxulo, so GCC would have existed too
23:06:13 <Rugxulo> GCC existed but wasn't acceptable
23:06:13 <AnMaster> as well as EGCS
23:06:32 <AnMaster> Rugxulo, that's different. I agree yes. But that wasn't what you said to begin with
23:06:33 <Rugxulo> hence the fork
23:07:16 <Rugxulo> why do you think Quake 1 used such heavy FPU assembly? because GCC 2.7.2 couldn't optimize worth a damn for anything besides 386 or 486
23:07:37 <AnMaster> brb, I might lose connection, going to reset adsl modem (it is acting strangely)
23:07:59 <fizzie> GCC isn't the only compiler family in the world, though; I'm a bit surprised that id has used gcc there, in fact.
23:08:00 <Rugxulo> <AnMaster> ehird, better code optimisation base. a generic 686 target can't assume any sort of vector registers like MMX or SSE (like pikhq said)
23:08:02 <Deewiant> And also because it was a game that pushed the limits of the hardware... and they tend to need some assembly to run nicely.
23:08:20 <ehird> fizzie: i'm talking about the linux build
23:08:30 <Rugxulo> you can't assume anything with 686, not even FPU
23:08:37 <Rugxulo> unless you stick to Intel and AMD only
23:09:06 <ehird> "Unless you stick to everything"
23:09:08 <Deewiant> Which is a reasonable sticking-to, these days.
23:09:10 <ehird> everything - epsilon
23:09:11 <Rugxulo> fizzie, they used GCC in order to cross compile from Alphas (Quake)
23:09:26 <AnMaster> yay for ipv6 tunnel, not disconnecting that way
23:09:33 <Rugxulo> and they also wanted a compiler free to redistribute for modifying Quake, was going to use DJGPP but at the last minute wrote their own subset
23:10:13 <AnMaster> Rugxulo, wait, doesn't DJGPP use gcc or something iirc?
23:10:23 <Rugxulo> yes, GCC
23:10:35 <AnMaster> so "was going to use DJGPP but at the last minute wrote their own subset"?
23:10:40 <AnMaster> oh
23:10:47 <AnMaster> subset of DJGPP
23:10:48 <AnMaster> ?
23:10:59 <Rugxulo> they compiled for DOS with DJGPP, which is what they distributed shareware/commercially
23:11:08 <Rugxulo> no, their own QCC, Quake C compiler
23:11:20 <AnMaster> Rugxulo, they wrote a whole C compiler?
23:11:30 <Rugxulo> not a real compiler, just a wimpy hack
23:11:35 <AnMaster> Rugxulo, why
23:11:39 <Rugxulo> dunno
23:11:48 <fizzie> http://www.delorie.com/djgpp/history.html mentions Quake; obviously they're proud of it.
23:11:50 <Rugxulo> I think they used a modified LCC in some later versions
23:11:52 <AnMaster> Rugxulo, and what did that compiler do?
23:12:00 <AnMaster> or rather
23:12:02 <Rugxulo> compile mods
23:12:03 <AnMaster> what didn't it do
23:12:05 <AnMaster> hm
23:12:06 <AnMaster> Rugxulo, ah
23:13:25 <Rugxulo> they each shared a developer, I think
23:13:32 <fizzie> http://dir.filewatcher.com/d/FreeBSD/4.6-release/i386/qcc-1.01.tgz.109841.html -- "This is the last major component of the quake utilities to be released. To be honest, I have been a little reticent to release this because most of the actual qc code is basically rather embarassing crap. The time never became available to even give it a good top to bottom going over. I never spent any quality engineering time on my parts, American wrote a lot of qc code, and e
23:13:32 <fizzie> ven Romero has a bit of work in there. It is a mess. If you look through the code and occasionally think "This is stupid!", you are probably right..."
23:14:25 <fizzie> It sounds pretty horrible if you read the next couple of paragraphs too.
23:14:32 * Rugxulo recompiled Quake 1 like two days ago, works under DOSBox
23:15:59 <Rugxulo> I used GCC 2.95.3 (ahem, EGCS) and BinUtils 2.16.1, though
23:16:03 <Rugxulo> not old 2.7.2 (ugh)
23:16:37 <Rugxulo> http://vogons.zetafleet.com/viewtopic.php?t=22910
23:16:44 <ais523> heh, reddit are arguing about whether Go or Algol 68 is better
23:17:13 -!- Sgeo_ has joined.
23:17:40 <ehird> http://leileilol.mancubus.net/crap/egake.png
23:17:41 <ehird> pretty
23:17:50 <ais523> IMO, a non eso-language that allows spaces in identifiers, without needing to quote them, is a brilliant concept
23:18:12 <Rugxulo> ehird, he made more progress since that ;-)
23:19:27 -!- ais523 has quit (Remote closed the connection).
23:19:31 <ehird> http://icculus.org/~chunky/ut/aaut/
23:19:32 <ehird> glorious
23:19:49 <AnMaster> <Rugxulo> I used GCC 2.95.3 (ahem, EGCS) and BinUtils 2.16.1, though <-- anything wrong with newer versions?
23:20:16 <Rugxulo> doubt it, but I just like 2.95.3 in some ways (faster compiles, good enough, etc.)
23:20:36 <AnMaster> Rugxulo, which is the newest one that would work?
23:20:48 * AnMaster has a hard time believing that 4.4 would work for example
23:20:53 <Rugxulo> I don't want to say it's my "pet", but I did cram DJGPP 2.03p2, BinUtils 2.16.1, GCC 2.95.3 onto one floppy (.7z compressed) with decoder
23:21:06 <Rugxulo> I didn't try anything newer, esp. since DOSBox is a glorified 486 DX2 anyways :-/
23:21:19 <Rugxulo> (assuming your host cpu is fast enough, e.g. 1 Ghz)
23:21:37 <AnMaster> Rugxulo, I assume 2 GHz or more these days
23:21:46 <AnMaster> Rugxulo, and what about dosemu?
23:21:55 <AnMaster> isn't it better than dosbox iirc?
23:22:03 <Rugxulo> DOSEMU is good, obviously faster, but I'm not on Linux now ;-)
23:22:12 <AnMaster> Rugxulo, it needs linux? heh
23:22:23 <Rugxulo> DOSEMU? yes DOSBox? no
23:22:24 <AnMaster> and why obviously faster?
23:22:31 <Rugxulo> V86 mode
23:22:31 <ehird> virtualisation
23:22:38 <Rugxulo> DOSBox can run on PPC, even
23:22:41 <fizzie> Is it just me, or have the underlinings from Wikipedia's ALGOL 68 article turned into bold type? Even while the text is all "In the examples above you will observe underlined words"?
23:23:07 <AnMaster> Rugxulo, right. vm86 is kind of deprecated. I guess dosemu is the only user.
23:23:15 <Rugxulo> DOSBox comes with its own built-in DOS "OS" subset, DOSEMU needs something else (e.g. FreeDOS, MS-DOS, DR-DOS)
23:23:26 <Rugxulo> WINE? (dunno, really)
23:23:56 <AnMaster> Rugxulo, pretty sure that I got dosemu working under 64-bit?
23:23:56 <Rugxulo> actually, even without V86, under x86-64 they claim DOSEMU can emulate DJGPP apps "natively"
23:24:09 <Rugxulo> yes, it works, just the 16-bit stuff is fully emulated
23:24:11 <AnMaster> * app-emulation/dosemu
23:24:11 <AnMaster> Available versions: 1.4.0 ~ ~1.4.1_pre20091009 {X alsa debug gpm sndfile svga}
23:24:11 <ehird> no bolding here, even
23:24:12 <Rugxulo> (slow)
23:24:12 <AnMaster> stable
23:24:25 <AnMaster> Rugxulo, fast enough?
23:24:30 <AnMaster> for old dos apps I mean
23:24:34 <Rugxulo> yes
23:25:11 <AnMaster> Rugxulo, then no issue I guess. If my cpu can emulate a N64 at decent speed (good gpu needed too) I fail to see how a old dos emulator could require more
23:25:26 <AnMaster> fizzie, direct link to it? I'm lazy
23:25:35 <Rugxulo> I dunno, I'm just saying, DOSBox ain't that fast
23:25:44 <Rugxulo> it's not multithreaded, for instance, and it's written in C++ (heh)
23:25:49 <ehird> dosbox is sloooooooow
23:25:57 -!- facsimile has quit ("quit").
23:25:59 <Rugxulo> N64 wasn't that fast either, actually
23:26:05 <Rugxulo> yes, faster than a 486, but not 10x or anything
23:26:09 <fizzie> AnMaster: http://en.wikipedia.org/wiki/ALGOL_68
23:26:12 <AnMaster> Rugxulo, dosemu on x86-64 was fast enough
23:26:20 <Rugxulo> yes, thanks to V86 ;-)
23:26:24 <AnMaster> Rugxulo, read again
23:26:27 <AnMaster> Rugxulo, x86-64
23:26:29 <Rugxulo> oops
23:26:32 <AnMaster> no vm86 supported
23:26:35 <Rugxulo> yes, 32-bit is "native speed" they claim
23:26:45 <Rugxulo> it's 16-bit stuff that is slower than normal
23:26:53 <AnMaster> Rugxulo, I think I was running some olf freedos apps
23:26:55 <AnMaster> or such
23:27:18 <AnMaster> Rugxulo, and it was still faster than an original 486 I bet
23:27:36 <AnMaster> since it went past on screen too fast
23:27:38 <Rugxulo> I can't say without a benchmark to prove it
23:27:45 <AnMaster> (bad app, not adjusting for CPU speed)
23:27:48 <Rugxulo> but yeah, 486 is slow anyway you look at it ;-)
23:27:51 <AnMaster> Rugxulo, I don't have it installed any more
23:27:59 <AnMaster> it was a year ago at least
23:27:59 <Rugxulo> I know, I just assumed that much :-)
23:28:19 <Rugxulo> and DOSEMU does support some kind of "throttle" I think
23:28:28 <AnMaster> <fizzie> Is it just me, or have the underlinings from Wikipedia's ALGOL 68 article turned into bold type? Even while the text is all "In the examples above you will observe underlined words"? <-- not just you
23:28:31 <AnMaster> I see bold too
23:28:49 <fizzie> Funny. Underlined is what was in the only ALGOL 68 book I've read.
23:29:21 -!- oerjan has quit ("leaving").
23:29:45 <ehird> It is totally unformatted for me.
23:29:58 <ehird> But editing it shows bolding.
23:30:03 <ehird> HOW QUEER THIS LIFE WE LEAD
23:30:04 <AnMaster> fizzie, well the page uses ''' ''' in it. so it would have to be bold
23:30:16 <AnMaster> fizzie, maybe some vandal?
23:30:28 <ehird> it seems b inside pre is being ignored
23:30:31 <ehird> A vandal? Come on.
23:31:00 <fizzie> Bold is "right" in the sense that it's not about the exact typeface. It's just that the text refers to underlining in at least one place.
23:31:09 <AnMaster> fizzie, this one is underlined http://en.wikipedia.org/w/index.php?title=ALGOL_68&oldid=229234946
23:31:36 <ehird> |int| a real int = 3 ;
23:31:51 <ehird> |proc| sieve = (|list| l) |list|:
23:32:14 <AnMaster> fizzie, http://en.wikipedia.org/w/index.php?title=ALGOL_68&diff=251913502&oldid=250851666
23:32:16 <AnMaster> there you go
23:32:26 <AnMaster> very strange
23:33:59 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
23:41:21 <pikhq> DOSEMU works on most architectures -- it just emulates when it can't run code directly.
23:41:39 <Rugxulo> pikhq, you've actually used it elsewhere?
23:42:14 <pikhq> Rugxulo: No, because I don't have non-x86 systems.
23:42:24 <pikhq> I just know it has a full x86 emulator shoved in there.
23:42:39 <Rugxulo> I don't honestly know if it would work, I don't think it even works on NetBSD or FreeBSD anymore
23:42:46 <Rugxulo> but I haven't tried, so ...
23:42:58 <pikhq> ... I'm sure it at least *can* run on FreeBSD.
23:43:11 <pikhq> Though it may need to use the Linux emulation feature.
23:43:15 <Rugxulo> it must've used to (and I know NetBSD ran it at some point)
23:45:22 <Rugxulo> the "problem" with DOSEMU is that it's "multiverse" for some unknown reason
23:47:03 <ehird> because nobody wants to maintain it
23:47:05 -!- FireFly has quit ("Later").
23:48:07 <ehird> [[Dude, Go is the biggest piece of crap I've ever seen touted as a real programming language. They took D's syntax and stuck some concurrency bits from Erlang in it. Big deal. I bet the concurrency doesn't work right, because it never does in imperative languages.
23:48:07 <ehird> It's also not a low level language just because it runs fast; that whole idea is a C++ oriented lie. OCaML is as fast as they come; I guarantee it's faster in real life than this piece of crap, and it's GCed as well. And OCaML has REAL exception handling; far better than virtually any other language, other than Lisp.
23:48:07 <ehird> Someone should take Ken out back and shoot him in the back of the head for foisting that piece of crap on humanity. At least think about designing a language for longer than a few hours before showing it to people. The fact that it's mostly just some Yacc spooge ... jesus, what unutterable crap. Google + celebrity = fail.]]
23:48:09 <ehird> Gregor: expressing your opinion I see!
23:48:30 <ehird> incidentally, goyacc includes an example that's a full program written in yacc; a rarity nowadays
23:48:56 <ehird> "I've been developing my own programming language for 6 months, and Go's feature list is so short it makes me cry." ;; consider calling your language "D"
23:49:13 <AnMaster> <Rugxulo> the "problem" with DOSEMU is that it's "multiverse" for some unknown reason <-- multiverse what?
23:49:14 -!- BeholdMyGlory has quit (Remote closed the connection).
23:49:17 <AnMaster> ubuntu?
23:49:19 <ehird> ubuntu
23:49:22 <Rugxulo> repository
23:49:39 <Rugxulo> and it has a maintainer (AFAICT), but I guess it's not updated frequently enough??
23:49:40 <AnMaster> Rugxulo, in ubuntu? well who cares? you could get the source yourself?
23:49:48 <Rugxulo> I did :-)
23:50:01 <Rugxulo> and I don't even have Linux installs (just liveCDs and one USB) ;-)
23:51:02 <ehird> (Kragen Sitaker's response to that "so short it makes me cry" comment: [[You could have written this comment in 1975, replacing "Go" with "C", if the language you were working on was PL/1. Except that Reddit didn't exist yet.]])
23:51:05 <AnMaster> Rugxulo, why would I care?
23:51:18 <Rugxulo> why would you live? :-P
23:51:26 <AnMaster> Rugxulo, ?
23:51:27 <ehird> "why would I care?" — rich from AnMaster who often goes onto his personal preferences when talking
23:51:28 <Rugxulo> why not? ;-)
23:52:00 <AnMaster> Rugxulo, you seems to be lost in the age of dos to me
23:52:23 <AnMaster> Rugxulo, are you using it seriously or just for old nostalgia?
23:52:44 <Rugxulo> I just don't see the point of reinventing everything ten times over or discarding stuff that works
23:53:00 <Rugxulo> just for fun, I don't get paid for it or anything
23:53:08 <AnMaster> Rugxulo, I think you might have skipped some logical steps there
23:53:21 <Rugxulo> how so?
23:53:21 <AnMaster> if it is "for old games" or "for porting esolangs to it" or similar. Sure
23:54:16 <AnMaster> Rugxulo, to me DOS doesn't really work any more. sure when it was the best you had....
23:55:23 <Rugxulo> you also don't see the beauty in the simplicity of Befunge93
23:55:34 <Rugxulo> it doesn't mean 98 is bad, just 93 is still good for something
23:55:36 <AnMaster> Rugxulo, I see that it isn't TC.
23:55:42 <AnMaster> sure if it was TC then yes
23:56:29 <AnMaster> ulimited +x and +y added on 93 (and with 98-style wrapping to make that actually work) would be fine
23:56:35 <AnMaster> a bit irritating to code in
23:56:44 <AnMaster> Rugxulo, and it is much more fun to write a 98 interpreter than a 93 interpreter
23:56:48 <AnMaster> a 93 one is trivial
23:56:54 <AnMaster> a 98 one, not so
←2009-11-14 2009-11-15 2009-11-16→ ↑2009 ↑all