←2014-06-16 2014-06-17 2014-06-18→ ↑2014 ↑all
00:11:48 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
00:14:38 -!- sebbu has quit (Ping timeout: 240 seconds).
00:22:28 -!- _46bit has joined.
00:27:00 -!- Bicyclidine has quit (Ping timeout: 255 seconds).
00:39:30 -!- edwardk has joined.
00:49:04 -!- Sprocklem has quit (Ping timeout: 264 seconds).
00:51:13 -!- lollo64it has quit (Quit: Leaving).
00:52:17 -!- Guest44825 has quit (Ping timeout: 245 seconds).
00:53:37 -!- Gregor has joined.
00:56:52 -!- MoALTz__ has joined.
00:58:48 -!- MoALTz has joined.
00:59:52 -!- MoALTz_ has quit (Ping timeout: 264 seconds).
01:01:27 -!- MoALTz__ has quit (Ping timeout: 245 seconds).
01:11:15 -!- vravn has joined.
01:12:50 -!- Bike_ has joined.
01:14:52 -!- Bike has quit (Ping timeout: 264 seconds).
01:28:54 -!- Sorella has quit (Quit: It is tiem!).
01:46:06 -!- Bike_ has changed nick to Bike.
01:52:13 <Sgeo> I.... think I like Go's if better than aif
01:52:22 <Sgeo> (except for the whole it's not a ternary operator thing)
02:05:21 -!- oerjan has quit (Quit: leaving).
02:08:59 -!- edwardk has quit (Quit: Computer has gone to sleep.).
02:10:32 -!- edwardk has joined.
02:12:20 -!- sebbu has joined.
02:12:57 -!- sebbu has quit (Changing host).
02:12:57 -!- sebbu has joined.
02:20:52 -!- edwardk has quit (Quit: Computer has gone to sleep.).
02:24:56 -!- edwardk has joined.
02:27:05 -!- shikhout has quit (Ping timeout: 272 seconds).
02:46:50 -!- Bike has quit (Ping timeout: 252 seconds).
02:51:44 -!- Bike has joined.
02:54:30 -!- Sprocklem has joined.
03:41:50 -!- vravn has quit (Ping timeout: 240 seconds).
03:42:51 -!- Gracenotes has quit (Ping timeout: 252 seconds).
03:43:25 -!- HackEgo has quit (Remote host closed the connection).
03:43:40 -!- Gracenotes has joined.
03:44:46 -!- vravn has joined.
04:10:57 -!- `^_^v has quit (Ping timeout: 272 seconds).
04:17:37 -!- MoALTz_ has joined.
04:20:53 -!- MoALTz has quit (Ping timeout: 252 seconds).
04:24:21 -!- nooodl has joined.
04:27:56 -!- brandonsons has joined.
04:30:12 -!- brandonson has quit (Ping timeout: 245 seconds).
05:21:15 <b_jonas> you know how tcsh is the best esoteric shell, because it supports goto even in interactive mode gotoing among separately entered commands?
05:21:34 <b_jonas> I wonder if anyone had modified tcsh to support computed come from in shell scripts yet.
05:23:22 -!- nooodl has quit (Quit: Ik ga weg).
05:50:13 -!- FreeFull has quit.
06:01:37 <coppro> did someone dump hackego's quote database into qdb.us?
06:02:55 <elliott> I hope not...
06:07:28 <Slereah> Wait, why was Y2K even a problem
06:07:36 <Slereah> Were years coded in BCD?
06:08:57 <elliott> two digits
06:10:09 <Slereah> But that's just on the screen
06:10:49 <elliott> nope
06:10:51 <Slereah> So literaly the only source of error would be human error if that was the problem, unless the date was in BCD in the computer
06:10:55 <elliott> you have a year input, it takes two digits
06:10:57 <elliott> you store that number
06:10:58 <elliott> tada
06:11:11 <elliott> you have a "get year" function, it returns the number of years since 1900, tada
06:11:19 <elliott> (js has this)
06:11:33 <Slereah> Did js even exist back then?
06:11:38 <Bike> 19A0, as it were
06:12:33 <Slereah> Weren't a lot of like COBOL computers in BCD or something
06:12:49 <Slereah> Because they were used by non-engineers mostly
06:13:15 <elliott> ..yes, js existed before 2000
06:13:17 <Bike> it's not like engineers never get the idea to use something weird like bcd
06:13:21 <elliott> js was wildly popular before 2000.
06:13:33 <Slereah> The horror
06:13:35 <Bike> vbscript is going to take js's market share, though
06:14:16 <elliott> anyway lots of web pages think it is 19114
06:14:28 <Slereah> The futuuuure
06:14:44 <elliott> they are mistaken. it is in fact september 1993
06:14:55 <Slereah> I wonder if there is some 1996 webpage hidden somewhere in the depth on internet
06:15:08 <Slereah> A fan webpage of Hanson and Spacejam
06:15:11 <Bike> @google one terabyte of kilobyte age
06:15:12 <lambdabot> http://oneterabyteofkilobyteage.tumblr.com/
06:15:12 <lambdabot> Title: One Terabyte of Kilobyte Age Photo Op
06:15:15 <Slereah> That thinks it is the year -14
06:15:20 <Bike> hth, etc
06:18:59 <Bike> actually i suppose they're past 93 now. they switched to ie, i guess t hey're trying some kind of chronology
06:23:06 <elliott> it ends with a screenshot of your browser viewing the page in present day
06:23:48 <Bike> pans out to me screaming in a theater
06:36:28 -!- MoALTz_ has quit (Quit: Leaving).
06:39:18 -!- augur has quit (Ping timeout: 244 seconds).
06:52:38 <elliott> ok who on earth actually submitted all the quotes to qdb.us
06:52:45 <elliott> and what the fuck were you thinking
07:02:39 -!- augur has joined.
07:23:11 <olsner> which quotes? #esoteric quotes?
07:29:36 <elliott> yes
07:29:50 <elliott> including the ones that are not even defensible as in any way good and make no sense outside the context of the channel
07:29:53 <elliott> just all of them
07:30:05 <elliott> and thi sinvolved reformatting them on multiple lines so someone put way too much effort into spamming qdb with our crap
07:31:47 <Bike> listen, i don't want to defend this or anything, but i don't think it's gonna be much worse than the rest of qdb.
07:38:09 <elliott> it's just
07:38:10 <elliott> baffling
07:44:09 <mroman> I can't find any quote from here there
07:47:32 <olsner> looks like they're in the queue
07:52:42 <fizzie> POSIX's (and all similar) struct tm has a tm_year member that's also year-1900, so a lot of C programs also think it's 19114.
07:57:08 -!- slereah_ has joined.
07:57:51 <mroman> printf("19%d", tm.year)?
07:58:04 <slereah_> Damn you Y2K!
07:58:14 <mroman> yeah
07:58:24 <mroman> they should just have reset the calendar to 1900
07:58:30 <mroman> for backwards compatability
07:58:44 <mroman> and to confuse historians in the future
07:59:13 <slereah_> They should use unsigned ints in number of seconds since the big bzn
07:59:13 <mroman> no sense in making their job intentionally easier.
07:59:21 <mroman> it's supposed to be a mystic job!
07:59:28 <slereah_> bang*
07:59:48 <slereah_> That's like
07:59:54 <slereah_> 10^20
08:00:12 <slereah_> How many bits is that, like 70?
08:00:34 <slereah_> Put it as 128 bits for time
08:01:44 <slereah_> You'll be fine until 10790283070806014188970529154990 years
08:02:01 <slereah_> And you can write all times
08:02:06 <mroman> then what you gonna do?
08:02:25 <mroman> extend it to 256 bits
08:02:29 <slereah_> Then you have the year 10790283070806014188970529154990 bug
08:02:40 <mroman> and hoping no banks will collapse due to the 2^128 bug
08:02:41 <slereah_> Or Y10790283070806014188970529154990K, as it is known
08:03:49 <slereah_> With some luck the universe will have been destroyed by that time
08:03:59 <slereah_> But then again that's the attitude that led to Y2K
08:04:09 <slereah_> "Oh yeah with the cold war we're all gonna be nuked by the 80's"
08:04:14 <slereah_> No need to plan ahead
08:05:01 <mroman> true
08:05:13 <mroman> I still think that'll be true for about 2050
08:05:51 <slereah_> Nah, nukes are all out of fashion
08:05:56 <slereah_> Now it's global warming
08:09:50 <mroman> but history taught us that things don't really happen fast :)
08:10:18 <mroman> Even if you bought games from the 90s
08:10:28 <mroman> the way those game designers saw 2012
08:10:38 <mroman> way too optimistic :D
08:10:55 <slereah_> Or both, in the case of Duke Nukem Forever~
08:16:35 -!- brandonsons has quit (*.net *.split).
08:16:36 -!- Gregor has quit (*.net *.split).
08:16:37 -!- tromp has quit (*.net *.split).
08:16:37 -!- TodPunk has quit (*.net *.split).
08:16:37 -!- glogbackup has quit (*.net *.split).
08:16:37 -!- Frooxius has quit (*.net *.split).
08:16:38 -!- augur has quit (*.net *.split).
08:16:38 -!- Gracenotes has quit (*.net *.split).
08:16:38 -!- vravn has quit (*.net *.split).
08:16:38 -!- Bike has quit (*.net *.split).
08:16:38 -!- Sgeo has quit (*.net *.split).
08:16:39 -!- vyv has quit (*.net *.split).
08:16:39 -!- aloril has quit (*.net *.split).
08:16:39 -!- heroux has quit (*.net *.split).
08:16:39 -!- Slereah has quit (*.net *.split).
08:16:40 -!- trout has quit (*.net *.split).
08:16:40 -!- lifthrasiir has quit (*.net *.split).
08:16:41 -!- mtve has quit (*.net *.split).
08:16:42 -!- clog has quit (*.net *.split).
08:16:42 -!- pikhq has quit (*.net *.split).
08:16:43 -!- _46bit has quit (*.net *.split).
08:16:43 -!- newsham has quit (*.net *.split).
08:16:44 -!- ggherdov has quit (*.net *.split).
08:16:44 -!- Speed` has quit (*.net *.split).
08:16:45 -!- skarn has quit (*.net *.split).
08:16:45 -!- Quintopia has quit (*.net *.split).
08:16:46 -!- nisstyre has quit (*.net *.split).
08:16:47 -!- rodgort has quit (*.net *.split).
08:16:47 -!- myndzi has quit (*.net *.split).
08:16:47 -!- hubs has quit (*.net *.split).
08:16:48 -!- FireFly has quit (*.net *.split).
08:16:48 -!- lambdabot has quit (*.net *.split).
08:16:49 -!- qlkzy has quit (*.net *.split).
08:20:42 -!- augur has joined.
08:20:43 -!- brandonsons has joined.
08:20:43 -!- vravn has joined.
08:20:43 -!- Gracenotes has joined.
08:20:43 -!- Bike has joined.
08:20:43 -!- Gregor has joined.
08:20:43 -!- _46bit has joined.
08:20:43 -!- Sgeo has joined.
08:20:43 -!- vyv has joined.
08:20:43 -!- aloril has joined.
08:20:43 -!- glogbackup has joined.
08:20:43 -!- heroux has joined.
08:20:43 -!- tromp has joined.
08:20:43 -!- Slereah has joined.
08:20:43 -!- TodPunk has joined.
08:20:43 -!- Frooxius has joined.
08:20:43 -!- trout has joined.
08:20:43 -!- lifthrasiir has joined.
08:20:43 -!- mtve has joined.
08:20:43 -!- clog has joined.
08:20:43 -!- pikhq has joined.
08:20:43 -!- newsham has joined.
08:20:43 -!- ggherdov has joined.
08:20:43 -!- Speed` has joined.
08:21:10 -!- skarn has joined.
08:21:11 -!- Quintopia has joined.
08:21:11 -!- qlkzy has joined.
08:21:11 -!- nisstyre has joined.
08:21:11 -!- lambdabot has joined.
08:21:11 -!- rodgort has joined.
08:21:11 -!- myndzi has joined.
08:21:11 -!- hubs has joined.
08:21:11 -!- FireFly has joined.
08:27:42 -!- Gregor` has joined.
08:27:42 -!- TodPunk has quit (Excess Flood).
08:27:56 -!- Gregor has quit (Write error: Broken pipe).
08:27:58 -!- glogbackup has quit (Write error: Broken pipe).
08:28:07 -!- Gregor` has changed nick to Guest767.
08:28:31 -!- TodPunk has joined.
08:29:06 <slereah_> Aaaaargh
08:29:17 <slereah_> Fuck huge memory leak and I don't know what's wrong!
08:32:45 <slereah_> And the more threads it has, the faster it grows
08:32:55 <slereah_> So I suspect fukken threads
08:33:19 -!- TodPunk has quit (*.net *.split).
08:33:20 -!- brandonsons has quit (*.net *.split).
08:33:21 -!- tromp has quit (*.net *.split).
08:33:21 -!- Frooxius has quit (*.net *.split).
08:33:22 -!- augur has quit (*.net *.split).
08:33:22 -!- Gracenotes has quit (*.net *.split).
08:33:22 -!- vravn has quit (*.net *.split).
08:33:22 -!- Bike has quit (*.net *.split).
08:33:22 -!- Sgeo has quit (*.net *.split).
08:33:22 -!- vyv has quit (*.net *.split).
08:33:23 -!- aloril has quit (*.net *.split).
08:33:23 -!- heroux has quit (*.net *.split).
08:33:23 -!- Slereah has quit (*.net *.split).
08:33:23 -!- trout has quit (*.net *.split).
08:33:23 -!- lifthrasiir has quit (*.net *.split).
08:33:25 -!- mtve has quit (*.net *.split).
08:33:25 -!- clog has quit (*.net *.split).
08:33:26 -!- pikhq has quit (*.net *.split).
08:33:26 -!- _46bit has quit (*.net *.split).
08:33:26 -!- newsham has quit (*.net *.split).
08:33:27 -!- ggherdov has quit (*.net *.split).
08:33:27 -!- Speed` has quit (*.net *.split).
08:38:10 <Taneb> @tell Phantom_Hoover Don't look at r/haskell unless you have a brick handy
08:38:11 <lambdabot> Consider it noted.
08:39:05 -!- Slereah has joined.
08:42:49 <slereah_> Phew, solved the memory leak
08:43:01 <slereah_> Apparently C prefers that I join my threads rather than cancel 'em
08:43:04 <slereah_> Whatever that means
08:44:02 -!- TodPunk has joined.
08:44:03 -!- augur has joined.
08:44:03 -!- brandonsons has joined.
08:44:03 -!- vravn has joined.
08:44:03 -!- Gracenotes has joined.
08:44:03 -!- Bike has joined.
08:44:03 -!- _46bit has joined.
08:44:03 -!- Sgeo has joined.
08:44:03 -!- vyv has joined.
08:44:03 -!- aloril has joined.
08:44:03 -!- heroux has joined.
08:44:03 -!- tromp has joined.
08:44:03 -!- Frooxius has joined.
08:44:03 -!- trout has joined.
08:44:03 -!- lifthrasiir has joined.
08:44:03 -!- newsham has joined.
08:44:03 -!- ggherdov has joined.
08:44:03 -!- Speed` has joined.
08:44:03 -!- pikhq has joined.
08:44:03 -!- clog has joined.
08:44:03 -!- mtve has joined.
08:46:09 -!- Patashu has joined.
08:46:17 <mroman> slereah_: uhm
08:46:23 <mroman> Why would you cancel them
08:46:27 <mroman> It's not even guaranteed to work
08:46:34 <mroman> as threads can be in uncanceable states etc.
08:46:38 <slereah_> Because I have no idea what happens to threads when they are done
08:47:12 <mroman> they are destroyed
08:47:25 <mroman> join just waits for them to exit
08:48:27 <slereah_> But then why would cancelling them after they are done cause a memory leak
08:50:06 <mroman> well
08:50:12 <mroman> you shouldnt cancel terminated threads anyway
08:50:48 <slereah_> Then why does that function exist
08:50:56 <mroman> to cancel threads
08:51:22 <olsner> either join each thread, detach it or create it detached
08:51:35 <mroman> generally cancelling threads isn't really a nice way of doing things
08:51:36 <b_jonas> ah, it's that channel
08:51:47 <mroman> I think the general opinion is to use sync mechanisms to do that
08:52:11 <mroman> thread apis in other languages usually don't even support that anymore @killing other threads
08:52:34 <mroman> anyway... pthread_cancel takes a pthread_t
08:52:41 <mroman> depending on what pthread_t is
08:52:49 <mroman> maybe it's a thread id of some sort
08:52:55 <mroman> and maybe that thread id gets reused at some point
08:53:07 <mroman> so it might even be the case that you'll cancel a completely different thread
08:53:21 <mroman> because it reuses the thread id of some thread that has already terminated
08:55:04 <mroman> but yeah
08:55:10 <mroman> either join or detach them
08:55:27 <mroman> when a detached thread terminates it's released without having to join on it
08:56:58 <mroman> slereah_: Some resources are kept when a thread terminates
08:57:00 <mroman> like it's exit status
08:57:11 <mroman> so you can ask for the exit status later on
08:57:32 <mroman> which is why you'll have lots of orphan threads (or whatever they are called) around
08:57:39 <mroman> unless you either join or detach them
08:57:41 <b_jonas> exactly, cancelling threads or throwing asynchronious exceptions to threads is generally so dangerous and hard to get right that it's not worth to even try, except on this channel
08:58:39 -!- glogbackup has quit (Ping timeout: 255 seconds).
08:58:48 <mroman> Just consider a thread having a lock
08:59:04 <mroman> I'm not even sure if locks are released if a thread gets canceld
08:59:11 <mroman> I hope so, but I'd have to check that someday
08:59:22 <b_jonas> they should not be released
08:59:41 <mroman> for pure calculation stuff cancelling is probably not so problematic
08:59:43 <mroman> but still
08:59:44 <slereah_> Aw
08:59:50 <slereah_> I don't want orphans in my computer :(
09:00:20 <slereah_> But yeah, my neural network thing was taking like
09:00:26 <slereah_> 9% of the memory per cycle
09:00:31 <slereah_> Now it's a flat 0.6%
09:00:34 <slereah_> Much better
09:01:21 -!- aloril has quit (Ping timeout: 240 seconds).
09:01:58 <mroman> You could use cleanup_push
09:02:00 <mroman> then cancel it
09:02:10 <mroman> and make sure that you release the lock in the cleanup handler you pushed
09:02:25 <mroman> That's probably more #esoteric style .
09:02:28 <slereah_> heh
09:02:37 <slereah_> Well it is a work thing, so I'd rather do it cleanly
09:04:29 <slereah_> I should try to do an esolang based on pi calculus someday
09:11:55 -!- Patashu has quit (Disconnected by services).
09:11:56 -!- Patashu_ has joined.
09:15:41 -!- aloril has joined.
09:16:33 -!- conehead has quit (Quit: Computer has gone to sleep).
09:18:45 -!- shikhin has joined.
09:22:33 -!- slereah_ has quit (Ping timeout: 272 seconds).
09:34:42 -!- slereah_ has joined.
10:08:06 -!- Ghoul_ has joined.
10:08:44 -!- Ghoul_ has changed nick to Aetherspawn-.
10:17:01 -!- shikhin has quit (Ping timeout: 272 seconds).
10:18:55 -!- boily has joined.
10:20:50 -!- nooodl has joined.
10:27:55 -!- Phantom_Hoover has joined.
10:30:43 -!- Patashu_ has quit (Remote host closed the connection).
10:31:00 -!- Patashu has joined.
10:45:17 -!- glogbackup has joined.
10:45:47 -!- oerjan has joined.
10:51:29 -!- ais523 has joined.
10:55:51 -!- Bike has quit (Ping timeout: 240 seconds).
10:57:50 -!- Bike has joined.
11:00:57 -!- boily has quit (Quit: JETTIARY CHICKEN).
11:03:39 <oerjan> oh someone fixed the content-type problem with tunes
11:08:40 <ais523> tunes actually being maintained feels wrong to me, somehow
11:08:56 <ais523> I have this mental image of the whole place having been abandoned years ago, being updated only by clog
11:09:43 <int-e> running like clogwork?
11:10:21 <oerjan> ais523: well _maybe_ it was an IE bug that was fixed instead.
11:10:50 <ais523> oerjan: the one where you can XSS attack a plain text file? that was probably the one
11:11:25 <oerjan> ais523: well the tunes files end in .listofnumbers
11:11:41 <oerjan> and perhaps IE just stopped assuming those to be text.
11:11:56 <oerjan> hm...
11:12:04 <oerjan> `url bin/url
11:12:12 <oerjan> oops
11:12:19 <oerjan> oh wait
11:12:40 <oerjan> i need something in paste/ to check that.
11:12:55 <oerjan> although that _may_ have been the hg browser's settings.
11:13:04 -!- callforjudgement has joined.
11:13:11 -!- ais523 has quit (Read error: Connection reset by peer).
11:13:17 <callforjudgement> [12:12] <ais523> well, IE had a bug where it would interpret an explicit text/plain as text/html whenever it felt like it
11:13:17 <callforjudgement> [12:12] <ais523> the standard workaround used to be to serve plaintext files as text/css
11:13:18 <callforjudgement> [12:12] <ais523> which is interpreted the same way as text/plain by all browsers but IE, which interprets it the same way other browsers interpret text/plain
11:13:18 -!- callforjudgement has changed nick to ais523.
11:13:36 <oerjan> gah why must my browser have forgotten the hg repository url
11:14:29 <int-e> http://codu.org/projects/hackbot/fshg/ ?!
11:15:00 <oerjan> ais523: i find it unlikely that IE interpreted tunes logs as html at any point?
11:15:08 <oerjan> thanks
11:15:22 <ais523> oerjan: someone sent you to meatspin like that, didn't they?
11:15:52 * oerjan adds to favorites
11:16:40 <oerjan> ais523: ok there have been weird cases, but what happened recently was that it refused to open and asked to download instead.
11:17:14 <ais523> ah right, so an entirely different bug
11:17:50 <oerjan> nope, hg repository still does that.
11:18:19 <oerjan> (and that was, i recall, an intentional security enhancement.)
11:19:36 -!- ais523 has quit.
11:19:48 -!- ais523 has joined.
11:20:36 <ais523> oh gah I was going to report a bug in something
11:20:42 <ais523> but I've forgotten both what the bug is, and what package I was going to report it in
11:20:44 <oerjan> in any case nothing happened on the clog side of the netsplits anyway :P
11:20:50 <ais523> or, ooh, I just remembered a different bug, anyway
11:21:05 <ais523> five-or-more sets the permissions incorrectly on the score file
11:21:39 * oerjan assumes nethack
11:21:53 <ais523> nah, not much point in reporting bugs against a 10-year-old game
11:22:00 <ais523> to Debian, anyway
11:22:05 <ais523> I remembered what it is, anyway
11:22:12 <oerjan> well, nethack 4 then, except then you'd fix it not report it
11:22:18 -!- shikhin has joined.
11:22:24 <ais523> funny-manpages puts manpages in section 1 that should be in section 7
11:22:33 <ais523> even if they're joke manpages, they should still be in the right section
11:28:15 <int-e> dungeon crawl stone soup is another roguelike that came up here recently
11:28:40 -!- ais523 has quit (Ping timeout: 264 seconds).
11:31:55 -!- KingOfKarlsruhe has changed nick to KingBot.
11:32:37 -!- KingBot has changed nick to KingOfKarlsruhe.
11:41:37 -!- Phantom__Hoover has joined.
11:42:33 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
11:42:36 -!- ais523 has joined.
11:45:02 -!- Phantom___Hoover has joined.
11:46:19 -!- Phantom__Hoover has quit (Ping timeout: 272 seconds).
11:47:02 -!- Phantom__Hoover has joined.
11:47:45 -!- Sgeo has quit (Read error: Connection reset by peer).
11:49:33 -!- Phantom___Hoover has quit (Ping timeout: 240 seconds).
11:58:59 -!- ais523 has quit (Ping timeout: 272 seconds).
12:01:15 -!- MindlessDrone has joined.
12:15:30 -!- ais523 has joined.
12:17:08 <ais523> gah, I enter the wrong password into sudo 3 times
12:17:10 <ais523> and it emails me
12:17:35 <ais523> this is completely pointless from a security point of view because an attacker could just confirm the password using some other method (e.g. passwd) before entering it into sudo
12:18:49 <ais523> meanwhile, here's my first attempt to submit a patch to Ubuntu: https://bugs.launchpad.net/ubuntu/+source/five-or-more/+bug/1330956
12:19:02 <ais523> if nothing happens for a bit, I'll see if it's a bug in Debian too, and if it is, file the bug there
12:19:14 <ais523> (note: for this particular package, it's possible that it isn't, although there's no "ubuntu" suffix on the version number so it probably is)
12:19:54 -!- Sorella has joined.
12:22:12 <oerjan> oh five-or-more is the name of the game
12:22:26 <oerjan> i thought it was a condition for the bug to happen
12:24:54 <b_jonas> oerjan: I thought the same bug was present in a games package for the high score table of five or more games
12:25:43 <ais523> b_jonas: that is possible; many games (well more than five) were originally in the gnome-games codebase before it was split into smaller packages
12:25:48 <ais523> and IIRC at least one other (that I don't have installed) has that bug
12:27:17 <ais523> it'll also be fun to see what (if anything) is done about copyright for a patch that deletes one line
12:27:23 <ais523> it's the first time I've submitted a pure-deletion patch anywhere
12:27:40 <ais523> "How many lines of code do you have in Five Or More?" "-1"
12:28:18 -!- yorick has joined.
12:30:07 <ais523> also, I think I'm still running at 100% for "proportion of bugs I found in Gnome that I submitted patches for"
12:31:09 <b_jonas> maybe you don't use gnome enough
12:31:25 <ais523> I don't use it that much, indeed
12:35:58 -!- FreeFull has joined.
12:36:57 <b_jonas> do you count all the infrastructure projects that gnome has spawned, but that are used outside gnome, like libglib, gtk+, pango, etc?
12:37:14 -!- ais523 has quit.
12:37:24 -!- ais523 has joined.
12:41:51 -!- ais523 has quit (Ping timeout: 240 seconds).
12:42:27 -!- ais523 has joined.
12:53:06 -!- ais523 has quit (Ping timeout: 255 seconds).
13:12:42 -!- Patashu has quit (Ping timeout: 245 seconds).
13:18:39 -!- ais523_ has joined.
13:21:21 -!- ais523 has joined.
13:30:04 -!- ais523 has quit (Ping timeout: 240 seconds).
13:38:25 -!- Phantom__Hoover has quit (Ping timeout: 272 seconds).
13:41:27 -!- MDream has joined.
13:41:40 -!- MDream has changed nick to MDude.
13:42:05 -!- `^_^v has joined.
14:28:34 -!- ais523 has joined.
14:31:23 -!- oerjan has quit (Quit: leaving).
14:41:22 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
14:43:32 -!- ais523 has quit (Read error: Connection reset by peer).
14:43:42 -!- ais523 has joined.
14:49:04 -!- callforjudgement has joined.
14:49:05 -!- mihow has joined.
14:50:16 -!- ais523 has quit (Ping timeout: 264 seconds).
14:50:37 -!- callforjudgement has changed nick to ais523.
14:56:16 -!- ais523 has quit (Ping timeout: 264 seconds).
15:16:45 <mroman> I really hate exam questions
15:17:00 <mroman> "Code generation is the most time consuming phase of a compiler? [ ] Yes [ ] No"
15:17:08 <mroman> How the hell am I supposed to answer thta
15:17:21 -!- lifthrasiir has joined.
15:17:25 <FireFly> No clue
15:17:40 <b_jonas> mroman: flip a coin
15:17:40 <FireFly> We don't usually have yes/no questions like that on our exams
15:17:52 <FireFly> Not sure if coins are permitted on exams
15:17:59 <b_jonas> dice then
15:18:29 <b_jonas> roll d6, if result odd, pick Yes, otherwise pick No
15:18:51 <FireFly> [x] Yes -- chosen by fair dice roll
15:20:16 <ais523_> but 4 is even
15:20:18 <mroman> there actually was a "Don't know" option too
15:20:30 <mroman> I just checked all three of those boxes
15:20:33 <ais523_> mroman: which compiler?
15:20:37 <mroman> ais523_: well...
15:20:38 <mroman> any
15:20:39 <mroman> probably
15:20:42 <mroman> I don't know
15:20:44 <ais523_> I bet there's at least one for which the answer is yes; also, IIRC the answer is no for gcc
15:20:46 <mroman> It didn't say
15:21:18 <b_jonas> it depends on settings, not just the compiler
15:21:26 <ais523_> oh, all these BF-to-high-level-language-by-textual-subtitution compilers
15:21:31 <ais523_> spend their /entire time/ in code generation
15:21:32 <mroman> gcc with optimization enabled is really slow
15:21:35 <mroman> compared to no optimization
15:21:43 <ais523_> so those are definitely yes
15:21:45 <mroman> and I don't think optimization has that much an influence on the parser
15:22:12 <ais523_> optimization doesn't have that much influence on codegen either, though
15:22:20 <ais523_> it mostly affects how long the optimizer takes to run (fairly obviously)
15:22:26 <mroman> obviously
15:23:14 <mroman> for some esolang compilers reading the file to compile is probably the most time consuming task
15:23:26 <mroman> (and write the output)
15:23:55 <mroman> not sure if reading file counts as parsing and writing file counts as codegen
15:25:36 -!- edwardk has quit (Quit: Computer has gone to sleep.).
15:26:23 -!- ais523 has joined.
15:32:47 <mroman> Obviously I could create an esolang that requires a compiler to do prime factorization
15:33:06 <mroman> hm
15:33:13 <mroman> actually... why not
15:33:26 <b_jonas> mroman: or just play tricks with haskell or C++ or other languages
15:33:28 <mroman> There's a list of primes that encode the opcode
15:34:00 <mroman> and operands are encoded with primes too
15:34:12 <mroman> so an add instruction is something like 9*13*17
15:34:19 <mroman> where 9 is the opcode and 13,17 are the operands
15:34:27 <mroman> oh wait
15:34:29 <mroman> 9 isn't prime
15:34:30 -!- Aetherspawn- has quit (Quit: Connection closed for inactivity).
15:34:48 <mroman> 7*13*17 then
15:35:05 -!- ais523 has quit (Ping timeout: 244 seconds).
15:35:51 <MDude> Nine would just be 3 applied twice?
15:36:36 <mroman> hm
15:36:37 <mroman> or
15:36:45 <mroman> p*2^x*3^y
15:36:56 <mroman> p is the opcode, x the first operand and y the second operand
15:37:05 <mroman> that should be uniquely deconstructable
15:37:09 <mroman> (p is prime)
15:37:46 <mroman> > 13*2^128*3^256
15:37:48 <lambdabot> 6149276275598477388941702188757835746814475554454696977361857718474664018531...
15:39:13 <mroman> people claim that programmes used to program with this in the nineties .
15:40:13 <int-e> > let c n 0 = 1; c n k = c (n-1) (k-1) * n `div` k; triple a b c = c (a+b+c+2) 3 + c (a+b+1) 2 + c a 1 in triple 13 128 256
15:40:15 <lambdabot> Occurs check: cannot construct the infinite type:
15:40:16 <lambdabot> a3 ~ a3 -> a4 -> a2
15:40:16 <lambdabot> Relevant bindings include
15:40:16 <lambdabot> c :: a3 -> a4 -> a2 (bound at <interactive>:1:62)
15:40:16 <lambdabot> b :: a3 (bound at <interactive>:1:60)
15:40:25 <int-e> hah.
15:40:52 <int-e> > let bin n 0 = 1; bin n k = bin (n-1) (k-1) * n `div` k; triple a b c = bi (a+b+c+2) 3 + bin (a+b+1) 2 + bin a 1 in triple 13 128 256
15:40:53 <lambdabot> Not in scope: ‘bi’
15:40:53 <lambdabot> Perhaps you meant one of these:
15:40:53 <lambdabot> ‘b’ (line 1), ‘bin’ (line 1), ‘pi’ (imported from Prelude)
15:41:04 <int-e> > let bin n 0 = 1; bin n k = bin (n-1) (k-1) * n `div` k; triple a b c = bin (a+b+c+2) 3 + bin (a+b+1) 2 + bin a 1 in triple 13 128 256
15:41:06 <lambdabot> 10517423
15:41:30 <mroman> binomial coefficients?
15:41:33 <int-e> yes.
15:41:45 <mroman> what for?
15:42:00 <Bike> psh, they have infinite uses
15:42:02 <int-e> in this case, for encoding triples of natural numbers as natural numbers
15:42:14 <mroman> oh
15:42:15 <mroman> ok
15:44:07 <MDude> I think p would have to not only be prime, but laos larger than 3.
15:45:16 <mroman> or
15:45:24 <mroman> A language where state is a number
15:45:30 <mroman> and you can multiply divide it by two
15:45:33 <mroman> i.e.
15:45:48 <mroman> *p,x multiplies the state by p^x
15:46:01 <mroman> /p,x divides the state by p^x
15:46:21 <mroman> [x loops as long as x divides the state
15:46:23 <mroman> so
15:46:40 <mroman> *2,128 *3,156 [2 /2,1 *3,1] should add 128+156
15:47:07 <mroman> *it by numbers
15:47:54 <mroman> maybe add an indirect operator
15:47:56 <mroman> something like
15:48:10 <mroman> $2 gives you how many times 2 divides the state
15:48:46 <int-e> mroman: are you aware of http://en.wikipedia.org/wiki/FRACTRAN ?
15:49:06 <mroman> no
15:52:14 -!- Bike has quit (Ping timeout: 252 seconds).
15:53:52 -!- Bike has joined.
15:57:33 -!- slereah_ has quit (Quit: Leaving).
16:08:52 -!- shikhin has quit (Ping timeout: 264 seconds).
16:14:16 -!- password2 has joined.
16:45:17 -!- lollo64it has joined.
16:50:53 -!- MoALTz has joined.
16:53:35 -!- edwardk has joined.
16:59:22 -!- erdic has quit (Remote host closed the connection).
17:00:22 -!- erdic has joined.
17:14:52 -!- ais523 has joined.
17:20:27 -!- callforjudgement has joined.
17:20:38 -!- ais523 has quit (Read error: Connection reset by peer).
17:20:43 -!- callforjudgement has changed nick to ais523.
17:24:12 -!- callforjudgement has joined.
17:25:33 -!- ais523 has quit (Ping timeout: 240 seconds).
17:28:57 -!- callforjudgement has quit (Ping timeout: 245 seconds).
17:30:28 -!- shikhin has joined.
17:34:09 -!- Patashu has joined.
17:35:32 -!- Patashu_ has joined.
17:35:33 -!- Patashu has quit (Disconnected by services).
18:05:06 <fizzie> As far as I can tell, an eagle-owl is just an owl with nothing in particular to do with an eagle, despite the name.
18:06:24 <Slereah> Well, it flies???
18:06:50 <fizzie> I don't think that really differentiates it from owls in general, though.
18:07:15 <Slereah> What about
18:07:18 <Slereah> The Superb Owl
18:07:27 <Slereah> It's a very popular owl in America
18:07:33 <Slereah> Millions of people watch it every year
18:08:05 <fizzie> I'm not familiar with that owl.
18:12:17 -!- sebbu2 has joined.
18:12:52 -!- sebbu2 has quit (Changing host).
18:12:52 -!- sebbu2 has joined.
18:14:33 -!- sebbu has quit (Ping timeout: 272 seconds).
18:18:48 <Quintopia> What about the H Owl? It saw the best minds of its generation destroyed by madness, starving hysterical
18:19:04 <Quintopia> Or the Mightyt Owl? Very popular in Pittsburgh
18:19:26 -!- sebbu2 has changed nick to sebbu.
18:20:01 <elliott> owl ban you all if you keep this up
18:21:10 <Quintopia> sounds like someone's a mr. grumpypants. what's wrong? got a headache?
18:21:17 <nooodl> @messages-lowl
18:21:17 <lambdabot> You don't have any messages
18:21:41 <fizzie> Such a hoot.
18:21:49 * Quintopia offers elliott a Tylen Owl
18:22:04 <ais523_> Quintopia: that brand name isn't in use in the UK
18:22:19 <Quintopia> ais523_: neither is Mighty Towel or Super Bowl
18:22:21 <ais523_> I'm aware of it, but am not quite sure what medicine it refers to
18:22:21 <elliott> Quintopia: a nasty cold, actually, but I like banning people no matter how ill I am
18:22:27 <elliott> ais523_: paracetamol
18:22:35 <ais523_> ah right
18:22:44 <ais523_> I'm not even sure if that has a dominant manufacturer in the UK
18:22:45 <elliott> ais523_: which is referred to as acetaminophen generically in the US
18:23:03 <elliott> (I think)
18:23:06 <ais523_> Calpol is the one I can think of offhand, but it's mostly marketed at parents to give to their children
18:23:30 <ais523_> rather than for adults to take themselves
18:23:42 <Quintopia> elliott is good at translating to American. does that mean we've rubbed off on him?
18:24:04 -!- callforjudgement has joined.
18:25:26 <ais523_> being British and living on the Internet for any extended period of time makes you quite good at US/UK translations
18:26:47 -!- tswett has joined.
18:27:00 <tswett> So! What's the best formalism of an analog signal?
18:27:29 <elliott> Quintopia: who has rubbed one off on me is none of your business
18:27:45 <ais523_> tswett: 0/1/X/U/L/H/W/Z/Q
18:28:23 <ais523_> this isn't a particularly /useful/ formalism for analog work, given that it interprets all values that aren't at either voltage rail as W (or if you're unlucky, X)
18:28:44 <ais523_> but it nonetheless formalizes analog signals, and is good
18:29:17 <tswett> Remind me what U, W, and Q are.
18:29:44 <nooodl> remind me what all of those are
18:30:24 <tswett> 0 is low voltage, low impedance. 1 is high voltage, low impedance. X I think is unspecified voltage, unspecified impedance. L is low voltage, medium impedance. H is high voltage, medium impedance. Z is unspecified voltage, high impedance.
18:30:25 <tswett> Right?
18:30:45 <ais523_> tswett: X is the value you get if you connect a 0 to a 1
18:31:08 <ais523_> depending on the circuit design, it either means "somewhere between 0 and 1, low impedance", or "your circuit just caught fire"
18:31:09 <tswett> Ooh.
18:31:34 <ais523_> U is the value the hardware defaults to if you don't give it any instructions at all
18:31:55 <ais523_> W is any medium impedance value other than L or H
18:32:07 <ais523_> and I'm not convinced Q exists, I think I might have made it up by mistake when listing the options
18:32:18 <tswett> What are all these things called, again?
18:32:48 <tswett> Here we go. https://en.wikipedia.org/wiki/IEEE_1164
18:33:34 <ais523_> oh right, there is a -
18:33:49 <ais523_> I should have listed that one, rather than making up an extra value because I remembered there were 9 but not what the 9th one was
18:34:27 <ais523_> "The "Z" value does exist in real-world circuits but only as an output state."
18:34:36 <ais523_> I'm sure Microchip would have a few words to say about that
18:34:52 <ais523_> they were the masters of finding ways to abuse chips for unintended purposes
18:34:57 <ais523_> maybe still are
18:35:06 <tswett> All my input pins are 0.
18:35:32 <tswett> This lets me see what's going on using an ammeter.
18:35:38 <ais523_> well, if you try to read an input pin as an output, you read a Z
18:35:55 <ais523_> but it's going to look like a 0 or a 1 unless you have very specialised input circuitry to connect it to
18:36:20 <tswett> An ADC, perhaps?
18:36:29 <tswett> Small amount of noise, it's a 0 or a 1. Large amount of noise, it's a Z.
18:36:41 <ais523_> haha, clever
18:36:53 <ais523_> my method would be to switch a small-valued resistor in and out
18:36:58 <ais523_> and see how much it changed the voltage by
18:37:10 <ais523_> or really, you could just use a bias to make Z read 0.5 or whatever
18:38:02 <tswett> The best output value is C.
18:38:06 <tswett> Low impedance grounded capacitor.
18:38:44 <ais523_> wait what? how do you use that from the input side?
18:38:50 <ais523_> also, high or low capacitance?
18:39:26 <tswett> High capacitance.
18:39:45 <tswett> It just stays at whatever voltage level it was most recently driven to.
18:40:24 <callforjudgement> so you can attach it to 1, then L
18:40:28 <callforjudgement> and get yourself a timer :-)
18:40:40 <tswett> I wonder if you could test for Z by sending a tiny pulse in and seeing if it gets reflected or not.
18:41:05 <ais523_> gah, bad memories
18:41:26 <ais523_> that's the only module I ever failed in my EE degree (although I still got a first for the degree overall, my other marks were high enough to compensate for the huge penalty a failure gives)
18:42:23 <tswett> Come to think of it, computer audio inputs seem to be pretty good at figuring out the impedance.
18:42:36 <tswett> A cable that's unplugged gives way more noise than a cable that's plugged into something.
18:42:54 <tswett> I mean, it'd be kind of amazing if you could actually take the noise level and calculate the capacitance.
18:47:35 <fizzie> Panadol is the dominant Paracetamol container in Finland, I believe.
18:47:52 -!- glogbackup has quit (Ping timeout: 240 seconds).
18:49:47 -!- callforjudgement has quit (Ping timeout: 245 seconds).
18:56:14 <tswett> So we could say an analog signal is a sum of Gaussian functions that has finite energy in any time and frequency window. Or something.
18:58:22 <tswett> Say that it's a sum of Gaussian functions such that, if you multiply it by a Gaussian and convolute it with a Gaussian, then the result has a finite amount of total energy.
18:59:29 <tswett> 'Cept that you'll also want to allow the product of a Gaussian with a function of the form e^(a i t) for real a. 'Cause taking the Fourier transform of a shifted Gaussian gives you a Gaussian multiplied by one of those.
19:00:19 -!- Bicyclidine has joined.
19:04:52 -!- password2 has quit (Ping timeout: 240 seconds).
19:13:34 <tswett> I wonder if you could define white noise functions like that.
19:20:38 -!- drdanmaku has joined.
19:23:20 -!- edwardk has quit (Quit: Computer has gone to sleep.).
19:23:48 -!- edwardk has joined.
19:30:18 -!- conehead has joined.
19:32:34 -!- Bicyclidine has quit (Quit: Reconnecting).
19:32:40 -!- Bicyclid1ne has joined.
19:32:51 -!- Bicyclid1ne has changed nick to Bicyclidine.
20:11:48 -!- callforjudgement has joined.
20:11:54 -!- callforjudgement has quit (Changing host).
20:11:54 -!- callforjudgement has joined.
20:19:11 -!- conehead has quit (*.net *.split).
20:19:12 -!- glogbackup has quit (*.net *.split).
20:19:12 -!- augur has quit (*.net *.split).
20:19:13 -!- Gracenotes has quit (*.net *.split).
20:19:13 -!- vravn has quit (*.net *.split).
20:19:13 -!- vyv has quit (*.net *.split).
20:19:13 -!- heroux has quit (*.net *.split).
20:19:13 -!- trout has quit (*.net *.split).
20:19:15 -!- mtve has quit (*.net *.split).
20:19:15 -!- clog has quit (*.net *.split).
20:19:15 -!- pikhq has quit (*.net *.split).
20:19:16 -!- _46bit has quit (*.net *.split).
20:19:17 -!- newsham has quit (*.net *.split).
20:19:17 -!- ggherdov has quit (*.net *.split).
20:19:17 -!- Speed` has quit (*.net *.split).
20:19:59 -!- heroux has joined.
20:20:11 -!- conehead has joined.
20:20:12 -!- augur has joined.
20:20:12 -!- vravn has joined.
20:20:12 -!- Gracenotes has joined.
20:20:12 -!- _46bit has joined.
20:20:12 -!- vyv has joined.
20:20:12 -!- mtve has joined.
20:20:12 -!- clog has joined.
20:20:12 -!- pikhq has joined.
20:20:12 -!- Speed` has joined.
20:20:12 -!- ggherdov has joined.
20:20:12 -!- newsham has joined.
20:20:56 -!- variable has joined.
20:21:18 -!- variable has quit (Changing host).
20:21:18 -!- variable has joined.
20:21:18 -!- variable has quit (Changing host).
20:21:18 -!- variable has joined.
20:24:30 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:24:43 -!- edwardk has quit (*.net *.split).
20:24:44 -!- TodPunk has quit (*.net *.split).
20:24:44 -!- brandonsons has quit (*.net *.split).
20:24:44 -!- `^_^v has quit (*.net *.split).
20:24:45 -!- tromp has quit (*.net *.split).
20:24:45 -!- Frooxius has quit (*.net *.split).
20:32:25 -!- mhi^ has joined.
20:33:24 -!- TodPunk has joined.
20:36:20 -!- erdic has quit (Ping timeout: 240 seconds).
20:36:35 -!- edwardk has joined.
20:36:36 -!- `^_^v has joined.
20:36:36 -!- brandonsons has joined.
20:36:36 -!- tromp has joined.
20:36:36 -!- Frooxius has joined.
20:40:31 -!- erdic has joined.
20:49:07 -!- erdic has quit (Ping timeout: 240 seconds).
20:56:20 -!- erdic has joined.
21:05:51 -!- callforjudgement has changed nick to ais523.
21:17:28 -!- myname has quit (Read error: Connection reset by peer).
21:20:27 -!- myname has joined.
21:25:07 -!- Patashu_ has quit (Ping timeout: 240 seconds).
21:27:27 -!- edwardk has quit (Ping timeout: 244 seconds).
21:29:23 -!- MDude has quit (Ping timeout: 252 seconds).
21:37:00 -!- tswett has quit (Quit: tswett).
21:55:13 -!- oerjan has joined.
22:08:22 -!- madbr has joined.
22:10:40 -!- ais523 has quit.
22:12:35 -!- ais523_ has quit (Quit: Page closed).
22:38:05 -!- Sgeo has joined.
22:40:43 <Sgeo> Interesting thing about Go: They seem to want to make using undefined behavior obviously not work
22:40:47 <Sgeo> "Iterations over small maps no longer happen in a consistent order. Go 1 defines that “The iteration order over maps is not specified and is not guaranteed to be the same from one iteration to the next.” To keep code from depending on map iteration order, Go 1.0 started each map iteration at a random index in the map. A new map implementation introduced in Go 1.1 neglected to randomize iteration for maps with eight or fewer entries,
22:40:48 -!- Phantom__Hoover has joined.
22:40:49 <Sgeo> although the iteration order can still vary from system to system. This has allowed people to write Go 1.1 and Go 1.2 programs that depend on small map iteration order and therefore only work reliably on certain systems. Go 1.3 reintroduces random iteration for small maps in order to flush out these bugs."
22:41:27 <_46bit> I honestly sort of like it.
22:41:50 <Bicyclidine> i've seen methods of "discouraging" using UB before, but reliance on prng state is new to me
22:42:04 <_46bit> It sounds like code might need testing N times to rule out use of undefined behaviour though
22:43:12 <Bicyclidine> i like how they talk about using UB being a bug in something where there's obviously only one implementation
22:44:06 <Sgeo> I think there's technically two implementations + future implementations
22:44:14 <qlkzy> there are as many implementations as there are in-use versions of Go, surely
22:44:23 <Sgeo> As in, there's a compatibility 'guarantee' for Go 1.x
22:44:49 <Bicyclidine> Sgeo: i was thinking because they use "Go" to mean the language standard and an implementation interchangeably.
22:45:12 <Bicyclidine> you can make my message "[...] only one implementation that matters" if you like
22:46:01 <qlkzy> presumably, they're trying to avoid the problem e.g. Microsoft have always had with people building software that depends on the particular behaviour of the current version
22:46:08 <qlkzy> creating a backwards-compatability nightmare
22:46:23 <Bicyclidine> yeah. i just think it's funny.
22:46:50 <Bicyclidine> i wonder if they use the same prng state as the user, or have a completely separate one. i think i don't like either option!
22:47:24 <qlkzy> I think separate works better
22:48:29 <Bicyclidine> i'd certainly prefer it.
22:49:05 * _46bit imagines how awful code he could write in Go if it depends upon the current state
22:50:12 <_46bit> A badly-named function that temporarily seeds the PRNG to a known value, followed by iteration-order-critical code, followed by setting the PRNG state back.
22:50:34 <_46bit> It sounds like an esoteric language could emerge out of that style.
22:50:40 <Bicyclidine> name it Go1dot0Compat, ofc
22:50:50 <Bicyclidine> Go1dot1Compat rather
22:50:53 <_46bit> A language with one construct where the behaviour depends upon the current PRNG state.
22:50:58 <_46bit> Wait. That has to already exist.
22:52:41 <Bicyclidine> "Map iteration previously started from a random bucket, but walked each bucket from the beginning. Now, iteration always starts from the first bucket and walks each bucket starting at a random offset. For performance, the random offset is selected at the start of iteration and reused for each bucket."
22:52:46 <Bicyclidine> For Speed
22:52:53 <qlkzy> well, the original implementation was separate: https://code.google.com/p/go/source/detail?r=02c15930f43c
22:53:14 <elliott> here's a fun thing you could do:
22:53:20 <elliott> iterate through a map to get some entropy for your own purposes
22:53:31 <elliott> RNG without anything beyond built-in iteration constructs!
22:53:57 <Bicyclidine> let's see, i think the new one is doing runtime·fastrand1()
22:54:04 <Bicyclidine> center dot? ok.
22:54:19 <qlkzy> elliott: there's a post on one of the forums that says "we want it to be random, but not too random, so people don't use it as a source of entropy"
22:54:26 <_46bit> :D
22:54:31 <elliott> qlkzy: well, that's no obstacle
22:54:35 <elliott> you just have to wring the entropy out slowly
22:54:42 <elliott> where there's a will...
22:54:46 <Bicyclidine> qlkzy: how can you tell it's separate? (i don't know runtime or anything)
22:56:09 <qlkzy> Bicyclidine, I'm not overly familiar with go, but afaict user prngs would be some way up from "runtime.fastrand1()"
22:56:54 <qlkzy> because each user prng is a configurable object with a source, rather than a static C function
22:56:55 <Bicyclidine> i think i will check the sources, now i'm curious. you might be able to make an exploit out of this in some ridiculous way
22:57:19 <oerjan> clearly the go implementers need to take a look at malbolge unshackled.
22:57:37 -!- Phantom__Hoover has quit (Remote host closed the connection).
22:57:45 <oerjan> (anyone else is also welcome, especially if they're willing to program in it)
22:57:53 -!- tswett has joined.
22:57:58 <qlkzy> it is 'low-quality' randomness, so perhaps exploitable if an application depends on the iteration order in some way
22:58:19 <Bicyclidine> fastrand1 looks like an LCG with some global called "m"
22:58:57 <elliott> how feasible is it to create a language where writing a program in it that does what you want is Hard (e.g., on the order of breaking crypto), but you can write a public spec/implementation without jeopardising that?
22:58:58 <Bicyclidine> "extern register M *m;" ok.
22:59:27 <Bicyclidine> the comment says some ARM compilers actually notice the register declaration or something
22:59:36 <elliott> like, "decrypt the program with a private key only the language author knows" works if you expose the interpreter via the internet, but you can't make a public spec out of it
22:59:41 <Bicyclidine> or... they have their own compiler, or something.
22:59:47 <elliott> I guess this could tie into homomorphic encryption type things?
23:00:12 <elliott> Bicyclidine: Go uses its own C compiler I think?
23:00:24 <elliott> since it's built on top of a port of the plan 9 compiler toolchain
23:00:30 <Bicyclidine> figures
23:01:17 <Bicyclidine> yeah, looks like the user exposed generators are separate, and in fact implemented in go
23:01:27 <qlkzy> surely Go takes advantage of the massive optimization work in existing compilers?
23:01:43 <elliott> the Plan 9 compilers are existing.
23:01:46 <Bicyclidine> http://golang.org/src/pkg/runtime/runtime.h#L290 still, lookit all that state
23:02:04 <elliott> they date back to the 90s, I think
23:02:06 <Bicyclidine> (you can see the uint32 fastrand)
23:02:08 <qlkzy> fine, "massive optimization work in popular compilers"
23:02:11 <qlkzy> :p
23:02:21 <elliott> well... Go is a programming language
23:02:28 <elliott> they're already in the job of writing an optimising compiler
23:02:47 <Bicyclidine> and they obviously sort of care about performance if they're telling the compiler what should be a register.
23:02:58 <Bicyclidine> the cause of the conversation aside
23:03:24 <elliott> I mean the C compiler will only affect the speed of the Go compiler.
23:03:32 <elliott> the speed of Go programs will depend on the Go compiler.
23:03:49 <Bicyclidine> well there's also the runtime, right?
23:04:03 <elliott> well, right.
23:04:16 <elliott> anyway the plan 9 c compilers and the go compiler are written by the same-ish people, so.
23:04:19 <oerjan> hm actually if they wanted to avoid both entropy use and dependence on order they should just choose the order randomly at startup, but fixed for each program run. (that's one of the options malbolge unshackled chooses between iirc.)
23:04:43 <oerjan> *approximately one of
23:05:10 <Sgeo> There's another thing I like about the Go HTTP stack, that reminds me of some (not all) of the Haskell web frameworks: Routing layers themselves produce an HTTP application that can be nested in another routing layer, rather than a routing layer having to be at the top
23:12:48 <Bicyclidine> fastrand1 is seeded from cputicks(), but at least on arm linux cputicks() is actually nanotime() + a random number which is... pulled from the elf i think?
23:13:53 <Bicyclidine> "The address of sixteen bytes containing a random value." huh, that's kind of cool (from man getauxvalue)
23:15:12 <Bicyclidine> and you can view the whole aux vector with an environment value on literally any program, so presumably that's in ld.so? nifty, nifty
23:16:47 <elliott> literally any dnyamically linked program, then
23:17:20 <Bicyclidine> i am the sufferer
23:17:54 <elliott> yeah
23:21:16 -!- mihow has quit (Quit: mihow).
23:23:34 -!- nooodl_ has joined.
23:25:44 <Sgeo> I also think I like type switching, but really don't like the thought of that being an idiomatic way of doing things
23:26:00 <Sgeo> I like type switching as a last resort feature ala unsafeCoerce
23:26:22 -!- shikhout has joined.
23:26:52 -!- nooodl has quit (Ping timeout: 264 seconds).
23:27:17 <elliott> note that type switching breaks parametricity.
23:27:34 <elliott> (hence, arguably, abstraction)
23:29:24 -!- shikhin has quit (Ping timeout: 255 seconds).
23:33:14 <Sgeo> Pretty sure I like Rust's error handling more than Go's. As explicit as Go, but there's a (still explicit) shortcut in the common case of returning earl
23:33:15 <Sgeo> y
23:33:32 <elliott> Go using tuples for sum types is horrific
23:34:35 <Sgeo> I don't think multiple return quite counts as tuples. Can't just store the multiple return in some variable. But still bad at simulating sum types in the same way as what you meant, probably
23:35:14 <elliott> yes, because an error must be (err, <garbage>)
23:35:48 <Sgeo> Go seem to assume that 'zero it out' is meaningful most of the time, except when it isn't
23:36:01 -!- mhi^ has quit (Quit: Lost terminal).
23:47:29 -!- tswett has quit (Changing host).
23:47:29 -!- tswett has joined.
23:55:07 -!- Bicyclidine has quit (Ping timeout: 240 seconds).
23:58:54 -!- yorick has quit (Remote host closed the connection).
←2014-06-16 2014-06-17 2014-06-18→ ↑2014 ↑all