←2014-02-28 2014-03-01 2014-03-02→ ↑2014 ↑all
00:10:01 -!- yorick has quit (Read error: Connection reset by peer).
00:14:04 -!- tromp has joined.
00:18:19 <Sgeo> http://explosm.net/comics/3479/
00:21:41 <Phantom__Hoover> poor quintopia
00:22:20 <Bicyclidine> 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 <quintopia> 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 <kmc> `coins
01:46:51 <HackEgo> keecoin braemcoin spacecoin fluracoin wunnedcoin wisendstorycoin ctorcoin askingcoin smongcoin hsemecoin .gercoin blacecreadcoin c-logincoin marquistcoin entecoin weacoin provinsomskjcoin cilacoin tinycoin porigcoin
01:48:39 <ais523> tinycoin seems very much like a real one
01:48:47 -!- vravn has quit (Excess Flood).
01:49:14 <Bike> i'll take ciliacoins
01:50:39 <ais523> meanwhile, askingcoins don't actually exist, but there are nonetheless many people trying to buy them for exorbitant prices
01:50:45 <Phantom__Hoover> porigcoin will be the currency of an independent scotland
01:50:46 -!- vravn has joined.
01:52:38 <ais523> 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 <Sgeo> Am I allowed to find it funny that there is a sense in which Java is safer than Haskell?
02:02:09 <Sgeo> (Although not really since a library in Haskell can do the same thing)
02:02:59 <Sgeo> 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<TheClassInQuestion>, which is still a usable object
02:05:43 <zzo38> You can do the same in Haskell you can have a type parameter which doesn't do anything too
02:07:02 <zzo38> ?messages-loud
02:07:03 <lambdabot> kmc asked 6h 53m 55s ago: What do you think of the subroutine AC82 documented in http://meatfighter.com/nintendotetrisai/
02:07:37 <kmc> ais523: hm do you know why?
02:08:11 <kmc> Sgeo: sounds like data Proxy a = Proxy
02:09:37 <ais523> kmc: just an idea at what the name would be appropriate for
02:09:47 <kmc> i meant re scotland
02:10:09 <ais523> 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 <kmc> currency union with england seems like a sticking point
02:10:34 <kmc> yeah
02:10:36 <ais523> 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 <ais523> fwiw, I'm broadly in favour of the EU, but against the euro
02:10:56 <kmc> are they officially refusing it or is it just speculation still
02:11:18 <ais523> 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 <kmc> nobody much wants scotland to join the euro do they
02:13:37 <kmc> anymore
02:14:29 <ais523> I don't see any real benefit that would come from it
02:15:24 <ais523> 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 <kmc> it's hard to be truly independent if you don't have control over monetary policy
02:17:20 <ais523> indeed
02:17:50 <ais523> also, I'm not entirely sure what you call the /other/ country left over if Scotland becomes independent
02:18:12 <kmc> United Kindom of Some of Britain and Northern Ireland
02:18:12 <Bike> kingdom
02:18:13 <ais523> because "great britain" is even less accurate a summary of the non-Northern Ireland bit than before
02:18:16 <kmc> Kingdom*
02:18:26 <Bike> just call the place Kingdom
02:18:29 <kmc> lol
02:19:08 <Bike> That Place What The Queen Lives In I Hear
02:21:24 <Jafet> Rarewealth
02:23:10 <Sgeo> 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 <Jafet> > head []
02:23:22 <lambdabot> *Exception: Prelude.head: empty list
02:23:34 <Jafet> Type safe.
02:23:42 <ais523> does Haskell have a typesafe infinite list type?
02:23:54 <ais523> basically lists without nil?
02:23:55 <Sgeo> head : Vec (S n) a -> a
02:24:13 <Jafet> data List a = Single a | List a (List a)
02:24:16 <ais523> Sgeo: you basically need dependent typing to be able to get very far with that
02:24:28 <Sgeo> ais523: I'm currently trying to understand dependent typing
02:24:40 <Sgeo> I keep seeing individual use cases, but feel like I'm missing the full picture
02:25:16 <Bike> Jafet: does that not allow List 4 (Single 6)
02:26:00 <Sgeo> data Stream a = Stream a (Stream a)
02:26:01 <Jafet> Fortunately, it does.
02:26:03 <Sgeo> Why the Single?
02:26:07 <Sgeo> Oh!
02:26:13 <Sgeo> For a safe head
02:27:11 <Sgeo> ais523: are there any excellent dependent typing tutorials around?
02:27:29 <ais523> Sgeo: probably, but I don't know of any in particular
02:28:05 <Sgeo> I feel like the purely imperative programmer trying to understand first-class functions by reading about how they're useful
02:28:17 <Sgeo> But without grasping the core concept
02:29:08 <ais523> 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 <Sgeo> 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 <Jafet> All integers have the value 4 in one day rotation
02:35:47 <zzo38> Sgeo: And what are the types going to be used for afterward?
02:36:20 <Sgeo> zzo38: I'm thinking something like an ST monad implementation that doesn't use unsafeCoerce
02:37:22 <zzo38> I don't know how ST monad works actually
02:37:23 <Sgeo> This is really making me unwilling to try Agda
02:37:36 <Sgeo> Even if it has better tutorials
02:39:46 <elliott> ais523: that's not what dependent typing is
02:39:56 <elliott> that's refinement types
02:40:08 <ais523> elliott: working in a CS department, it's a bit confusing
02:40:18 <ais523> because they consider a huge range of things to all be dependent typing
02:40:37 <Sgeo> Cumulative universes seem awesome, as far as I understand them
02:40:41 <zzo38> Haskell has a Typeable class which is possible to use for such a purpose
02:40:44 <Sgeo> Especially with... whatever Idris does to hide them
02:44:27 <elliott> ais523: if they think that's dependent typing, they're just wrong
02:45:52 <ais523> 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 <ais523> I think because there were free variables of type tuple index, and they were separate from normal free variables
02:49:20 <ais523> dependent types is one of those things I'm really bad at, though
02:55:25 <zzo38> 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 <copumpkin> yeah
02:56:43 <copumpkin> except it doesn't even have to be a number index
02:57:18 <zzo38> Yes, I believe you
03:09:04 <Sgeo> 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 <Sgeo> "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 <Sgeo> Hmm
04:51:10 -!- vravn has quit (Excess Flood).
04:51:52 -!- vravn has joined.
04:54:17 <ais523> agda's mostly used for proofs, like coq is
04:54:30 <ais523> 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 <Jafet> “We propose the data “water cycle”, iRain, that ensures that the user is “soaked” with useful user data all the time.”
05:03:12 <Jafet> http://cseweb.ucsd.edu/~gvenkatesh/About_Me_files/paper_2.pdf
05:03:41 <ion> wat
05:03:43 <kmc> zzo38: STRef is implemented the same as IORef, and runST the same as unsafePerformIO
05:04:17 <kmc> but the fancy type of runST prevents STRefs from one runST invocation from making their way into another (even by nesting)
05:04:27 <elliott> runST is more like unsafeDupablePerformIO, I think.
05:04:33 <elliott> or whatever the even more crazy version of that was.
05:17:12 <newsham_> unsafeDrupalPerformIO?
05:27:06 -!- shikhin has joined.
05:35:49 <kmc> `coins
05:35:52 <HackEgo> 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 <kmc> unwelcoin
05:41:32 <copumpkin> is there a trufflecoin?
05:42:54 <ais523> `words 20
05:42:57 <HackEgo> ffilcant bed gium aufle olle agra frestasmi positecti inspu kxp outentairet octa comfi hatmoc prouge lobrahe sor eori ent jim
05:45:30 <Jafet> Will there be a future in which `words becomes hip again
05:57:38 <pikhq> Trufflecoin clearly is really just truffle futures.
06:03:18 -!- oerjan has joined.
06:04:38 <oerjan> oh right
06:05:36 <oerjan> Gregor``: THE LOGS FOR 2/29 ARE BROKEN HTH
06:05:59 * oerjan stealthily moves on to march
06:06:22 <pikhq> 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 <zzo38> How do I encode patterns for peephole optimization?
06:35:59 -!- tromp has quit (Ping timeout: 252 seconds).
06:37:21 <oerjan> <Jafet> Will there be a future in which `words becomes hip again <-- only when they abolish money hth
06:38:15 <oerjan> <pikhq> Trufflecoin clearly is really just truffle futures. <-- i was imagining a coin made of truffle chocolate
06:40:14 <oerjan> wait, there's no truffle in chocolate truffles?
06:41:24 <Jafet> Are chocolate truffles truffles made from chocolate?
06:41:37 <oerjan> apparently so.
06:41:44 <Jafet> I think bitcoin would actually be worth more than truffle coins
06:42:20 <oerjan> mind you, genuine chocolate with truffles also exists.
06:42:56 <oerjan> or wait does it
06:43:17 <oerjan> darn i'll have to open all these google hits to see if they're about the right kind
06:43:34 <Jafet> What about chocolate that is made of truffles instead of chocolate
06:43:48 <oerjan> i don't think that's chocolate.
06:44:55 <zzo38> 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 <zzo38> 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 <oerjan> ok i have trouble finding a link to a genuine mixing of chocolate with truffles
06:49:02 <oerjan> despite my memory of eating such from confectionary boxes
06:50:25 <zzo38> Do you expect this would work OK?
06:51:56 <oerjan> 'Most "truffle oil", however, does not contain any truffles.'
06:53:39 <shachaf> whoa, whoa, whoa
06:54:07 <shachaf> today we had pizza with truffle oil at lunch and people were talking about that
06:54:16 <shachaf> oerjan: are you pizza
06:55:03 <oerjan> no.
06:55:52 <oerjan> perhaps it existed in my childhood when truffles were cheaper...
06:56:14 <oerjan> and now it's forever gone. as will soon be truffles themselves.
07:00:03 <Jafet> If truffles disappear, what will happen to truffle pigs?
07:00:48 <oerjan> bacon hth
07:01:13 <Jafet> Truffle bacon (fried in the last remaining truffle oil)
07:43:31 <fizzie> "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 <fizzie> This *used* to work.
07:43:48 <fizzie> Guess they've added more security in it.
07:44:10 <fizzie> (The page trying to do the loading was another file:/// in the same directory.)
07:50:44 <coppro> 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 <oerjan> oops
11:09:16 <oerjan> *terence tao's wikipedia page
11:10:47 <Taneb> oerjan, I'm pretty sure I did not
11:11:29 <oerjan> that not being born thing huh?
11:11:42 <Taneb> Yeah, it's a bummer
11:12:39 <oerjan> 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 <Slereah_> Was it just a baby
11:13:14 <oerjan> no.
11:14:03 <oerjan> he'd have been 12, and at the IMO for the third time
11:14:39 <Slereah_> What's the IMO
11:15:08 <oerjan> international mathematics olympiad
11:15:41 <oerjan> oh no 13
11:15:49 <Slereah_> I went to that when I was a kid : http://en.wikipedia.org/wiki/Mathematical_Kangaroo
11:15:51 <oerjan> "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 <Slereah_> I am pretty pissed because I didn't win the kangaroo
11:16:31 <oerjan> not the same competition though
11:16:37 <Slereah_> I am aware
11:16:53 <Slereah_> I won a T-shirt there, but I lost it since :(
11:18:18 <oerjan> also this would be the year it was in australia, his home country
11:18:36 -!- Phantom_Hoover has joined.
11:18:47 <Slereah_> Of the kangaroo?
11:18:58 <oerjan> COINCIDENCES GALORE
11:19:08 <Slereah_> J. Edgar Hoover!
11:19:14 <Slereah_> Why did you come to haunt us!
11:23:51 <oerjan> and the press were all over him, my vague memory vaguely claims.
11:24:07 <oerjan> which they would be, naturally.
11:24:44 <oerjan> 1988, so long ago
11:25:11 <oerjan> the start of the happiest period in my life.
11:26:09 <oerjan> but oh so vauge.
11:26:13 <oerjan> *vague
11:30:24 -!- Slereah__ has joined.
11:30:33 <Slereah__> Well fuck
11:31:45 <oerjan> well fucked?
11:32:04 <Slereah__> 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 <boily> good սուրճ morning!
14:36:39 <ion> svyirch?
14:38:57 <int-e> Compute richness indices and their standard errors from survey data. Huh?
14:39:11 <boily> ion: sourč̣.
14:39:56 -!- Sgeo has quit (Read error: Connection reset by peer).
14:41:19 <int-e> 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 <ion> 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 <ion> http://youtu.be/WIKqgE4BwAY
15:18:49 -!- myname has quit (Ping timeout: 264 seconds).
15:22:44 <int-e> wtf is "idol music"
15:22:57 <int-e> fungot: please explain idol music
15:22:57 <fungot> 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 <int-e> thanks, fungot
15:23:19 <fungot> int-e: believe me,
15:23:23 <int-e> I do.
15:26:28 <ion> fungot: That was a pretty good description, thanks.
15:26:28 <fungot> 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 <boily> ^style
15:28:12 <fungot> 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 <boily> fungot: you are accurate and are making sense. I am disturbed.
15:28:40 <fungot> 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 <fizzie> What does "made X a guest in his own blood" mean, though?
17:16:01 <oerjan> @hoogle hInteract
17:16:02 <lambdabot> No results found
17:16:17 <int-e> Hmm, fungot is still using the f word. (The one that ends in d.)
17:16:17 <fungot> 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 <oerjan> fizzie: given this is lovecraft, do you really want to know?
17:16:36 <int-e> oerjan: huh, that would only work for sockets, right?
17:17:20 <oerjan> int-e: iirc it still prints to stdout
17:17:35 <int-e> oh.
17:19:05 <int-e> From MissingH, ah. It takes two handles. hInteract :: (HVIO a, HVIO b) => a -> b -> (String -> String) -> IO ()Source
17:19:15 <oerjan> oh ok
17:19:22 <oerjan> idrc then
17:19:48 <oerjan> and it didn't really fit the stackoverflow question anyhow.
17:20:01 <int-e> wait a second. class Show a => HVIO a whereSource ... Show? Seriously?
17:20:43 <oerjan> i suppose they want something to put in error messages
17:20:57 <int-e> (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 <oerjan> 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 <ion> http://youtu.be/qM9hH3suOpo
19:25:07 <kmc> high voltage IO?
19:25:28 <kmc> danger danger
19:25:32 <kmc> `coins
19:25:35 <HackEgo> brooncoin poutomycoin mincluecoin sublecoin solercoin oflabtcoin berhizzcoin fanjcoin commecoin thecoin rocucoin stoffcoin ~coin computnamentcoin discoin hemcoin chioncoin slikecoin bunsulebrash-01coin xigxacoin
19:26:57 <Phantom_Hoover> i can't even riff on bunsulebrash-01coin, it's perfect in itself
19:38:57 <lifthrasiir> bulbacoin anyone?
19:39:28 <kmc> :D
19:39:31 <kmc> twitch beat pokemon!
19:41:03 <pikhq> Yep.
19:41:17 <zzo38> Let's play pokemon card
19:41:43 <kmc> Twitch Plays Professional Octopus of the World
19:47:29 <ais523> I thought they were going to beat it eventually
19:53:01 <Jafet> Is it possible to never beat pokemon
19:54:19 -!- shikhout has joined.
19:54:21 <zzo38> Oops ISO 646 does not include German quotation mark symbols.
19:55:57 <ais523> Jafet: yeah, the RNG Plays Pokémon game got itself stuck in an unwinnable state that I hadn't previouslyseen
19:56:00 <ais523> *previously seen
19:56:04 <ais523> there are some well-known ones
19:56:08 <kmc> 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 <ais523> 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 <zzo38> Is that possible in the newer games too or does it prevent it?
19:59:48 <ais523> the newer games attempt to prevent it, in various ways
20:00:12 <ais523> 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 <zzo38> But does it actually prevent it entirely, or are there ways to make the unwinnable state?
20:01:21 <ais523> 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 <ais523> 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 <zzo38> My opinion is it ought to be designed to be possible to be unwinnable states actually
20:02:44 <ais523> 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 <ais523> 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 <ais523> I don't know what triggers it
20:03:49 -!- vasskon has quit (Ping timeout: 264 seconds).
20:15:50 <Bike> i laughed my ass off when i found out twitch blacked out in a pokemon center (i think it was)
20:17:06 <zzo38> I didn't know it is possible?
20:18:53 <Bike> https://24.media.tumblr.com/da615f9d0888bc18ed240cff86b22764/tumblr_n1aee5IFCA1rvoha9o1_500.jpg
20:19:32 -!- MoALTz_ has joined.
20:21:43 <nooodl> huh that sounds like it shouldn't be possible
20:22:06 <nooodl> i guess it might be. pokémon red/blue are weird
20:22:27 -!- MoALTz has quit (Ping timeout: 252 seconds).
20:22:43 <nooodl> zzo38: you could always just pace around in one with a single poisoned dying pokémon in your party
20:23:12 <zzo38> Ah, OK
20:29:38 -!- shikhin has quit (Ping timeout: 264 seconds).
20:31:30 <kmc> russia is going to invade ukraine: http://www.bbc.com/news/world-europe-26400035
20:32:26 <Bike> russia has invaded ukraine.
20:32:40 <kmc> yeah?
20:33:24 <Bike> russian soldiers and mercs in unmarked uniforms were wondering around simferopol way before putin asking the duma. ¬_¬ russia
20:33:30 <Bike> wandering
20:34:22 <kmc> 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 <Bike> some of them are local militias 'maybe' 'who knows'
20:36:26 <Bike> pretty great since http://en.wikipedia.org/wiki/Budapest_Memorandum_on_Security_Assurances too
20:37:01 <kmc> Bike do you know things about international law
20:37:12 <Bike> like, what, the lack of it?
20:38:11 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:38:31 <kmc> lexande also knows things about international law
20:38:39 <Bike> people have already come up with excuses for violating this budapest thing but i forget them
20:38:58 <kmc> lol how about the excuse "we have a lot of guns and nukes and we'll do what we want"
20:39:01 <kmc> works for USA
20:39:25 <Bike> internatinoal law is basically based on forced politeness. so they say something more legal-sounding
20:39:35 <kmc> ukraine's parliament voted to send Yanukovych to the ICC
20:42:00 <kmc> i wonder who hates the ICC more, USA or Russia
20:42:58 <Bike> probably the african union :V
20:44:21 -!- mysanthrop has joined.
20:45:29 <Bike> i guess the US has said they're not going to ratify it so
20:48:22 <pikhq> ais523: The HG/SS bug is actually quite hilarious.
20:48:49 <pikhq> ais523: If you go on the second floor of the Center before the Elite Four, you can't leave.
20:48:52 <pikhq> ... That's it.
20:49:04 <Bike> nice.
20:50:33 -!- mysanthrop has changed nick to myname.
20:51:03 <pikhq> Gen IV seems like it was the buggiest gen outside of I.
20:54:16 <pikhq> Wow, that's... wow.
20:54:41 <pikhq> In gen I you could do a stone-evo without a stone.
20:54:55 <kmc> Bike: http://en.wikipedia.org/wiki/American_Service-Members'_Protection_Act
20:55:02 <zzo38> pikhq: How do you do that?
20:55:35 <pikhq> 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 <Bike> i expected that to be about okinawa from the name :V
21:03:32 -!- itsy has joined.
21:04:39 <ais523> pikhq: it's not quite that simple, because you could fix it using the Cable Club
21:05:35 <ais523> err, or whatever it's called in Gen 4
21:06:14 <ais523> Bike: I believe the US has a designated country to invade should the ICC decide to sanction it
21:06:17 <ais523> I forget which one
21:14:22 <kmc> isn't the idea that we would invade .nl because that's where the court is? see above link
21:15:30 <ais523> ah right
21:16:10 <itsy> 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 <ais523> dutch != danish
21:17:59 <fizzie> donut != danish
21:18:51 <fizzie> Both (I mean Denmark and the Netherlands) are p. flat, though.
21:19:04 <Bike> 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 <Bike> sure hope so, that sounds awesome
21:21:24 <fizzie> "In May 2011, the Netherlands was ranked as the "happiest" country according to results published by the OECD."
21:21:27 <fizzie> Nice scare quotes there.
21:21:37 <ais523> it'd be especially amusing if the attacker complied with their treaty obligations via declaring war on themself
21:21:42 <Bike> yes
21:21:59 <Bike> the united states has occupied the united states
21:22:18 <ais523> actually, that sounds like a nomic-worthy loophole
21:22:23 <ais523> declare war on another NATO member
21:22:25 <ais523> then declare war on yourself
21:22:30 <ais523> then shortly afterwards, surrender to yourself
21:23:05 <fizzie> "Norway? More like NATOrway!"
21:24:05 <ais523> now you've been defeated so the rest of NATO doesn't need to continue the war any more
21:24:36 <fizzie> "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 <fizzie> ... 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 <fizzie> (That's the Article 5.)
21:25:23 <oerjan> hm according to the wp NATO article, lithuania has invoked article 4 on russia now
21:26:48 <ais523> russia isn't attacking lithuania, is it, though?
21:27:12 <ais523> 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 <ais523> it's a fact/lie, not an opinion, but one that it's hard to determine the truth of
21:27:49 <fizzie> 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 <kmc> http://ic.pics.livejournal.com/caurug/39552154/7544/7544_1000.gif
21:28:37 <oerjan> there's a yahoo answers page about this, it's about the quality you'd expect
21:29:30 <fizzie> kmc: I liked that cathedral takeoff ending shown on that Tetris page (I think) you linked people to.
21:29:34 <kmc> yes!
21:30:07 <fizzie> (Though it did make me expect a liftoff in that gif too.)
21:33:27 <oerjan> > sort "diplomacy" == sort "madpolicy"
21:33:29 <lambdabot> True
21:33:59 <oerjan> mentioned on straight dope forum
21:34:21 <kmc> http://anagramatron.tumblr.com/
21:34:46 -!- augur_ has quit (Remote host closed the connection).
21:35:12 -!- augur has joined.
21:35:32 <kmc> http://www.tedunangst.com/flak/post/a-brief-history-of-one-line-fixes
21:37:36 <nooodl> kmc: ugh the "how is this possible??" tone
21:37:44 <nooodl> i like the */ one
21:39:03 <kmc> also https://freedom-to-tinker.com/blog/felten/the-linux-backdoor-attempt-of-2003/
21:39:40 <elliott> nooodl: I think -Wall does actually catch that X bug.
21:39:46 <elliott> 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 <elliott> 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 <fizzie> 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 <fizzie> (Though I might be just imagining that.)
21:41:33 <elliott> nice memset
21:41:39 <int-e> fizzie: the bugs are instructive, but the comments have negative value to me ...
21:41:50 <elliott> " 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 <elliott> it's obviously a joke like fizzie says
21:41:59 <elliott> since that has nothing at all to do with the bug above it
21:42:00 <int-e> 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 <elliott> but is relevant to the apple bug
21:43:16 <kmc> int-e: joke
21:43:19 <int-e> A joke.
21:44:37 <oerjan> aj, ok, e
21:44:48 <int-e> fungot: joke please?
21:44:48 <fungot> int-e: such were the idle tales of the fnord
21:45:20 <kmc> :D
21:45:25 <int-e> fungot wins, compared to that link.
21:45:26 <fungot> 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 <kmc> `addquote <fungot> int-e: such were the idle tales of the fnord
21:45:35 <fungot> 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 <HackEgo> 1172) <fungot> int-e: such were the idle tales of the fnord
21:48:40 <int-e> I don't approve of fungot's proliferation of the f-word.
21:48:40 <fungot> 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 <fizzie> Yes, well, fixing things is so hard.
21:55:50 <kmc> is it st. fungot's day
21:55:50 <fungot> 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 <kmc> ^style
21:56:00 <fungot> 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 <kmc> https://github.com/mozilla/rust/blob/551da0615764853153db944063ae2e271414a71b/src/libstd/rt/util.rs#L92-L141
21:58:52 -!- augur has joined.
22:01:30 <Slereah_> Brohams
22:01:40 <Bike> http://www.buzzfeed.com/ludwigwittgenstein/fantastic-ways-to-distinguish-between-sense-and-nonsense the greatest listicle in history
22:01:45 <Slereah_> What's a good C compiler that's 64 bits and where I can modify the Assembly file
22:01:57 <Bike> gcc -S, isn't it?
22:02:02 <kmc> gcc
22:02:06 <kmc> Bike.zzo38.moed++
22:02:28 <Slereah_> Codeblocks can use gcc, right?
22:02:35 <kmc> Slereah_: you may find the assembly output of gcc somewhat hard to read, though
22:02:35 <Slereah_> 'cause I ain't got no linuxeses
22:02:43 <kmc> it's full of various directives / metadata / etc.
22:02:47 <Bike> "Do you know about philosophical investigations?"
22:02:56 <Bike> kmc: is any compiler's asm not going to be
22:03:05 <kmc> i don't know
22:03:08 <kmc> just a general warning
22:03:14 <kmc> (probably some toy compilers, though)
22:03:39 <kmc> also compilers can write unholy weird assembly (especially on x86)
22:03:39 <Bike> anyway i imagine llvm lets you output ir bla bla bla
22:04:00 <kmc> 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 <kmc> 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 <olsner> 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 <Slereah_> Thanks.
22:04:30 <Slereah_> What kind of weirdery can I encounter though?
22:04:58 <Slereah_> But wouldn't disassembling the binary get rid of the tags?
22:05:14 <Bike> it'll still have symbols in it.
22:05:45 <kmc> ah yes olsner speaks the truth
22:05:56 <kmc> yes, it will still have symbols (unless you run 'strip' on the binary)
22:06:00 <Slereah_> What's a good x86-64 disassembler?
22:06:07 <kmc> the standard on *nix is objdump -d
22:06:16 <Slereah_> What about on not-nix
22:06:19 <Bike> yeah, you shouldn't need IDA or nothin
22:06:20 <Slereah_> On the windows
22:06:33 <Bike> @g windows disassembler
22:06:34 <lambdabot> Maybe you meant: gazetteer get-shapr get-topic ghc girl19 google googleit gsite gwiki v @ ? .
22:06:37 <Bike> er right.
22:06:40 <Bike> @google windows disassembler
22:06:41 <lambdabot> http://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers
22:06:41 <lambdabot> Title: x86 Disassembly/Disassemblers and Decompilers - Wikibooks, open books for an ...
22:06:44 <olsner> @gazetteer
22:06:44 <lambdabot> gazetteer ... U.S. Gazetteer (2000)
22:06:57 <olsner> @gazetteer windows disassembler?
22:06:59 <lambdabot> No match for "windows".
22:06:59 <lambdabot> No match for "disassembler?".
22:07:01 <kmc> Slereah_: look, trying to do any interesting software development on Windows is just making your life unnecessarily hard
22:07:12 <zzo38> When is Fnord A.M.?
22:07:15 <Slereah_> Well
22:07:18 <kmc> Slereah_: install Linux or get a Linux VM (locally or some cheap VPS or something)
22:07:23 <Slereah_> I guess I could put on a virtual linux
22:07:28 <kmc> Amazon will give you a free EC2 instance for a year
22:07:40 <Bike> @g gazeteer rain
22:07:41 <lambdabot> Maybe you meant: gazetteer get-shapr get-topic ghc girl19 google googleit gsite gwiki v @ ? .
22:07:44 <Bike> @gazeteer rain
22:07:45 <lambdabot> No match for "rain".
22:07:56 <elliott> or just use cygwin.
22:08:01 <olsner> you could always copy the windows binaries to a linux computer and run an objdump compiled with PE-format support there
22:08:20 <elliott> it's less pain than setting up a linux vm with ssh
22:08:22 <Bike> or you could use zzo's inevitable 6502 operating system for all your software development
22:08:23 <kmc> that seems like more trouble than installing gcc / binutils from Cygwin or MinGW
22:08:39 <kmc> cygwin is easy to install, although it's hueg
22:09:06 <kmc> but seriously, if you want to learn this stuff, you should have a linux of some kind
22:09:36 <fizzie> clang's -S output can be occasionally more readable than gcc's.
22:11:12 <elliott> cygwin is a linux of some kind enough for software development
22:11:17 <elliott> though configure scripts will always be slow
22:11:55 <fizzie> 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 <Bike> 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 <kmc> cygwin won't let you do things like write standalone assembly programs that make system calls
22:12:16 <Bike> for kernels like, 2.6, though
22:12:45 <Slereah_> Sooo
22:12:50 <Slereah_> what's a good destro these days
22:13:08 <fizzie> kmc: I'm sure you *can* just int 2e it up, can't you?
22:13:23 <kmc> fizzie: the Windows syscall API is undocumented, isn't it?
22:13:25 <kmc> and unstable
22:13:27 <olsner> another trick is (counterintuitively) to enable optimizations, I find that tends to make the assembly more straight-forward
22:13:31 <fizzie> kmc: Yes and yes, sure.
22:13:32 <kmc> the stable API is linking to dlls
22:13:58 <olsner> there is some unofficial documentation around, I think
22:14:11 <kmc> i hear it's a nicer API than the stable one
22:14:23 <kmc> usually allowing things to change allows them to get/stay nice
22:14:26 <Slereah_> Eh fuck it
22:14:31 <kmc> Slereah_: debian or ubuntu
22:14:33 <Slereah_> I'll just put in scientific linux
22:14:39 <kmc> whatever
22:14:53 <kmc> SciLinux is based on RHEL which means a lot of stuff will be p. out of date
22:15:03 <kmc> you might want to add https://fedoraproject.org/wiki/EPEL at least
22:15:08 <fizzie> Some of our cluster nodes run Scientific Linux, I think.
22:15:12 <Slereah_> Let's go with Debian then
22:17:03 <Slereah_> http://cdimage.debian.org/debian-cd/7.4.0/amd64/iso-dvd/ < is it on 3 DVDs?
22:17:32 <fizzie> 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 <Slereah_> Thanks.
22:17:52 <fizzie> (It's one small CD, installs from network.)
22:18:09 <Slereah_> Hm, will it work okay on virtual box?
22:18:22 <fizzie> I've installed it on VirtualBox a couple of times.
22:18:34 <fizzie> The default networking setup it does should be fine.
22:18:35 <Slereah_> Thanks.
22:19:36 <Slereah_> In the meanwhile, let's see what Codeblocks can do assembly-wise
22:21:00 <fizzie> (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 <kmc> `coins
22:21:05 <HackEgo> subtcoin lycyclickcoin undercoin sendreimachcoin stacoin fectioncoin wikicyclipongouyhis=thannonoremmentanandoffe7e45ecoin fervediumcoin rankcoin fiftyreacoin utomocoin souldcoin mdpncoin isccoin sorthoecoin hcbaesiecoin clecoin quaicoin vejcoin yabacoin
22:21:19 <Slereah_> `bills
22:21:19 -!- oerjan has quit (Quit: Nitecoin).
22:21:20 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: bills: not found
22:21:20 <kmc> wikicyclipongouyhis=thannonoremmentanandoffe7e45ecoin is gonna be big
22:21:29 <Slereah_> When will I have some bitbills!
22:21:43 <kmc> Slereah_: http://onechicklette.files.wordpress.com/2012/06/post-no-bills.jpg?w=625
22:21:56 <Phantom_Hoover> `run coin | sed -e 's/coin/bill/g'
22:21:57 <HackEgo> bash: coin: command not found
22:22:04 <Phantom_Hoover> `run coins | sed -e 's/coin/bill/g'
22:22:07 <HackEgo> 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 <int-e> `` coins | sed s=coin=bill=g
22:22:12 <HackEgo> orbiccisinbill wilsonbill scombiebill judibill bfmbill negotbill scequersenbill dimcrbill reversbill barebill conveyonnahbill genbill unitbill rinebill dzzzzbill byterbill zehntermderliardaunallersange/indbill intertionbill brovicbill addlebill
22:22:14 <Phantom_Hoover> son-of-unbill
22:22:40 <fizzie> ofestfrograssedadolpson-of-unbabtiliumbills go well with wikicyclipongouyhis=thannonoremmentanandoffe7e45ecoins.
22:23:08 <kmc> = is a good sed separator thx
22:23:10 <Slereah_> void main(void){int x;}
22:23:15 <Slereah_> That's a pretty bold program
22:23:19 <Slereah_> Now let's see
22:23:21 <kmc> main should return int
22:23:30 <Slereah_> It's not mandatory!
22:23:56 <fizzie> It is if you want to follow the standard.
22:24:15 <kmc> 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 <kmc> and C++ explicitly forbids it
22:24:33 <Slereah_> Humbug!
22:24:45 <Slereah_> A pox on conventions!
22:24:48 <ais523> kmc: I use = as a regex separator quite a bit
22:24:50 <Slereah_> A POX I TELL YOU
22:24:52 <kmc> a pox on correctness
22:25:30 <Slereah_> I will use gotos and make all my fucking classes public!
22:25:44 <fizzie> I just got "40" back out as an error code from void main(void){int x;} which was p. random.
22:26:07 <Slereah_> Error codes only matter if you're on an OS
22:26:51 <int-e> doesn't C++ have free-standing implementations?
22:27:37 <Slereah_> Le linux is downloaded
22:27:40 <pikhq> Yes. g++ -ffreestanding for instance.
22:27:43 <Slereah_> Let's install it
22:27:52 <kmc> g++ -fuck-tha-police
22:28:50 -!- MoALTz_ has quit (Quit: Leaving).
22:29:08 <Slereah_> The honorable judges MC RAM, Ice Cube and Easy-Motherfucking-E standing
22:29:19 <int-e> "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 <fizzie> C++2003 says the same.
22:29:29 <int-e> but why would they change it :)
22:29:42 <fizzie> Except with "implementation" and not "implemeentation".
22:30:17 <fizzie> 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 <fizzie> In contrast to C where the implementation-defined forms of main can change the return type too.
22:30:46 <int-e> fizzie: my fault, I can't type.
22:32:28 <elliott> Slereah_: int main is mandatory per the spec
22:32:39 <elliott> however in C99 you can do int main() { ... } and omit the return 0
22:32:58 <pikhq> C99 freestanding explicitly doesn't require main to return int.
22:33:16 <pikhq> Of course, C99 freestanding has a completely implementation-defined entry point.
22:33:21 <kmc> clang -fheinous-gnu-extensions
22:33:53 <Slereah_> elliott : I thought void main(void) was allowed for historical reasons?
22:34:02 <pikhq> Nope.
22:34:08 <Slereah_> Also no compiler ever bitches about it
22:34:32 <pikhq> That's kinda irrelevant. What GCC and C99 permit are only loosely correlated.
22:34:49 <Slereah_> Well in that case
22:34:53 <Slereah_> A POX ON C99
22:34:54 <kmc> whois.nic.fish is an alias for whois.donuts.co.
22:34:55 <Slereah_> A POOOOX
22:35:04 <elliott> $ echo 'void main(void) {}' | gcc -x c -Wall - -o /dev/null<stdin>:1:6: warning: return type of ‘main’ is not ‘int’ [-Wmain]
22:35:07 <Slereah_> *shakes old man fist*
22:35:11 <elliott> put a newline before <stdin> there
22:35:14 <pikhq> Especially in GCC's default mode, which is C90+crazy.
22:35:31 <coppro> craycray, really
22:35:33 <kmc> i like C99
22:35:36 <kmc> haters gonna hate
22:35:41 <Slereah_> I'm not gonna let the machines control me
22:35:42 <pikhq> I <3 C99.
22:35:43 <coppro> C jumped the shark at C99
22:35:47 <Slereah_> I have my aluminium hat
22:35:51 <coppro> err, sorry
22:35:52 <coppro> jumped the _Shark
22:35:57 <kmc> haha
22:36:31 <Slereah_> Well software is installing
22:36:37 <Slereah_> Might take a while apparently
22:36:59 <Slereah_> Should I just use gcc for C stuff on le linux?
22:37:28 <kmc> yes
22:37:31 <kmc> gcc is the standard c compiler on linux
22:37:41 <Slereah_> Does it also do the decompiling?
22:37:48 <Bike> no, that's objdump
22:37:49 <kmc> do you mean disassembling?
22:37:53 <kmc> objdump -d ./myprog
22:37:53 <Slereah_> Ah yes
22:37:55 <Bike> which is i think in binutils, which is probably there already
22:37:55 <Slereah_> Thanks.
22:38:03 <kmc> yes or installing gcc will install binutils, at the least
22:38:10 <Slereah_> Well I will discover it soon enough
22:38:15 <kmc> on debian you should: apt-get install build-essential
22:38:54 <Slereah_> I should get a second PC someday
22:39:05 <Slereah_> Usually when I get a new PC I just cannibalize the old one and throw it away
22:39:16 <Slereah_> I'll just keep it next time
22:39:27 <elliott> "apt-get install packaging-dev" is better
22:39:45 <kmc> if you want an IDE there are many
22:39:50 <kmc> but i can't recommend a particular one
22:45:27 -!- yorick has joined.
22:47:28 <quintopia> ahoy solid matrix detainees
22:47:36 <zzo38> I always use GCC's default "GNU89" mode.
22:47:47 <zzo38> What does "C jumped the shark at C99" mean?
22:47:53 <kmc> quintopia: welcome to the desert of the real
22:48:36 <quintopia> zzo38: look up "jumping the shark" on tvtropes
22:48:41 <ais523> 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 <ais523> at which point nobody took it seriously any more
22:48:46 <Slereah_> Hm
22:49:02 <Slereah_> apparently the compiler doesn't actually translate int x; if you don't use it
22:49:06 <Slereah_> Let's add = 0
22:49:20 <Slereah_> movl$0, -4(%rbp)
22:49:23 <Slereah_> Merfect
22:49:25 <quintopia> ais523: why not name the show? having given us more spinoffs than any show i know of, it's certainly iconic
22:49:35 <ais523> quintopia: because I don't know what iti s
22:49:36 <ais523> *it is
22:49:52 <quintopia> Happy Days
22:50:19 <Slereah_> What's $0 in the compiler assembly?
22:50:22 <kmc> constant 0
22:50:33 <kmc> beware that there are two styles of assembly syntax for x86, AT&T style and Intel style
22:50:36 <quintopia> Beware the March of Dimes
22:50:39 <kmc> Linux / GNU tools mainly use the former and that's what you're looking at
22:50:47 <kmc> but most other stuff (esp. Windows) uses the latter
22:50:58 <Slereah_> What's the difference with just 0?
22:51:03 <Slereah_> Or was I using the other convention
22:51:03 <kmc> 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 <kmc> where %src is a register like %rax, %rbx, etc.
22:51:22 <Slereah_> Oh fuck, I guess I was using the other convention
22:51:23 <Slereah_> Dang
22:51:24 <kmc> Slereah_: 0 would be a memory operand which reads whatever's at address 0
22:51:29 <kmc> (in AT&T syntax)
22:51:42 <Slereah_> Are there any compiler that uses the other convention?
22:52:04 <kmc> objdump -M intel -d
22:52:09 <Slereah_> Thanks.
22:52:16 <kmc> as for getting gcc -S to output Intel syntax, I don't know
22:52:20 <kmc> I doubt you can
22:52:26 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
22:52:27 <Slereah_> I don't really want to learn another syntax again
22:52:37 <Sgeo> I have successfully extracted the Sheepie's Odyssey p3
22:52:38 <Sgeo> mp3
22:52:51 <kmc> 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 <Slereah_> I guess eax is the register where you put the error code in gcc?
22:53:21 <zzo38> Maybe you could also convert GCC's output to Intel syntax using external programs
22:53:29 <kmc> but NASM is probably a better assembler to use on Linux, and it takes Intel syntax
22:53:30 <Slereah_> Or returns in general?
22:53:31 <ais523> kmc: gcc's assembler is called gas
22:53:36 <kmc> ais523: ok
22:53:44 <kmc> you need to know AT&T syntax if you want to use GCC in-line assembly in C codes, of course
22:54:08 <elliott> objdump can output intel
22:54:09 <kmc> Slereah_: yes http://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI
22:54:11 <elliott> I think gcc -S can too.
22:54:51 <elliott> gcc -S -masm=intel
22:56:27 <fizzie> And if you do -masm=intel, you can use Intel syntax in inline asm() statements, too.
22:57:05 <Slereah_> Neat~
22:57:55 <Bike> "Recent examples include studies on duck penises, shrimp running on a treadmill, robotic squirrels, and snail sex."
22:58:25 <ais523> Bike: Ig Nobels?
22:58:40 <Bike> studies that politicians have said shouldn't be funded
23:01:04 <Slereah_> Maybe they will regret it when snails destroy their crops
23:02:54 <fizzie> ais523: "as" (or "GNU as") is arguably the proper name, and GAS just a nickname.
23:03:04 <ais523> fizzie: ah right
23:03:15 <fizzie> "This file is a user guide to the gnu assembler as (GNU Binutils) version 2.24."
23:03:34 <fizzie> The manual itself does call it "gas" or "GAS" here or there, though.
23:03:53 <Slereah_> If I say "It's a GAS!", will I be murdered
23:06:39 <Bike> yes. rip
23:07:12 <quintopia> flumping hack dash is a CAS CASCAS
23:09:42 <fizzie> "libcuda1 [non-free] recommends libcuda1-i386 (provided by libcuda1-i386:i386 331.49-1)" that's kind of strange.
23:10:09 <fizzie> "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 <ais523> "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 <fizzie> Yes, but I don't think amd64 packages generally tend to recommend the i386 versions of those same packages.
23:11:30 <fizzie> I'm sure there's some particular-to-CUDA reason for it in this case, though.
23:12:09 <Sgeo> How worried should I be about eating something that says it's 49% DV sodium?
23:12:32 <Bike> cup noodle or something?
23:12:38 <fizzie> (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 <Sgeo> Bike: yeah
23:12:55 <Bike> just don't rely on it too much and it should be fine
23:13:46 <Sgeo> Well, was only planning on having one tonight
23:14:07 <pikhq> Be aware that that's 49% per serving.
23:14:10 <pikhq> It's two servings.
23:14:21 -!- trout has changed nick to variable.
23:15:25 <Slereah_> movq%rsp, %rbp < that's to reinitialize the stack, right?
23:16:02 <fizzie> 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 <Sgeo> pikhq: says serving size is one container
23:16:42 <Slereah_> It's to avoid over-popping?
23:16:49 <Slereah_> Define the top of the stack as the new base?
23:17:00 <Slereah_> So that you can't touch what's beneath?
23:17:36 <fizzie> 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 <fizzie> It doesn't *enforce* anything.
23:18:30 <fizzie> (The value of rbp doesn't affect the behavior of push/pop at all.)
23:18:44 <Slereah_> Oh
23:18:49 <int-e> also enables alloca implementations
23:19:15 <Sgeo> Can I just put water in a styrofoam cup and microwave it?
23:19:18 <int-e> (which move the stack pointer, but leave the frame pointer intact)
23:19:33 <fizzie> int-e: Does glibc alloca() break if you compile with -fomit-frame-pointer?
23:19:43 <pikhq> glibc doesn't have an alloca().
23:19:48 <pikhq> alloca() is provided by GCC.
23:20:17 <fizzie> Well, does GCC alloca() break if etc.
23:20:33 <pikhq> And -fomit-frame-pointer only tells GCC to omit the frame pointer in cases where it's unneeded.
23:20:54 <pikhq> So no, it does not break in that case.
23:21:02 <kmc> just don't mix alloca() and VLAs
23:21:06 <pikhq> It just simply fails to omit the frame pointer IIRC.
23:21:08 <kmc> if you mix alloca() and VLAs you're gonna have a bad time
23:21:10 <pikhq> Yeah, those two mix weirdly.
23:21:29 <Slereah_> Ah, I see
23:21:35 <Slereah_> It's a handy reference for variables
23:21:44 <Slereah_> Since local variables are put in the stack
23:22:01 <int-e> it's like the top and bottom of a mini-heap on the stack.
23:22:06 <Slereah_> Adorable
23:22:38 <pikhq> Storing a base pointer also makes it quite easy to move the stack pointer to what it was on entry.
23:23:01 <fizzie> To be honest, it's much more handy when it comes to 16-bit x86 code.
23:23:12 <fizzie> (Because there's no [sp+X] addressing mode.)
23:23:19 <Slereah_> Ah yes
23:23:29 <Slereah_> Because the compiler doesn't actually push and pop here
23:23:37 <Slereah_> It just writes movl$0, -4(%rbp)
23:23:40 <int-e> early intel processors much encouraged this because they didn't offer sp-relative addressing.
23:24:48 <Slereah_> Whaaat
23:24:55 <int-e> 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 <Slereah_> I do if(x) and it does a cmpl?
23:25:09 <Slereah_> Shouldn't it just do a jz?
23:25:09 <int-e> Slereah_: yes?
23:25:14 <ais523> int-e: they're used in every function by some compilers
23:25:18 <int-e> Slereah_: no, the flags need to be set first
23:25:28 <Slereah_> Ah right
23:25:34 <Slereah_> I'm thinking of what's its name
23:25:36 <Slereah_> MIPS
23:25:54 <pikhq> The x86 conditional jumps are based on the condition flags, so yeah.
23:25:59 <fizzie> 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 <Slereah_> Let's try!
23:26:34 <Slereah_> Nope, doesn't do it
23:26:40 <int-e> 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 <Slereah_> Also... x++ is translated as addl$1, -8(%rbp) ?
23:27:47 <int-e> Oh, has jcxz made it to 64 bit mode? *checks*
23:28:03 <Slereah_> Why not inc?
23:28:35 <int-e> apparently.
23:29:26 <Slereah_> Wait, does inc work on memory?
23:29:43 <int-e> Slereah_: It'd be only 1 byte smaller. Perhaps the compiler writers didn't think that worthwhile.
23:29:55 <Slereah_> Dunno
23:30:00 <fizzie> 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 <Slereah_> Seems a pretty natural translation?
23:30:05 <fizzie> (Intel optimization manual.)
23:30:13 <Slereah_> Ah, thanks.
23:30:30 <int-e> yes, thanks
23:30:35 <Slereah_> Woo, Linux is installed
23:31:56 <int-e> (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 <fizzie> From what I recall, it doesn't track individual flags separately.
23:32:46 <int-e> that makes sense, but doesn't meet my expectations.
23:34:21 <fizzie> "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 <int-e> yes. evil, nasty AMD.
23:35:44 <Slereah_> gcc -S -masm=intel works, thanks!
23:35:54 <fizzie> You can still make GCC use INC x instead of ADD x, 1 with -Os ("optimize for size").
23:36:16 <Slereah_> Are all the .cfi just markers?
23:36:34 <Slereah_> Do they do things or are they just there for debugging
23:36:40 <fizzie> Debugging information directives.
23:36:53 <fizzie> And/or for exception handling, I guess.
23:36:59 <Slereah_> Can I ask them to go away?
23:37:08 <int-e> what happens if you generate code for AMD? hmm.
23:38:06 <fizzie> http://sprunge.us/IScR -- that's an inc.
23:38:23 <int-e> "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 <Slereah_> I do a putchar, and it just does "call putchar"?
23:39:16 <Slereah_> I am disappoint
23:39:30 <int-e> -march=athlon64 generates an inc. good.
23:39:41 <fizzie> 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 <fizzie> (The whole "rep ret" thing is really silly.)
23:40:15 <Slereah_> Is there a way to generate the assembly file with the library function directly in it?
23:40:18 <Slereah_> Inline, if you will
23:40:43 <Bike> static link the binary?
23:41:06 <fizzie> 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 <fizzie> Bike: That wouldn't include it in the assembler source, since no linking is involved at that time.
23:41:37 <Bike> yeah i'm pretending Slereah_ is going the objdump route
23:41:56 <Slereah_> Well let's try the objdump then
23:42:06 <Slereah_> As soon as the VM stops lagging
23:42:35 <Bike> i don't know how to do static linkage though. who even does that any more
23:42:42 <fizzie> 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 <Slereah_> It's unfortunate I don't know what it means
23:43:08 <Bike> you might be better off just looking at glibc source...
23:43:11 <fizzie> (Your objdump -d output is likely to be... somewhat big.)
23:43:20 <Bike> ok, well, when you write a program you are almost certainly going to need libraries
23:43:33 <Bike> in 'static linking' you accomplish this by basically just including the entire library binary in your program
23:43:50 <Slereah_> Can't the compiler just include the used functions?
23:44:03 <Bike> that would still mean a billion copies of p utchar on your drive, mon
23:44:10 <ais523> Slereah_: it does
23:44:15 <pikhq> It's done on a object file by object file basis.
23:44:18 <Slereah_> Sure, but this isn't for making programs right now
23:44:21 <ais523> well, the used object files, but static libraries are built with one object file per function for that reason
23:44:26 <Slereah_> Just to look at how it is built
23:44:34 <Bike> 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 <fizzie> 141478 lines of output for objdump -d on a statically linked int main(void) { putchar(42); } program.
23:44:58 <Bike> 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 <pikhq> fizzie: 986 if you use musl instead of glibc.
23:46:28 <Bike> let's see, where's that one paper on the subject
23:46:31 <fizzie> pikhq: So... glibc is over 143 times better, right?
23:47:13 <int-e> oh, this is good. http://repzret.org/p/repzret/
23:47:15 <pikhq> Yeah no
23:47:24 <fizzie> But the numbers are bigger!
23:47:33 <Bike> http://www.akkadia.org/drepper/dsohowto.pdf i think this was the one
23:47:51 <Bike> Slereah_: this will probably be informative for you.
23:48:34 <fizzie> int-e: Right, so it was "ret 0" that they changed the recommendation to.
23:49:54 <Slereah_> Damn
23:50:03 <Slereah_> The disassembly of the program is pretty fucking huge
23:50:19 <Bike> welcome to the world
23:50:42 <int-e> fizzie: I like the qemu bug in the end.
23:50:48 <pikhq> glibc is... kinda not even remotely meant for static linking.
23:50:57 <fizzie> ais523: Heh, "python3-numpy" lists as dependencies "python", "python3.3" *and* "python3.4" all. (In sid, that is.)
23:51:31 <Bike> how coincidental, when i searched for this article by that asshole glibc maintainer i found something deriding static linking too
23:52:04 <Slereah_> Let's remove the putchar
23:52:07 -!- augur has quit (Remote host closed the connection).
23:52:08 <Slereah_> Should slim it down a bit
23:52:21 <pikhq> Won't help, all that code is being pulled in by the glibc entry point.
23:52:27 <Slereah_> Nooooo
23:52:33 <pikhq> glibc is really wonky with static linking for that matter. It dlopens stuff.
23:52:51 <Slereah_> Goddamn
23:53:01 <Slereah_> and you wonder why i want to do assembly without an OS in the way!
23:53:05 <fizzie> pikhq: Hey, it did help "a bit"; from 141478 lines to 141380.
23:53:06 <Slereah_> Look at all that bullshit
23:53:10 <Slereah_> For an empty program
23:53:25 <fizzie> I do wonder why you are looking at the bullshit.
23:53:30 <Bike> same
23:53:47 <fizzie> Since it's not at all relevant for doing some assembly.
23:54:11 <pikhq> http://sprunge.us/REEL Here, have something saner.
23:54:20 <Bike> 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 <Slereah_> I am curious!
23:54:31 <Slereah_> Well I understand why it is there
23:54:44 <Slereah_> Because standardization and having to work with everything else
23:54:48 <pikhq> When discussing glibc, this is trivially true...
23:55:09 <pikhq> glibc is kinda a giant pile of accumulated cruft.
23:55:14 <Slereah_> It's just not really necessary for just writing some assembly in a vacuum for fun
23:55:30 <Bike> well, no. you could ahve just left it dynamically linked.
23:55:39 <Slereah_> Well right now there's nothing to link
23:55:44 <Slereah_> Because the program is empty
23:55:59 <Bike> what is your program exactly? i thought it had putchar
23:56:06 <Slereah_> I removed it
23:56:10 <Slereah_> now it is return 0;
23:56:13 <Bike> the main init stuff i guess, i've never been totally clear on how that works
23:56:21 <fizzie> That's not empty at all.
23:56:23 <fizzie> 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 <fizzie> 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 <Slereah_> Thanks.
23:58:07 <fizzie> (It's still related to writing programs for an operating system, but still.)
23:58:09 <ais523> fizzie: written by one of the world's best INTERCAL programmer
23:58:12 <ais523> *programmers
23:58:27 <Slereah_> The best out of three?
23:59:04 <fizzie> I'm imagining some kind of an Elo ranking for INTERCAL programmers.
23:59:12 <Sgeo> Is it even safe to eat other foods if this isn't filling?
23:59:35 <zzo38> You are going to make a Elo rankings for INTERCAL programming?
23:59:56 <Bike> we'd fucking better
←2014-02-28 2014-03-01 2014-03-02→ ↑2014 ↑all