←2015-10-15 2015-10-16 2015-10-17→ ↑2015 ↑all
00:06:44 -!- zemhill has joined.
00:06:44 -!- Jafet has joined.
00:06:44 -!- augur has joined.
00:06:44 -!- |f`-`|f has joined.
00:06:44 -!- jix has joined.
00:09:17 -!- EgoBot has joined.
00:09:17 -!- nisstyre_ has joined.
00:09:17 -!- hppavilion[1] has joined.
00:09:17 -!- zgrep has joined.
00:09:17 -!- heroux has joined.
00:09:17 -!- quintopi1 has joined.
00:09:17 -!- nortti has joined.
00:09:17 -!- Sgeo__ has joined.
00:09:17 -!- rodgort has joined.
00:09:17 -!- ski has joined.
00:09:17 -!- yorick has joined.
00:09:17 -!- mtve has joined.
00:09:17 -!- myndzi has joined.
00:09:17 -!- tromp_ has joined.
00:10:15 -!- atehwa has joined.
00:10:15 -!- relrod has joined.
00:10:15 -!- pdxleif has joined.
00:10:15 -!- TieSoul has joined.
00:10:15 -!- teuchter has joined.
00:10:15 -!- Melvar has joined.
00:10:15 -!- fungot has joined.
00:10:49 -!- Phantom_Hoover has joined.
00:11:15 -!- VictorCL has joined.
00:11:26 -!- diginet has joined.
00:11:27 -!- TodPunk has joined.
00:12:51 -!- oerjan has joined.
00:12:52 -!- trn has joined.
00:12:52 -!- shachaf has joined.
00:12:52 -!- cnr has joined.
00:12:52 -!- lifthrasiir has joined.
00:13:11 -!- digitalcold has joined.
00:13:12 -!- PinealGlandOptic has joined.
00:13:12 -!- Wright has joined.
00:13:12 -!- shikhin has joined.
00:13:12 -!- Adie has joined.
00:13:12 -!- paul2520 has joined.
00:13:12 -!- Taneb has joined.
00:13:12 -!- haavard has joined.
00:13:12 -!- deltab has joined.
00:13:12 -!- fizzie has joined.
00:13:12 -!- newsham has joined.
00:13:17 -!- perrier has joined.
00:13:18 -!- skarn has joined.
00:13:18 -!- Alcest has joined.
00:13:18 -!- puckipedia has joined.
00:13:18 -!- olsner has joined.
00:13:33 -!- mbrcknl has joined.
00:13:33 -!- MoALTz has joined.
00:13:33 -!- gniourf has joined.
00:13:33 -!- Deewiant has joined.
00:13:33 -!- APic has joined.
00:13:33 -!- ocharles__ has joined.
00:13:33 -!- HackEgo has joined.
00:13:33 -!- myname has joined.
00:13:33 -!- b_jonas has joined.
00:14:05 -!- Sprocklem has joined.
00:14:05 -!- aretecode has joined.
00:14:05 -!- tromp has joined.
00:14:05 -!- Hoolootwo has joined.
00:14:05 -!- Gregor` has joined.
00:14:05 -!- SirCmpwn has joined.
00:14:05 -!- edwardk has joined.
00:14:05 -!- coppro has joined.
00:14:05 -!- glowcoil has joined.
00:14:05 -!- jameseb has joined.
00:14:05 -!- lambdabot has joined.
00:15:01 -!- vifino has joined.
00:15:48 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
00:17:43 -!- Phantom_Hoover has joined.
00:17:47 -!- Sprocklem has quit (Ping timeout: 268 seconds).
00:17:59 -!- \oren\ has joined.
00:18:53 -!- FireFly has joined.
00:18:53 -!- izabera has joined.
00:18:53 -!- staffehn has joined.
00:18:53 -!- erdic has joined.
00:18:53 -!- Vorpal has joined.
00:18:53 -!- Lymia has joined.
00:18:53 -!- nchambers has joined.
00:18:53 -!- pikhq has joined.
00:18:53 -!- clog has joined.
00:23:37 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
00:27:08 -!- J_Arcane has joined.
00:28:59 <HackEgo> [wiki] [[User:Hppavilion1/Box:SorryBF]] N http://esolangs.org/w/index.php?oldid=44758 * Hppavilion1 * (+197) Created Page on the hope that userboxes work. They probably don't.
00:29:48 <HackEgo> [wiki] [[Template:Userbox]] N http://esolangs.org/w/index.php?oldid=44759 * Hppavilion1 * (+27) Created Page in case someone ever gets #invoke working.
00:29:50 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
00:30:16 <hppavilion[1]> -_-
00:35:23 <HackEgo> [wiki] [[Module:Userbox]] N http://esolangs.org/w/index.php?oldid=44760 * Hppavilion1 * (+12887) Created page (still waiting on #invoke)
00:38:09 <hppavilion[1]> It looks like to get #invoke working, the wiki will need Scribunto
00:38:54 <hppavilion[1]> If anyone else thinks that having cool userboxes is a good idea, feel free to add it. None of the pages I added will do anything if we don't, which means it's fine if we leave them if you guys decide not to get #invoke working
00:42:17 -!- boily has joined.
00:42:55 <boily> rhellørjan.
00:43:17 <hppavilion[1]> Hy boily
00:44:37 -!- Sprocklem has joined.
00:44:43 <boily> hppavellon[1]!
00:46:56 <boily> (for the record, it sounds like /æʃ.pe.pä.vɛ.lɔn.ʔœ̃/)
00:47:35 -!- fractal has joined.
00:53:42 <hppavilion[1]> Interesting...
00:54:19 <hppavilion[1]> boily: I'm making both a DB software and a Social Networking Site (for programmers). I wonder if I should use the DB to power the SN...
00:58:30 -!- JesseH has joined.
00:58:51 <boily> why not.
01:00:24 -!- Sprocklem has quit (Ping timeout: 255 seconds).
01:00:38 <hppavilion[1]> boily: Good point xD.
01:00:53 <hppavilion[1]> Well, then again, for starters, it'll be a pretty slow DB
01:01:26 <hppavilion[1]> I think I'll get the SN up and running with some primitive stuff then later make a DB software to run it on
01:09:35 <boily> time to incorporate the embodiement of a mattress.
01:09:48 -!- boily has quit (Quit: MIXTURISED CHICKEN).
01:43:32 -!- JesseH has quit (Remote host closed the connection).
01:44:52 -!- adu has joined.
01:47:40 -!- JesseH has joined.
01:56:54 <oerjan> wait why am i reading MtG discussion in the logs again
01:58:16 <shachaf> oerjan: why would you not hth
01:58:52 <shachaf> this channel has among the more interesting mtg discussion i see
01:58:59 <shachaf> not that i read much anymore
01:59:19 <oerjan> because it takes ages to get through the logs everytime i do
01:59:48 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
01:59:50 <oerjan> and i don't even play the game
01:59:56 <shachaf> neither does ais523 hth
02:00:06 <oerjan> well i never did
02:00:34 <shachaf> i'm not sure whether ais523 ever did
02:00:49 <shachaf> @ask ais523 Did you ever play MtG?
02:00:49 <lambdabot> Consider it noted.
02:12:34 <oerjan> i thought he'd mentioned the changes that made him lose interest in playing
02:15:09 <shachaf> oh
02:15:11 <shachaf> that's possible
02:15:42 <Sgeo__> Did I link https://www.reddit.com/r/rust/comments/3osqqe/hlist_010_heterogeneously_typed_lists_with/ already?
02:30:24 -!- heroux has quit (Ping timeout: 255 seconds).
02:31:56 -!- heroux has joined.
02:35:04 -!- hppavilion[1] has joined.
02:35:40 <hppavilion[1]> So I've got the basic server up to throw the Homepage at users of my HTTP server
03:08:07 <hppavilion[1]> Should my SN do tracking shenanigans to see what to show you, or only be dependent on what you tell it?
03:09:10 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
03:31:09 -!- Wright has quit (Ping timeout: 250 seconds).
03:37:59 <Hoolootwo> you should track everything about a user and be as creepy as possible
03:38:02 <Hoolootwo> customers like that
03:41:40 <Hoolootwo> s/customers/programmers/
03:52:18 -!- staffehn has quit (Ping timeout: 246 seconds).
03:52:58 <hppavilion[1]> Why is there no JS for CSS? xD
03:53:24 -!- staffehn has joined.
04:05:15 <hppavilion[1]> My Programmer's Social Network is coming along nicely. At least, the HTML/CSS part of it.
04:05:25 <hppavilion[1]> Haven't done any JS or backend stuff yet.
04:05:38 <hppavilion[1]> Don't even KNOW how I'm going to do search and content selection.
04:05:48 <hppavilion[1]> Anyone feel like participating in the magic?
04:07:57 <hppavilion[1]> GTG
04:07:59 <hppavilion[1]> Be back in a bit
04:12:28 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
04:29:40 -!- ^v has joined.
04:30:07 -!- hppavilion[1] has joined.
04:30:13 <hppavilion[1]> It's been a bit. And so I am back.
04:32:30 -!- Sprocklem has joined.
04:54:36 -!- JesseH has quit (Remote host closed the connection).
05:07:00 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
05:14:59 -!- bb010g has joined.
05:15:24 -!- adu has quit (Quit: adu).
05:45:06 -!- oerjan has quit (Quit: leaving).
05:57:43 -!- hppavilion[1] has joined.
06:16:22 <hppavilion[1]> Well. I just found the original Lenna.
06:20:35 <hppavilion[1]> Wikipedia's citation section is very useful.
06:20:46 <\oren\> she must be like, 50 years old by now
06:22:46 <lifthrasiir> she was actually invited by the image processing community in 1997
06:32:56 -!- Phantom_Hoover has joined.
06:35:21 <hppavilion[1]> I find it interesting that all college professors seem to know HTML, but little-to-no CSS.
06:36:08 <hppavilion[1]> Like, if (when?) I teach college, I'll make a standard CSS layout and use that on all of my pages so it looks nice
06:36:11 <hppavilion[1]> Speaking of which...
06:36:37 <Phantom_Hoover> i don't think most professors know html
06:37:01 <Phantom_Hoover> i think they learn just enough to format a homepage, just like anyone else who doesn't care about web design
06:38:38 <\oren\> I wrote the CSS for my dad's homepage
06:38:58 <hppavilion[1]> 206.174.3.247
06:39:01 <hppavilion[1]> http://206.174.3.247
06:39:27 <hppavilion[1]> (No one hack me xD)
06:39:49 <\oren\> http://math.yorku.ca/~watson/
06:39:59 <Phantom_Hoover> green on black's a pretty cliche choice
06:40:11 <hppavilion[1]> Phantom_Hoover: True, true. But what else would I do?
06:40:21 <hppavilion[1]> Sometimes, Cliche is the only option.
06:41:33 <\oren\> white on green?
06:42:09 <hppavilion[1]> Ew
06:43:36 <hppavilion[1]> \oren\: Please tell me that was a joke.
06:43:47 <\oren\> why not?
06:44:23 <\oren\> or how about led-blue on black. green is so old
06:44:38 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
06:45:09 <hppavilion[1]> \oren\: I was considering throwing some #0000FF in. And, of course, #FF0000, for the pseudo-stderr
06:46:44 -!- Phantom_Hoover has joined.
06:48:03 <hppavilion[1]> How was your journey, Phantom_Hoover
06:48:15 <Phantom_Hoover> this fucking wifi
06:48:30 <Phantom_Hoover> i might actually connect to ethernet
06:55:09 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds).
06:56:45 -!- Phantom_Hoover has joined.
06:57:59 -!- ^v has quit (Quit: Leaving).
06:58:14 <hppavilion[1]> Phantom_Hoover: Trying the ethernet?
07:08:33 <Phantom_Hoover> no, wifi's evidently just stabilised
07:21:05 <hppavilion[1]> Yay
07:33:01 -!- Patashu has joined.
07:38:54 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
07:58:26 -!- Phantom_Hoover has joined.
08:20:01 -!- bb010g has quit (Quit: Connection closed for inactivity).
08:26:36 -!- VictorCL has joined.
08:27:48 -!- Patashu has quit (Remote host closed the connection).
08:28:07 -!- Patashu has joined.
08:33:06 -!- hppavilion[1] has quit (Ping timeout: 255 seconds).
08:40:40 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds).
08:43:50 -!- Patashu has quit (Ping timeout: 240 seconds).
08:45:47 -!- Frooxius has joined.
08:51:05 -!- Patashu has joined.
08:59:46 -!- Phantom_Hoover has joined.
09:00:26 -!- shikhin has quit (Read error: Connection reset by peer).
09:00:27 -!- FireFly has quit (Read error: Connection reset by peer).
09:01:08 -!- FireFly has joined.
09:04:34 -!- shikhin has joined.
09:05:09 -!- bender| has joined.
09:05:32 -!- bender| has changed nick to bender.
09:14:23 <b_jonas> Oh, I have a question.
09:14:55 <b_jonas> For naming functions in a program, I'd like a pair of words that mean asserting that a condition is true and false respectively.
09:15:13 <b_jonas> I was thinking of "assert" and "dessert" but there's probably something better.
09:15:20 <b_jonas> Also maybe "yessert" and "nossert"
09:16:30 <izabera> http://egbg.home.xs4all.nl/counterscript.html useful
09:18:01 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
09:23:00 <b_jonas> or affirm and infirm
09:26:21 <fizzie> yessir and nosir.
09:27:29 <fizzie> "allege" and "disclaim" might be a good pair too.
09:29:20 <fizzie> Or asseverate/disseverate. The first one is allegedly even a word.
09:29:37 <fizzie> ascertain/dismember.
09:32:32 -!- mauris has joined.
09:37:30 -!- Phantom_Hoover has joined.
09:54:32 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
10:00:17 <b_jonas> fizzie: hmm.
10:00:21 <b_jonas> dismember? hehe
10:09:45 -!- mroman has joined.
10:09:50 <mroman> Update 20150615: Der EuGH findet übrigens, dass Forenbetreiber für Äußerungen in ihren Foren haften, selbst wenn sie diese Äußerungen bereits gelöscht haben.
10:09:54 <mroman> what
10:11:46 <mroman> oh well it only applies to commercial sites :)
10:13:58 -!- Phantom_Hoover has joined.
10:15:01 -!- ineiros has joined.
10:38:08 -!- boily has joined.
11:32:37 -!- boily has quit (Quit: PERIPHERAL CHICKEN).
11:41:47 -!- aretecode has quit (Ping timeout: 268 seconds).
11:43:09 -!- j-bot has joined.
11:43:23 -!- bender has quit (Ping timeout: 246 seconds).
11:44:10 -!- bender has joined.
11:52:35 <HackEgo> [wiki] [[Special:Log/newusers]] create * Ffkhtbor * New user account
11:53:49 <HackEgo> [wiki] [[Brainloller]] M http://esolangs.org/w/index.php?diff=44761&oldid=44114 * Ffkhtbor * (+23) Better defined the IP rotation function
12:07:39 -!- j-bot has quit (Remote host closed the connection).
12:08:51 -!- Froox has joined.
12:11:21 -!- Frooxius has quit (Ping timeout: 255 seconds).
12:18:11 -!- Patashu has quit (Ping timeout: 264 seconds).
12:26:11 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds).
12:44:59 -!- Phantom_Hoover has joined.
13:04:36 -!- adu has joined.
13:09:50 -!- adu has quit (Ping timeout: 272 seconds).
13:12:17 -!- bender has quit (Ping timeout: 246 seconds).
13:13:19 -!- bender has joined.
13:29:27 -!- AnotherTest has joined.
13:36:40 -!- J_Arcane has quit (Ping timeout: 244 seconds).
13:40:53 -!- |f`-`|f has quit (Ping timeout: 256 seconds).
13:44:41 -!- |f`-`|f has joined.
13:51:12 -!- aretecode has joined.
13:51:24 -!- Froox has quit (Quit: *bubbles away*).
13:55:32 <mroman> http://esolangs.org/wiki/Essays/A_Defence_of_Brainfuck_Derivatives woot
13:56:07 <mroman> "However, some people aren't cool with that. They try to make it more minimal"
13:56:14 <mroman> Don't we already know how minimal you can make brainfuck
14:12:23 -!- J_Arcane has joined.
14:15:03 -!- gamemanj has joined.
14:37:54 -!- JesseH has joined.
14:42:16 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
14:42:42 -!- Phantom_Hoover has joined.
14:46:41 -!- idris-bot has joined.
15:05:20 -!- J_Arcane has quit (Ping timeout: 246 seconds).
15:18:38 -!- oerjan has joined.
15:28:47 <int-e> hmm, "essay minimization" (reduce every paragraph to a headline and a single sentence)
15:30:27 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
15:31:19 -!- ineiros has quit (Ping timeout: 265 seconds).
15:43:24 -!- J_Arcane has joined.
15:55:10 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
15:56:04 -!- VictorCL has joined.
16:01:08 -!- zzo38 has joined.
16:06:01 -!- zadock has joined.
16:07:39 -!- Phantom_Hoover has joined.
16:27:52 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
16:30:44 -!- Vorpal has quit (Ping timeout: 246 seconds).
16:32:33 <oerjan> <b_jonas> I was thinking of "assert" and "dessert" but there's probably something better. <-- assert is fine, what about deny?
16:53:00 -!- J_Arcane has quit (Ping timeout: 265 seconds).
16:53:42 <b_jonas> oerjan: maybe...
16:54:06 -!- oerjan has quit (Quit: Then that's settled!).
17:02:35 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
17:12:26 <zzo38> Is there some combination of Magic: the Gathering cards that you can gain life during a mana step?
17:32:48 -!- mroman has quit (Quit: Lost terminal).
17:37:34 -!- mihow has joined.
18:01:15 -!- zadock has quit (Quit: Leaving).
18:08:50 -!- JesseH has quit (Ping timeout: 240 seconds).
18:09:06 -!- atrapado has joined.
18:13:27 <shachaf> A mana step?
18:13:38 <shachaf> You mean a point in the game where you can only activate mana abilities?
18:16:35 <zzo38> Yes
18:25:33 <shachaf> `8ball when is the next olist coming out?
18:25:34 <HackEgo> Signs point to yes.
18:25:40 <shachaf> what?
18:25:42 <shachaf> `8ball is the next olist coming out today?
18:25:43 <HackEgo> Cannot predict now.
18:25:50 <shachaf> fungot: maybe you know
18:25:50 <fungot> shachaf: 2) sprite y position is latched for use in bitmap mode offers a choice of four colors, three of which bank the 4k byte character base are displayed as a sys to a machine language
18:34:25 -!- augur has quit (Ping timeout: 256 seconds).
18:34:54 <shachaf> `? tanebventions
18:34:55 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, Stephen Wolfram, Go, the universe, weetoflakes, persistence, the reals, robots, progress, and this sentence. He never invents anything involving sex.
18:34:56 <shachaf> `? robots
18:34:56 <HackEgo> Robots are deterministic finite Belgians that repeat themselves. Taneb invented them.
18:34:59 <shachaf> `? progress
18:35:00 <HackEgo> Progress has been made today. It was invented by Taneb.
18:35:27 <shachaf> `culprits wisdom/robot
18:35:28 <HackEgo> shachaf
18:35:29 <shachaf> that's a scow entry
18:36:54 -!- augur has joined.
18:46:31 -!- JesseH has joined.
18:50:02 <zzo38> Some mana abilities deal damage; if you can grant that land infect and lifelink abilities then I think you might be able to gain life during a mana step. Are there other ways?
18:50:08 <b_jonas> "<zzo38> Is there some combination of Magic: the Gathering cards that you can gain life during a mana step?" -- I'm not sure if that's possible. You can certainly kill a permanent that triggers an ability that will net you life later.
18:50:25 <b_jonas> zzo38: hmm, maybe there's some replacement effect that gains you life?
18:50:42 <b_jonas> wait, doesn't Swans do that?
18:50:44 <b_jonas> yes it odes
18:50:49 <b_jonas> hmm
18:51:07 <b_jonas> zzo38: Pariah on Swans
18:51:13 <b_jonas> then deal damage to yourself
18:51:17 <b_jonas> with that land
18:51:30 <zzo38> Doesn't gause life gain
18:51:40 <b_jonas> (Adarkar Wastes deals damage to you)
18:51:47 <b_jonas> oh...
18:51:49 <b_jonas> argh
18:51:55 <b_jonas> um
18:52:24 <b_jonas> yeah, most of the damage => gainlife things are triggered
18:52:47 <b_jonas> zzo38: how does Awe Strike work?
18:53:18 <b_jonas> no wait, Awe Strike replaces the wrong type of damage event, you won't be able to get that from a mana thing
18:53:32 <b_jonas> still, there must be something like that
18:54:09 <zzo38> I guess it can, if you can make it into a creature
18:54:16 <zzo38> But I don't quite know.
18:54:19 <b_jonas> zzo38: hmm
18:54:54 <b_jonas> zzo38: Lich's Mirror would gain you life, but you can't lose the game from a mana ability
18:55:20 <b_jonas> wait
18:56:37 <b_jonas> zzo38: Purity
18:56:50 <b_jonas> zzo38: Purity and Adarkar Wastes
18:57:37 <b_jonas> ah, I knew there's such a spell in pure form. Reverse Damage (that's an actual card name)
18:57:43 <b_jonas> cast that on your land
18:57:49 <b_jonas> much better
18:58:01 <b_jonas> lets you use any source, no mucking about with the "target creature" nonsense
18:58:14 <b_jonas> there's also Samite Ministration
18:58:39 <b_jonas> and Shadowbane
18:58:45 <b_jonas> crazy underpowered old spells
19:02:51 <b_jonas> (or, if you prefer the overcomplicated Simic solution, animate the land, get Quicksilver Elemental to gain the tap ability of the land, then Cytoshape the elemental to a Phantom Nishoba)
19:03:25 <b_jonas> zzo38: ok, so there is a way. what was the goal of this?
19:07:18 <b_jonas> by the way, the crazy part of Swans is that it can replace one a two damage events that have to be simultanous (such as damage to two creatures from Pinnacle of Rage) by multiple draw events that must not be simultanous, so you get two events one after another, each of which is simultanous with a third one. I don't know how it works, rules-wise. Probably causes some wibbly-wobbly timey-wimey stuff.
19:07:58 <b_jonas> I'll have to try to ask ais523 specifically for how that works.
19:10:12 <b_jonas> I'll have to figure out a case where the time when you draw the cards actually matters though. Probably with Platinum Angel and a too small library.
19:13:10 -!- `^_^v has joined.
19:17:06 <b_jonas> No, Platinum Angel is no good
19:17:21 <b_jonas> it will die only later
19:31:32 -!- sewilton has joined.
19:33:00 -!- lleu has quit (Ping timeout: 272 seconds).
19:42:30 -!- idris-bot has quit (Ping timeout: 240 seconds).
19:44:26 -!- Melvar has quit (Ping timeout: 260 seconds).
20:06:35 -!- nycs has joined.
20:06:35 <zzo38> I have run my opponent out of cards with Swans of Bryn Argoll once in a draft tournament.
20:06:58 <shachaf> zzo38: Whom do you play draft tournaments with?
20:07:38 -!- Melvar has joined.
20:07:43 <zzo38> This was at an anime convention
20:08:15 <zzo38> I rarely play Magic: the Gathering at all, but I usually enter a draft tournament when I go to an anime convention
20:08:43 <shachaf> It must've been a while ago.
20:08:57 <shachaf> Oh, I guess Shadowmoor was only 2008.
20:09:04 <shachaf> I think of anything before Innistrad as ancient history.
20:09:15 -!- `^_^v has quit (Ping timeout: 255 seconds).
20:10:05 <zzo38> Yes it was many years ago
20:19:52 -!- nycs has quit (Quit: This computer has gone to sleep).
20:29:42 -!- VictorCL has joined.
20:36:27 -!- Frooxius has joined.
20:38:57 -!- JesseH has quit (Read error: Connection reset by peer).
21:04:58 -!- JesseH has joined.
21:08:39 <b_jonas> MTG people answered the swans thing
21:08:47 <b_jonas> there's a rule 120.7 for that now
21:11:44 <b_jonas> it's not even a new rule, it's been there since at least 2010
21:20:46 -!- ais523 has joined.
21:22:35 <b_jonas> ais523: hello
21:22:52 <ais523> hi b_jonas
21:22:52 <b_jonas> I just learned something about M:tG rules
21:22:57 <ais523> go on
21:23:41 <b_jonas> there's such a rule as 120.7 (introduced some time between 2007 and 2010, I didn't bisect) which tells what happens when you replace some of multiple simultanous events with a card draw or sequence of card draws,
21:23:49 <b_jonas> such as with Swans of Bryn Argoll.
21:24:11 <ais523> @tell shachaf I have played M:tG in the past, specifically from 9th Edition to Future Sight inclusive, but I quit during Lorwyn because it didn't catch my imagination at all and I didn't enjoy playing it
21:24:12 <lambdabot> Consider it noted.
21:25:35 <b_jonas> It's a bit hard to find a case where this actually matters, but it's possible. Control a Swans of Bryn Argol and a Crumbling Sanctuary, deal damage to the swans and yourself simultanously, with Pinnacle of Rage.
21:26:05 <b_jonas> I wonder if there's any other type of replacement effect that tries to replace an event with multiple non-simultanous events, but there probably isn't.
21:27:51 <b_jonas> I've been wondering about the multiple draws case before, but didn't find this rule
21:28:19 -!- gamemanj has quit (Ping timeout: 240 seconds).
21:29:55 -!- lleu has joined.
21:29:55 -!- lleu has quit (Changing host).
21:29:55 -!- lleu has joined.
21:31:35 <HackEgo> [wiki] [[Special:Log/delete]] delete * Ais523 * deleted "[[Module:Userbox]]": copyright violation
21:32:57 -!- hppavilion[1] has joined.
21:33:41 <HackEgo> [wiki] [[User talk:Hppavilion1]] http://esolangs.org/w/index.php?diff=44762&oldid=43296 * Ais523 * (+720) /* Please don't copy information from Wikipedia */ new section
21:35:14 -!- variable has joined.
21:36:14 <b_jonas> zzo38: by the way, do you know of the book ''Matters Computational'' (fxtbook) by Jörg Arndt, full content downloadable from http://www.jjj.de/fxt/#fxtbook ? It might be a book where you can find some interesting things for yourself, or not. I'm not sure.
21:38:34 -!- atrapado has quit (Quit: Leaving).
21:42:25 -!- variable has quit (Quit: 1 found in /dev/zero).
21:44:24 <ais523> huh, http://support.amd.com/en-us doesn't scroll vertically without JavaScript
21:44:46 <ais523> that's one of the worst JS-not-supported cases I've seen
21:45:25 <b_jonas> ... if that's the worse, that sounds like you haven't seen enough webpages
21:45:32 <shachaf> @messages-loud
21:45:32 <lambdabot> ais523 said 21m 20s ago: I have played M:tG in the past, specifically from 9th Edition to Future Sight inclusive, but I quit during Lorwyn because it didn't catch my imagination at all and I didn't enjoy playing it
21:45:41 * ais523 accepts the cookie that says that I've acknowledged the cookies notice, and declines all the others
21:47:28 <b_jonas> ais523: I mean, there are pages with text truncated that just don't scroll at, with or without javascript. I have to read the text by looking at the dom, the source, or modifying the dom so it's visible.
21:47:28 <hppavilion[1]> That's a flaw.
21:47:34 <b_jonas> I don't see why this is worse.
21:47:45 <ais523> b_jonas: I mean a failure in JS-turned-off support specifically
21:47:59 <b_jonas> ais523: yes, sure, but still
21:48:09 <ais523> I rank it based on how well the site functions with JS turned off, compared to a) how well the site works with JS turned on, and b) how well I would /expect/ the site to work with JS turned off
21:48:10 -!- AnotherTest has quit (Ping timeout: 240 seconds).
21:48:16 <b_jonas> it's easier to view the truncated text than with many other similar pages
21:49:14 <hppavilion[1]> Making a SN is fun :)
21:49:38 <b_jonas> there's only a single css 'overflow' property you have to disable. other pages typicallyi have like four nested elements, each of which have a fixed with and truncate, so they're not so easy to fix.
21:49:42 <hppavilion[1]> I currently have the HTML for the Homepage AND a WIP HTML for an example of a post in a datastream.
21:50:30 <b_jonas> I probably wouldn't even have noticed that the javascript lets it scroll.
21:50:47 <ais523> I think the JS just sets overflow to auto
21:51:01 <b_jonas> (it's the css rule for .content by the way)
21:51:10 <hppavilion[1]> (Datastream being analagous to a Feed, but more hackery sounding. It's a joke, mind you.)
21:51:14 <ais523> which is kind-of aggressively pointless
21:52:54 <b_jonas> ais523: pointless, sure, but not really "amopng the worst" javascript-related stuff I've seen
21:53:08 <ais523> I haven't seen worse, I don't think
21:53:21 <b_jonas> ok
21:53:26 <ais523> as long as you don't count the pages which have a box that covers the entire content saying the page doesn't work with JS off, when actually it does
21:53:32 <b_jonas> zzo38: so why did you ask about life gain in first place?
21:53:40 <ais523> it's pretty easy to remove those with an element inspector though
21:54:50 * ais523 reads AMD's guide to how to configure compilers
21:55:04 <ais523> it recommends -ffast-math without disclaimers
21:55:04 <ais523>
21:56:03 <ais523> the reason -ffast-math is off by default is that it contains incorrect optimizations
21:56:33 <b_jonas> also, I've asked for a good pair of names, to use in program identifiers, meaning to assert a condition and to assert the logical negation of a condition respectively. I proposed assert/dessert, yessert/nossert. fizzie suggested allege/disclaim, asseverate/disseverate, ascertain/dismember. oerjan suggeted assert/deny.
21:56:35 <fizzie> Speaking of pages that cover the content, I made a thing the other day that uses Selenium WebDriver to drive a real Chrome to log on my mobile operator's (Three) account page, and pull in the account balance, because the website is too annoying to log on to, and I want to keep track of it.
21:56:37 <ais523> oh, it mentions that lower down, in the troubleshooting section ;-)
21:56:45 -!- mauris_ has joined.
21:56:46 <b_jonas> Can you suggest anything better?
21:56:58 <fizzie> One of the nasty wrinkles is that every now and then they pop up this "please answer this survey" modal dialog.
21:57:47 <b_jonas> ais523: I hate -fast-math. and I hate how even without -fast-math, there's at least three different semantics about which particular NaN you get from an arithmetic op already involving NaN, and you can end up with any of them or a combination,
21:57:54 <ais523> it's -ffast-math
21:58:03 <ais523> -fast-math would presumably implement math using an AST
21:58:15 <fizzie> I tried to use HtmlUnit (a Java-based headless browser) first, but the compelling multimedia interface was just too much. And as for a raw HTTP client, the complicated iframey SSO login thingie seemed overly hard to implement properly.
21:58:26 <b_jonas> and the C standard permits this because the IEEE thing doesn't care about distinctions between nan values.
21:58:36 <ais523> incidentally, all this interest in processors was sparked by something that happened at work
21:58:41 <ais523> and then caused me to have an esolang idea
21:59:01 <b_jonas> However, I also blame Intel who had introduced a second set of NaN semantics in the same architecture, and the second semantics makes _less_ sense than the original one.
21:59:05 <b_jonas> Seriously.
21:59:09 <b_jonas> How did they even invent it?
21:59:12 <ais523> b_jonas: at least when using SSE, the defined behaviour is "copy the leftmost NaN operand, and if it's signalling, flip one bit to make it quiet"
21:59:32 <ais523> but ofc this does things like make addition noncommutative
21:59:37 <b_jonas> ais523: um, sure, it's mostly sparked at work for me too, though not completely.
21:59:39 <ais523> (floating point addition is otherwise commutative, IIRC)
21:59:43 <b_jonas> ais523: almost, yes
21:59:59 <ais523> oh, hmm, what's the exception? +0 + -0?
21:59:59 <b_jonas> ais523: flip one bit, and if the result would be an infinity, change that to a nan, but sure
22:00:14 -!- mauris has quit (Ping timeout: 260 seconds).
22:00:27 <b_jonas> also, they don't guarantee anything about the sign of the nan
22:00:34 <b_jonas> which sucks
22:00:44 <ais523> hmm, can you make an esolang based on floating point rounding errors?
22:00:54 <b_jonas> it means even different cpus could in theory be incompatible, or cpus could depend on the phase of moon for floating point operations.
22:01:04 <b_jonas> the 387 nan semantics make much more sense
22:01:13 <ais523> this is partly why I've now banned floating point in NH4
22:01:27 <ais523> at least for anything that affects anything other than display/rendering
22:01:55 <b_jonas> for an operation between two quiet nans or two signaling nans, it takes the one with larger (or smaller? I don't remember) magnitude. that is better because it's commutative.
22:02:19 <b_jonas> And compilers WANT to use the commutative rule, for both addition and multiplication.
22:02:30 <b_jonas> So this helps make those computations deterministic
22:02:50 <b_jonas> whereas the SSE rules mean that even without the sign, the mantissa can depend on the optimization
22:04:52 <b_jonas> and seriously, this sign isn't defined is just calling for trouble
22:04:57 <ais523> I guess SSE's designers decided that basically nobody cared about NaN payload propagation
22:05:00 <b_jonas> with the indeterminism
22:05:21 <ais523> I can't think offhand of any program that cares about distinguishing between differently signed or payloaded NaNs
22:05:29 <b_jonas> ais523: it's not really nan payload propagation that I care about, but determinism for easier debugging
22:05:35 <zzo38> Floating point is also not used in TeX except for glue setting (which cannot be seen by anything other than adjusting the position of boxes being shipped out; it does not affect page breaking or anything else like that). METAFONT also uses no floating point; it has its own implementation for all calculations.
22:06:13 <b_jonas> ais523: if they made all addition and multiply and sqrt operations simply force all nan results to the single "indeterminate" representation, that would be fine for me
22:06:31 <b_jonas> I mean, I care about nan payloads a bit, so it would be even better to have rules that carry them
22:06:35 <b_jonas> but nondeterminism sucks
22:06:40 -!- Patashu has joined.
22:06:56 <ais523> how many people use any NaN payload other than IND?
22:07:11 * hppavilion[1] sighs
22:07:16 <b_jonas> ais523: yes, for two reasons, though not in a way that depends on nan propagation through arithmatic
22:07:46 <ais523> also, what's up with the long double format?
22:07:49 <ais523> it has an explicit integer bit
22:07:56 <ais523> which mostly just causes problems if it gets set to the wrong value
22:08:09 <b_jonas> ais523: (a) we use the nan that is represented by all-ones, because it's all-ones, which you get directly from comparision instructions; and (b) some programs store data in the payload of doubles to make a sort of union of a double float and other types
22:08:17 <b_jonas> but don't do arithmetic with them
22:08:51 <b_jonas> ais523: yes, but well, that was long ago, it comes from 8087, which had other strange semantics that got fixed later
22:08:54 <ais523> ah right, IIRC LuaJIT has an everything-is-a-double model, and for anything that isn't actually a double, it uses a NaN with a pointer in the payload
22:09:01 <b_jonas> in 80287 or 80387
22:09:15 <ais523> oh right, I didn't realise 8087 predated long double
22:09:22 <b_jonas> ais523: no, it didn't
22:09:23 <b_jonas> I think
22:09:27 <b_jonas> 8087 introduced long doubles
22:09:34 <b_jonas> it's the builtin type they handle
22:09:35 <b_jonas> um
22:09:37 <b_jonas> well
22:09:43 <ais523> well presumably they weren't called long double at the time, if it was a new encoding
22:09:46 <ais523> and only got their name later
22:09:46 <b_jonas> the long doubles, as a C type, predate 8087
22:09:50 <b_jonas> I dunno
22:09:58 <ais523> but the 80-bit encoding was new to 8087?
22:10:16 <b_jonas> anyway, 8087 has invented half of the IEEE rules, and 80287 or 80387 invented the other half of them, I think
22:10:22 <b_jonas> ais523: I'm not sure really
22:10:24 <b_jonas> but probably yes
22:10:31 <b_jonas> 8087 was pretty revolutionary
22:10:52 <b_jonas> with its consistent handling of rounding and mostly consistent handling of inf and nan and zeros and exceptions
22:11:02 <b_jonas> floating point was mostly a mess before that
22:11:17 <b_jonas> they came and figured out correct semantics with multiple modes that should suit all programs
22:11:31 <b_jonas> this includes such crazy stuff about exceptions that nobody uses and has fell into disuse now
22:11:49 <b_jonas> I think the IEEE standard came later, was based on those chips
22:11:56 <b_jonas> but I'm not sure of all this history
22:12:12 <ais523> huh, some interesting non-obvious advice here
22:12:24 <ais523> such as "do not allow four or more branch instructions to be within the same 16-byte sequence"
22:12:42 -!- boily has joined.
22:12:47 <ais523> (because otherwise the branch predictor runs out of internal storage and starts mispredicting)
22:12:48 <b_jonas> ais523: more than four? isn't it more than two?
22:12:55 <ais523> err, more than three
22:13:03 <ais523> at least on AMD processors
22:13:07 <ais523> maybe it's two on Intel's
22:13:16 <b_jonas> when I started to work with computers, x87 emulation was already readily available, though not universally used, and there were several other floating point formats (eg. 8 byte floating point with a 8 bit exponent, or 6 byte floating point)
22:13:23 <b_jonas> ais523: sure, it depends
22:13:36 <b_jonas> and no, I think amd, but maybe newer cpus allow more
22:13:37 <zzo38> I think state-based-effects do not work during the mana step
22:14:06 <ais523> there's also a two-byte encoding of RET (REP RET) that allows it to be a branch target without confusing the predictor
22:14:13 <ais523> zzo38: there isn't a mana step
22:14:15 <b_jonas> ais523: I might also be confusing between one-byte return, other return, *indirect* jump, or *conditional* jump with fixed address,
22:14:26 <b_jonas> zzo38: of course they don't
22:14:37 <b_jonas> zzo38: which is why you need the replacement effects that act immediately
22:15:06 <b_jonas> ais523: the branch _target_ predictor and the conditional predictor differ, and return instructions have some special handling
22:15:16 -!- Adie has left ("Leaving").
22:15:19 <b_jonas> and of course it can differ between different cpus
22:15:42 <ais523> indeed
22:15:45 <b_jonas> I mostly just hope compilers can get it right if I tell them the target,
22:16:25 <zzo38> I suggested lifelink and infect, which affect the result of the damage (which is normally, a target creature gets damage marked on it, a target player loses life points)
22:16:38 <b_jonas> but if you really have to know, you have to read (a) the AMD optimization manuals, separate for each AMD generation, (b) the Intel optimization manual, (c) Agner Fog's books; and even then you may not know everything because they keep some things secret, so you may have to make tricky benchmarks with performance counters and hope you can divine something.
22:16:58 <b_jonas> zzo38: oh yes, lifelink isn't triggered these days I think
22:17:00 <ais523> b_jonas: what is your job, incidentally?
22:17:23 <b_jonas> ais523: research and development in image processing mostly.
22:17:33 <ais523> I don't like the way lifelink works because it means that they're unlikely to print Spirit Link again (which is a much more interesting card than Lifelink)
22:17:44 <b_jonas> but I also do lots of support stuff handling and tracking the testcases, simply because other people don't do it properly.
22:18:10 <b_jonas> ais523: yep
22:19:51 <b_jonas> ais523: oh, about what they're going to print and what they aren't
22:20:48 <ais523> b_jonas: so something I've been wondering about
22:20:50 <b_jonas> ais523: "renown" is now an evergreen keyword, which means we probably might not get another set using -1/-1 counters ever, though that might actually be a good thing,
22:21:02 -!- VictorCL has left ("Textual IRC Client: www.textualapp.com").
22:21:04 <ais523> renown isn't evergreen, I thought?
22:21:19 <ais523> just being in a core set doesn't make a keyword evergreen
22:21:36 <hppavilion[1]> Should I include a simple API in my SN so programmers can autopost and such?
22:21:38 <b_jonas> ais523: that doesn't make it evergreen, yes, but it's still almost evergreen
22:21:39 <ais523> suppose I want to set a 32-bit register to a value in the range 0 to 255
22:21:49 <b_jonas> as in, it will be used again often
22:21:52 <b_jonas> if I understand correctly
22:22:10 <ais523> is it faster to do "xor %eax, %eax" "mov $0xab, %al"
22:22:23 <ais523> or "mov $000000ab, %eax"?
22:22:27 <ais523> the first is four bytes, the second is five
22:22:28 <b_jonas> ais523: the latter I believe
22:22:54 <b_jonas> the single instruction is usually faster, even if it's one or two bytes longer
22:22:58 <shachaf> I wish renown and monstrous and so on were tracked with a counter rather than being properties of an object.
22:23:10 <b_jonas> though you can end up with the latter being worse because it's longer
22:23:26 <ais523> right, it's going to be a tradeoff between decode speed and cache pressure/bandwidth
22:23:47 <ais523> shachaf: I think monstrous should just be tracked using the +1/+1 counters
22:23:54 <b_jonas> shachaf: just get an Experiment Kraj or a Cenn's Tactician
22:24:09 <ais523> i.e. monstrosity can't be played when the creature has a +1/+1 counter on it
22:24:12 <b_jonas> ais523: no, more than that
22:24:29 <b_jonas> ais523: the two instructions depend on each other, so even if the cpu weren't limited by decode speed, it would be slower in the execution part
22:24:41 <b_jonas> ais523: as in, the second one has an input that depends on the first one
22:24:50 <shachaf> ais523: Or has at least N +1/+1 counters, monstrous N?
22:24:53 <ais523> oh, actually another problem with the two instruction version
22:24:54 <shachaf> Monstrosity N
22:24:54 <b_jonas> well, probably
22:25:02 <ais523> is that %eax is being used with two different bitwidths
22:25:09 <ais523> which is apparently pretty slow
22:25:13 <b_jonas> there's some tricky special handling of splitting the register because of the AL stuff, but still
22:25:24 <ais523> shachaf: that'd work really badly with Polukranos
22:25:31 <b_jonas> there's the general advice that when there's a single instruction that does what you want, it's almost always better than the multiple instruction sequence
22:25:42 <b_jonas> because if it wasn't, then they'd optimize how that single instruction works
22:25:43 <shachaf> ais523: This is how Undying and that other keyword work.
22:25:50 <b_jonas> though sometimes that isn't possible for crazy technical reasons
22:25:54 <b_jonas> but they don't apply here
22:25:55 <zzo38> Magical Hack and Sleight of Mind can affect land word and color word; I made up a card to change a named counter word (it can't change "+1/+1" since that isn't a "named" counter word); do you expect they would ever print thing like that?
22:25:59 <ais523> shachaf: Persist, also Unleash
22:26:06 <shachaf> Right.
22:26:15 <ais523> I just like optimizing for size because it's objective
22:26:23 <ais523> in human vs. compiler competitions, you can easily spot the winner
22:26:29 <b_jonas> ais523: wait, isn't the mov version actually _six_ bytes rather than five?
22:26:30 <ais523> optimizing for speed is much harder to judge
22:26:38 <ais523> b_jonas: might be, I'm not sure
22:26:43 <b_jonas> on x86_64 that is
22:27:12 <ais523> clearly we need a HackEgo command that assembles an instruction and tells you the encoding
22:27:49 <b_jonas> I'm not sure how the encoding works right now, but I think the one-byte mov rax instruction takes an eight-byte immediate, so you have to use the general move immediate to memory instruction with a reg/mm byte
22:27:55 <b_jonas> so it's six bytes
22:27:57 <b_jonas> but still, it wins
22:28:13 <b_jonas> except for setting the register to zero of course
22:28:13 <zzo38> Such things can also interact with tribute, if they check for +1/+1 counters
22:29:12 <ais523> `` echo #! /bin/sh > bin/asm
22:29:13 <HackEgo> No output.
22:30:03 <b_jonas> ais523: the other thing about what will be printed. recall that there's an article by Mark Rosewater where he tells that for Apocalypse, they were trying to create a land that produces colorless mana and has a new (sixth) basic land type, for use with cards that have Domain abilities (which count basic land types among lands you control),
22:30:40 <ais523> `` echo 'echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | tail -n 1' >> bin/asm
22:30:42 <HackEgo> No output.
22:30:45 <ais523> `` chmod a+x bin/asm
22:30:47 <HackEgo> No output.
22:30:58 <b_jonas> but the then rules team (the predecessor of rules managers) nixed it because it would break the printed text of Coalition Victory (that's a very lame excuse I think).
22:30:59 <ais523> `asm mov $0xa5, %eax
22:31:01 <HackEgo> ​ 0:b8 a5 00 00 00 mov $0xa5,%eax
22:31:09 <ais523> told you it was five bytes
22:31:17 <shachaf> Why tail -n 1?
22:31:22 <b_jonas> ais523: that's x86_32 or x86_64?
22:31:26 <ais523> shachaf: objdump produces a bunch of junk before the information you want
22:31:31 <b_jonas> ais523: on x86_32 it's five bytes of course
22:31:33 <ais523> b_jonas: it matches my x86_64 result in local testing
22:31:35 <shachaf> But it won't work for multiple instructions that way.
22:31:36 <ais523> `asm mov $0xa5, %rax
22:31:38 <b_jonas> ais523: ok
22:31:38 <HackEgo> ​ 0:48 c7 c0 a5 00 00 00 mov $0xa5,%rax
22:31:46 <ais523> and that should be proof it's x86_64
22:31:51 <b_jonas> ais523: ok
22:32:02 <ais523> (ugh, it's seven bytes for %rax? I was hoping it could be done in six)
22:32:19 <shachaf> Isn't eax good enough?
22:32:21 <ais523> `asm movabs $0xa5, %rax
22:32:23 <HackEgo> ​ 7:00 00 00
22:32:30 <ais523> hmm, that tail -n 1 isn't enough
22:32:43 <b_jonas> ais523: So, I wonder, isn't it a pity that there isn't a card that used a condition of "if you control a permanent of each permanent type", because if there was, then they couldn't print planeswalkers so easily.
22:32:53 <hppavilion[1]> I've got a demo of a post on my SN up and running on the server
22:32:57 <shachaf> mov $0xa5,%rax and mov $0xa5,%eax should do exactly the same thing, right?
22:33:16 <ais523> `` echo #! /bin/sh > bin/asm
22:33:16 <HackEgo> No output.
22:33:27 <b_jonas> Mind you, I think Coalition Victory is a really stupid excuse, they could still do a sixth basic land type and either errata that card or break it.
22:33:37 <ais523> `` echo 'echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | sed -e "1,/0000000000000000/d"' >> bin/asm
22:33:39 <HackEgo> No output.
22:33:41 <b_jonas> And they could have done the same with a "of each permanent type" thing.
22:33:42 <ais523> `asm movabs $0xa5, %rax
22:33:43 <HackEgo> ​ 7:00 00 00 \ 0:48 b8 a5 00 00 00 00 movabs $0xa5,%rax \ 7:00 00 00
22:34:33 <ais523> I wonder why it duplicated the last line
22:34:39 <ais523> `asm movabs $0xa5, %rax
22:34:40 <HackEgo> ​ 7:00 00 00 \ 0:48 b8 a5 00 00 00 00 movabs $0xa5,%rax \ 7:00 00 00
22:34:44 <ais523> it doesn't in local testing
22:35:17 <ais523> `asm mov $0xa5, %rax
22:35:19 <HackEgo> ​ 0:48 c7 c0 a5 00 00 00 mov $0xa5,%rax \ 0:48 c7 c0 a5 00 00 00 mov $0xa5,%rax
22:35:28 <ais523> `cat bin/asm
22:35:29 <HackEgo> echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | tail -n 1 \ echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | sed -e "1,/0000000000000000/d"
22:35:47 <ais523> aha, looks like it didn't get truncated first for some reason
22:35:52 <ais523> `` echo #! /bin/sh > bin/asm
22:35:53 <HackEgo> No output.
22:35:55 <ais523> `cat bin/asm
22:35:55 <HackEgo> echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | tail -n 1 \ echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | sed -e "1,/0000000000000000/d"
22:36:04 <ais523> `rm bin/asm
22:36:06 <HackEgo> No output.
22:36:09 <ais523> `cat bin/asm
22:36:09 <HackEgo> cat: bin/asm: No such file or directory
22:36:11 <ais523> `` echo #! /bin/sh > bin/asm
22:36:12 <HackEgo> No output.
22:36:17 <ais523> `` echo 'echo "$1" | as -c /dev/stdin -o temp.o; objdump -d temp.o | sed -e "1,/0000000000000000/d"' >> bin/asm
22:36:19 <HackEgo> No output.
22:36:23 <ais523> `asm movabs $0xa5, %rax
22:36:24 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/asm: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/asm: cannot execute: Permission denied
22:36:29 <b_jonas> chmod
22:36:31 <ais523> `` chmod a+x bin/asm
22:36:33 <HackEgo> No output.
22:36:34 <ais523> `asm movabs $0xa5, %rax
22:36:37 <HackEgo> ​ 0:48 b8 a5 00 00 00 00 movabs $0xa5,%rax \ 7:00 00 00
22:36:40 <ais523> b_jonas: I know, I remembered first time
22:36:58 <ais523> pity about objdump's output format
22:38:26 <ais523> `` sed -i -e 's/-d/-d --insn-width=20/' bin/asm
22:38:28 <HackEgo> No output.
22:38:30 <ais523> `asm movabs $0xa5, %rax
22:38:31 <HackEgo> ​ 0:48 b8 a5 00 00 00 00 00 00 00 movabs $0xa5,%rax
22:38:33 <ais523> there we go
22:39:06 <b_jonas> 20/? x86 instructions are never longer than 16 bytes (or is it 15?)
22:39:26 <b_jonas> it's a fundamental architecture limitation that's been in place since about 386
22:40:19 <b_jonas> oh well, good night now
22:41:02 <ais523> night
22:43:32 <ais523> `asm cmpxchg16b %fs:0x12345678(%r9,%r10,8)
22:43:34 <HackEgo> ​ 0:64 4b 0f c7 8c d1 78 56 34 12 cmpxchg16b %fs:0x12345678(%r9,%r10,8)
22:43:52 <ais523> hmm, I wonder what happens if I pile modifiers onto a movabs
22:44:17 <ais523> or, right, movabs is only immediate to register
22:44:22 <ais523> so there aren't that many modifiers you can use
22:44:38 <ais523> that's probably intentional
23:00:04 <fizzie> It's 15.
23:00:27 <fizzie> You can put in redundant prefix bytes, but only that many.
23:00:41 <fizzie> (Well, I think officially you're not supposed to, but in practice you can.)
23:01:56 <ais523> fizzie: actually, AMD's recommended 15-byte NOP is 14 data16 prefixes + a NOP
23:02:41 <fizzie> Yes, but IIRC AMD also explicitly says that you're not supposed to use several (unlike Intel, which just says more vaguely that it's not "useful").
23:02:51 <fizzie> I guess it's okay if they do it, but not if you do.
23:02:58 <fizzie> I mean, they're the people with rep ret.
23:04:05 <ais523> rep ret should work like INTERCAL's RESUME
23:04:09 <ais523> and return CX times
23:04:34 <fizzie> Ah, but where would it read the ret operands from?
23:05:03 <ais523> ret doesn't have operands
23:05:26 <fizzie> It does.
23:05:45 <ais523> oh right, it has one that nobody ever uses
23:05:53 <ais523> doesn't it need a different encoding in that case, though?
23:05:56 <fizzie> Yes. Admittedly, it's a different opcode altogether.
23:05:56 <ais523> `asm ret
23:05:58 <HackEgo> ​ 0:c3 retq
23:06:01 <ais523> `asm ret $0x4
23:06:03 <HackEgo> ​ 0:c2 04 00 retq $0x4
23:06:16 <ais523> `asm retd
23:06:18 <HackEgo> ​/dev/stdin: Assembler messages: \ /dev/stdin:1: Error: no such instruction: `retd' \ objdump: 'temp.o': No such file
23:06:22 <ais523> hmm
23:06:23 <ais523> `asm retw
23:06:25 <HackEgo> ​ 0:66 c3 retw
23:06:36 -!- J_Arcane has joined.
23:06:39 <ais523> haha, it has a 16-bit variant and no 32-bit variant, just like the stack instructions
23:06:51 <ais523> what use is a 16-bit ret on x86_64?
23:07:14 <fizzie> Incidentally, the three-byte `ret $0` also works around the same bug than "rep ret" is for.
23:07:48 <ais523> well, rep ret is shorter
23:07:52 <ais523> are there any advantages to ret $0?
23:08:06 <fizzie> It would make me happier, but that's probably not a consideration they had.
23:10:09 <ais523> well, I'd be happier if the bug didn't exist
23:10:24 <fizzie> I mean, people do put in "rep ret" in "general-purpose" binaries, and Intel's manual explicitly says of rep: "Use these prefixes only with string and I/O instructions (MOVS, CMPS, SCAS, LODS, STOS, INS, and OUTS). Use of repeat prefixes and/or undefined opcodes with other Intel 64 or IA-32 instructions is reserved; such use may cause unpredictable behavior."
23:10:50 <fizzie> Of course it's not like they're going to make it break.
23:11:23 <ais523> so the benefit of ret $0 is that it doesn't cause UB-that-works-anyway on Intel processors
23:12:46 <fizzie> Hm, I guess AMD's not so strict in the wording about redundant prefixes either. It's just "a single instruction should include a maximum of one prefix from each of the five groups".
23:13:52 -!- augur has quit (Remote host closed the connection).
23:14:17 -!- augur has joined.
23:17:40 -!- oerjan has joined.
23:25:49 <izabera> why would someone use strdup in this? return ok ? result : strdup("?");
23:26:25 <ais523> izabera: so that the return value has a consistent allocation status
23:26:42 <ais523> I'm assuming that result is malloc-allocated memory if ok is true, and unallocated if ok is false
23:26:46 <ais523> (otherwise the line doesn't make sense)
23:27:35 <izabera> thanks a lot
23:27:48 <zzo38> Perhaps because the return value is string that is supposed to be freed
23:31:12 <\oren\> WWEEEEEEEEKEENDDDD!!!!!!!ROFLLOLWTFBBQ
23:36:21 <boily> \HELLOREEEEEEEEEEEEEEEEEN\
23:37:46 <ais523> how do you do comments in gas? it sometimes seems to interpret semicolons as instruction separators rather than comment markers
23:42:23 <fizzie> ais523: The comment marker is target-specific, which is kind of hilarious/sad.
23:42:37 <ais523> fizzie: x86_64 in this case
23:42:45 <ais523> AT&T syntax
23:43:04 <fizzie> I think a non-nesting /* ... */ is the one that's common to all targets.
23:43:44 <ais523> `asm leaq 0x1234, %eax
23:43:45 <boily> the comment. marker. is target specific. wtf.
23:43:46 <HackEgo> ​/dev/stdin: Assembler messages: \ /dev/stdin:1: Error: incorrect register `%eax' used with `q' suffix \ objdump: 'temp.o': No such file
23:43:52 <ais523> `asm leaq 0x1234, %rax
23:43:54 <HackEgo> ​ 0:48 8d 04 25 34 12 00 00 lea 0x1234,%rax
23:43:59 <ais523> `asm lead 0x1234, %eax
23:44:00 <fizzie> Yeah, it's the line comment character that's target-specific.
23:44:01 <HackEgo> ​/dev/stdin: Assembler messages: \ /dev/stdin:1: Error: no such instruction: `lead 0x1234,%eax' \ objdump: 'temp.o': No such file
23:44:09 <ais523> `asm lea 0x1234, %eax
23:44:11 <HackEgo> ​ 0:8d 04 25 34 12 00 00 lea 0x1234,%eax
23:44:14 <ais523> `asm lea 0x1234, %ax
23:44:16 <HackEgo> ​ 0:66 8d 04 25 34 12 00 00 lea 0x1234,%ax
23:44:20 <fizzie> boily: "The line comment character is target specific, and some targets multiple comment characters. Some targets also have line comment characters that only work if they are the first character on a line. Some targets use a sequence of two characters to introduce a line comment. Some targets can also change their line comment characters depending upon command line options that have been used."
23:44:27 <ais523> HackEgo: right
23:44:28 <ais523> `asm lea 0x1234, %al
23:44:31 <HackEgo> ​/dev/stdin: Assembler messages: \ /dev/stdin:1: Error: operand type mismatch for `lea' \ objdump: 'temp.o': No such file
23:44:32 <fizzie> There's also a sentence that no verb.
23:45:25 <fizzie> # should be the line comment character for x86, except when it's a line number directive instead.
23:46:01 * boily hides under his sanity blanket
23:46:53 <ais523> boily: why are you in this channel if you need one of those?
23:47:52 <shachaf> ais523: What are you getting at?
23:48:00 <fizzie> I think the thinking goes, so much of the syntax would be target-specific anyway, there's no point in trying to harmonise comments.
23:48:13 <ais523> shachaf: this channel being insane
23:48:22 <ais523> I guess maybe boily needs the sanity blanket /because/ of being in this channel?
23:48:53 <ais523> but this is meant to be a safe dumping ground for insane ideas
23:49:18 <boily> it's like observing an assembly of lions. a solid fence helps.
23:49:19 <shachaf> I'm not sure what an insane idea is.
23:49:31 <shachaf> i,i http://slbkbs.org/kj-sanity.txt
23:49:34 <ais523> shachaf: something like http://esolangs.org/wiki/90
23:50:04 <shachaf> Does it mean the same as "esoteric"?
23:50:37 <ais523> I'm not sure
23:50:43 <\oren\> C would be semiportable asm if compiler writers weren't nazis
23:50:44 <shachaf> Anyway, see above.
23:50:46 -!- MDude has joined.
23:51:24 <boily> where was the last time I saw that whirligig avatar/logo/favicon...
23:51:26 <\oren\> s/compiler/C compiler/
23:53:52 <hppavilion[1]> Hm...
23:54:02 <boily> shachaf: what does slbkbs mean?
23:54:19 <HackEgo> [wiki] [[90]] M http://esolangs.org/w/index.php?diff=44763&oldid=44584 * Ais523 * (+1) /* Syntax */ fix unmatched parenthesis
23:54:29 <shachaf> boily: whatever you want
23:57:03 <boily> good enough.
23:57:39 <hppavilion[1]> I'm making the Server for my SN have a GUI :)
23:59:54 <shachaf> imo keith johnstone is so good
←2015-10-15 2015-10-16 2015-10-17→ ↑2015 ↑all