00:10:01 -!- yorick has quit (Read error: Connection reset by peer). 00:14:04 -!- tromp has joined. 00:18:19 http://explosm.net/comics/3479/ 00:21:41 poor quintopia 00:22:20 there ain't no rest for the wicked // money don't grow on trees // i got bills to pay, i got mouths to feed // oh there ain't nothin in this world for free 00:22:35 what about me 00:24:46 -!- zzo38 has joined. 00:35:41 -!- tromp has quit (Remote host closed the connection). 00:54:48 -!- vravn has quit (Excess Flood). 00:57:16 -!- vravn has joined. 01:32:38 -!- Phantom__Hoover has quit (Ping timeout: 264 seconds). 01:33:34 -!- Phantom__Hoover has joined. 01:38:29 -!- tromp has joined. 01:41:28 -!- Bicyclidine has quit (Ping timeout: 245 seconds). 01:46:48 `coins 01:46:51 keecoin braemcoin spacecoin fluracoin wunnedcoin wisendstorycoin ctorcoin askingcoin smongcoin hsemecoin .gercoin blacecreadcoin c-logincoin marquistcoin entecoin weacoin provinsomskjcoin cilacoin tinycoin porigcoin 01:48:39 tinycoin seems very much like a real one 01:48:47 -!- vravn has quit (Excess Flood). 01:49:14 i'll take ciliacoins 01:50:39 meanwhile, askingcoins don't actually exist, but there are nonetheless many people trying to buy them for exorbitant prices 01:50:45 porigcoin will be the currency of an independent scotland 01:50:46 -!- vravn has joined. 01:52:38 the EU seem to really dislike the concept of Scottish independence for some reason 01:53:52 -!- shikhout has joined. 01:57:14 -!- shikhin has quit (Ping timeout: 264 seconds). 01:57:15 -!- shikhout has changed nick to shikhin. 02:01:48 Am I allowed to find it funny that there is a sense in which Java is safer than Haskell? 02:02:09 (Although not really since a library in Haskell can do the same thing) 02:02:59 Still... where Haskell may use undefined as an argument to something because it wants to know the type, Java would just pass in a Class, which is still a usable object 02:05:43 You can do the same in Haskell you can have a type parameter which doesn't do anything too 02:07:02 ?messages-loud 02:07:03 kmc asked 6h 53m 55s ago: What do you think of the subroutine AC82 documented in http://meatfighter.com/nintendotetrisai/ 02:07:37 ais523: hm do you know why? 02:08:11 Sgeo: sounds like data Proxy a = Proxy 02:09:37 kmc: just an idea at what the name would be appropriate for 02:09:47 i meant re scotland 02:10:09 kmc: oh, it's to do with the exceptions the UK has for a bunch of things, like border control and the single currency 02:10:33 currency union with england seems like a sticking point 02:10:34 yeah 02:10:36 they're refusing to allow a hypothetical independent Scotland in on that, meaning that Scotland would have to either leave the EU or adopt the Euro, Schengen group, etc. 02:10:49 fwiw, I'm broadly in favour of the EU, but against the euro 02:10:56 are they officially refusing it or is it just speculation still 02:11:18 I'm not sure if it was official official, but some high-ranking person said that that's what they intended to do, in a nonbinding way 02:13:24 nobody much wants scotland to join the euro do they 02:13:37 anymore 02:14:29 I don't see any real benefit that would come from it 02:15:24 although I'm generally in favour of splitting up currencies as much as possible, so I'd prefer an independent Scotland to have its own currency just for economic reasons 02:16:00 it's hard to be truly independent if you don't have control over monetary policy 02:17:20 indeed 02:17:50 also, I'm not entirely sure what you call the /other/ country left over if Scotland becomes independent 02:18:12 United Kindom of Some of Britain and Northern Ireland 02:18:12 kingdom 02:18:13 because "great britain" is even less accurate a summary of the non-Northern Ireland bit than before 02:18:16 Kingdom* 02:18:26 just call the place Kingdom 02:18:29 lol 02:19:08 That Place What The Queen Lives In I Hear 02:21:24 Rarewealth 02:23:10 kmc: that's what I meant by Haskell being able to do it. But I think people still use undefined for that purpose, not sure why 02:23:21 > head [] 02:23:22 *Exception: Prelude.head: empty list 02:23:34 Type safe. 02:23:42 does Haskell have a typesafe infinite list type? 02:23:54 basically lists without nil? 02:23:55 head : Vec (S n) a -> a 02:24:13 data List a = Single a | List a (List a) 02:24:16 Sgeo: you basically need dependent typing to be able to get very far with that 02:24:28 ais523: I'm currently trying to understand dependent typing 02:24:40 I keep seeing individual use cases, but feel like I'm missing the full picture 02:25:16 Jafet: does that not allow List 4 (Single 6) 02:26:00 data Stream a = Stream a (Stream a) 02:26:01 Fortunately, it does. 02:26:03 Why the Single? 02:26:07 Oh! 02:26:13 For a safe head 02:27:11 ais523: are there any excellent dependent typing tutorials around? 02:27:29 Sgeo: probably, but I don't know of any in particular 02:28:05 I feel like the purely imperative programmer trying to understand first-class functions by reading about how they're useful 02:28:17 But without grasping the core concept 02:29:08 Sgeo: the core concept is basically "imagine a type of integers that have the value 4", generalize that, everything comes from there 02:29:17 -!- Phantom__Hoover has quit (Read error: Connection reset by peer). 02:30:48 Can I make a Map of Strings to Types? I suspect I can in Idris but not Agda (without redefining whatever the local hashmap is), but not certain 02:35:29 All integers have the value 4 in one day rotation 02:35:47 Sgeo: And what are the types going to be used for afterward? 02:36:20 zzo38: I'm thinking something like an ST monad implementation that doesn't use unsafeCoerce 02:37:22 I don't know how ST monad works actually 02:37:23 This is really making me unwilling to try Agda 02:37:36 Even if it has better tutorials 02:39:46 ais523: that's not what dependent typing is 02:39:56 that's refinement types 02:40:08 elliott: working in a CS department, it's a bit confusing 02:40:18 because they consider a huge range of things to all be dependent typing 02:40:37 Cumulative universes seem awesome, as far as I understand them 02:40:41 Haskell has a Typeable class which is possible to use for such a purpose 02:40:44 Especially with... whatever Idris does to hide them 02:44:27 ais523: if they think that's dependent typing, they're just wrong 02:45:52 elliott: I've seen tuples defined as functions from a set that obeys the integer axioms, to types, and that's apparently dependent typing too, or can be at least 02:46:30 I think because there were free variables of type tuple index, and they were separate from normal free variables 02:49:20 dependent types is one of those things I'm really bad at, though 02:55:25 How someone explained it, dependent sum types are like f 1 + f 2 + f 3 + f 4 + ... which is also like a Sigma operator, which would explain why it is called Sigma types. 02:56:26 yeah 02:56:43 except it doesn't even have to be a number index 02:57:18 Yes, I believe you 03:09:04 soNot oh oh impossible 03:28:02 -!- tromp has quit (Remote host closed the connection). 03:28:34 -!- tromp has joined. 03:31:54 -!- jconn has joined. 03:33:14 -!- tromp has quit (Ping timeout: 264 seconds). 03:47:02 -!- shikhin has quit (Ping timeout: 264 seconds). 03:58:12 -!- nooodl has quit (Ping timeout: 244 seconds). 03:58:39 -!- vravn has quit (Excess Flood). 04:03:46 -!- vravn has joined. 04:08:40 -!- vravn has quit (Excess Flood). 04:09:22 -!- vravn has joined. 04:40:26 "I'd recommend Agda as the better vehicle for getting to grips with the ideas behind dependently typed programming, but Idris is the more practical option." 04:40:27 Hmm 04:51:10 -!- vravn has quit (Excess Flood). 04:51:52 -!- vravn has joined. 04:54:17 agda's mostly used for proofs, like coq is 04:54:30 you don't even care what the program does when it runs, the point of the program is for it to compile at all 05:03:03 “We propose the data “water cycle”, iRain, that ensures that the user is “soaked” with useful user data all the time.” 05:03:12 http://cseweb.ucsd.edu/~gvenkatesh/About_Me_files/paper_2.pdf 05:03:41 wat 05:03:43 zzo38: STRef is implemented the same as IORef, and runST the same as unsafePerformIO 05:04:17 but the fancy type of runST prevents STRefs from one runST invocation from making their way into another (even by nesting) 05:04:27 runST is more like unsafeDupablePerformIO, I think. 05:04:33 or whatever the even more crazy version of that was. 05:17:12 unsafeDrupalPerformIO? 05:27:06 -!- shikhin has joined. 05:35:49 `coins 05:35:52 picoin cardcoin unwelcoin soncoin sparnapol)coin bergcoin dimenternalcoin omecoin aarguinecoin ble-2dcoin selcoin smartrucoin limacoin yclearblifecoin m-coderlingcoin 2-illcoin cloopticcoin liocoin ahelcoin mertcoin 05:36:49 unwelcoin 05:41:32 is there a trufflecoin? 05:42:54 `words 20 05:42:57 ffilcant bed gium aufle olle agra frestasmi positecti inspu kxp outentairet octa comfi hatmoc prouge lobrahe sor eori ent jim 05:45:30 Will there be a future in which `words becomes hip again 05:57:38 Trufflecoin clearly is really just truffle futures. 06:03:18 -!- oerjan has joined. 06:04:38 oh right 06:05:36 Gregor``: THE LOGS FOR 2/29 ARE BROKEN HTH 06:05:59 * oerjan stealthily moves on to march 06:06:22 Oh hey, it's March now. 06:07:34 -!- oerjan has set topic: Beware the Hares of March. Also the Ides. | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/. 06:31:16 -!- tromp has joined. 06:31:30 How do I encode patterns for peephole optimization? 06:35:59 -!- tromp has quit (Ping timeout: 252 seconds). 06:37:21 Will there be a future in which `words becomes hip again <-- only when they abolish money hth 06:38:15 Trufflecoin clearly is really just truffle futures. <-- i was imagining a coin made of truffle chocolate 06:40:14 wait, there's no truffle in chocolate truffles? 06:41:24 Are chocolate truffles truffles made from chocolate? 06:41:37 apparently so. 06:41:44 I think bitcoin would actually be worth more than truffle coins 06:42:20 mind you, genuine chocolate with truffles also exists. 06:42:56 or wait does it 06:43:17 darn i'll have to open all these google hits to see if they're about the right kind 06:43:34 What about chocolate that is made of truffles instead of chocolate 06:43:48 i don't think that's chocolate. 06:44:55 I would think, I could make a program optimization by using two kinds, AST optimization and instruction optimization. These instructions would also include some pseudo instruction such as a branch target instruction. 06:47:18 By which I mean, each branch instruction must target a branch target instruction, and each branch target instruction must specify all possible places where it can come from. 06:48:37 ok i have trouble finding a link to a genuine mixing of chocolate with truffles 06:49:02 despite my memory of eating such from confectionary boxes 06:50:25 Do you expect this would work OK? 06:51:56 'Most "truffle oil", however, does not contain any truffles.' 06:53:39 whoa, whoa, whoa 06:54:07 today we had pizza with truffle oil at lunch and people were talking about that 06:54:16 oerjan: are you pizza 06:55:03 no. 06:55:52 perhaps it existed in my childhood when truffles were cheaper... 06:56:14 and now it's forever gone. as will soon be truffles themselves. 07:00:03 If truffles disappear, what will happen to truffle pigs? 07:00:48 bacon hth 07:01:13 Truffle bacon (fried in the last remaining truffle oil) 07:43:31 "XMLHttpRequest cannot load file:///[REDACTED]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access." 07:43:37 This *used* to work. 07:43:48 Guess they've added more security in it. 07:44:10 (The page trying to do the loading was another file:/// in the same directory.) 07:50:44 I'm afraid of sleeping in case I miss The Run 07:53:55 -!- shikhout has joined. 07:57:14 -!- shikhin has quit (Ping timeout: 264 seconds). 07:57:15 -!- shikhout has changed nick to shikhin. 08:18:41 -!- ais523 has quit. 09:10:22 -!- conehead has quit (Quit: Computer has gone to sleep.). 10:23:38 -!- MindlessDrone has joined. 11:03:13 -!- impomatic has quit (Ping timeout: 264 seconds). 11:09:06 * oerjan looks at terence tao's homepage, and suddenly realizes he could possibly have met him at the 1988 IMO. 11:09:10 oops 11:09:16 *terence tao's wikipedia page 11:10:47 oerjan, I'm pretty sure I did not 11:11:29 that not being born thing huh? 11:11:42 Yeah, it's a bummer 11:12:39 i am having this vague vision that there was a ridiculously precocious child there, but it's so vague i have no idea if i'm making it up. 11:12:58 Was it just a baby 11:13:14 no. 11:14:03 he'd have been 12, and at the IMO for the third time 11:14:39 What's the IMO 11:15:08 international mathematics olympiad 11:15:41 oh no 13 11:15:49 I went to that when I was a kid : http://en.wikipedia.org/wiki/Mathematical_Kangaroo 11:15:51 "He remains the youngest winner of each of the three medals in the Olympiad's history, winning the gold medal shortly after his thirteenth birthday. " 11:16:04 I am pretty pissed because I didn't win the kangaroo 11:16:31 not the same competition though 11:16:37 I am aware 11:16:53 I won a T-shirt there, but I lost it since :( 11:18:18 also this would be the year it was in australia, his home country 11:18:36 -!- Phantom_Hoover has joined. 11:18:47 Of the kangaroo? 11:18:58 COINCIDENCES GALORE 11:19:08 J. Edgar Hoover! 11:19:14 Why did you come to haunt us! 11:23:51 and the press were all over him, my vague memory vaguely claims. 11:24:07 which they would be, naturally. 11:24:44 1988, so long ago 11:25:11 the start of the happiest period in my life. 11:26:09 but oh so vauge. 11:26:13 *vague 11:30:24 -!- Slereah__ has joined. 11:30:33 Well fuck 11:31:45 well fucked? 11:32:04 We can only hope 11:33:49 -!- Slereah_ has quit (Ping timeout: 264 seconds). 11:35:27 -!- oerjan has quit (Quit: Latér). 12:08:25 -!- Slereah_ has joined. 12:09:13 -!- Slereah__ has quit (Ping timeout: 240 seconds). 12:19:36 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…). 13:36:08 -!- samebchase has joined. 13:54:19 -!- shikhout has joined. 13:57:50 -!- shikhin has quit (Ping timeout: 264 seconds). 13:57:51 -!- shikhout has changed nick to shikhin. 14:21:47 -!- boily has joined. 14:28:54 -!- nooodl has joined. 14:35:11 good սուրճ morning! 14:36:39 svyirch? 14:38:57 Compute richness indices and their standard errors from survey data. Huh? 14:39:11 ion: sourč̣. 14:39:56 -!- Sgeo has quit (Read error: Connection reset by peer). 14:41:19 Sorry. Google swapped letters and I didn't notice. svy-rich makes sense. 14:41:52 -!- nooodl has quit (Quit: Ik ga weg). 14:45:29 -!- nooodl has joined. 15:12:21 -!- atslash has joined. 15:14:57 The group was initially formed as a subunit of the female idol group Sakura Gakuin under the concept of a "fusion of metal and idol [music]".[4][5][6] None of the three members knew what metal music was before the inception of the band.[7] 15:14:58 http://youtu.be/WIKqgE4BwAY 15:18:49 -!- myname has quit (Ping timeout: 264 seconds). 15:22:44 wtf is "idol music" 15:22:57 fungot: please explain idol music 15:22:57 int-e: day an odd livid spot appears on his right he saw the tower plain against the southwest, and a peculiar sprinkling of angled edifices whose five-pointed ground plan roughly suggested modern fnord. 15:23:18 thanks, fungot 15:23:19 int-e: believe me, 15:23:23 I do. 15:26:28 fungot: That was a pretty good description, thanks. 15:26:28 ion: the captain, after landing, made carter a guest in his own blood and take a careful series of photographs which may yet be mine!" 15:28:11 ^style 15:28:12 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft* nethack pa qwantz sms speeches ss wp youtube 15:28:40 fungot: you are accurate and are making sense. I am disturbed. 15:28:40 boily: louder and louder, wilder and wilder, mounted the shrieking and drumming which accompanied the visible services. suydam, when questioned, said he thought the centre lay amid the pathless desert of arabia, where irem, the city hall, and sometimes bare earth with struggling greenish-grey vegetation. the houses are generally in solid blocks, and will fnord the prints for you to see. 15:40:55 -!- atslash has quit (Quit: Leaving). 15:57:58 -!- MoALTz has joined. 16:11:32 -!- boily has quit (Quit: DECONSTRUCTED SWEDISH CHICKEN). 16:15:34 -!- oklopol has joined. 17:06:32 -!- oerjan has joined. 17:14:36 What does "made X a guest in his own blood" mean, though? 17:16:01 @hoogle hInteract 17:16:02 No results found 17:16:17 Hmm, fungot is still using the f word. (The one that ends in d.) 17:16:17 int-e: " good god, manton, but what i can give to history, philosophy, and the certain reality of the horrors of the northern edge are 17:16:23 fizzie: given this is lovecraft, do you really want to know? 17:16:36 oerjan: huh, that would only work for sockets, right? 17:17:20 int-e: iirc it still prints to stdout 17:17:35 oh. 17:19:05 From MissingH, ah. It takes two handles. hInteract :: (HVIO a, HVIO b) => a -> b -> (String -> String) -> IO ()Source 17:19:15 oh ok 17:19:22 idrc then 17:19:48 and it didn't really fit the stackoverflow question anyhow. 17:20:01 wait a second. class Show a => HVIO a whereSource ... Show? Seriously? 17:20:43 i suppose they want something to put in error messages 17:20:57 (The "Source" gets added because I mark lines on hackage's haddocks by double clicking, but the "Source" link is all the way to the right on the page; I don't notice that it gets hilighted, too.) 17:21:14 heh 18:12:04 -!- Phantom_Hoover has quit (Remote host closed the connection). 18:12:51 -!- jix has quit (Remote host closed the connection). 18:14:13 -!- jix has joined. 18:15:31 -!- b_jonas_ has changed nick to b_jonas. 18:35:05 -!- Sgeo has joined. 18:38:48 -!- MindlessDrone has quit (Quit: MindlessDrone). 18:41:29 -!- MindlessDrone has joined. 18:48:08 -!- conehead has joined. 18:58:49 -!- Phantom_Hoover has joined. 18:59:43 -!- ahowe has joined. 19:11:46 -!- ahowe has left. 19:21:53 -!- ais523 has joined. 19:21:59 -!- ais523 has quit (Changing host). 19:21:59 -!- ais523 has joined. 19:22:57 http://youtu.be/qM9hH3suOpo 19:25:07 high voltage IO? 19:25:28 danger danger 19:25:32 `coins 19:25:35 brooncoin poutomycoin mincluecoin sublecoin solercoin oflabtcoin berhizzcoin fanjcoin commecoin thecoin rocucoin stoffcoin ~coin computnamentcoin discoin hemcoin chioncoin slikecoin bunsulebrash-01coin xigxacoin 19:26:57 i can't even riff on bunsulebrash-01coin, it's perfect in itself 19:38:57 bulbacoin anyone? 19:39:28 :D 19:39:31 twitch beat pokemon! 19:41:03 Yep. 19:41:17 Let's play pokemon card 19:41:43 Twitch Plays Professional Octopus of the World 19:47:29 I thought they were going to beat it eventually 19:53:01 Is it possible to never beat pokemon 19:54:19 -!- shikhout has joined. 19:54:21 Oops ISO 646 does not include German quotation mark symbols. 19:55:57 Jafet: yeah, the RNG Plays Pokémon game got itself stuck in an unwinnable state that I hadn't previouslyseen 19:56:00 *previously seen 19:56:04 there are some well-known ones 19:56:08 what are they? 19:56:17 -!- vasskon has joined. 19:57:50 -!- shikhin has quit (Ping timeout: 264 seconds). 19:57:51 -!- shikhout has changed nick to shikhin. 19:57:53 the one RNG Plays Pokémon found was to be in the Cerulean/Vermillion area with no Pokémon capable of learning Cut, no Pokéballs, no money with which to buy them, and no items on the map or trainers remaining from which to gain money (selling the items or prize money from the trainers) 19:59:01 Is that possible in the newer games too or does it prevent it? 19:59:48 the newer games attempt to prevent it, in various ways 20:00:12 for instance, all starter Pokémon can learn Cut, and the newer games prevent the releasing of your last remaining Pokémon that can learn an HM 20:00:22 But does it actually prevent it entirely, or are there ways to make the unwinnable state? 20:01:21 there is a mistake in Pokémon Diamond/Pearl/Platinum that allows you to trade away your last remaining Pokémon that learns Surf for a Magikarp, who does not learn Surf 20:02:09 while on an island that can only be left via Surf, Fly or Teleport, and neither Fly nor Teleport is necessary to reach that point 20:02:41 My opinion is it ought to be designed to be possible to be unwinnable states actually 20:02:44 in most cases, you can leave via fainting and returning to the Pokémon Center, but if you don't have any fishing rods (and instead obtained the Surfing Pokémon via trade), you can't get into any battles 20:03:12 oh, also there's a bug in Pokémon HeartGold/SoulSilver that can cause you to end up stuck in a wall while trying to leave a Pokémon Center 20:03:25 I don't know what triggers it 20:03:49 -!- vasskon has quit (Ping timeout: 264 seconds). 20:15:50 i laughed my ass off when i found out twitch blacked out in a pokemon center (i think it was) 20:17:06 I didn't know it is possible? 20:18:53 https://24.media.tumblr.com/da615f9d0888bc18ed240cff86b22764/tumblr_n1aee5IFCA1rvoha9o1_500.jpg 20:19:32 -!- MoALTz_ has joined. 20:21:43 huh that sounds like it shouldn't be possible 20:22:06 i guess it might be. pokémon red/blue are weird 20:22:27 -!- MoALTz has quit (Ping timeout: 252 seconds). 20:22:43 zzo38: you could always just pace around in one with a single poisoned dying pokémon in your party 20:23:12 Ah, OK 20:29:38 -!- shikhin has quit (Ping timeout: 264 seconds). 20:31:30 russia is going to invade ukraine: http://www.bbc.com/news/world-europe-26400035 20:32:26 russia has invaded ukraine. 20:32:40 yeah? 20:33:24 russian soldiers and mercs in unmarked uniforms were wondering around simferopol way before putin asking the duma. ¬_¬ russia 20:33:30 wandering 20:34:22 yeah the news stories I read were like "men with guns have taken over the airport! and they won't say who they work for!" 20:35:03 some of them are local militias 'maybe' 'who knows' 20:36:26 pretty great since http://en.wikipedia.org/wiki/Budapest_Memorandum_on_Security_Assurances too 20:37:01 Bike do you know things about international law 20:37:12 like, what, the lack of it? 20:38:11 -!- MindlessDrone has quit (Quit: MindlessDrone). 20:38:31 lexande also knows things about international law 20:38:39 people have already come up with excuses for violating this budapest thing but i forget them 20:38:58 lol how about the excuse "we have a lot of guns and nukes and we'll do what we want" 20:39:01 works for USA 20:39:25 internatinoal law is basically based on forced politeness. so they say something more legal-sounding 20:39:35 ukraine's parliament voted to send Yanukovych to the ICC 20:42:00 i wonder who hates the ICC more, USA or Russia 20:42:58 probably the african union :V 20:44:21 -!- mysanthrop has joined. 20:45:29 i guess the US has said they're not going to ratify it so 20:48:22 ais523: The HG/SS bug is actually quite hilarious. 20:48:49 ais523: If you go on the second floor of the Center before the Elite Four, you can't leave. 20:48:52 ... That's it. 20:49:04 nice. 20:50:33 -!- mysanthrop has changed nick to myname. 20:51:03 Gen IV seems like it was the buggiest gen outside of I. 20:54:16 Wow, that's... wow. 20:54:41 In gen I you could do a stone-evo without a stone. 20:54:55 Bike: http://en.wikipedia.org/wiki/American_Service-Members'_Protection_Act 20:55:02 pikhq: How do you do that? 20:55:35 In a battle where the stone-evo Pokemon leveled up, send out a Pokemon that has an index number equal to the stone's item number. 20:56:12 i expected that to be about okinawa from the name :V 21:03:32 -!- itsy has joined. 21:04:39 pikhq: it's not quite that simple, because you could fix it using the Cable Club 21:05:35 err, or whatever it's called in Gen 4 21:06:14 Bike: I believe the US has a designated country to invade should the ICC decide to sanction it 21:06:17 I forget which one 21:14:22 isn't the idea that we would invade .nl because that's where the court is? see above link 21:15:30 ah right 21:16:10 I bumped into Clive Sinclair today, while wearing a Sinclair t-shirt :-) 21:16:57 * Bike looks up some things, notes that he has been confusing denmark and holland for a while 21:17:45 dutch != danish 21:17:59 donut != danish 21:18:51 Both (I mean Denmark and the Netherlands) are p. flat, though. 21:19:04 the netherlands has too many names. 21:21:04 * oerjan wonders if an attack by one NATO member on another triggers the collective defense article or not 21:21:24 sure hope so, that sounds awesome 21:21:24 "In May 2011, the Netherlands was ranked as the "happiest" country according to results published by the OECD." 21:21:27 Nice scare quotes there. 21:21:37 it'd be especially amusing if the attacker complied with their treaty obligations via declaring war on themself 21:21:42 yes 21:21:59 the united states has occupied the united states 21:22:18 actually, that sounds like a nomic-worthy loophole 21:22:23 declare war on another NATO member 21:22:25 then declare war on yourself 21:22:30 then shortly afterwards, surrender to yourself 21:23:05 "Norway? More like NATOrway!" 21:24:05 now you've been defeated so the rest of NATO doesn't need to continue the war any more 21:24:36 "The Parties agree that an armed attack against one or more of them in Europe or North America shall be considered an attack against them all and consequently they agree that, if such an armed attack occurs, each of them, in exercise of the right of individual or collective self-defence recognised by Article 51 of the Charter of the United Nations, will assist the Party or Parties so attacked ... 21:24:42 ... by taking forthwith, individually and in concert with the other Parties, such action as it deems necessary, including the use of armed force, to restore and maintain the security of the North Atlantic area." 21:24:46 (That's the Article 5.) 21:25:23 hm according to the wp NATO article, lithuania has invoked article 4 on russia now 21:26:48 russia isn't attacking lithuania, is it, though? 21:27:12 last I checked, there was a bunch of controversy about whether it was attacking ukraine or not, that's the problem with an information vacuum 21:27:29 it's a fact/lie, not an opinion, but one that it's hard to determine the truth of 21:27:49 I guess you could argue that as per Article 1/8 once you do declare war on another NATO member, you are automatically no longer a NATO member? 21:28:10 http://ic.pics.livejournal.com/caurug/39552154/7544/7544_1000.gif 21:28:37 there's a yahoo answers page about this, it's about the quality you'd expect 21:29:30 kmc: I liked that cathedral takeoff ending shown on that Tetris page (I think) you linked people to. 21:29:34 yes! 21:30:07 (Though it did make me expect a liftoff in that gif too.) 21:33:27 > sort "diplomacy" == sort "madpolicy" 21:33:29 True 21:33:59 mentioned on straight dope forum 21:34:21 http://anagramatron.tumblr.com/ 21:34:46 -!- augur_ has quit (Remote host closed the connection). 21:35:12 -!- augur has joined. 21:35:32 http://www.tedunangst.com/flak/post/a-brief-history-of-one-line-fixes 21:37:36 kmc: ugh the "how is this possible??" tone 21:37:44 i like the */ one 21:39:03 also https://freedom-to-tinker.com/blog/felten/the-linux-backdoor-attempt-of-2003/ 21:39:40 nooodl: I think -Wall does actually catch that X bug. 21:39:46 I think X used to have a very large amount of warnings under -Wall though. 21:39:49 -!- augur has quit (Ping timeout: 264 seconds). 21:40:19 YMMV on whether you consider that acceptable for software that gets direct access to your hardware and which every end-user application gets to talk extensively to with a complex protocol 21:40:42 I think the "how is this possible" tone is trying to be a joke directed to all people saying "how is this possible" to the Apple thing. 21:41:16 (Though I might be just imagining that.) 21:41:33 nice memset 21:41:39 fizzie: the bugs are instructive, but the comments have negative value to me ... 21:41:50 " Pretty obvious what went wrong here: using goto with an unbraced if. Even novice programmers know that using the correct coding style prevents refactoring errors." 21:41:54 it's obviously a joke like fizzie says 21:41:59 since that has nothing at all to do with the bug above it 21:42:00 Also can somebody explain the logic of "They all date from before 2013. That’s how we know the NSA wasn’t involved." to me? 21:42:02 -!- Sprocklem has joined. 21:42:06 but is relevant to the apple bug 21:43:16 int-e: joke 21:43:19 A joke. 21:44:37 aj, ok, e 21:44:48 fungot: joke please? 21:44:48 int-e: such were the idle tales of the fnord 21:45:20 :D 21:45:25 fungot wins, compared to that link. 21:45:26 int-e: vii. edgar allan poe. poe's fame has been subject to curious undulations, and it was better than human material for maintaining life in fnord fragments, and it is in fact quite dead, its sprawling body imperfectly fnord and infested with queer animate things which have nothing to do but fnord, which is set with its walled garden in a great closed van the entire contents of his mind, and possessed of a kind of triumph whi 21:45:34 `addquote int-e: such were the idle tales of the fnord 21:45:35 kmc: " queer haow picters sets ye thinkin'. take this un here near the front. hey yew ever seed trees like thet, with big leaves a fnord' over an' daown? and them men them can't be fnord they dew beat all. kinder like fnord, fnord 21:45:37 1172) int-e: such were the idle tales of the fnord 21:48:40 I don't approve of fungot's proliferation of the f-word. 21:48:40 int-e: man are supreme merits, and stand free to worship fnord independence, self-respect, and individual personality joined to extreme grace and beauty as typified by the cool, lithe, cynical and unconquered lord of the great 21:50:48 -!- copumpkin has joined. 21:51:40 Yes, well, fixing things is so hard. 21:55:50 is it st. fungot's day 21:55:50 kmc: at about fnord a.m., and covering such prodigious spaces that carter wondered whether or not he will ever come back, i cannot conceive these things as aught but fnord and actually beautiful; and touches of gray in the thick of the chase, and compare his calculating patience and quite study of his terrain with the noisy floundering and pawing of his canine rival. it 21:56:00 ^style 21:56:00 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft* nethack pa qwantz sms speeches ss wp youtube 21:57:01 https://github.com/mozilla/rust/blob/551da0615764853153db944063ae2e271414a71b/src/libstd/rt/util.rs#L92-L141 21:58:52 -!- augur has joined. 22:01:30 Brohams 22:01:40 http://www.buzzfeed.com/ludwigwittgenstein/fantastic-ways-to-distinguish-between-sense-and-nonsense the greatest listicle in history 22:01:45 What's a good C compiler that's 64 bits and where I can modify the Assembly file 22:01:57 gcc -S, isn't it? 22:02:02 gcc 22:02:06 Bike.zzo38.moed++ 22:02:28 Codeblocks can use gcc, right? 22:02:35 Slereah_: you may find the assembly output of gcc somewhat hard to read, though 22:02:35 'cause I ain't got no linuxeses 22:02:43 it's full of various directives / metadata / etc. 22:02:47 "Do you know about philosophical investigations?" 22:02:56 kmc: is any compiler's asm not going to be 22:03:05 i don't know 22:03:08 just a general warning 22:03:14 (probably some toy compilers, though) 22:03:39 also compilers can write unholy weird assembly (especially on x86) 22:03:39 anyway i imagine llvm lets you output ir bla bla bla 22:04:00 for all its complexity, it is possible for humans to write x86 assembly in a clear and straightforward style... but compilers have no such scruples 22:04:11 Slereah_: if you run into something you don't understand I will try to explain it to the best of my ability 22:04:20 disassembling the binary instead of asking for assembly output might be more readable because some of the crud gets removed (and/or moved to other sections out of the way) 22:04:22 Thanks. 22:04:30 What kind of weirdery can I encounter though? 22:04:58 But wouldn't disassembling the binary get rid of the tags? 22:05:14 it'll still have symbols in it. 22:05:45 ah yes olsner speaks the truth 22:05:56 yes, it will still have symbols (unless you run 'strip' on the binary) 22:06:00 What's a good x86-64 disassembler? 22:06:07 the standard on *nix is objdump -d 22:06:16 What about on not-nix 22:06:19 yeah, you shouldn't need IDA or nothin 22:06:20 On the windows 22:06:33 @g windows disassembler 22:06:34 Maybe you meant: gazetteer get-shapr get-topic ghc girl19 google googleit gsite gwiki v @ ? . 22:06:37 er right. 22:06:40 @google windows disassembler 22:06:41 http://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers 22:06:41 Title: x86 Disassembly/Disassemblers and Decompilers - Wikibooks, open books for an ... 22:06:44 @gazetteer 22:06:44 gazetteer ... U.S. Gazetteer (2000) 22:06:57 @gazetteer windows disassembler? 22:06:59 No match for "windows". 22:06:59 No match for "disassembler?". 22:07:01 Slereah_: look, trying to do any interesting software development on Windows is just making your life unnecessarily hard 22:07:12 When is Fnord A.M.? 22:07:15 Well 22:07:18 Slereah_: install Linux or get a Linux VM (locally or some cheap VPS or something) 22:07:23 I guess I could put on a virtual linux 22:07:28 Amazon will give you a free EC2 instance for a year 22:07:40 @g gazeteer rain 22:07:41 Maybe you meant: gazetteer get-shapr get-topic ghc girl19 google googleit gsite gwiki v @ ? . 22:07:44 @gazeteer rain 22:07:45 No match for "rain". 22:07:56 or just use cygwin. 22:08:01 you could always copy the windows binaries to a linux computer and run an objdump compiled with PE-format support there 22:08:20 it's less pain than setting up a linux vm with ssh 22:08:22 or you could use zzo's inevitable 6502 operating system for all your software development 22:08:23 that seems like more trouble than installing gcc / binutils from Cygwin or MinGW 22:08:39 cygwin is easy to install, although it's hueg 22:09:06 but seriously, if you want to learn this stuff, you should have a linux of some kind 22:09:36 clang's -S output can be occasionally more readable than gcc's. 22:11:12 cygwin is a linux of some kind enough for software development 22:11:17 though configure scripts will always be slow 22:11:55 And gcc -S has a -fverbose-asm which adds some comments about which variables each instruction refers to, though that can be p. useless. 22:12:09 i ahve a pretty good book on "hacking" (it's titled that) that teaches basic x86 and goes through simple privilege escalation and mitm and stuff 22:12:13 cygwin won't let you do things like write standalone assembly programs that make system calls 22:12:16 for kernels like, 2.6, though 22:12:45 Sooo 22:12:50 what's a good destro these days 22:13:08 kmc: I'm sure you *can* just int 2e it up, can't you? 22:13:23 fizzie: the Windows syscall API is undocumented, isn't it? 22:13:25 and unstable 22:13:27 another trick is (counterintuitively) to enable optimizations, I find that tends to make the assembly more straight-forward 22:13:31 kmc: Yes and yes, sure. 22:13:32 the stable API is linking to dlls 22:13:58 there is some unofficial documentation around, I think 22:14:11 i hear it's a nicer API than the stable one 22:14:23 usually allowing things to change allows them to get/stay nice 22:14:26 Eh fuck it 22:14:31 Slereah_: debian or ubuntu 22:14:33 I'll just put in scientific linux 22:14:39 whatever 22:14:53 SciLinux is based on RHEL which means a lot of stuff will be p. out of date 22:15:03 you might want to add https://fedoraproject.org/wiki/EPEL at least 22:15:08 Some of our cluster nodes run Scientific Linux, I think. 22:15:12 Let's go with Debian then 22:17:03 http://cdimage.debian.org/debian-cd/7.4.0/amd64/iso-dvd/ < is it on 3 DVDs? 22:17:32 Normally I just go with the http://cdimage.debian.org/debian-cd/7.4.0/amd64/iso-cd/debian-7.4.0-amd64-netinst.iso 22:17:48 Thanks. 22:17:52 (It's one small CD, installs from network.) 22:18:09 Hm, will it work okay on virtual box? 22:18:22 I've installed it on VirtualBox a couple of times. 22:18:34 The default networking setup it does should be fine. 22:18:35 Thanks. 22:19:36 In the meanwhile, let's see what Codeblocks can do assembly-wise 22:21:00 (Or I can't remember if VirtualBox has any networking by default, but the needs-no-configuration user-mode NAT thing anyway.) 22:21:02 `coins 22:21:05 subtcoin lycyclickcoin undercoin sendreimachcoin stacoin fectioncoin wikicyclipongouyhis=thannonoremmentanandoffe7e45ecoin fervediumcoin rankcoin fiftyreacoin utomocoin souldcoin mdpncoin isccoin sorthoecoin hcbaesiecoin clecoin quaicoin vejcoin yabacoin 22:21:19 `bills 22:21:19 -!- oerjan has quit (Quit: Nitecoin). 22:21:20 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bills: not found 22:21:20 wikicyclipongouyhis=thannonoremmentanandoffe7e45ecoin is gonna be big 22:21:29 When will I have some bitbills! 22:21:43 Slereah_: http://onechicklette.files.wordpress.com/2012/06/post-no-bills.jpg?w=625 22:21:56 `run coin | sed -e 's/coin/bill/g' 22:21:57 bash: coin: command not found 22:22:04 `run coins | sed -e 's/coin/bill/g' 22:22:07 son-of-unbbill auguebill oristbill xigbill lendstrebill redgrandbill rustbill licizativebill milebill justitbill diacentbill posbill butbill acrutabill ofestfrograssedadolpson-of-unbabtiliumbill flatlebill fittbill itfimplebill aminischefernatnikbill plinitribill 22:22:09 `` coins | sed s=coin=bill=g 22:22:12 orbiccisinbill wilsonbill scombiebill judibill bfmbill negotbill scequersenbill dimcrbill reversbill barebill conveyonnahbill genbill unitbill rinebill dzzzzbill byterbill zehntermderliardaunallersange/indbill intertionbill brovicbill addlebill 22:22:14 son-of-unbill 22:22:40 ofestfrograssedadolpson-of-unbabtiliumbills go well with wikicyclipongouyhis=thannonoremmentanandoffe7e45ecoins. 22:23:08 = is a good sed separator thx 22:23:10 void main(void){int x;} 22:23:15 That's a pretty bold program 22:23:19 Now let's see 22:23:21 main should return int 22:23:30 It's not mandatory! 22:23:56 It is if you want to follow the standard. 22:24:15 I think if you use "void main()" then the exit code of your program (if you return rather than calling exit()) will be undefined garbage 22:24:24 and C++ explicitly forbids it 22:24:33 Humbug! 22:24:45 A pox on conventions! 22:24:48 kmc: I use = as a regex separator quite a bit 22:24:50 A POX I TELL YOU 22:24:52 a pox on correctness 22:25:30 I will use gotos and make all my fucking classes public! 22:25:44 I just got "40" back out as an error code from void main(void){int x;} which was p. random. 22:26:07 Error codes only matter if you're on an OS 22:26:51 doesn't C++ have free-standing implementations? 22:27:37 Le linux is downloaded 22:27:40 Yes. g++ -ffreestanding for instance. 22:27:43 Let's install it 22:27:52 g++ -fuck-tha-police 22:28:50 -!- MoALTz_ has quit (Quit: Leaving). 22:29:08 The honorable judges MC RAM, Ice Cube and Easy-Motherfucking-E standing 22:29:19 "It is implementation-defined whether a program in a freestanding implemeentation is required to define a main function.", hmm, that c++98 22:29:26 C++2003 says the same. 22:29:29 but why would they change it :) 22:29:42 Except with "implementation" and not "implemeentation". 22:30:17 It does say: "It shall have a return type of type int, but otherwise its type is implementation-defined" that presumably refers to hosted implementations. 22:30:30 In contrast to C where the implementation-defined forms of main can change the return type too. 22:30:46 fizzie: my fault, I can't type. 22:32:28 Slereah_: int main is mandatory per the spec 22:32:39 however in C99 you can do int main() { ... } and omit the return 0 22:32:58 C99 freestanding explicitly doesn't require main to return int. 22:33:16 Of course, C99 freestanding has a completely implementation-defined entry point. 22:33:21 clang -fheinous-gnu-extensions 22:33:53 elliott : I thought void main(void) was allowed for historical reasons? 22:34:02 Nope. 22:34:08 Also no compiler ever bitches about it 22:34:32 That's kinda irrelevant. What GCC and C99 permit are only loosely correlated. 22:34:49 Well in that case 22:34:53 A POX ON C99 22:34:54 whois.nic.fish is an alias for whois.donuts.co. 22:34:55 A POOOOX 22:35:04 $ echo 'void main(void) {}' | gcc -x c -Wall - -o /dev/null:1:6: warning: return type of ‘main’ is not ‘int’ [-Wmain] 22:35:07 *shakes old man fist* 22:35:11 put a newline before there 22:35:14 Especially in GCC's default mode, which is C90+crazy. 22:35:31 craycray, really 22:35:33 i like C99 22:35:36 haters gonna hate 22:35:41 I'm not gonna let the machines control me 22:35:42 I <3 C99. 22:35:43 C jumped the shark at C99 22:35:47 I have my aluminium hat 22:35:51 err, sorry 22:35:52 jumped the _Shark 22:35:57 haha 22:36:31 Well software is installing 22:36:37 Might take a while apparently 22:36:59 Should I just use gcc for C stuff on le linux? 22:37:28 yes 22:37:31 gcc is the standard c compiler on linux 22:37:41 Does it also do the decompiling? 22:37:48 no, that's objdump 22:37:49 do you mean disassembling? 22:37:53 objdump -d ./myprog 22:37:53 Ah yes 22:37:55 which is i think in binutils, which is probably there already 22:37:55 Thanks. 22:38:03 yes or installing gcc will install binutils, at the least 22:38:10 Well I will discover it soon enough 22:38:15 on debian you should: apt-get install build-essential 22:38:54 I should get a second PC someday 22:39:05 Usually when I get a new PC I just cannibalize the old one and throw it away 22:39:16 I'll just keep it next time 22:39:27 "apt-get install packaging-dev" is better 22:39:45 if you want an IDE there are many 22:39:50 but i can't recommend a particular one 22:45:27 -!- yorick has joined. 22:47:28 ahoy solid matrix detainees 22:47:36 I always use GCC's default "GNU89" mode. 22:47:47 What does "C jumped the shark at C99" mean? 22:47:53 quintopia: welcome to the desert of the real 22:48:36 zzo38: look up "jumping the shark" on tvtropes 22:48:41 zzo38: "jumping the shark" is a reference to a TV show that got more and more desperate for ratings, doing ridiculous things, and eventually had a character jump over a shark 22:48:46 at which point nobody took it seriously any more 22:48:46 Hm 22:49:02 apparently the compiler doesn't actually translate int x; if you don't use it 22:49:06 Let's add = 0 22:49:20 movl$0, -4(%rbp) 22:49:23 Merfect 22:49:25 ais523: why not name the show? having given us more spinoffs than any show i know of, it's certainly iconic 22:49:35 quintopia: because I don't know what iti s 22:49:36 *it is 22:49:52 Happy Days 22:50:19 What's $0 in the compiler assembly? 22:50:22 constant 0 22:50:33 beware that there are two styles of assembly syntax for x86, AT&T style and Intel style 22:50:36 Beware the March of Dimes 22:50:39 Linux / GNU tools mainly use the former and that's what you're looking at 22:50:47 but most other stuff (esp. Windows) uses the latter 22:50:58 What's the difference with just 0? 22:51:03 Or was I using the other convention 22:51:03 they differ in various ways, the most important is that AT&T does mov %src, %dst and Intel does mov dst, src 22:51:12 where %src is a register like %rax, %rbx, etc. 22:51:22 Oh fuck, I guess I was using the other convention 22:51:23 Dang 22:51:24 Slereah_: 0 would be a memory operand which reads whatever's at address 0 22:51:29 (in AT&T syntax) 22:51:42 Are there any compiler that uses the other convention? 22:52:04 objdump -M intel -d 22:52:09 Thanks. 22:52:16 as for getting gcc -S to output Intel syntax, I don't know 22:52:20 I doubt you can 22:52:26 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…). 22:52:27 I don't really want to learn another syntax again 22:52:37 I have successfully extracted the Sheepie's Odyssey p3 22:52:38 mp3 22:52:51 but gcc's assembler (as) can accept intel syntax, if you put ".intel_syntax noprefix" as the first line in the assembly file 22:53:18 I guess eax is the register where you put the error code in gcc? 22:53:21 Maybe you could also convert GCC's output to Intel syntax using external programs 22:53:29 but NASM is probably a better assembler to use on Linux, and it takes Intel syntax 22:53:30 Or returns in general? 22:53:31 kmc: gcc's assembler is called gas 22:53:36 ais523: ok 22:53:44 you need to know AT&T syntax if you want to use GCC in-line assembly in C codes, of course 22:54:08 objdump can output intel 22:54:09 Slereah_: yes http://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI 22:54:11 I think gcc -S can too. 22:54:51 gcc -S -masm=intel 22:56:27 And if you do -masm=intel, you can use Intel syntax in inline asm() statements, too. 22:57:05 Neat~ 22:57:55 "Recent examples include studies on duck penises, shrimp running on a treadmill, robotic squirrels, and snail sex." 22:58:25 Bike: Ig Nobels? 22:58:40 studies that politicians have said shouldn't be funded 23:01:04 Maybe they will regret it when snails destroy their crops 23:02:54 ais523: "as" (or "GNU as") is arguably the proper name, and GAS just a nickname. 23:03:04 fizzie: ah right 23:03:15 "This file is a user guide to the gnu assembler as (GNU Binutils) version 2.24." 23:03:34 The manual itself does call it "gas" or "GAS" here or there, though. 23:03:53 If I say "It's a GAS!", will I be murdered 23:06:39 yes. rip 23:07:12 flumping hack dash is a CAS CASCAS 23:09:42 "libcuda1 [non-free] recommends libcuda1-i386 (provided by libcuda1-i386:i386 331.49-1)" that's kind of strange. 23:10:09 "This metapackage helps the automatic installation of the 32-bit NVIDIA CUDA library when installing libcuda1 on amd64 with foreign architecture i386 enabled." 23:10:41 "recommended" currently has the semantics of "will install by default but doesn't break the build if it can't be installed" 23:11:11 Yes, but I don't think amd64 packages generally tend to recommend the i386 versions of those same packages. 23:11:30 I'm sure there's some particular-to-CUDA reason for it in this case, though. 23:12:09 How worried should I be about eating something that says it's 49% DV sodium? 23:12:32 cup noodle or something? 23:12:38 (The changelog entry -- "Add libcuda1-i386:i386 package that can be recommended from amd64 packages that want to make the 32-bit CUDA runtime available." -- isn't terribly verbose either.) 23:12:44 Bike: yeah 23:12:55 just don't rely on it too much and it should be fine 23:13:46 Well, was only planning on having one tonight 23:14:07 Be aware that that's 49% per serving. 23:14:10 It's two servings. 23:14:21 -!- trout has changed nick to variable. 23:15:25 movq%rsp, %rbp < that's to reinitialize the stack, right? 23:16:02 In AT&T syntax, that's equivalent to Intel "mov rbp, rsp" and it's to set up rbp as a frame pointer. 23:16:41 pikhq: says serving size is one container 23:16:42 It's to avoid over-popping? 23:16:49 Define the top of the stack as the new base? 23:17:00 So that you can't touch what's beneath? 23:17:36 It's for all the reasons why you'd generally want to have a frame pointer. Can be helpful for debugging, provides a handy reference point to access local variables, etc. 23:17:59 It doesn't *enforce* anything. 23:18:30 (The value of rbp doesn't affect the behavior of push/pop at all.) 23:18:44 Oh 23:18:49 also enables alloca implementations 23:19:15 Can I just put water in a styrofoam cup and microwave it? 23:19:18 (which move the stack pointer, but leave the frame pointer intact) 23:19:33 int-e: Does glibc alloca() break if you compile with -fomit-frame-pointer? 23:19:43 glibc doesn't have an alloca(). 23:19:48 alloca() is provided by GCC. 23:20:17 Well, does GCC alloca() break if etc. 23:20:33 And -fomit-frame-pointer only tells GCC to omit the frame pointer in cases where it's unneeded. 23:20:54 So no, it does not break in that case. 23:21:02 just don't mix alloca() and VLAs 23:21:06 It just simply fails to omit the frame pointer IIRC. 23:21:08 if you mix alloca() and VLAs you're gonna have a bad time 23:21:10 Yeah, those two mix weirdly. 23:21:29 Ah, I see 23:21:35 It's a handy reference for variables 23:21:44 Since local variables are put in the stack 23:22:01 it's like the top and bottom of a mini-heap on the stack. 23:22:06 Adorable 23:22:38 Storing a base pointer also makes it quite easy to move the stack pointer to what it was on entry. 23:23:01 To be honest, it's much more handy when it comes to 16-bit x86 code. 23:23:12 (Because there's no [sp+X] addressing mode.) 23:23:19 Ah yes 23:23:29 Because the compiler doesn't actually push and pop here 23:23:37 It just writes movl$0, -4(%rbp) 23:23:40 early intel processors much encouraged this because they didn't offer sp-relative addressing. 23:24:48 Whaaat 23:24:55 oh and they had special instructions called enter and leave, for setting up and removing stack frames. I don't think they were ever used. 23:24:59 I do if(x) and it does a cmpl? 23:25:09 Shouldn't it just do a jz? 23:25:09 Slereah_: yes? 23:25:14 int-e: they're used in every function by some compilers 23:25:18 Slereah_: no, the flags need to be set first 23:25:28 Ah right 23:25:34 I'm thinking of what's its name 23:25:36 MIPS 23:25:54 The x86 conditional jumps are based on the condition flags, so yeah. 23:25:59 Even if the flags were set by a previous instruction, if you're not compiling with optimizations on the compiler's not likely to notice that. 23:26:16 Let's try! 23:26:34 Nope, doesn't do it 23:26:40 ais523: I said the wrong thing. I believe the explicit sequence was faster, except perhaps on the 80286 that introduced the instructions (if it wasn't the 186, I never know) 23:27:45 Also... x++ is translated as addl$1, -8(%rbp) ? 23:27:47 Oh, has jcxz made it to 64 bit mode? *checks* 23:28:03 Why not inc? 23:28:35 apparently. 23:29:26 Wait, does inc work on memory? 23:29:43 Slereah_: It'd be only 1 byte smaller. Perhaps the compiler writers didn't think that worthwhile. 23:29:55 Dunno 23:30:00 Slereah_: "Assembly/Compiler Coding Rule 33. (M impact, H generality) INC and DEC instructions should be replaced with ADD or SUB instructions, because ADD and SUB overwrite all flags, whereas INC and DEC do not, therefore creating false dependencies on earlier instructions that set the flags." 23:30:01 Seems a pretty natural translation? 23:30:05 (Intel optimization manual.) 23:30:13 Ah, thanks. 23:30:30 yes, thanks 23:30:35 Woo, Linux is installed 23:31:56 (The fact that not all flags are affected did occur to me, but I didn't think that the processor would then assume additional dependencies ... for things using just the zero flag, for example.) 23:32:23 From what I recall, it doesn't track individual flags separately. 23:32:46 that makes sense, but doesn't meet my expectations. 23:34:21 "inc r32" (40 +rd) used to be whole two bytes shorter than "add r32, 1" (83 /0 ib; and correspondingly for r16) but then the one-byte INC opcodes 40..47 were repurposed as REX prefixes in 64-bit mode. 23:34:43 yes. evil, nasty AMD. 23:35:44 gcc -S -masm=intel works, thanks! 23:35:54 You can still make GCC use INC x instead of ADD x, 1 with -Os ("optimize for size"). 23:36:16 Are all the .cfi just markers? 23:36:34 Do they do things or are they just there for debugging 23:36:40 Debugging information directives. 23:36:53 And/or for exception handling, I guess. 23:36:59 Can I ask them to go away? 23:37:08 what happens if you generate code for AMD? hmm. 23:38:06 http://sprunge.us/IScR -- that's an inc. 23:38:23 "These directives tell gas to emit Dwarf Call Frame Information tags which are apparently used to reconstruct a stack backtrace when a frame pointer is missing." 23:39:13 I do a putchar, and it just does "call putchar"? 23:39:16 I am disappoint 23:39:30 -march=athlon64 generates an inc. good. 23:39:41 Heh, using -Os also makes GCC do a plain "ret" instead of "rep ret" (when specifying no particular processor to optimize for) for the empty function. 23:39:56 (The whole "rep ret" thing is really silly.) 23:40:15 Is there a way to generate the assembly file with the library function directly in it? 23:40:18 Inline, if you will 23:40:43 static link the binary? 23:41:06 I think even AMD's later optimization manuals changed the recommendation from "rep ret" to something that's not as blatantly invalid. 23:41:25 Bike: That wouldn't include it in the assembler source, since no linking is involved at that time. 23:41:37 yeah i'm pretending Slereah_ is going the objdump route 23:41:56 Well let's try the objdump then 23:42:06 As soon as the VM stops lagging 23:42:35 i don't know how to do static linkage though. who even does that any more 23:42:42 It (probably) won't inline the call inside the function, but if you link it statically, it'll be part of the binary. 23:43:06 It's unfortunate I don't know what it means 23:43:08 you might be better off just looking at glibc source... 23:43:11 (Your objdump -d output is likely to be... somewhat big.) 23:43:20 ok, well, when you write a program you are almost certainly going to need libraries 23:43:33 in 'static linking' you accomplish this by basically just including the entire library binary in your program 23:43:50 Can't the compiler just include the used functions? 23:44:03 that would still mean a billion copies of p utchar on your drive, mon 23:44:10 Slereah_: it does 23:44:15 It's done on a object file by object file basis. 23:44:18 Sure, but this isn't for making programs right now 23:44:21 well, the used object files, but static libraries are built with one object file per function for that reason 23:44:26 Just to look at how it is built 23:44:34 static linking is usually inefficient, obviously, so nowadays you usually use 'dynamic linking', where you put in your program a thing that says 'yo i need so and so library' 23:44:50 141478 lines of output for objdump -d on a statically linked int main(void) { putchar(42); } program. 23:44:58 and then when the program is run, t he interpreter (yes there is one) looks at that and includes the library binary at runtime instead. 23:46:00 fizzie: 986 if you use musl instead of glibc. 23:46:28 let's see, where's that one paper on the subject 23:46:31 pikhq: So... glibc is over 143 times better, right? 23:47:13 oh, this is good. http://repzret.org/p/repzret/ 23:47:15 Yeah no 23:47:24 But the numbers are bigger! 23:47:33 http://www.akkadia.org/drepper/dsohowto.pdf i think this was the one 23:47:51 Slereah_: this will probably be informative for you. 23:48:34 int-e: Right, so it was "ret 0" that they changed the recommendation to. 23:49:54 Damn 23:50:03 The disassembly of the program is pretty fucking huge 23:50:19 welcome to the world 23:50:42 fizzie: I like the qemu bug in the end. 23:50:48 glibc is... kinda not even remotely meant for static linking. 23:50:57 ais523: Heh, "python3-numpy" lists as dependencies "python", "python3.3" *and* "python3.4" all. (In sid, that is.) 23:51:31 how coincidental, when i searched for this article by that asshole glibc maintainer i found something deriding static linking too 23:52:04 Let's remove the putchar 23:52:07 -!- augur has quit (Remote host closed the connection). 23:52:08 Should slim it down a bit 23:52:21 Won't help, all that code is being pulled in by the glibc entry point. 23:52:27 Nooooo 23:52:33 glibc is really wonky with static linking for that matter. It dlopens stuff. 23:52:51 Goddamn 23:53:01 and you wonder why i want to do assembly without an OS in the way! 23:53:05 pikhq: Hey, it did help "a bit"; from 141478 lines to 141380. 23:53:06 Look at all that bullshit 23:53:10 For an empty program 23:53:25 I do wonder why you are looking at the bullshit. 23:53:30 same 23:53:47 Since it's not at all relevant for doing some assembly. 23:54:11 http://sprunge.us/REEL Here, have something saner. 23:54:20 well everyone learning assembly goes through the 'wow this is so inefficient! i can do better than this' stage, right. or was that just me 23:54:20 I am curious! 23:54:31 Well I understand why it is there 23:54:44 Because standardization and having to work with everything else 23:54:48 When discussing glibc, this is trivially true... 23:55:09 glibc is kinda a giant pile of accumulated cruft. 23:55:14 It's just not really necessary for just writing some assembly in a vacuum for fun 23:55:30 well, no. you could ahve just left it dynamically linked. 23:55:39 Well right now there's nothing to link 23:55:44 Because the program is empty 23:55:59 what is your program exactly? i thought it had putchar 23:56:06 I removed it 23:56:10 now it is return 0; 23:56:13 the main init stuff i guess, i've never been totally clear on how that works 23:56:21 That's not empty at all. 23:56:23 For the record, the line counts of objdump -d on a dynamically linked empty program and a single putchar are 170 and 175 lines, respectively. 23:57:10 You might be interested in http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html in respect to a "return 0;" program, though. 23:57:29 Thanks. 23:58:07 (It's still related to writing programs for an operating system, but still.) 23:58:09 fizzie: written by one of the world's best INTERCAL programmer 23:58:12 *programmers 23:58:27 The best out of three? 23:59:04 I'm imagining some kind of an Elo ranking for INTERCAL programmers. 23:59:12 Is it even safe to eat other foods if this isn't filling? 23:59:35 You are going to make a Elo rankings for INTERCAL programming? 23:59:56 we'd fucking better