--- Log opened Sat Apr 04 00:00:14 2015 |
00:44 | | Derakon[AFK] is now known as Derakon |
01:08 | | gnolam_ [lenin@Nightstar-oru2ae.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
01:15 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code |
01:15 | | mode/#code [+o Vash] by ChanServ |
01:27 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
01:27 | | mode/#code [+o thalass] by ChanServ |
01:57 | | Turaiel[Offline] is now known as Turaiel |
02:14 | | * McMartin gets an incomplete draft of his Rust-based Klotski solver running |
02:14 | <&McMartin> | Still like five times slower than the Gambit one. |
02:14 | <&McMartin> | And I haven't even put in history-tracking yet |
02:21 | <&McMartin> | Aha, I have to turn on optimizations |
02:21 | <&McMartin> | There we go |
02:22 | <&McMartin> | Now it's twice as fast. |
02:35 | | NSGuest40681 is now known as JustBob |
02:35 | | mode/#code [+o JustBob] by ChanServ |
02:39 | <&ToxicFrog> | Twice as fast as it was, or twice as fast as the Gambit version? |
02:49 | <&McMartin> | Twice as fast as the gambit version, so a 10x speedup. |
02:49 | <&McMartin> | That dropped slightly once I added in the history-tracking to make it actually solve the same problem. |
02:49 | <&McMartin> | But we have a new record on this (10-year-old) hardware of 0.6 seconds |
02:50 | <&McMartin> | Which would probably be 0.3 on a modern system. |
02:55 | <&McMartin> | Still needs comments and maybe some implementation cleanup. |
02:55 | <&McMartin> | But, nevertheless: I am well pleased. |
02:55 | <&McMartin> | If perhaps less convinced of the language's viability~ |
02:55 | <&McMartin> | (Fighting with the type and borrow checkers/inferrers was pretty intense) |
02:57 | <&McMartin> | Once I have it commented and cleaned up a bit I'll post the source |
03:00 | <&McMartin> | Rust unoptimised usertime: 5.425s. Gambit usertime: 0.920s. Rust optimised usertime: 0.581s. |
03:01 | <&McMartin> | (Python: 10.473s) |
03:14 | <&McMartin> | Yep, on a full-speed machine it's 0.227s |
03:41 | <@Ogredude> | whut |
03:43 | <@Ogredude> | how are you doing this in Rust? |
03:43 | <&McMartin> | I have implemented, in a bunch of languages, programs that solve the old sliding-block puzzle "Klotski" |
03:43 | <@Ogredude> | we are talking about the game where you start off naked with a rock, yes? |
03:43 | <&McMartin> | ...no? |
03:43 | <@Ogredude> | no. |
03:43 | <@Ogredude> | okay that would be the source of my confusion. |
03:43 | <&McMartin> | http://rust-lang.org |
03:43 | <~Vornicus> | is the sun gone in rust? |
03:44 | <&McMartin> | It is basically the language you would get if you trying to cross Haskell with C |
03:44 | <&McMartin> | *tried |
03:44 | <@Ogredude> | I donno, I haven't played it in ages, got tired of groups of naked people breaking down the stuff I'm building as I build it |
03:45 | <&McMartin> | The result is pretty interesting and very fast, but the amount of information about memory management you have to juggle is actually harder to deal with than C's, so I'm not sure how well it will hold up to being written by actual human beings |
03:45 | <@Ogredude> | yeah that's a good point |
03:45 | <@Ogredude> | in the ideal system, humans wouldn't have to worry about memory management and garbage collection |
03:45 | <&McMartin> | On the plus side, the result of their attempts will be programs that do not compile instead of programs that are trivially exploitable. |
03:45 | <@Ogredude> | anything that makes it worse to deal with is a step backward in my opinion |
03:45 | <&McMartin> | Well |
03:45 | <&McMartin> | It's a step forward |
03:46 | <&McMartin> | ...into an alternate dimension, where information about where objects go out of scope and thus are destroyed are actually part of the type of the object, which is usually deduced by the compiler |
03:46 | <&McMartin> | But getting a three-screen proof that you fucked up and let a value escape that you shouldn't have might be beyond the capabilities of an average developer to deal with. |
03:48 | <&McMartin> | (Basically, assigning a value to something means you can no longer use the variable it used to live in. This means you have to set it up so that stuff that wants to use it for a bit 'borrows' that value. It makes sure you only do the equivalent of take the address of a stack variable when it is OK to do so. Heap values are similar, but it's the pointer that's moved around instead, and there are APIs for mak |
03:48 | <&McMartin> | ing them be ref-counted.) |
03:49 | <&McMartin> | It's also porting over Haskell's replacement for multiple inheritance, which is a strict improvement and which more things need |
03:49 | <&McMartin> | (And which Go did not copy correctly) |
03:53 | <@Ogredude> | ahhh, ok |
03:53 | <@Ogredude> | most of that I actually somewhat understand, but the practical implications are way beyond me |
03:59 | <@Ogredude> | it makes me glad that folks like you actually understand it :) |
04:12 | <&McMartin> | I did my grad work in program analysis, so this is actually even more interesting than that |
04:12 | <&McMartin> | The general mechanism for analyzing this stuff is called "ownership analysis", and encoding ownership as types is a pretty old idea |
04:13 | <&McMartin> | But back when I was a grad student, the papers of the time were showing that it wasn't good enough to represent the basic aspects of a fully-featured programming language. |
04:13 | <&McMartin> | It turns out we've gotten better at this stuff in the past decade, and Rust's stdlib is proof that it can in fact now be done |
05:16 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Ping timeout: 121 seconds] |
05:22 | <&McMartin> | https://hkn.eecs.berkeley.edu/~mcmartin/klotski.rs |
05:23 | <&McMartin> | Also, https://hkn.eecs.berkeley.edu/~mcmartin/klotski.scm - the previous champion and the program the rust implementation is based on |
05:44 | | Meatyhandbag [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has quit [Connection reset by peer] |
05:45 | | Meatyhandbag_ [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has joined #code |
05:49 | | celticminstrel [celticminst@Nightstar-orch4o.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:53 | <@Ogredude> | so it's making you more conscious of what the data's doing and therefore lets you do more, or do it faster |
05:54 | <@Ogredude> | there's honestly so much of this stuff that I don't even know that I don't know :) |
05:56 | | Derakon is now known as Derakon[AFK] |
06:07 | | Meatyhandbag_ [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has quit [Client exited] |
06:09 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
06:39 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
06:54 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [[NS] Quit: Quit] |
07:10 | | Kindamoody[zZz] is now known as Kindamoody |
07:18 | | Turaiel is now known as Turaiel[Offline] |
--- Log closed Sat Apr 04 08:03:17 2015 |
--- Log opened Sat Apr 04 08:03:25 2015 |
08:03 | | TheWatcher [chris@Nightstar-ksqup0.co.uk] has joined #code |
08:03 | | Irssi: #code: Total of 36 nicks [17 ops, 0 halfops, 0 voices, 19 normal] |
08:03 | | mode/#code [+o TheWatcher] by ChanServ |
08:03 | | Irssi: Join to #code was synced in 38 secs |
14:12 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
14:12 | | mode/#code [+o thalass] by ChanServ |
14:22 | | Meatyhandbag [sebastianfe@Nightstar-dk0.5eb.224.136.IP] has joined #code |
14:41 | | gnolam_ [lenin@Nightstar-oru2ae.priv.bahnhof.se] has joined #code |
15:23 | <@Tarinaky> | So. cmake says CMakeLists.txt does not appear to exist... |
15:23 | <@Tarinaky> | Problem is: I am staring right at it. |
15:25 | <@Tarinaky> | nm, found the issue. |
15:33 | <@Tarinaky> | Wtf is the switch to make VS treat warnings as errors? |
15:33 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Operation timed out] |
15:50 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
15:50 | | mode/#code [+o Checkmate] by ChanServ |
16:13 | | thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
16:13 | | mode/#code [+o thalass] by ChanServ |
16:19 | <@Shiz> | Tarinaky: /WX |
16:19 | <@Shiz> | (if you hadn't found it by now) |
16:24 | | Derakon[AFK] is now known as Derakon |
17:15 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
17:15 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
17:21 | | Netsplit *.net <-> *.split quits: abudhabi, @himi, Syka, [R], tripflag, Turaiel[Offline] |
17:23 | | [R] [rstamer@Nightstar-d7h8ki.org] has joined #code |
17:23 | | PinkFreud [WhyNot@Pinkfreud.is.really.fuckin.lame.nightstar.net] has quit [Ping timeout: 121 seconds] |
17:25 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has joined #code |
17:29 | | Turaiel[Offline] [Brandon@Nightstar-olc20d.resnet.mtu.edu] has joined #code |
17:29 | | tripflag [im@Nightstar-1sfccr.ocv.me] has joined #code |
17:32 | | abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code |
17:32 | | thalass is now known as Thalass|Archer |
17:37 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
17:37 | | mode/#code [+o himi] by ChanServ |
18:15 | | celticminstrel [celticminst@Nightstar-orch4o.dsl.bell.ca] has joined #code |
18:15 | | mode/#code [+o celticminstrel] by ChanServ |
19:06 | | Turaiel[Offline] is now known as Turaiel |
19:15 | | Thalass|Archer is now known as Thalass |
19:19 | | Thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Ping timeout: 121 seconds] |
19:52 | | Thalass [thalass@Nightstar-h1qmno.eastlink.ca] has joined #code |
19:52 | | mode/#code [+o Thalass] by ChanServ |
20:39 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has joined #code |
20:39 | | mode/#code [+o Vash] by ChanServ |
21:05 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
22:16 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
22:16 | | mode/#code [+o Checkmate] by ChanServ |
22:25 | < abudhabi> | ... |
22:25 | < abudhabi> | Adblock Plus is telling me there are 1171 blocked items on a Youtube video. |
22:25 | <&McMartin> | ... is it blocking every annotation or |
22:27 | < abudhabi> | I don't know. |
22:29 | <@Namegduf> | "Is it me or does YouTube have more ads nowadays?" |
22:34 | < abudhabi> | The number appears to be slowly creeping up. |
22:34 | <@Tamber> | It's trying to save your blood pressure, and is blocking the comments. |
22:34 | <&McMartin> | Is it blocking *comments*? |
22:34 | <&McMartin> | ha ha, GMTA |
22:34 | <@Tamber> | :) |
22:36 | < abudhabi> | There's only one comment on this video. |
22:37 | <@Tamber> | ...that it's letting you see. :D |
23:09 | | Thalass [thalass@Nightstar-h1qmno.eastlink.ca] has quit [Ping timeout: 121 seconds] |
23:19 | | Turaiel is now known as Turaiel[Offline] |
23:39 | <@Tamber> | <Once is happenstance. Twice is coincidence. Three times is enemy action. Four times is Official GNOME Policy.> Hee |
23:39 | <@Tamber> | ( http://www.jwz.org/blog/2015/04/i-told-you-so-again/ ) |
--- Log closed Sun Apr 05 00:00:30 2015 |