←2014-05-26 2014-05-27 2014-05-28→ ↑2014 ↑all
00:07:58 -!- edwardk has quit (Quit: Computer has gone to sleep.).
00:09:54 <oerjan> <Bike> i don't think you're going to be able to express algebraic numbers in radicals, though <-- pretty sure he won't be ABEL to
00:13:20 <Bike> boo
00:14:18 <oerjan> what no hiss
00:14:32 <Bike> not worth it
00:14:49 <oerjan> aww
00:17:14 <oerjan> int-e: )
00:17:56 <oerjan> he's not one of those guys with a normal sleeping schedule is he
00:21:07 -!- not^v has quit (Ping timeout: 240 seconds).
00:47:36 -!- tertu has quit (Ping timeout: 252 seconds).
00:54:27 -!- xk002 has quit (Ping timeout: 245 seconds).
01:04:02 -!- tertu has joined.
01:04:40 -!- tertu has quit (Read error: Connection reset by peer).
01:05:04 -!- tertu has joined.
01:09:21 -!- Sorella has quit (Quit: It is tiem!).
01:10:38 -!- not^v has joined.
01:13:59 -!- tertu has quit (Disconnected by services).
01:13:59 -!- ter2 has joined.
01:16:55 <kmc> yesterday i biked on Abel Street in Milpitas CA
01:17:00 <kmc> failed to come up with a good pun about commuting
01:17:56 <shachaf> whoa, Milpitas CA
01:17:58 <shachaf> i used to live there
01:18:26 -!- tertu3 has joined.
01:18:39 <kmc> oh really
01:18:39 <kmc> why
01:18:59 <ion> The reverse of it is acsatiplim.
01:19:23 <shachaf> people need a place to go hth
01:19:24 <kmc> it would seem so
01:19:38 <shachaf> it was for a month and a half or so
01:20:07 <shachaf> summer 2010
01:20:11 <shachaf> good times
01:20:13 <kmc> ok
01:20:31 <kmc> yesterday's ride http://www.strava.com/routes/365633
01:21:01 -!- ter2 has quit (Ping timeout: 240 seconds).
01:21:03 <shachaf> i have been to that reservoir
01:21:07 <kmc> oh yeah?
01:21:08 <kmc> how / why
01:21:09 <mcpherrin> my everything is still sore :p
01:21:14 <shachaf> or at least near it
01:21:19 <shachaf> because i lived nearby
01:21:26 <kmc> in milpitas?
01:21:27 <kmc> i see
01:21:33 <kmc> all the pieces are beginning to fit together
01:22:08 <shachaf> petersburg drive
01:22:32 <shachaf> it's a pity it's not called "petersburg st."
01:23:03 <mcpherrin> apparently there's a plane in the reservoir
01:24:53 <kmc> yep
01:25:06 <kmc> PLAAAAAANE
01:25:08 <kmc> ... wrong channel
01:26:16 <shachaf> __!__
01:26:22 <shachaf> _____(_)_____
01:26:38 <shachaf> -- Stephen C. Hayne
01:26:48 <mcpherrin> I want to do that ride again but maybe with a picnic and twice as much water :p
01:27:55 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
01:30:29 <oerjan> i think milpitas used to be called mailpits before the big earthquake.
01:30:45 <kmc> `coins
01:30:46 <HackEgo> priniconcoin muscucoin catamcoin zoosedcoin lazycoin glashbcoin excompressicucoin rentanyploanycoin pourcoin solecoin mazecoin illcoin medcoin shakhcoin moucoin pratcoin nandcoin sorcoin um-32coin incaviacoin
01:34:16 -!- vvn1 has joined.
01:34:32 <vvn1> oogah boogah
01:35:35 <oerjan> `relcome vvn1
01:35:36 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
01:37:03 <kmc> shachaf: did you ever go to the IHOP in Milpitas
01:37:11 <kmc> or the Black Bear Diner
01:37:13 <vvn1> hi, thanks for the welcome
01:37:20 <shachaf> no
01:37:22 <vvn1> is anyone interested in doom metal?
01:37:37 <shachaf> although i was nearby once
01:37:50 <oerjan> vvn1: that's even more off topic than usual for our channel
01:38:01 <vvn1> you’d be surprised
01:38:26 <Bike> is russian circles metal? i think they're fairly doom
01:39:31 <Bike> wikipedia says "post-metal", good enough for me
01:39:36 <kmc> lol
01:39:42 <Bike> must be chalcogens
01:39:44 <oerjan> post-doom metal, okay
01:40:05 <shachaf> kmc: in this mill thing you can load from a null or invalid pointer and get a "not a result" result rather than an immediate page fault
01:40:13 <kmc> how does that wor
01:40:14 <kmc> k
01:40:19 <Bike> no, no, doom post-metal. post-doom metal is either very peppy, or based around surpassing popular musician MC DOOM
01:40:28 <Bike> MF DOOM rather
01:40:32 <Bike> everyone should just be an MC fuck
01:40:42 <shachaf> there are some metadata bits for things in the equivalent of registers
01:40:55 <shachaf> then if you don't use the NaR you don't get a page fault
01:41:02 -!- MoALTz_ has joined.
01:41:38 <shachaf> so you can speculatively load things that you might not use as long as you don't store or branch on the result or something
01:41:57 <shachaf> their example is implementing a vectorized strcpy and reading past the \0
01:43:29 <oerjan> shachaf: does that work if the page exists but needs to be swapped in?
01:43:49 -!- MoALTz has quit (Ping timeout: 240 seconds).
01:43:56 <kmc> shachaf: good, I had that exact issue once
01:44:04 <shachaf> oerjan: in that case a different thing would happen presumably
01:44:05 <kmc> oerjan: seems like; it's traditionally the page fault handler which does that
01:44:13 <kmc> hmm
01:44:18 <kmc> yeah, how would you deal with that
01:44:29 <shachaf> i don't know how page faults work exactly
01:44:45 <shachaf> another metadata value is "None", such that storing a None into memory does nothing
01:45:00 <shachaf> this is their strcpy thing: http://millcomputing.com/blog/wp-content/uploads/2014/02/intro_strcpy.png
01:46:26 <shachaf> i don't know how they deal with that; i was wondering
01:46:26 <kmc> nice
01:47:12 <ion> All this diagram needs is an oracle that tells whether there will be a match two steps in advance.
01:47:37 <shachaf> ?
01:48:16 <ion> Ignore me, i haven’t been following the discussion, just clicked the link. Going back to http://youtu.be/HuzC0MAlo0w →
01:49:32 <shachaf> this is the context of the diagram: http://millcomputing.com/topic/introduction-to-the-mill-cpu-programming-model-2/
01:50:14 <ion> Thanks, i’ll open it in tab #15432 for later.
01:50:37 <shachaf> my browser crashed and lost all my tabs a couple of weeks ago
01:50:39 <shachaf> now i have no tabs
01:50:41 <shachaf> it's great
01:51:07 <ion> I haven’t had the courage to do that, i have restored them from a backup in the past.
01:51:12 -!- blitter64 has joined.
01:52:11 <shachaf> another thing they have that isn't mentioned on that page is two instructions pointers, one going backwards and one going forwards
01:53:47 <Sgeo> My friend just introduced me to the Pokemon TCG
01:54:04 <Sgeo> And to Android Netrunner, but there's no online version and I suck at it
01:56:03 -!- blitter64 has quit (Ping timeout: 252 seconds).
01:58:15 <Sgeo> ANd not to Yu-Gi-Oh which he called broken
01:59:09 <Sgeo> "Yes, on occasion, my friend and I bust out the pokemon cards and go at it. The game is shallow at first glance, but there is a decent amount of strategy involved. This mostly comes into play in the deckbuilding process. Pokemon is more draw oriented than Magic, meaning that the key to winning is drawing more of your deck than your opponent, making cards like Professor Oak incredible. "
01:59:15 <Sgeo> meh, I don't like deckbuildin
01:59:18 <Sgeo> g
02:07:40 <Sgeo> http://www.reddit.com/r/hearthstone/comments/26jfqy/this_golden_card_is_weaker_than_its_normal_version/
02:08:53 -!- ter2 has joined.
02:10:17 -!- yorick has quit (Read error: Connection reset by peer).
02:11:49 -!- tertu3 has quit (Ping timeout: 252 seconds).
02:13:32 -!- ter2 has changed nick to tertu.
02:14:47 <MDude> I wonder if any existing language is particularly suited to a computational variant of Exquisite Corpse.
02:15:05 <Bike> we call that game software development round these parts
02:20:09 -!- tertu has quit (Ping timeout: 265 seconds).
02:23:23 -!- hk3380 has quit (Quit: WeeChat 0.3.8).
02:23:40 -!- {hk3380} has joined.
02:26:50 -!- {hk3380} has quit (Client Quit).
02:27:08 -!- {hk3380} has joined.
02:27:47 <kmc> have you played this game that I know only as "the paper game", where people in a circle take turns either describing a drawing with words or drawing something from a description, and you only see the previous attempt
02:28:00 <kmc> and then you read out the words after n iterations
02:28:08 <kmc> also does it have another name
02:28:31 <kmc> (it's played with picees of paper that are folded accordion-like so that you only see one drawing or description)
02:29:12 <mcpherrin> kmc: I have played this
02:29:26 <MDude> There's a website that works a bit like that, where it prompts you to draw or describe something.
02:30:06 <mcpherrin> I remember a website version of this, yeah. and seeing the evolution
02:30:14 <mcpherrin> until inevietably somebody just draws a penis
02:30:32 <kmc> yep
02:30:36 <kmc> it's one of the easiest things to draw
02:30:39 <kmc> also pac-man
02:30:41 <kmc> we got a lot of pac-man
02:36:54 <shachaf> i have not played this
02:37:03 <shachaf> oh, written words, not spoken words
02:43:05 <kmc> yeah
02:44:44 -!- MoALTz_ has quit (Read error: Connection reset by peer).
02:49:47 -!- vvn1 has left.
02:50:27 <quintopia> oh
03:05:17 -!- MDude has changed nick to MDream.
03:09:52 -!- zzo38 has joined.
03:20:06 -!- Phantom_Hoover has joined.
03:22:10 -!- tertu has joined.
03:25:29 -!- {hk3380} has quit (Ping timeout: 264 seconds).
03:26:39 -!- ter2 has joined.
03:26:39 -!- tertu has quit (Disconnected by services).
03:34:37 <kmc> I'm using LD_PRELOAD in a way that is reminiscent of having two puzzle pieces that don't quite fit and just kind of smashing them together until they do
03:35:23 <mcpherrin> LD_PRELOAD is an awesome way to add features to software
03:36:34 <kmc> mcpherrin: I realized that plugins for the stage2 compiler need to be built with the stage1 compiler, but they don't quite work then either
03:36:41 <kmc> so i'm building stage3 but it's soooo slow
03:39:30 <zzo38> How do you use the LD_PRELOAD adding features into a software?
03:42:08 <mcpherrin> zzo38: Here's http:// support for open(1) via LD_PRELOAD! https://github.com/mcpherrinm/webscale/blob/master/libhttpfile.c
03:43:04 <mcpherrin> that's totally a feature
03:44:02 <zzo38> O, so you can add new features into function like that. That is good adding support for http: and data: URLs, now add ftp: and gopher: support too. (I think curl supports it?)
03:45:09 <pikhq> zzo38: Fair warning, LD_PRELOAD is a fragile fragile thing.
03:45:21 <zzo38> (Furthermore, ftp can be use for writable files; http is normally only for reading files, although there is a PUT method of HTTP if you want to)
03:46:41 <zzo38> Still there are other way to make in such supports added, depending on the software. For example a software using SQLite, you can add support for other file by adding a VFS by loading an extension, and you can also modify the triggers in the database to possibly add features in.
03:48:18 <zzo38> Do you like stuff I wrote yesterday about knock out seven opponent's cards in Pokemon card?
03:48:33 <Bike> hated it
03:48:41 <zzo38> OK
03:49:01 <zzo38> It is an uncommon situation, though.
03:55:22 <zzo38> Why do you hate flipperless pinball game? I don't hate it; the feature of pinball game that I do hate is the games in which you can earn free balls for making the high score.
03:55:47 <zzo38> (I don't mind free games for making the high score, though.)
03:57:24 <zzo38> And, why don't you hate that feature?
04:04:01 <kmc> mcpherrin: \o/ https://gist.github.com/kmcallister/f47ee925a16773be4f84
04:04:01 <myndzi> |
04:04:01 <myndzi> /|
04:04:43 <mcpherrin> kmc: \o/
04:04:44 <myndzi> |
04:04:44 <myndzi> /|
04:05:05 -!- ter2 has quit (Ping timeout: 264 seconds).
04:05:21 <Bike> useful, i like it
04:06:09 <mcpherrin> kmc: time to go write some lints!
04:06:10 <oerjan> kmc: it's not actually pointing at the e plz fix twh hth
04:06:41 <Bike> ooh good point
04:07:25 <Bike> wow, did you manage to write a general code analyzer thing that seems reasonably structured
04:07:28 <Bike> that's pretty good rust
04:07:55 <Bike> i still ahve no idea how to read these type signatures
04:11:51 <Sgeo> It's kind of funny how the web both forces you to use one language and frees you to use any language
04:12:08 <Sgeo> (not literally any)
04:15:41 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
04:19:49 <kmc> oerjan: https://gist.github.com/kmcallister/500920de676275deccd8
04:19:57 <kmc> it's a hack though, I hardcoded the width of "struct "
04:20:08 <kmc> I don't think the parser saves the information you need to do this right
04:20:15 <kmc> I could fix that but I think I will get high and watch television instead
04:20:58 <Bike> m,ad men?
04:21:05 <mcpherrin> kmc: so it would break if i did "struct \n\neeeeeeeeeeeee"
04:21:31 <oerjan> kmc: shocking
04:22:15 <kmc> Bike: not first on my list but probably
04:22:35 -!- {hk3380} has joined.
04:34:10 -!- tertu has joined.
04:36:17 <shachaf> high kmc
04:56:16 <kmc> Bike: probably The Americans, Veep, Silicon Valley, Mad Men in that order
04:56:19 <kmc> might fall asleep at some point
04:56:43 <kmc> <Bike> wow, did you manage to write a general code analyzer thing that seems reasonably structured
04:56:44 <Bike> but if you fall asleep while high the weed will crawl into your nose and strangle you!
04:56:55 <kmc> well the structure a is pretty standard AST visitor
04:57:14 <kmc> the more interesting thing imo is that it's a plugin which integrates with the compiler
04:57:25 <kmc> so you can (well, will be able to) control it with the usual warning flags
04:57:35 <kmc> and it can do things like ask the types of inferred local lets
04:57:36 <Bike> well i mean, right. i'm more used to something along the lines of LD_PRELOAD, you know, one variable, terrible
04:57:47 <Bike> argh i would love that
04:58:15 <kmc> yeah so most of the work here was just redoing all the plumbing around the existing loadable syntax extensions to turn it into a cleaner more general plugin mechanism
05:04:31 -!- tswett has quit (Ping timeout: 276 seconds).
05:07:24 -!- Phantom_Hoover has joined.
05:09:29 <kmc> aw there's no new episode of Veep
05:12:19 -!- {hk3380} has quit (Ping timeout: 276 seconds).
05:31:55 -!- oerjan has quit (Quit: leaving).
05:42:16 <kmc> <Bike> i still ahve no idea how to read these type signatures
05:42:17 <kmc> which ones?
05:42:27 <kmc> we're losing the ~funny @variable &sigils
05:42:32 <kmc> the first two are gone
05:42:52 <shachaf> whoa
05:42:58 <kmc> & is probably staying though
05:43:20 <kmc> I think Rust has a lot less sugar now than when I started using it
05:43:21 <Bike> well uh basically any of them. "&mut self, it: &ast::Item, cx: Context" i guess cx, it, and self are names, and Context and &ast::Item are types, but i don't know what & is or what &mut means
05:43:37 -!- tertu has quit (Ping timeout: 245 seconds).
05:43:44 <kmc> & is a reference aka "borrowed pointer"
05:44:05 <kmc> points to something, you can use it, but someone else owns it and is responsible for destroying it eventually
05:44:17 <mcpherrin> At runtime it's a plain pointer
05:44:23 <kmc> references have lifetimes, sometimes written in as &'t Item
05:44:26 <mcpherrin> &mut is the same but mutable
05:44:27 <kmc> usually inferred
05:44:35 <lifthrasiir> ~ and @ are gone, and more funny looking beasts like Rc<> Gc<> Box<> Cell<> RefCell<> are here to stay.
05:44:49 <Bike> why is &mut before the name though
05:44:51 <kmc> a given thing in memory can have zero or more & pointers, or exactly one &mut pointer to it
05:45:00 <kmc> &mut is a variant of & that lets you mutate through the pointer
05:45:08 <Bike> exactly one, like, at all?
05:45:23 <kmc> yes, well, things get "frozen"
05:45:34 <kmc> if I do let mut x = 3; f(&mut x)
05:45:51 <kmc> then I lose the ability to modify an x for as long as that reference lives
05:45:57 <mcpherrin> Bike: "self" is kinda a weird special case
05:46:06 <Bike> of course it is
05:46:11 <kmc> if f doesn't store it anywhere, then I get to modify it as soon as f returns
05:46:20 <mcpherrin> for example you'd have it: &mut ast::Item
05:46:30 <mcpherrin> so it's not "before the name" usually
05:46:55 * mcpherrin doesn't like rust's self handling right now, a little too special
05:46:56 <kmc> yeah, the & in «&foo: T» and in «&self» mean opposite things
05:46:59 <kmc> :/
05:47:08 <kmc> & in patterns means to remove a layer of indirection and look inside
05:47:12 <kmc> like any other "constructor" in a pattern
05:47:35 <kmc> but there's no way to pattern-destructure self in an args list, anyway
05:47:47 <Bike> is self the OO self btw
05:47:51 <kmc> basically
05:48:02 <kmc> impl Foo { fn f(&self) { ... } }
05:48:10 <kmc> defines a method that you would call like foo.f()
05:48:28 <Bike> right.
05:48:38 <kmc> it's not just sugar for f(foo) because it affects name lookup too
05:49:05 <kmc> if you can access a type then you can access all its methods, even though you didn't import them by name
05:49:22 <kmc> that's true for methods that are applied "directly" to the type like that
05:49:29 <kmc> mcpherrin: what do we call those?
05:49:42 <kmc> you can also define methods on a typeclass and then do «impl Bar for Foo»
05:49:54 <kmc> s/typeclass/trait/ but basically the same thing
05:50:03 <kmc> in that case the user also needs to import the trait Bar to see the methods
05:50:43 <lifthrasiir> kmc: I thought a special handling of self would be gone after UFCS, wouldn't it?
05:50:52 <kmc> I don't even know what UFCS stands for
05:50:54 <lifthrasiir> (aaaaand I didn't know mcpherrin is here)
05:51:02 <lifthrasiir> "Uniform Function Call Syntax" to be exact
05:51:04 <mcpherrin> lifthrasiir: I was about to say the same ;P
05:51:25 <kmc> lifthrasiir: oh, so you can write foo.f instead of |x| foo.f(x) ?
05:51:33 <kmc> that's good
05:51:36 <lifthrasiir> kmc: I think so
05:51:41 <kmc> self has to at least be special wrt name resolution, though
05:51:49 <lifthrasiir> the details are not yet finalized but afaik is in discussion
05:51:54 <mcpherrin> kmc: so you can say method(foo, x) as well as foo.method(x)
05:51:56 <kmc> okay
05:51:59 <kmc> btw, rip "do" sugar
05:52:12 <mcpherrin> this is important for traits sharing names
05:52:44 <mcpherrin> impl A for Foo { fn m(){}} impl B for Foo { fn m() {}} breaks right now
05:52:57 <kmc> it was nerfed in order to support the front-of-rust-lang.org use case of "do spawn"
05:53:04 <kmc> and then it was useless so removed entirely
05:53:06 <fowl> UFCs are great, i use them in nimrod
05:53:13 <kmc> and now rust-lang.org doesn't have "do spawn" either
05:53:18 <mcpherrin> B::m(foo)
05:53:26 <fowl> x.f(y) #=> f(x,y) so much sense is made
05:53:41 <kmc> programming languages are like sausages
05:53:58 <fowl> good pizza topping
05:54:02 <Bike> sometimes i wonder how food scientists feel about that expression.
05:54:10 <kmc> heh
05:54:24 <kmc> you're at a big uni, you could find some and ask
05:54:47 <mcpherrin> there was a dude who designs lean cuisines doing an IAma thing on reddit a year or two ago...
05:55:02 <Bike> i'm not at the main campus right now but yeah i was thinking about all the books on sausage production in the library
05:55:21 <fowl> whats reddit
05:55:29 <kmc> Bike: we also have both & and "ref" in patterns
05:55:34 <kmc> and they are opposites kinda
05:55:46 <Bike> there is more than one wrong way to do it
05:56:00 <kmc> match x { Some(&y) => ... } x has type Option<&T>, y has type T
05:56:17 <kmc> match x { Some(ref y) => ... } x has type Option<T>, y has type &T
05:56:31 <kmc> ok so they are exactly opposites
05:56:35 <mcpherrin> kmc: a lot of my early rust code was horrific for lack of understanding the & / ref relationship :p
05:56:58 <mcpherrin> I'd revert to "copy foo"ing all over instead of using borrowed pointers right
05:57:08 <kmc> mm
05:57:40 -!- tertu has joined.
05:57:53 <kmc> one of the many flaws of C++ is that there's no obvious indication when you lapse into that style
05:58:26 <kmc> i guess this is one reason that major style guides say to disable the copy constructor and operator= unless you have a good reason to use them
05:59:04 <kmc> although Rust still lets you do implicit copies of large POD
05:59:22 <kmc> and it lets you use generic stuff with a Clone bound that is not obvious
06:00:55 <kmc> Bike: as far as the core language is concerned, freezing and alias checking is all done at compile time
06:01:14 <kmc> but there are library types which use unsafe code to provide mutable cells with runtime checks
06:01:24 <Bike> i'm pretty sure i have no idea what you're talking about, you probably shouldn't bother :<
06:01:25 <kmc> you can go from an &RefCell<T> to an &mut T, roughly
06:01:29 <kmc> alright
06:02:17 <kmc> this weekend i got a few irl opportunities to talk at maximum speed about how cool rust is
06:02:23 <kmc> that's fun
06:03:05 <shachaf> wow that's p. fast
06:03:17 -!- Phantom_Hoover has quit (Quit: Leaving).
06:03:39 <Bike> like a radio announcer!
06:03:52 <kmc> shachaf: lint plugins!
06:04:04 <kmc> they work
06:04:30 <shachaf> were they lin't plugins before they worked
06:05:03 <Bike> notecorelanguageisnotstableandmaychangeinunforseennontrivialfashions.bepreparedtofilecompilerbugs.mozillacorporationisnotatfaultifyouusethisinaspaceproberightnow
06:06:46 <mcpherrin> I'm pretty happy with a lot of the direction Rust is going, though I think we'll need to re-sugar the langauge once it's settled down semantically
06:07:40 <kmc> yeah
06:07:41 <mcpherrin> kmc: remember when rust was the exciting garbage-collected language with typestate :p
06:07:48 <kmc> no I don't
06:07:51 <mcpherrin> haha
06:07:59 <mcpherrin> neither do I ;p
06:08:09 <mcpherrin> @ was implemented before ~ or &
06:09:19 <kmc> I like telling people who've only used high level languages about the bizarre forms of undefined behavior in C, and then ending it with "this language and its relatives are used for most systems in planes, cars, medical devices, nuclear reactors, etc."
06:10:13 <mcpherrin> kmc: I'd still trust C in a plane over, say, python :p
06:10:24 <Bike> math can't even define 0^0, therefore we have all been doomed for centuries
06:10:28 <kmc> true
06:10:39 <kmc> did you ever see the C++ coding standards for the F-35 Joint Strike Fighter
06:10:48 <kmc> www.stroustrup.com/JSF-AV-rules.pdf
06:11:04 <mcpherrin> I recall reading them but remember zero content
06:11:19 <kmc> i mostly recall being scared about planes that run C++
06:11:57 <M28> Bike, however, most teorems assume 0⁰ = 1
06:12:03 <M28> theorems*
06:12:13 <Bike> wait, is this the eurofighter
06:12:25 <kmc> also this weekend I got two opportunities to explain what the C99 "restrict" keyword does and why it's useful
06:12:29 <Bike> no, it isn't. that woudl be funny
06:12:29 <M28> mostly because they're too lazy to define a case for when the exponent is 0
06:12:46 <kmc> the french parts of the eurofighter are programmed in ocaml
06:12:51 <M28> kmc, and did you explain that it's almost never used because no one bothers to?
06:13:06 <M28> in fortran, "restrict" is the default
06:13:15 <Bike> really? i suppose that makes sense
06:13:27 <Bike> that makes the grounding of the french air force from that one virus seem a bit weird
06:13:28 <kmc> Rust is even more draconian about aliasing
06:13:37 <M28> yep
06:14:01 <M28> I like how rust does it, but it may be difficult to make that change
06:14:16 <M28> *to adapt to that change
06:14:21 <kmc> oh but I forgot to talk about the reverse memcpy aliasing flash plugin sound fuckup
06:14:22 <Bike> f-35 also has some ada from the -22, it seems
06:14:24 <mcpherrin> -fno-strict-aliasing aww yeah
06:14:31 <kmc> -fun-times
06:15:10 <zzo38> I think 0^0=1 is most sensible kind of thing to me
06:16:01 <Slereah> 0^0 works by analytic continuation of x^0
06:16:01 <Bike> yes yes everything must have a definition isn't that so
06:16:06 <M28> it is, but then you can't assume that "0^n = 0" everywhere
06:16:12 <Slereah> Not so much by 0^x
06:16:17 <Slereah> Or whatever else
06:16:23 <mcpherrin> there's a good page on 0^0 at http://www.askamathematician.com/2010/12/q-what-does-00-zero-raised-to-the-zeroth-power-equal-why-do-mathematicians-and-high-school-teachers-disagree/
06:16:23 <Slereah> Kind of a big discontinuity
06:16:38 <M28> at least it's not like 1/0 :)
06:16:49 <Slereah> You can do 1/0
06:17:00 <M28> with limits, on both directions
06:17:09 <Slereah> Oh, even without limits
06:17:12 <Slereah> for instance if you do it in the one point compactification of R or C
06:17:17 <Bike> why did i bother using an example
06:18:16 <M28> I was using Microsoft Office Word the other day to write equations
06:18:19 <M28> it's... not bad
06:18:25 <Slereah> IT IS >:|
06:18:32 <M28> I mean, it could be better, but it supports some neat stuff
06:18:37 <Slereah> Donald Knuth did not die in vain!
06:18:40 <M28> lol
06:18:42 <zzo38> Zero to power of negative numbers may be undefined though.
06:18:46 <mcpherrin> yeah I surprisingly don't hate the equation editor in word
06:19:37 <Bike> i was supposed to use the equation editor to do chem homework. so weird
06:19:52 <M28> really?
06:19:55 <M28> I found it quite intuitive
06:20:05 <M28> easier than latex IMO
06:20:18 <M28> not as powerful as it once you need to do complicated stuff, though
06:20:27 <Bike> weird as in weird that i was supposed to
06:20:36 <M28> oh
06:20:45 <Bike> not really a lot of math in gen chem.
06:20:49 <mcpherrin> Maple's math document thing is pretty awesome if you want WYSIWYG mathing
06:21:00 <mcpherrin> (not to mention it can do the actual math as you go too)
06:22:09 <Slereah> I really like LaTeX because, through my studies, I read some terrible things
06:22:11 <Bike> subscripts and superscripts alone aren't so great for writing out a beta particle or whatever, i guess.
06:22:16 <Slereah> I once read a theoretical physics thesis
06:22:21 <Slereah> Entirely done on typewriter
06:22:45 <zzo38> I find Plain TeX is really good to write math, especially since I can have macros in the file too. (It is good for many other things, too.)
06:23:08 <M28> I like to give people the number "(-1) ^(-i)" and ask them what value it is
06:23:15 <Slereah> Two macros that are especially good are
06:23:21 <Bike> it's some bullshit with e right
06:23:23 <Slereah> integral from -infinity to infinity
06:23:26 <Slereah> and 1/2
06:23:28 <M28> most people that haven't had any complex numbers class won't guess that it's 23.1406...
06:23:31 <kmc> yeah proper mathematical typesetting used to be hella expensive
06:23:33 <M28> it's kinda weird
06:23:46 <Slereah> They are very long to type and happen all the time
06:24:07 <kmc> http://mathworld.wolfram.com/ComplexExponentiation.html jeeez
06:24:10 <M28> not if you're working with discrete maths or any other area of math >_>
06:24:17 <Bike> right it's uh, exp(-iln(-1)), so exp(pi)
06:24:32 <Slereah> But still quite often when you work in REAL MATH
06:24:41 <M28> Slereah, :(
06:24:48 <M28> uh
06:24:56 <Bike> complex exponentiation is cool kmc! it goes in circles!!
06:25:00 <lifthrasiir> M28: many people doesn't know about complex numbers either
06:25:15 <M28> I only had to use integrals and shit in calculus and analytical geometry...
06:25:20 <M28> analytic*
06:25:36 <M28> lifthrasiir, lots of non-math-stuff majors
06:25:38 -!- Slereah_ has joined.
06:25:40 <zzo38> If someone aske me about "(-1) ^(-i)" then first things I would say is, "I don't know". And then, to try to figure out by computer.
06:26:12 <Slereah_> Wolfram alpha, what is -1^-i!
06:26:19 <M28> Slereah, you need params
06:26:27 <lifthrasiir> zzo38: or "use W|A."
06:26:28 <Bike> if you remember that a^b = exp(b*ln(a)) your life shall improve
06:26:28 <M28> (-1)^(-i)
06:26:36 <zzo38> For 1/2 macro, do you mean something like: \def\onehalf{{1\over2}}
06:26:38 <lifthrasiir> http://www.wolframalpha.com/input/?i=%28-1%29%5E%28-i%29 indeed, it gives a correct answer
06:26:40 <M28> Bike, lol
06:26:44 <Slereah_> Real men use polish notation!
06:26:52 <Slereah_> ^-1-i
06:26:55 <lifthrasiir> <sup>1</sup>/<sub>2</sub>
06:27:07 <lifthrasiir> (no, I think WP does have a template for this)
06:27:12 <M28> Slereah, reverse polish notation master race reporting in
06:27:16 <Bike> ½ durbadurbdurb
06:27:27 <zzo38> lifthrasiir: Well, it isn't what I was thinking, but yes it is one way. I meant that the program in TI-92 calculator will make the calculations, or to use any other local softwares rather than connecting to internet in order to do it.
06:27:47 <Bike> i should probably get a cas instead of using wolfram all the time, but, lazy
06:28:09 <Slereah_> I guess a useful macro if you work in discrete math would be
06:28:19 <Slereah_> \sum_{n=0}^infinity
06:28:25 <Slereah_> errr \infty
06:28:35 <Bike> and those cas's that print out fractions on the terminal, ugh
06:28:54 -!- Slereah has quit (Ping timeout: 258 seconds).
06:28:55 <M28> Bike, I almost never find an use for that definition, except this one I guess
06:29:10 <Bike> circles man, circles
06:29:20 -!- password2 has joined.
06:29:44 <kmc> here are some latex macros i wrote long ago https://gist.github.com/kmcallister/7677e262d64cd0a5ca45
06:29:53 <M28> you don't even need that formula to solve that though
06:30:09 <M28> if you replace (-1) with e^(pi * i)
06:30:43 <M28> then you end up with an even more fun thing to solve
06:31:44 <Bike> "how does anyone on Earth understand the guts of \LaTeX?" any paper on the guts would, unfortunately, be written in gutsy latex
06:31:53 <Bike> i wonder if i'll ever actually have to use tex in my life
06:31:57 <M28> lol
06:32:23 <M28> there's a mandatory class on scientific writing in compsci in my uni
06:32:29 <M28> you learn latex there
06:32:41 <Bike> ASSUMPTIONS
06:32:45 <M28> lol
06:33:41 <Jafet> Google Docs. Teach the controversy
06:34:50 <kmc> lol
06:41:55 <shachaf> kmc: how often do people make "rusty" puns about rust
06:42:22 <kmc> not that often
06:42:52 <shachaf> o
06:44:44 <kmc> shachaf: it's really hard to apply equational reasoning in Rust :/
06:44:54 <kmc> because of lifetimes and moves and stuff
06:45:20 <kmc> lifetime inference is imperfect
06:46:07 <kmc> shachaf: also with lifetimes, contravariant is the "normal" case and covariant is the unusual case
06:46:15 <kmc> though this is somewhat just a matter of notation
06:47:06 <shachaf> how do you mean
06:47:18 <kmc> which?
06:48:44 <kmc> if 'a ⊆ 'b then &'b T <: &'a T
06:53:52 <kmc> i only really understood integration by parts once I saw a diagram of it drawn on the wall in tetazoo
06:54:22 <shachaf> what did the diagram say
06:54:50 <olsner> the rust compile steps in rustc's build system are called "oxidize", that's sort of a pun
06:55:20 <olsner> it's fun because there's some random thing written in rust that's called oxidize too
06:55:37 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39706&oldid=39556 * Zzo38 * (+47)
06:55:44 <kmc> i guess it was sort of like this one http://compasstech.com.au/TNSINTRO/TI-NspireCD/mystuff/calc_parts/parts.jpg
06:55:48 <kmc> but less fancy
06:57:22 -!- stuntaneous has quit (Ping timeout: 245 seconds).
06:57:23 <Jafet> If communists ported GNU to rust, would it be called redox
06:57:35 <kmc> red oxtober
06:59:00 <Bike> kmc versus lebesgue integration, FIGHT
07:04:59 <mroman> what the hell
07:05:04 <mroman> someone commited to my github repository
07:05:07 <mroman> https://github.com/FMNSSun/Burlesque/commit/15138b50ff74e753fa188dee9d8daad9cac1ffdb
07:05:11 <mroman> ^- how's that possible?
07:05:31 -!- password2 has quit (Ping timeout: 240 seconds).
07:06:18 <kmc> wut
07:09:44 <olsner> github definitely has some magic object store for git repos (to share objects between forks, if nothing else), so it might be possible for anyone to upload objects but not move the tags/branches
07:09:59 <olsner> is that commit included in any branch/tag?
07:10:20 <mroman> Thta commit was submitted with e-mail root@debian
07:10:39 <shachaf> It was more than a year ago.
07:10:40 <mroman> maybe github looks at the e-mail adress to find out who's the committer
07:11:02 <shachaf> Ah. Hm.
07:12:39 <shachaf> There is also this commit: https://github.com/FMNSSun/Burlesque/commit/0ebd91cecb6f4fada2a7107cd8f3ec722372cb5d
07:12:51 <shachaf> Maybe someone just sent you a "pull request" last year and you forgot?
07:13:08 <mroman> No
07:13:14 <olsner> mroman: it does - so it's fairly easy to "fake" commits as any other github user by just entering them as the author
07:13:42 <mroman> olsner: I see
07:16:07 <fowl> mroman, its also possible they changed their username and you dont remember it
07:17:08 <olsner> if the email was root@debian, the likely explanation is that it's you or someone else on the project who made that on a computer before remembering to configure their name in git
07:17:29 <olsner> (as root?)
07:17:41 <mroman> fowl: Nobody ever helped me on Burlesque
07:17:49 <mroman> there was never anybody contributing code other than me
07:18:12 <olsner> FMNSSun is also you?
07:18:13 <mroman> olsner: Looks like I made that change from my linux VM
07:18:20 <mroman> olsner: FMNSSun is me
07:18:55 <olsner> I saw some commits in the repo as mroman too, I think
07:20:18 <mroman> yeah
07:20:40 <mroman> Different machines have different git configs I guess :)
07:20:55 <mroman> windows uses FMNSSun and Linux Roman Muentener apparentely
07:21:05 <olsner> you should sort that out
07:23:26 <mroman> Is Control.OldException still available?
07:25:18 <mroman> catch doesn't work anymore with Control.Exception
07:28:15 -!- jconn has quit (Remote host closed the connection).
07:29:21 -!- blsqbot has joined.
07:29:34 <mroman> Looks like it's still working
07:29:50 <mroman> !blsq 9
07:29:50 <blsqbot> 9
07:29:50 <blsqbot> 0.015608s
07:30:05 <mroman> !blsq 9ro)S[
07:30:06 <blsqbot> {1 4 9 16 25 36 49 64 81}
07:30:06 <blsqbot> 0.0156048s
07:30:18 <mroman> !blsq 99989899676884654632432432ro)S[
07:30:19 <blsqbot> Ain't nobody got time fo' dat!
07:30:19 <blsqbot> 0.0312315s
07:31:07 <mroman> !blsq {{1 2}{3 4}}sp
07:31:08 <blsqbot> 1 2
07:31:08 <blsqbot> 0s
07:31:14 <mroman> ok. but single line output only.
07:31:44 <olsner> hmm, how does 99989899676884654632432432 encode that string?
07:31:56 <mroman> It doesn't.
07:32:01 <mroman> It produces a timeout
07:32:08 <olsner> after 0.03s?
07:32:25 <mroman> It uses timeout 100
07:32:45 <mroman> so 100 microseconds
07:33:55 -!- aretecode has quit (Ping timeout: 240 seconds).
07:33:57 <mroman> !blsq "abc"R@
07:33:57 <blsqbot> {"" "a" "b" "ab" "c" "ac" "bc" "abc"}
07:33:57 <blsqbot> 0.0100081s
07:34:00 <mroman> !blsq "abcdef"R@
07:34:00 <blsqbot> {"" "a" "b" "ab" "c" "ac" "bc" "abc" "d" "ad" "bd" "abd" "cd" "acd" "bcd" "abcd"
07:34:00 <blsqbot> 0.0156048s
07:34:07 <mroman> !blsq "abcdefghijklmnopqr"R@
07:34:08 <blsqbot> Ain't nobody got time fo' dat!
07:34:08 <blsqbot> 0.0156062s
07:34:09 <myname> looks like J
07:34:35 <mroman> olsner: The small timeout is because I can't put a memory limit
07:34:42 <kmc> smoke a J
07:35:16 <olsner> ulimit perhaps?
07:35:32 <olsner> might be better added into the interpreter itself though
07:35:45 <mroman> !blsq {{1 2}{3 4}}SP
07:35:45 <blsqbot> "1 2\n3 4"
07:35:45 <blsqbot> 0.0100085s
07:37:09 <mroman> olsner: I meant: There's no memlimit thingy like System.Timout that I can just embed in the interpreter easily
07:38:55 -!- Tritonio has joined.
07:39:08 <mroman> hm
07:39:15 <mroman> !blsq "123" -1 !!
07:39:15 -!- blsqbot has quit (Remote host closed the connection).
07:39:22 <mroman> ok
07:39:29 <mroman> this catch doesn't catch everything :(
07:39:53 -!- slereah has joined.
07:41:21 -!- blsqbot has joined.
07:41:29 <mroman> !blsq "123" -1 !!
07:41:30 <blsqbot> That line gave me an error
07:41:30 <blsqbot> 0.0156043s
07:41:36 <mroman> now it does :)
07:43:18 <mroman> olsner: There are two timeouts actually
07:43:37 <mroman> it launches an interpreter with readProcess
07:43:47 <mroman> the interpreter has a 100 microsecond timeout itself
07:43:56 <mroman> and the ircbot has a 3 second timeout for readProcess
07:44:45 <mroman> I'm not sure whether this evaluate $!! kills lazyness though
07:45:03 <mroman> !blsq 1R@100!!
07:45:03 <blsqbot> 101
07:45:03 <blsqbot> 0.0156048s
07:45:14 <mroman> ok. doesn't kill lazy
07:48:35 <mroman> myname: except it doesn't have dyads, monads and triads and quadads and pentads
07:48:49 <myname> what is it?
07:49:02 <mroman> what is what?
07:49:12 <mroman> blqsbot?
07:49:14 <mroman> *sq
07:49:29 <myname> yea
07:49:38 <mroman> !blsq %??
07:49:39 <blsqbot> Burlesque - 1.7.2b
07:49:39 <blsqbot> 0s
07:49:55 <mroman> ^- that ;)
07:50:25 <mroman> !blsq 10ro{2.%}pt
07:50:25 <blsqbot> {{1 3 5 7 9} {2 4 6 8 10}}
07:50:25 <blsqbot> 0s
07:51:04 <mroman> It's sort of a J-like language I guess
07:51:15 <mroman> although I'm pretty sure J users would heavily disagree with that.
07:52:35 <mroman> !blsq 10ro{2.%}ptp^?+
07:52:35 <blsqbot> {3 7 11 15 19}
07:52:35 <blsqbot> 0s
07:54:10 <mroman> !blsq 4mo5.+?d
07:54:11 <blsqbot> {3 7 11 15 19}
07:54:11 <blsqbot> 0s
07:54:42 <mroman> myname: You can golf in it on golf.shinh.org
07:54:54 <myname> nice
07:57:30 <mroman> !blsq 1487796867 36%B!
07:57:30 <blsqbot> olsner
07:57:30 <blsqbot> 0s
07:58:35 <mroman> base 36 should be a standard for compressing numbers .
07:59:15 <shachaf> imo base 32
07:59:25 <myname> base64
08:00:26 <mroman> !blsq 'a'zr@
08:00:26 <blsqbot> {'a 'b 'c 'd 'e 'f 'g 'h 'i 'j 'k 'l 'm 'n 'o 'p 'q 'r 's 't 'u 'v 'w 'x 'y 'z}
08:00:26 <blsqbot> 0.0156052s
08:00:34 <mroman> !blsq @azr@
08:00:34 <blsqbot> {'a 'b 'c 'd 'e 'f 'g 'h 'i 'j 'k 'l 'm 'n 'o 'p 'q 'r 's 't 'u 'v 'w 'x 'y 'z}
08:00:34 <blsqbot> 0.0156066s
08:00:48 <mroman> ah. That's why I implemented an @ prefix some time ago
08:03:11 <mroman> shachaf: but base 36 is neatly from 0..9 ++ a..z
08:03:34 <shachaf> i think base 32 usually drops 0 and 1 because of ambiguity with o and i
08:05:08 <mroman> Why?
08:05:23 <mroman> for human written base 32 stuff... ok
08:05:31 <mroman> but otherwise...
08:07:13 <shachaf> se what else are you using this for?
08:07:55 <blsqbot> [12345, #j, %, \/]
08:07:55 <blsqbot> 0.0156053s
08:08:02 <mroman> oh.
08:08:08 <mroman> He doesn't answer in queries :(
08:08:22 <mroman> shachaf: I'm using it for golfing and homework usually
08:08:53 <shachaf> why not base 64 or something?
08:09:06 <mroman> oh. you mean the base
08:09:10 <shachaf> yes
08:09:12 <mroman> I don't use it :)
08:09:35 <shachaf> there are lots of different characters. i don't see why you'd pick 36 other than for interacting with humans
08:14:22 <mroman> " The characters "0" and "O" are easily
08:14:23 <mroman> confused, as are "1", "l", and "I""
08:14:37 <mroman> Why would a human attempt to decode base32 encoded text
08:15:20 <mroman> also using = as pad for urls is probably not a good idea
08:16:00 <lifthrasiir> tech supports?
08:17:03 <shachaf> why are you encoding a thing as human-
08:17:11 <shachaf> language characters if not for humans to read
08:18:04 <mroman> that's my question
08:18:23 <mroman> why do you ban characters from an encoding because humans confuse them
08:18:33 <mroman> no human's gonna decode it by hand so why bother
08:19:29 <shachaf> so what's the point of base 36 here
08:20:28 <mroman> what
08:20:33 <mroman> none
08:20:56 <shachaf> ok
08:20:58 <shachaf> oh, wait
08:21:01 <shachaf> is this the german dot
08:21:11 <shachaf> where you don't mean a sentence seriously if you put a space before the "."
08:21:20 <mroman> yes
08:21:24 <shachaf> ok
08:21:28 <shachaf> now it makes sense
08:21:41 <shachaf> i asked a german friend about it once and he had never heard of it
08:22:31 <shachaf> but now i understand 00:58 <mroman> base 36 should be a standard for compressing numbers .
08:23:09 * shachaf $ grep 'mroman.* \.$' logs/esoteric/ALL
08:25:43 <mroman> Maybe it's a community thing and not a german thing.
08:26:05 <shachaf> Hm.
08:26:13 <shachaf> Well, I'll remember to look for it .
08:27:02 <mroman> There's also !!11elf
08:28:37 <mroman> because 1 is on the same key as ! and elf means 11 in german
08:28:52 <shachaf> Yes, I think that's common in English too.
08:29:01 <shachaf> Or at least I've seen it.
08:31:48 -!- Patashu has joined.
08:42:26 -!- Tritonio has quit (Ping timeout: 252 seconds).
08:50:30 -!- Patashu has quit (Disconnected by services).
08:50:30 -!- Patashu_ has joined.
08:58:08 -!- edwardk has joined.
09:03:59 -!- KingOfKarlsruhe has joined.
09:35:47 <mroman> !blsq 9tp
09:35:48 <blsqbot> ERROR: You should not transpose what you can't transpose. Yes this is an eastere
09:35:48 <blsqbot> 0s
09:38:40 <mroman> I guess I can't send null-bytes over the IRC
09:40:51 <scoofy> send as \0
09:42:42 <mroman> !blsq 0L[
09:42:42 <blsqbot> '
09:42:43 <blsqbot> 0s
09:42:50 <mroman> !blsq 0%L[
09:42:51 <blsqbot>
09:42:51 <blsqbot> 0.0156085s
09:43:03 <mroman> burlesque doesn't really have escape sequences
09:43:21 <mroman> i.e to embed a newline into a string you really use a newline :)
09:44:19 <mroman> !blsq 255rz)L[im
09:44:19 <blsqbot> ERROR: Burlesque: (++) Invalid arguments!
09:44:19 <blsqbot> 0.0156076s
09:44:25 <mroman> !blsq 255rz)L[\\
09:44:26 <blsqbot> ERROR: Burlesque: (\\) Invalid arguments!
09:44:26 <blsqbot> 0.0156038s
09:44:28 <mroman> what
09:44:33 <mroman> that sucks :(
09:45:05 <mroman> oh
09:45:09 <mroman> !blsq 255rz)L[\[
09:45:10 <blsqbot> "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SYN\ET
09:45:10 <blsqbot> 0.0156067s
09:46:23 <mroman> on the other hand... if you print a string it will use escape sequences :)
09:46:36 <mroman> unless you pretty print it
09:47:28 <mroman> !blsq 255rz)L[\[sh
09:47:29 <blsqbot>
09:47:29 <blsqbot> 0s
09:47:50 <mroman> lol
09:47:53 <mroman> ok.
09:48:03 <mroman> You can make me computer beep if you produce \a
09:48:12 <mroman> because the irc bot logs output to stdout :D
09:57:55 <Taneb> Good morning :)
10:00:44 -!- KingOfKarlsruhe has quit (Read error: Connection timed out).
10:02:24 <blsqbot> Good morning, Taneb!
10:02:24 <blsqbot> 0.0156062s
10:06:14 -!- Slereah_ has quit (Ping timeout: 255 seconds).
10:07:45 -!- Slereah_ has joined.
10:08:01 <Taneb> Burlesque bot?
10:08:50 -!- boily has joined.
10:08:55 <Taneb> mroman, yours?
10:11:24 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
10:23:35 <M28> I wonder if we could do a challenge
10:23:58 <M28> write a simple esoteric language, give no fucking explanation about it, and just provide a bot that evals what you say in a certain channel
10:24:10 <M28> the goal is figuring out how to write "Hello, World!"
10:28:06 <mroman> M28: there's an explanation in the esowiki .
10:28:29 <mroman> and that's not the irony dot. That's the emphasize my point dot
10:28:30 <M28> I'm not talking about blsqbot
10:28:33 <mroman> oh.
10:28:38 <mroman> pardon me.
10:28:42 <mroman> Taneb: yeah. Mine
10:28:52 <mroman> It has a bug.
10:29:10 <mroman> It can only send to one channel :(
10:29:32 <Taneb> Is it written in Burlesque?
10:29:42 <mroman> God no :)
10:29:49 <mroman> That would be tough without I/O.
10:30:08 <mroman> also... output is only produce on termination
10:30:17 <mroman> so that would make it pretty much impossible
10:30:42 <mroman> (i.e. a thruth-machine can't really be implemented in burlesque
10:30:57 <mroman> probably.
10:31:08 <mroman> Maybe it'll work for some scenarios thanks to lazyness and whatnot)
10:31:58 -!- idris-bot has quit (Quit: Terminated).
10:32:30 -!- metasepia has joined.
10:52:43 -!- Tritonio has joined.
10:59:58 -!- boily has quit (Quit: Poulet!).
11:00:00 -!- metasepia has quit (Remote host closed the connection).
11:04:23 <mroman> Burlesque isn't something you'll write an interpreter for in a couple of days
11:04:31 <mroman> Mind that there are probably 300 Commands
11:04:47 <mroman> and those 300 Commands do all different kinds of things depending on arguments
11:04:50 <mroman> !blsq {1 2 3 4 5}av
11:04:51 <blsqbot> 3.0
11:04:51 <blsqbot> 0s
11:04:54 <mroman> !blsq {1 2 3 4 5}avav
11:04:54 <blsqbot> 3
11:04:54 <blsqbot> 0s
11:05:00 <mroman> !blsq {1 2 3 4 5}avavpd
11:05:00 <blsqbot> 3.0
11:05:00 <blsqbot> 0.0156281s
11:05:02 <mroman> !blsq {1 2 3 4 5}avavpdpd
11:05:02 <blsqbot> 3
11:05:02 <blsqbot> 0s
11:05:49 <mroman> ! 9.0r@
11:05:54 <mroman> !blsq 9.0r@
11:05:54 <blsqbot> 3.0
11:05:54 <blsqbot> 0.0156057s
11:06:02 <mroman> !blsq {1 2 3}r@
11:06:03 <blsqbot> {{1 2 3} {2 1 3} {3 2 1} {2 3 1} {3 1 2} {1 3 2}}
11:06:03 <blsqbot> 0.0156061s
11:06:29 <mroman> I dare you writing an interpreter for it in Brainfuck
11:06:44 <mroman> you'd even have to implement lazy evaluation
11:10:54 <mroman> !blsq "{1 2 3}r@"e!
11:10:54 <blsqbot> ERROR: Burlesque: (e!) Invalid arguments!
11:10:54 <blsqbot> 0.0100048s
11:11:00 <mroman> !blsq "{1 2 3}r@"pe
11:11:00 <blsqbot> {{1 2 3} {2 1 3} {3 2 1} {2 3 1} {3 1 2} {1 3 2}}
11:11:00 <blsqbot> 0.0100066s
11:35:06 -!- idris-bot has joined.
11:40:15 -!- Sprocklem has joined.
11:45:30 <HackEgo> [wiki] [[Gentzen]] http://esolangs.org/w/index.php?diff=39707&oldid=39706 * Keymaker * (+4) Made "Truth-machine" link to that page.
11:47:36 -!- Tritonio has quit (Ping timeout: 252 seconds).
11:48:42 -!- Sgeo has quit (Read error: Connection reset by peer).
12:53:33 -!- Sprocklem has quit (Quit: brb).
12:58:28 -!- blitter64 has joined.
13:03:42 -!- yorick has joined.
13:04:18 -!- ais523 has joined.
13:06:00 * ais523 reads the Perl 5.20 delta
13:08:51 -!- MDream has changed nick to MDude.
13:13:18 -!- {hk3380} has joined.
13:18:57 -!- MindlessDrone has joined.
13:20:37 -!- blitter64 has quit (Ping timeout: 240 seconds).
13:23:55 -!- Patashu_ has quit (Ping timeout: 252 seconds).
13:25:40 -!- Sorella has joined.
13:26:58 -!- ais523 has quit (Ping timeout: 252 seconds).
13:38:30 -!- password2 has joined.
13:39:40 -!- password2 has quit (Max SendQ exceeded).
13:56:23 -!- password2 has joined.
14:18:30 -!- nooodl has joined.
14:42:54 -!- ais523 has joined.
14:56:35 -!- hogeyui has quit (Ping timeout: 252 seconds).
15:10:06 -!- hogeyui has joined.
15:13:17 -!- Sprocklem has joined.
15:15:08 -!- Slereah_ has quit (Ping timeout: 255 seconds).
15:15:38 -!- Slereah_ has joined.
15:19:41 <HackEgo> [wiki] [[MetaGolfScript]] N http://esolangs.org/w/index.php?oldid=39708 * 194.29.34.162 * (+1932) Created page with "'''MetaGolfScript''' is a family of programming languages, designed to allow zero length programs to be written, in order to win code-[[golf]] contests. == Overview == The fa..."
15:30:59 -!- ais523 has quit.
15:31:40 -!- M28_ has joined.
15:34:23 -!- M28 has quit (Ping timeout: 258 seconds).
15:41:25 -!- {hk3380} has quit (Ping timeout: 252 seconds).
15:41:41 -!- hogeyui has quit (Ping timeout: 255 seconds).
15:46:30 -!- hogeyui has joined.
15:50:54 -!- edwardk has quit (Quit: Leaving...).
15:53:17 -!- Phantom_Hoover has joined.
15:53:19 -!- Phantom_Hoover has quit (Changing host).
15:53:19 -!- Phantom_Hoover has joined.
15:58:58 -!- password2 has quit (Ping timeout: 240 seconds).
15:59:49 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
16:01:34 -!- slereah has quit (Quit: Leaving).
16:25:31 -!- sebbu has quit (Ping timeout: 240 seconds).
16:35:01 -!- drdanmaku has joined.
16:37:51 <mroman> Neat idea
16:37:57 <mroman> @MetaGolfScript
16:37:58 <lambdabot> Unknown command, try @list
16:38:38 <mroman> worst abuse of common sense ever
16:41:10 -!- {hk3380} has joined.
16:44:30 -!- MoALTz has joined.
16:49:17 <mroman> also if you know the winning language
16:49:24 <mroman> everybody else will know what your program was
16:49:42 <mroman> that'd pretty much suck for no-deadline contests
16:55:40 <mroman> !blsq 255rz)L[209180605381204854470575573749277224 256dgsi
16:55:41 <blsqbot> That line gave me an error
16:55:41 <blsqbot> 0.1093593s
16:58:33 <mroman> !blsq 255rz)L[209180605381204854470575573749277224 256dgsi\[
16:58:33 <blsqbot> That line gave me an error
16:58:33 <blsqbot> 0.0156048s
16:58:48 <mroman> damn you
16:58:50 <mroman> !blsq 255rz)L[209180605381204854470575573749277224 256dgsi\[
16:58:50 <HackEgo> [wiki] [[Talk:MetaGolfScript]] N http://esolangs.org/w/index.php?oldid=39709 * GreyKnight * (+298) Created page with "== pg wishes he was this smaert == Well, it's certainly esoteric, but: : "[...] in order to win code-golf contests." I think you're making some assumptions about the contest j..."
16:58:50 <blsqbot> "(Ifmmp-!xpsme\"("
16:58:50 <blsqbot> 0.1093626s
16:59:06 <mroman> how does he encode Hello, world?
16:59:09 <mroman> It's not base 256
17:01:09 -!- conehead has joined.
17:04:15 -!- Slereah_ has quit (Read error: Connection reset by peer).
17:04:32 -!- Slereah_ has joined.
17:08:11 <mroman> !blsq "\'Hello, world!\'")**256ug
17:08:11 <blsqbot> 178006462281531046238104240886391074
17:08:11 <blsqbot> 0.0200142s
17:08:43 <mroman> !blsq 255rz)L[178006462281531046238104240886391074 256dgsi%\[
17:08:44 <blsqbot> "Hello, world!"
17:08:44 <blsqbot> 0.0156042s
17:15:11 <Bike> nice n readable
17:17:32 -!- mihow has quit (Quit: mihow).
17:20:19 -!- sebbu has joined.
17:20:42 <int-e> `` dc <<<178006462281531046238104240886391074P
17:20:58 -!- sebbu has quit (Changing host).
17:20:59 -!- sebbu has joined.
17:21:00 <int-e> `` dc <<<178006462281531046238104240886391074P
17:21:00 <HackEgo> ​"Hello, world!"
17:28:33 <nooodl> mroman: 0 = "", 1 = "\0x00", 2 = "\x01"...
17:43:53 -!- Sprocklem has quit (Ping timeout: 252 seconds).
17:45:05 <shachaf> kmc: https://code.google.com/p/go/issues/detail?id=6776
17:45:28 -!- mihow has joined.
17:45:48 <shachaf> oh, apparently it's fixed
17:50:10 <mroman> 0 is the empty program?
17:50:11 <mroman> hm.
17:50:12 <mroman> so
17:50:20 <mroman> !blsq 255rz)L[209180605381204854470575573749277223 256dgsi\[
17:50:20 <blsqbot> "(Ifmmp-!xpsme\"'"
17:50:20 <blsqbot> 0.0156085s
17:50:41 -!- password2 has joined.
17:50:53 <mroman> ok. than you can't treat it as a base encoded thingy
17:51:09 <mroman> Bike: nice n very readable
17:51:17 <mroman> rz is RangeFromZero
17:51:28 <mroman> dg is digits, si is selectindices and \[ is concat
17:51:36 -!- password2 has quit (Max SendQ exceeded).
17:51:36 <mroman> !blsq 255rz
17:51:36 <blsqbot> {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
17:51:36 <blsqbot> 0.0156052s
17:51:43 <mroman> !blsq 255rz)L[
17:51:43 <blsqbot> {'
17:51:43 <blsqbot> 0s
17:51:49 <mroman> well. L[ is ord
17:51:59 <mroman> can't print that because it has null bytes and stuff in it
17:52:13 <mroman> !blsq "abc"{1 1 0 0 2}si
17:52:13 <blsqbot> "bbaac"
17:52:13 <blsqbot> 0.0156038s
17:52:29 -!- password2 has joined.
17:52:40 <mroman> !blsq 128 2dg
17:52:41 <blsqbot> {1 0 0 0 0 0 0 0}
17:52:41 <blsqbot> 0.0156052s
17:52:50 <mroman> !blsq {1 0 0 1}2ug
17:52:51 <blsqbot> 9
17:52:51 <blsqbot> 0s
17:53:07 -!- password2 has quit (Max SendQ exceeded).
17:56:10 <mroman> !blsq 65L[
17:56:10 <blsqbot> 'A
17:56:11 <blsqbot> 0s
17:57:01 -!- tertu has quit (Ping timeout: 240 seconds).
17:57:06 <mroman> *L[ is chr
17:57:09 <mroman> ** is ord
17:57:13 <mroman> !blsq 65L[**
17:57:14 <blsqbot> 65
17:57:14 <blsqbot> 0.0090037s
17:57:23 <mroman> among other thins.
17:57:29 <mroman> !blsq "abc""def"**
17:57:30 <blsqbot> "adbecf"
17:57:30 <blsqbot> 0.0090065s
17:58:40 <mroman> !blsq "hi this is a test"{<-}ww
17:58:40 <blsqbot> "ih siht si a tset"
17:58:40 <blsqbot> 0.0156053s
18:01:07 -!- {hk3380} has quit (Ping timeout: 240 seconds).
18:02:35 <mroman> !blsq "CamelCase"<-
18:02:36 <blsqbot> "esaClemaC"
18:02:36 <blsqbot> 0.0156225s
18:02:41 <mroman> !blsq "CamelCase")<-
18:02:41 <blsqbot> "cAMELcASE"
18:02:41 <blsqbot> 0.0156206s
18:05:56 -!- {hk3380} has joined.
18:10:35 -!- not^v has joined.
18:15:18 -!- tertu has joined.
18:15:45 -!- tertu has quit (Client Quit).
18:20:38 <mroman> !blsq "CamelCase"))<-
18:20:38 -!- Slereah_ has quit (Ping timeout: 240 seconds).
18:20:38 <blsqbot> {ERROR: Burlesque: (_+) Invalid arguments!}
18:20:38 <blsqbot> 0.0240154s
18:21:03 -!- Slereah_ has joined.
18:24:14 <Bike> "Code intended to support native EBCDIC platforms will be removed from Perl before 5.22.0"
18:25:14 -!- mhi^ has joined.
18:35:24 -!- glogbackup has joined.
18:37:03 -!- glogbackup has quit (Remote host closed the connection).
18:38:46 -!- MindlessDrone has quit (Quit: MindlessDrone).
18:38:57 -!- rottytooth has joined.
18:42:00 <kmc> one of the food trucks has a logo like the eye in the pyramid on a dollar bill but the floating eye is replaced by a pizza slice
18:42:02 <zzo38> I have idea, it is making up a programming language for making random distribution data (such as, 4d6 drop lowest, or win/loss ratio at a crap game, or poker hands, or whatever), and then it can read the program in order to determine the expected probability of results, and then run it using a given random number generator to see how closely it matches.
18:43:04 -!- glogbackup has quit (Remote host closed the connection).
18:43:10 <Bike> kmc: excellent.
18:56:12 -!- AnotherTest has joined.
19:08:13 -!- sebbu has quit (Ping timeout: 252 seconds).
19:11:03 -!- evalj has joined.
19:11:53 -!- mihow has quit (Quit: mihow).
19:12:18 -!- edwardk has joined.
19:13:06 -!- mihow has joined.
19:13:14 <HackEgo> [wiki] [[Secretary]] http://esolangs.org/w/index.php?diff=39710&oldid=37689 * 12.33.168.146 * (-1) /* Humor */
19:13:43 -!- sebbu has joined.
19:14:20 -!- sebbu has quit (Changing host).
19:14:20 -!- sebbu has joined.
19:15:04 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com).
19:18:14 -!- AnotherTest has quit (Ping timeout: 252 seconds).
19:23:04 -!- mihow has quit (Quit: mihow).
19:24:43 -!- not^v has quit (Quit: http://i.imgur.com/Akc6r.gif).
19:29:58 -!- edwardk has quit (Ping timeout: 252 seconds).
19:31:02 -!- MDude has quit (Ping timeout: 252 seconds).
19:32:35 -!- edwardk has joined.
19:38:45 <mroman> is there some congruence with the distribution of 0,1 for numbers in base 2?
19:39:20 <mroman> i.e. the ratio of ones to zeroes in the binary representation of a number N
19:43:47 <mroman> other than 2^x-1 have 100% ones
19:44:00 <mroman> and 2^x have 1/ln(x) probably
19:45:15 <Slereah_> Isn't it just equiprobable
19:45:21 <Slereah_> Since all of them have to be there
19:49:28 -!- {hk3380} has quit (Ping timeout: 265 seconds).
19:51:12 -!- {hk3380} has joined.
19:54:07 -!- mhi^ has quit (Quit: Lost terminal).
19:57:21 -!- mhi^ has joined.
20:02:31 -!- mihow has joined.
20:04:27 -!- Sprocklem has joined.
20:12:16 <kmc> http://www.munidiaries.com/2014/05/27/no-one-ever-said-no-cooking-on-muni/
20:25:45 -!- Sprocklem has quit (Quit: brb).
20:26:41 -!- conehead has joined.
20:27:18 -!- Sprocklem has joined.
20:32:22 -!- mihow has quit (Quit: mihow).
20:32:41 -!- blsqbot has quit (Read error: Connection reset by peer).
20:33:23 -!- mihow has joined.
20:42:49 -!- mhi^ has quit (Quit: Lost terminal).
20:43:01 -!- tromp_ has quit (Remote host closed the connection).
20:55:45 -!- Patashu has joined.
20:56:40 <b_jonas> hey look! http://www.icfpcontest.org/ is updated!
21:06:04 <b_jonas> it doesn't seem to have any teasers though
21:06:26 <zzo38> What statistics should I put other than the quantile and standard deviation?
21:07:30 -!- myndzi has quit (Quit: .).
21:07:53 -!- myndzi has joined.
21:14:32 <b_jonas> zzo38: um, put where?
21:14:40 <b_jonas> ah
21:15:06 <b_jonas> "< zzo38> I have idea, it is making up a programming language for making random distribution data (such as, 4d6 drop lowest, or win/loss ratio at a crap game, or poker hands, or whatever), and then it can read the program in order to determine the expected probability of results, and then run it using a given random number generator to see how closely it matches."
21:17:53 -!- Sprocklem has quit (Quit: Bye).
21:19:59 <zzo38> No I meant for SQL function
21:20:36 <Bike> Cauchy distribution
21:20:46 <Bike> solomonoff distribution
21:21:04 <kmc> `coins
21:21:05 <HackEgo> puzzicoin 13.4coin ircutecoin infocoin oof!coin revercoin convesiacoin tfikntythestidcoin achedcoin fordcoin yicleadcoin fiocoin nerersesspridcoin clatlicvrecoin adminecoin nulliicoin ooksancoin estcoin cardcoin taxcoin
21:25:21 -!- Patashu has quit (Ping timeout: 252 seconds).
21:25:56 <b_jonas> zzo38: how does it take its input? is it an aggregate function?
21:26:02 <zzo38> b_jonas: Yes
21:26:18 <zzo38> So far I have functions QUANTILE/2, MEDIAN/1, and STDDEV/1.
21:26:30 <b_jonas> dunno, perhaps arbitrary moment and arbitrary central moment
21:26:31 <zzo38> (MEDIAN(x) is just short for QUANTILE(x,0.5))
21:27:21 <b_jonas> also, maybe something like QUANTILE that takes an integer ordinal instead of a fractional ratio
21:27:27 <zzo38> I made up a program in SQL for ratio of ones to zeroes in the binary representation of a number N. It is: WITH X(X,Y) AS (SELECT 0,'0' UNION ALL SELECT X+1,BASECONV(X+1,10,2) FROM X LIMIT 128) SELECT CAST(SUBSTRING_COUNT(Y,'1') AS REAL)/SUBSTRING_COUNT(Y,'0') FROM X;
21:28:05 <Bike> the ratio is always zero since there are as many leading zeroes as you want, duh
21:28:33 <zzo38> b_jonas: If you want an integer offset then you can use the OFFSET clause, though.
21:29:07 <zzo38> (You can also use ORDER BY, LIMIT, and OFFSET if for some reason you want the uninterpolated median of non-numerical data.)
21:29:21 <b_jonas> zzo38: hmm
21:29:51 <b_jonas> zzo38: I don't think you can do that if you GROUP BY and want a quantile from each group
21:30:04 <Bike> harmonic mean! what if i want to compute that
21:30:32 <Bike> or variance. i guess that would be good.
21:30:34 <Bike> i /guess/.
21:30:36 <zzo38> b_jonas: O, yes, I forgot that
21:31:12 <kmc> println!("{}", uncomment!(/* 3 */))
21:31:18 <b_jonas> zzo38: mind you, I think you can still do ORDER BY in a subquery, but that gets ugly and possibly inefficient
21:31:24 <zzo38> kmc: What is that?
21:31:32 <Bike> i'm afraid, kmc
21:31:36 <zzo38> b_jonas: Yes it is what I was thinking of, too
21:31:39 <kmc> a silly macro
21:31:51 <kmc> one which you can't actually write, but we were discussing if it would be possible or not with a certain change
21:31:54 <b_jonas> kmc: what language is that?
21:31:57 <kmc> Rust
21:31:57 <Bike> rust
21:32:02 <Bike> why is uncomment effectful
21:32:08 <kmc> that's not what the bang means
21:32:09 <b_jonas> scary
21:32:13 <Bike> no?
21:32:16 <kmc> b_jonas: you can't actually do that, though
21:32:21 <kmc> Bike: it means macro / syntax extension
21:32:31 <Bike> weird.
21:32:34 <Bike> println is a macro?
21:32:37 <zzo38> I don't think that it is necessary to be able to write such a macro, but even if a change allows it, that is not necessarily a problem
21:32:44 <Bike> no varargs yet or something?
21:32:45 <kmc> yes, because the format string is parsed and typechecked at compile time
21:33:02 <Bike> tsk.
21:33:06 <kmc> we support calling variadic C function but otherwise there is no varargs, yeah
21:33:29 <kmc> but handling format strings at compile time seems better, anyway
21:33:35 <kmc> although I don't know how it interacts with i18n
21:33:48 <Bike> lacking the ability at all to do it at runtime though, that rubs me the wrong way
21:33:51 <kmc> GCC also typechecks format strings at compile time, using a hardcoded hack
21:33:54 <zzo38> Is the standard deviation the square root of the variance? That would be easy to fix
21:33:58 <int-e> > Test.Printf.printf "%s" () :: String
21:34:00 <lambdabot> Not in scope: ‘Test.Printf.printf’
21:34:00 <lambdabot> Perhaps you meant one of these:
21:34:00 <lambdabot> ‘Text.Printf.printf’ (imported from Text.Printf),
21:34:00 <lambdabot> ‘Text.Printf.hPrintf’ (imported from Text.Printf)
21:34:05 <int-e> > Text.Printf.printf "%s" () :: String
21:34:06 <lambdabot> No instance for (Text.Printf.PrintfArg ())
21:34:06 <lambdabot> arising from a use of ‘Text.Printf.printf’
21:34:10 <int-e> aww
21:34:11 <kmc> Bike: I'm not sure if we have that ability right now but it's not too hard to provide, anyway
21:34:18 <int-e> > Text.Printf.printf "%s" 42 :: String
21:34:19 <lambdabot> "*Exception: printf: bad formatting char 's'
21:34:36 <Bike> i'd rather println be a function with a nicely incorporated compile-time function to deal with the usual stuff, but nobody seems to want to do this
21:34:57 <Bike> zzo38: there's this whole thing with bessel's correction though.
21:35:02 <kmc> Bike: there is a println function too
21:35:14 <zzo38> What is bessel's correction doing with it?
21:35:17 <kmc> println!("...", ...) => println(format!("...", ...)) roughly
21:35:42 <int-e> with a template haskell version, which is pretty much a macro, it could produce a type error instead.
21:35:51 <Bike> zzo38: the standard deviation (variance) of a sample and the standard deviation (variance) of a population are computed differently
21:36:11 <kmc> although it's not in scope by default
21:36:19 <zzo38> Bike: Yes I know that, but is it relevant?
21:36:20 * int-e wonders whether ocaml's Format.printf machinery can be reproduced in a library
21:36:32 <Bike> well it's relevant if you're just calling it "stddev" without saying which it is
21:36:33 <kmc> and I think println(format!(...)) has an intermediate allocation that println!() avoids
21:36:38 -!- oerjan has joined.
21:36:46 <b_jonas> zzo38: sure it is, in the sense that you should document which one the function computes
21:36:46 <kmc> int-e: don't believe so
21:36:47 <kmc> maybe in Camlp4 / Camlp5 tho
21:37:00 <kmc> 23:12 < kmc> the french parts of the eurofighter are programmed in ocaml
21:37:06 <kmc> i wonder if anybody believed me when i said that
21:37:10 <Bike> i did.
21:37:13 <Bike> am i... a fool
21:37:15 <zzo38> b_jonas: Done.
21:37:18 <kmc> not really, but it's a lie
21:37:22 <Bike> dag
21:37:25 <kmc> sorry
21:37:27 <kmc> also there's no santa claus
21:37:29 <Bike> "they're actually in prolog"
21:37:38 <int-e> kmc: I also don't believe so but I don't know :)
21:37:56 <b_jonas> zzo38: and document what the functions do with NULL and with NaN values
21:38:22 -!- MDude has joined.
21:38:57 <zzo38> Nulls are just ignored. Anything else is just used as it is. Now I wrote that in the documentation, too.
21:39:06 <b_jonas> thanks
21:40:00 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com).
21:40:39 <b_jonas> zzo38: I have another idea. you could add two-argument aggregate functions for the covariance of pairs of values.
21:40:43 -!- boily has joined.
21:41:08 <zzo38> OK, how does that work?
21:41:09 <b_jonas> obviously that's only for convenience, because just like the standard deviation, you can mostly just compute that from avg(...)
21:41:43 <b_jonas> zzo38: dunno, I'm too tired to tell the right way now, and I don't wish to embarrass myself by telling wrong stuff
21:41:57 <b_jonas> look up the numerically stable formulas somewhere
21:42:25 <b_jonas> you are using the numerically stable formula for standard deviation by the way, right?
21:44:45 -!- Phantom_Hoover has joined.
21:45:09 -!- Phantom_Hoover has changed nick to Guest32551.
21:46:50 -!- nooodl_ has joined.
21:49:18 -!- edwardk has quit (Ping timeout: 240 seconds).
21:50:02 -!- nooodl has quit (Ping timeout: 255 seconds).
21:54:02 -!- rottytooth has quit (Quit: HydraIRC -> http://www.hydrairc.com <- Go on, try it!).
21:55:36 <int-e> kmc: ok, I found the magical format string parser in the compiler source. so yeah, a preprocessor looks like the only viable option
21:56:13 <Bike> clearly the answer is dependent types
21:56:29 <kmc> yay unboxed closures are coming to Rust
21:56:37 <kmc> this is one of the major things C++ can do that we can't
22:00:09 <Bike> what's an unboxed closure mean particularly
22:01:15 -!- mhi^ has joined.
22:01:37 <int-e> kmc: you may enjoy the comment in the type checking code here: http://sprunge.us/ZcjJ
22:02:01 <int-e> (or perhaps not, since it's entirely accurate)
22:02:43 <oerjan> terribly accurate hack
22:04:35 <int-e> "rue" btw stands for "record and unify with expected type"
22:05:06 -!- boily has quit (Quit: DENTISTRY).
22:05:51 <oerjan> what does avenue stand for twh
22:07:09 <int-e> I thought it was the proper word, "to rue"
22:07:16 <int-e> proper *verb
22:07:44 <int-e> (though for once that kind of thinko didn't make the sentence wrong.)
22:08:27 -!- Sprocklem has joined.
22:08:56 -!- rottytooth has joined.
22:09:59 <int-e> hehe, according to acronymfinder, "AVENUE stands for ATM (Asynchronous Transfer Mode) Validation Environment for Use towards EATMS (European Air Traffic Management System)"
22:10:41 <oerjan> good, good
22:11:48 <mcpherrin> lol ATM
22:13:56 <shachaf> Overly Enthusiastic Resources Jeopardize Acronym Nomenclature
22:14:01 <shachaf> hth
22:15:47 <kmc> Bike: so a C++ lambda evaluates to an instance of an anonymous class generated by the compiler
22:16:03 <kmc> the captured variables of the lambda are member data of that class
22:16:08 <Bike> isn't that a box?
22:16:12 <int-e> with a () operator? sounds sane ... in the context of C++
22:16:17 <kmc> int-e: yes
22:16:46 <b_jonas> kmc: yes, but that's almost so difficult to prove that they practically only say that to be able to define the semantics of lambdas properly
22:16:47 <kmc> Bike: "box" refers to a heap box, used to give things uniform runtime representation
22:17:02 <Bike> oh
22:17:03 <kmc> the function object could live on the stack or as a field in another object
22:17:05 <kmc> without a heap allocation
22:17:09 <kmc> and the operator() call is not virtual
22:17:18 <kmc> so if you call map with a lambda argument, the compiler can even inline the lambda into the map
22:18:09 <kmc> if you *do* want dynamic polymorphism, you up-cast the object of unspecified type to std::function<...>, which is a superclass
22:18:39 <kmc> and (like other cases of up-casting to call virtual methods) you can only do that cast on a pointer or reference, not on the object by value
22:18:49 <kmc> because a std::function<...> has a different size than some arbitrary subclass of it
22:19:06 -!- mihow has quit (Quit: mihow).
22:19:14 <kmc> anyway the ability to stuff free variables into a bigger struct is super useful
22:19:22 <kmc> for example in the iterators API
22:19:29 <kmc> in Rust, I mean
22:20:10 <kmc> myiter.map(|x| ...) will return a struct which is another iterator, and if you moved the free variables of that lambda into the struct, you could pass the iterator around more freely
22:20:37 -!- Sgeo has joined.
22:20:42 <kmc> instead, in current rust, the free variables live on the stack of the caller, and the iterator lifetime's is bound to that activation frame
22:20:57 <kmc> and you can't inline the lambda into other stuff
22:21:02 <kmc> it's just passed as a function pointer
22:22:06 <kmc> that makes it pretty similar to GCC's nested functions extension, actually
22:22:10 <Bike> oh, that's nice.
22:22:23 <kmc> except the borrow checker will complain if you try to return such a lambda
22:24:01 <Bike> http://www.theonion.com/articles/new-stem-education-initiative-inspires-girls-to-ea,36126/
22:24:04 <kmc> like so: http://goo.gl/7kNFUA
22:24:30 <shachaf> imo just do it the go way: https://groups.google.com/d/msg/golang-nuts/mKJbGRRJm7c/DZod_v3BdSIJ
22:24:56 <b_jonas> kmc: well, C++ lambdas can do taht, and more
22:25:08 -!- Guest32551 has quit (Quit: Leaving).
22:25:17 <kmc> can do which?
22:25:49 <b_jonas> it can have the variables live on the stack so the closure is valid only until its creating function
22:26:00 <kmc> I know, I said that above
22:26:03 <b_jonas> yep
22:26:11 <kmc> this topic started with me saying that C++ lambdas can do things Rust lambdas can't
22:26:51 <b_jonas> yes, I see
22:26:52 <b_jonas> sorry
22:26:55 <kmc> np :)
22:27:03 <oerjan> shachaf: Severely Hopeless Acronyms Change Humoristic Art Forever
22:28:04 <fowl> do me
22:28:06 <fowl> :)
22:28:35 <kmc> Bike: a key part of that whole thing is that C++ has inference for function template calls
22:29:03 -!- blitter64 has joined.
22:29:45 <kmc> so you can write map([](x) { x+1 }) rather than map<some_ridiculous_name_of_type_generated_by_the_compiler>([](x) { x+1 })
22:30:07 -!- evalj has quit (Remote host closed the connection).
22:30:52 <kmc> template<typename A> class List { template<typename B, typename F> List<B> map(F f) }
22:31:20 <kmc> of course, until the templates are expanded, there's nothing checking that F has an operator() which takes A and returns B
22:31:25 <kmc> because C++ templates are duck-typed
22:31:31 <kmc> but the analogous thing in Rust would be checked via the trait system
22:31:43 <kmc> and some day C++ will get "concepts" to do the same
22:31:55 <kmc> maybe even this year??
22:32:39 <shachaf> oerjan: Only Exemplary Retorts Jolt Adroit Nonagenarians
22:33:04 <oerjan> fowl: From Oulipo With Love
22:33:54 <Sgeo> Why do people never speak of UDP/IP as a thing the way they do TCP/IP?
22:34:49 <shachaf> oerjan: Ordinarily, Exceeding Rough Jabs Aren't Necessary
22:35:15 <shachaf> ICMP/IP
22:37:24 <oerjan> shachaf: Sorry, Helpless Arbitrary Codes Have All Failed
22:38:12 <oerjan> ICBM/IP
22:38:26 -!- rottytooth has quit (Quit: HydraIRC -> http://www.hydrairc.com <- Po-ta-to, boil em, mash em, stick em in a stew.).
22:39:17 <shachaf> oerjan: Opportunistic Extra Random Jokes Ain't Nice
22:40:27 <oerjan> shachaf: So Heartless And Completely Humorless A Feature
22:41:18 <kmc> Sgeo: i have heard it
22:41:23 <kmc> but mostly because there's very little to say about UDP?
22:41:33 <kmc> UDP isn't a transport protocol so much as a way to write your own transport protocol in userspace
22:41:36 <kmc> usually that's what you talk about
22:42:29 <mcpherrin> UDP is a way to escape the tyranny of your OS's TCP junk heap ;)
22:44:23 <int-e> such hate and conflict -- horrible acronym fate
22:44:25 <mcpherrin> Sgeo: it's a good question though; certainly from a network perspective there's no reason you couldn't put UDP in whatever kind of frame you wanted
22:44:51 <mcpherrin> Running UDP on broadcast ethernet frames or something.
22:45:31 <kmc> it's depressing how many security holes have the root cause that "int" is a lot shorter to type than "unsigned int"
22:46:16 <mcpherrin> kmc: lol
22:46:18 <zzo38> kmc: At least, SQLite has a SQLITE_TOOBIG error code which is possible to avoid some of those problems.
22:47:50 <oerjan> int-e: it needs to end
22:47:53 <int-e> obsessively enigmatic retorts -- just another nightmare --- fair is fair.
22:49:47 <int-e> oerjan: I never think enough. :P
22:51:17 -!- blitter64 has quit (Ping timeout: 264 seconds).
22:52:27 <oerjan> imagination nurtures thought endlessly
22:57:45 -!- mcpherrin has quit (Quit: offline for a bit).
22:58:19 -!- Sprocklem has quit (Ping timeout: 240 seconds).
22:59:39 -!- Sprocklem has joined.
22:59:39 -!- blitter64 has joined.
23:00:02 -!- ^v has quit (Ping timeout: 252 seconds).
23:05:36 -!- tromp_ has joined.
23:07:31 -!- ^v has joined.
23:08:43 -!- nooodl_ has quit (Ping timeout: 276 seconds).
23:20:29 <Slereah_> http://24.media.tumblr.com/0fca573aac765a7de4504e34f14e5766/tumblr_n63889tQso1qmmsq4o1_1280.png
23:22:10 <kmc> ok
23:34:33 <oerjan> `addquote <kmc> I like telling people who've only used high level languages about the bizarre forms of undefined behavior in C, and then ending it with "this language and its relatives are used for most systems in planes, cars, medical devices, nuclear reactors, etc."
23:34:34 <HackEgo> 1197) <kmc> I like telling people who've only used high level languages about the bizarre forms of undefined behavior in C, and then ending it with "this language and its relatives are used for most systems in planes, cars, medical devices, nuclear reactors, etc."
23:35:47 <oerjan> `help
23:35:47 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
23:36:02 -!- yorick has quit (Read error: Connection reset by peer).
23:36:13 <oerjan> somehow that link had slipped off my browser history
23:37:06 <oerjan> or at least address line completion refused to give it
23:37:54 <oerjan> which is weird since i used it 2 weeks ago
23:37:57 -!- mhi^ has quit (Quit: Lost terminal).
23:44:00 <Sgeo> I want a Gold Transcendence
23:44:31 <Sgeo> kmc: also, not all relatives of C are as terrible as C.
23:45:02 <oerjan> <M28> it is, but then you can't assume that "0^n = 0" everywhere <-- that's not true for negative n anyway
23:45:42 <oerjan> @tell M28_ <M28> it is, but then you can't assume that "0^n = 0" everywhere <-- that's not true for negative n anyway
23:45:42 <lambdabot> Consider it noted.
23:46:03 <M28_> oerjan, you got the idea
23:46:06 -!- M28_ has changed nick to M28.
23:46:09 <ion> Google Plus recommended communities http://heh.fi/tmp/google_plus_emacs_vim.png
23:51:02 -!- tromp_ has quit (Remote host closed the connection).
23:51:14 <oerjan> > (-1) ** (0:+ -1)
23:51:16 <lambdabot> Precedence parsing error
23:51:16 <lambdabot> cannot mix ‘Data.Complex.:+’ [infix 6] and prefix `-' [infixl 6] in the ...
23:51:25 <oerjan> > (-1) ** (0:+ (-1))
23:51:26 <lambdabot> 4.321391826377226e-2 :+ (-0.0)
23:52:00 <oerjan> M28: that doesn't look like 23.1406... to me.
23:52:04 <oerjan> > (-1) ** (0:+ (1))
23:52:06 <lambdabot> 23.140692632779267 :+ 0.0
23:52:37 <M28> oerjan, http://www.wolframalpha.com/input/?i=%28-1%29%5E%28-i%29
23:54:41 <oerjan> hm funny it switches the values. of course both i and -i are solutions to x^2 = -1 so they're probably in the branches of each other
23:56:02 <oerjan> you'd think WA should understand "all branches of (-1)^(i)"
23:58:58 <oerjan> > [ exp((0:+1)* (0 :+ n*2*pi + log (-1)) | n <- [-2..2]]
23:59:00 <lambdabot> <hint>:1:40: parse error on input ‘|’
23:59:11 <oerjan> > [ exp((0:+1)* (0 :+ n*2*pi + log (-1))) | n <- [-2..2]]
23:59:13 <lambdabot> Precedence parsing error
23:59:13 <lambdabot> cannot mix ‘Data.Complex.:+’ [infix 6] and ‘GHC.Num.+’ [infixl 6] in the...
23:59:20 <oerjan> bah
23:59:29 <oerjan> > [ exp((0:+1)* ((0 :+ n*2*pi) + log (-1))) | n <- [-2..2]]
23:59:31 <lambdabot> [6635623.99934113 :+ 0.0,12391.647807916694 :+ 0.0,23.140692632779267 :+ 0.0...
23:59:55 <oerjan> > [ re $ exp((0:+1)* ((0 :+ n*2*pi) + log (-1))) | n <- [-2..2]]
23:59:57 <lambdabot> Couldn't match type ‘Data.Complex.Complex a1’
23:59:57 <lambdabot> with ‘Data.Tagged.Tagged a0 (Data.Functor.Identity.Identity b)
23:59:57 <lambdabot> -> Data.Tagged.Tagged s0 (Data.Functor.Identity.Identity...
23:59:57 <lambdabot> Expected type: Control.Lens.Review.AReview s0 t a0 b
23:59:57 <lambdabot> Actual type: Data.Complex.Complex a1Couldn't match type ‘Data.Complex.Comp...
←2014-05-26 2014-05-27 2014-05-28→ ↑2014 ↑all