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