<< 25-07-2014 >>

00:02:52*boydgreenfield joined #nimrod
00:15:21*Fr4n quit (Ping timeout: 272 seconds)
00:15:25*mwbrown quit (Ping timeout: 255 seconds)
00:24:02*Jehan_ quit (Quit: Leaving)
00:29:03*Fr4n joined #nimrod
00:33:52*brson quit (Ping timeout: 240 seconds)
00:34:18*jfilstrup joined #nimrod
00:35:17jfilstrupls
00:35:24*jfilstrup quit (Client Quit)
00:36:00*superfunc joined #nimrod
00:36:26*Fr4n quit (Ping timeout: 260 seconds)
00:36:40*xenagi joined #nimrod
00:53:17*Fr4n joined #nimrod
01:10:55*Francisco joined #nimrod
01:13:21*Fr4n quit (Ping timeout: 255 seconds)
01:18:44*mwbrown joined #nimrod
01:26:29*boydgreenfield quit (Quit: boydgreenfield)
01:28:12*Demos_ joined #nimrod
01:30:05*q66 quit (Quit: Leaving)
01:32:03*Demos quit (Ping timeout: 240 seconds)
01:34:58*saml_ joined #nimrod
01:52:26flaviuHey, remember the Purge?
01:52:52flaviuIt doesn't seem to have worked, there are still binaries in the repo
02:01:45flaviuIt looks like someone needs to get github support to run `git gc --prune=now --aggressive`
02:16:13*superfun1 joined #nimrod
02:16:29Varriountflaviu: Wouldn't that entail notifying everyone of a history change?
02:17:03superfun1Anybody have an idea on why nimrod+sdl is crashing on my osx system: http://pastebin.com/N7JBj63J
02:17:09*johnsoft quit (Ping timeout: 256 seconds)
02:17:11flaviuIt wouldn't history wouldn't change, it would just collect the garbage like in a programming language. But it turns out GC doesn't work...
02:17:19flaviugit is like black magic
02:18:48flaviuAh, here is one of the commits: https://github.com/Araq/Nimrod/commit/a447c6889e0c8224d0f1ca2bd535f10cd6f05522
02:21:56flaviuWTF, the commit isn't even in the graph, and it still hasn't been collected
02:34:04flaviuOh, I see the problem now, it was so easy to fix
02:34:34*bjz_ joined #nimrod
02:34:54flaviuI'll talk to Araq about it tomorrow, we'll fix it then
02:36:33*bjz_ quit (Client Quit)
02:41:13*darkf quit (Read error: Connection reset by peer)
02:42:14*darkf joined #nimrod
02:51:33Skrylarflaviu: you should poke him about my PR too :<
02:51:45*Skrylar issued one fixing it so unsigned 64-bit ints are supported in typeinfo
02:52:14flaviuI want to poke him about repo maintenance, not about features
02:52:28Skrylarwell pff.
02:58:51flaviuNever mind, it looks like fixing it is impossible without literally sshing into github
03:01:20Skrylarwhats going on?
03:01:33Skrylaroh that
03:01:41Skrylarthe csources thing
03:02:00*Jesin joined #nimrod
03:02:13flaviuA bunch of old pull requests are holding on to old blobs, and its causing huge repo size when cloning with --mirror
03:02:29Skrylari donno if github normally prunes
03:02:39flaviuIt can't, its still refrenced
03:02:44Skrylari was under the impression they were a bit like Google in that they hold on to everything forever
03:02:52flaviuEach pull request takes a snapshot of the tree at that point in time
03:06:52*goobles quit (Ping timeout: 246 seconds)
03:48:57*ARCADIVS joined #nimrod
04:07:50*Francisco quit (Ping timeout: 260 seconds)
04:10:48*boydgreenfield joined #nimrod
04:19:45*xenagi quit (Read error: Connection reset by peer)
04:25:37*kshlm joined #nimrod
04:25:38*Fr4n joined #nimrod
04:38:35*nande quit (Remote host closed the connection)
04:47:32*saml_ quit (Quit: Leaving)
04:50:35*boydgreenfield quit (Read error: Connection reset by peer)
04:51:22*boydgreenfield joined #nimrod
05:00:06*Fx00F quit (Quit: Lost terminal)
05:09:36*mwbrown quit (Ping timeout: 250 seconds)
05:10:24*johnsoft joined #nimrod
05:17:27*flaviu quit (Ping timeout: 272 seconds)
05:18:57*Demos_ quit (Read error: Connection reset by peer)
05:26:10*superfunc quit (Ping timeout: 250 seconds)
05:26:36*superfun1 quit (Ping timeout: 250 seconds)
06:31:10*btiffin quit (Ping timeout: 250 seconds)
06:32:40*boydgreenfield quit (Quit: boydgreenfield)
06:53:34*btiffin joined #nimrod
07:01:00*boydgreenfield joined #nimrod
07:04:53*boydgreenfield_ joined #nimrod
07:05:21*boydgreenfield quit (Ping timeout: 240 seconds)
07:05:21*boydgreenfield_ is now known as boydgreenfield
07:22:58*superfunc joined #nimrod
07:22:58*superfun1 joined #nimrod
07:24:52*kunev joined #nimrod
07:27:03*superfun1 quit (Ping timeout: 240 seconds)
07:27:30*superfunc quit (Ping timeout: 250 seconds)
07:27:56*boydgreenfield_ joined #nimrod
07:28:46*boydgreenfield quit (Ping timeout: 264 seconds)
07:28:47*boydgreenfield_ is now known as boydgreenfield
07:37:19*Fr4n quit (Ping timeout: 256 seconds)
07:47:18*Trustable joined #nimrod
08:22:53*boydgreenfield quit (Quit: boydgreenfield)
08:28:51*SillyPanda quit (Ping timeout: 240 seconds)
08:43:59*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
09:58:59*gkoller joined #nimrod
10:32:33*io2 joined #nimrod
10:58:44*gkoller quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
11:24:01*superfun1 joined #nimrod
11:24:01*superfunc joined #nimrod
11:28:22*superfun1 quit (Ping timeout: 240 seconds)
11:28:22*superfunc quit (Ping timeout: 240 seconds)
11:35:16*kshlm quit (Ping timeout: 250 seconds)
11:39:27*eigenlicht quit (Ping timeout: 245 seconds)
11:40:35*gkoller joined #nimrod
11:40:53*eigenlicht joined #nimrod
11:52:27*Fr4n joined #nimrod
11:55:47*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
12:03:50*saml_ joined #nimrod
12:06:07*mwbrown joined #nimrod
12:06:54*gkoller quit (Quit: Textual IRC Client: www.textualapp.com)
12:07:19*gkoller joined #nimrod
12:07:46*OrionPK quit (Ping timeout: 250 seconds)
12:10:43*goobles joined #nimrod
12:13:57*gkoller quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
12:14:16*flaviu joined #nimrod
12:19:17*OrionPK joined #nimrod
12:19:32*OrionPK quit (Remote host closed the connection)
12:30:27*ARCADIVS quit (Quit: WeeChat 0.4.3)
12:33:12*untitaker quit (Ping timeout: 245 seconds)
12:39:47*untitaker joined #nimrod
12:41:41*OrionPK joined #nimrod
12:41:41*OrionPK quit (Remote host closed the connection)
12:41:56*OrionPK joined #nimrod
12:42:22*OrionPK quit (Remote host closed the connection)
13:03:52*Fr4n quit (Ping timeout: 240 seconds)
13:03:53*saml_ quit (Quit: Leaving)
13:10:27*darkf quit (Quit: Leaving)
13:15:22*mwbrown quit (Ping timeout: 240 seconds)
13:17:09*Fr4n joined #nimrod
13:18:13*io2 joined #nimrod
13:25:00*Francisco joined #nimrod
13:27:22*Fr4n quit (Ping timeout: 240 seconds)
13:30:05*fran__ joined #nimrod
13:30:10*eigenlicht quit (Ping timeout: 260 seconds)
13:32:35*eigenlicht joined #nimrod
13:32:43*Francisco quit (Ping timeout: 272 seconds)
13:35:52*OrionPK joined #nimrod
13:45:48*Jesin quit (Ping timeout: 250 seconds)
14:54:29*kunev quit (Quit: leaving)
15:17:37*fran__ quit (Quit: Leaving)
15:17:52*Fr4n joined #nimrod
15:25:39*superfunc joined #nimrod
15:25:40*superfun1 joined #nimrod
15:27:20*Matthias247 joined #nimrod
15:30:20*superfun1 quit (Ping timeout: 260 seconds)
15:30:20*superfunc quit (Ping timeout: 260 seconds)
15:31:37*BitPuffin quit (Ping timeout: 256 seconds)
16:00:28*Demos joined #nimrod
16:55:01*BitPuffin joined #nimrod
16:59:44*enurlyx joined #nimrod
17:00:58*Matthias247 quit (Read error: Connection reset by peer)
17:08:39*SillyPanda joined #nimrod
17:37:02*brson joined #nimrod
17:41:10*boydgreenfield joined #nimrod
17:53:20*boydgreenfield quit (Quit: boydgreenfield)
18:00:39*boydgreenfield joined #nimrod
18:01:13*eigenlicht quit (Ping timeout: 256 seconds)
18:03:49*eigenlicht joined #nimrod
18:05:03*NoobsFlyVFR joined #nimrod
18:06:45*mwbrown joined #nimrod
18:15:16*Ven joined #nimrod
18:27:24*boydgreenfield quit (Quit: boydgreenfield)
18:32:03*boydgreenfield joined #nimrod
18:35:36*BitPuffin quit (Ping timeout: 260 seconds)
18:36:11*boydgreenfield quit (Client Quit)
18:44:55*BitPuffin joined #nimrod
18:46:29*BitPuffin quit (Client Quit)
18:48:53*vendethiel- joined #nimrod
18:51:03*Ven quit (Ping timeout: 240 seconds)
18:51:14*vendethiel quit (Ping timeout: 260 seconds)
18:57:05*silven_ is now known as silven
19:21:11*vendethiel- is now known as vendethiel
19:25:11*Matthias247 joined #nimrod
19:25:44*kunev joined #nimrod
19:27:15*superfun1 joined #nimrod
19:27:15*superfunc joined #nimrod
19:31:11*eigenlicht quit (Ping timeout: 272 seconds)
19:31:36*superfun1 quit (Ping timeout: 250 seconds)
19:31:36*superfunc quit (Ping timeout: 250 seconds)
19:36:38*Fx00F joined #nimrod
19:36:42*eigenlicht joined #nimrod
19:45:03*Jesin joined #nimrod
19:57:47*kunev quit (Quit: leaving)
20:20:27*dwhite85 joined #nimrod
20:29:22dom96hi dwhite85, welcome.
20:31:24VarriountMeep
20:39:58*NoobsFlyVFR quit (Read error: Connection reset by peer)
20:45:18dwhite85hi dom96, automated bot?
20:49:45dwhite85If anybody has some free time I've got a nimrod related question I posted on the forum. I would appreciate any feedback
20:49:57Demosno, dom96 is a contributor to the nimrod library and compiler
20:50:23Demosdwhite85, I read your question, and I suspect that the answer will be to fix the bug in your C compiler
20:50:52Demosand the end goal is pretty much the goal of compilers in general
20:50:56dwhite85fair enough, sadly I'm not the owner of said compiler
20:51:10Demosyou can write the loop in nimrod like the loop in c
20:51:14Demosthat may work
20:51:49dwhite85yeah, the goal would be to write simplistic loop code in nimrod and be able to generate code for a cortex M in one build, then build for cortex A8 with the same simple code
20:51:52Demosbut nimrod is going to assume that the C compiler knows what to do with for(int i = 0; i < len; ++i) { p[i] = a * p[i] + b; }
20:52:12dwhite85an understandable assumption, but not always the case sadly
20:52:54Demostrue, but nimrod really can not handle that. Someplace down the line there is going to be an if CortexM: code1 else: code2, ideally it would be in the compilers
20:53:41dwhite85agreed, but pinning my hopes on ARM and every other company fixing their stuff is pretty pointless
20:53:55dwhite85I even get paid to give them this sort of feedback
20:54:04dwhite85still not fixed
20:54:28dwhite85perhaps I'll make my own simple project that is capable of something like this
20:54:37Demoscan GCC target the CPUs in question?
20:54:53dwhite85yeah, true I could contribute to gcc
20:54:57dwhite85probably a reasonable choice
20:55:14dwhite85never done that before so never thought of it
20:55:30Demoswell gcc may be able to generate the faster code in the first place
20:55:53dwhite85it doesn't currently, but theoretically I could submit a patch
20:56:20Matthias247i thought gcc knows about which instructions are slow and which are fast and optimizes according to that
20:56:48Matthias247that's at last the reason why you can specify the architecture so much in detail in the compiler flags
20:56:50dwhite85sure to the degree that the person who programmed gcc knows about which instructions are slow and writes a good optimization strategy
20:57:08dwhite85unfortunately, in the case of ARM, there's a lot left to be desired
20:57:16dwhite85well cortex Ms specifically
20:57:27dwhite85As do better thanks largely to out-of-order processing on the fly
20:57:44Matthias247hmm, that's surprising. Because I wouldn't assume too man people writing ARM code still in assembler :)
20:58:02dwhite85yeah I might be one of a small group
20:58:21dwhite85though I dont start out with assembly to be fair
20:58:33Demosarm has a pretty nice ISA though :D, if one wants to learn assembly ARM is a much better choice than x86_64
20:58:40dwhite85agreed
20:58:55Matthias247I had assumed integer MAC to be single-cycle :)
20:59:14dwhite85in the silly example I put on forums, if we unroll naively vs unroll how I did were talking about the difference of 6.5 cycles per sample or 9.5 cycles per sample
20:59:24dwhite85oh i should have specified float MAC
20:59:31dwhite85integer MAC is indeed single cycle
20:59:52Matthias247Demos: but there's also much fragmentation now. ARM, Thumb, Thumb2, ...
21:00:23dwhite85toss in the new 64bit stuff
21:00:43DemosI think the general "common knowlege" is that multiply-add instructions are just really great and you should use them all the time. I guess that fails here
21:01:09Matthias247ok. probably most people don't care much about floating point on CortexM, because that's not what they are made for ;)
21:01:20dwhite85yeah that part is pretty spectacular, this case is a rarity
21:01:24*linkmonitor joined #nimrod
21:01:34dwhite85well the cortex M4 comes with a hardware FPU
21:01:42dwhite85or it can anyways
21:01:57Matthias247ah ok. And this doesn't like MAC?
21:02:31dwhite85so pretty much all FPU instructions on the M4 take 1 or 2 cycles (2 if you need the result in the next instruction)
21:02:50dwhite85what happens with the float MAC is it is just a multiple instruction followed by an add instruction
21:02:58dwhite85so it takes 3 or 4 cycles based on if the result is used next
21:03:13dwhite85all you're doing by using the float MAC is guaranting one of the stalls you could have eliminated
21:03:19Matthias247without MAC you have more interaction overhead between cpu and fpu, so it sounds slower
21:04:16dwhite85there's no additional overhead by separating aside from 1 extra line of code
21:04:24dwhite85which could plausibly be a concern in some cases
21:06:15dwhite85anyways, thanks for the feedback
21:08:47*shodan45 joined #nimrod
21:14:48*BlameStross left #nimrod (#nimrod)
21:16:00*adoniscik joined #nimrod
21:18:14dom96dwhite85: hehe, no. I'm not a bot. Me and Araq like to welcome new people.
21:21:42dwhite85:)
21:24:53OrionPKsounds like something a bot would say
21:25:03*q66 joined #nimrod
21:25:10dom96lol
21:25:10adoniscikwelcome to #nimrod, human
21:27:53*Kazimuth joined #nimrod
21:30:38shodan45hello #nimrod
21:31:11*Jehan_ joined #nimrod
21:31:20shodan45please say something intelligent, I was just in #jquery.... ;_;
21:32:26dwhite85the world is getting hotter on average
21:34:51Jehan_dwhite85: I posted a response to your question on the forum, not sure if it helps.
21:35:38*saml quit (Quit: Leaving)
21:37:23*brson quit (Ping timeout: 240 seconds)
21:38:46dwhite85danke for the suggestion, that's part of the problem, separating multiply and add, but the unrolling would have to handle some special logic to group the loads/stores
21:39:36dwhite85normally unrolling logic is pretty simple copy and paste the entire loop code in order
21:39:46linkmonitorInteresting example. I'm just starting to read about the term rewriting macros and I'm impressed.
21:40:50*Kazimuth quit (Read error: Connection reset by peer)
21:40:58*Kazimuth joined #nimrod
21:42:54Jehan_dwhite85: While that's in principle also possible with tree pattern matching (that's how some optimization/code generation techniques work, after all), it'd be pretty hairy. And it sounds like it's really something that needs to be handled by the C compiler backend.
21:47:02dwhite85yeah ideally that would be the case. I just got somewhat excited at the prospects of using nimrod to do this all for me
21:47:09dwhite85probably gonna investigate a bit
21:48:03dwhite85It would be rather neat if I could write very simple generic code and write these sort of rules to output good hardware specific code by switching from #define ARM_CORTEX_M4 to ARM_CORTEX_A8 or w/e
21:48:40dwhite85currently I do these sort of optimizations on a per file basis, but if it were automated it would obviously save time
21:53:57dom96dwhite85: It certainly is getting hotter. I miss the good old days when it would constantly rain in the UK.
21:54:23*linkmonitor quit (Quit: Page closed)
21:55:55*brson joined #nimrod
21:58:57dwhite85hmm without the rain, how can you keep up that british stiff upper lip
22:16:18*q66_ joined #nimrod
22:17:01*dwhite85 quit (Quit: Page closed)
22:18:26*q66 quit (Ping timeout: 260 seconds)
22:20:35*Trustable quit (Quit: Leaving)
22:26:35*Ven joined #nimrod
22:27:22*Matthias247 quit (Read error: Connection reset by peer)
22:27:35adoniscikis there a way to apply pragmas to multiple procs?
22:27:57adonisciksort of like with {.pragma.}:
22:29:11dom96{.push: pragma.}
22:29:40dom96or maybe it's {.push pragma.}
22:29:53adonisciknice, I get the idea. Let me try it with some imported C procs
22:30:59adoniscik{.push header: "<foo.h>", nodecl.} ?
22:31:30dom96Try it, dunno if it will work.
23:04:05adoniscikwhat should do with size_ts; treat them as ints?
23:10:50*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
23:15:00dom96adoniscik: looks like it: http://build.nimrod-lang.org/docs/system.html#csize
23:15:00dom96You may wanna use 'csize' nonetheless though
23:15:30adoniscikgood catch, dom96
23:16:20*mwbrown quit (Ping timeout: 264 seconds)
23:16:40*Fx00F quit (Ping timeout: 245 seconds)
23:18:25*Fx00F joined #nimrod
23:22:05*NimBot_ joined #nimrod
23:23:20*NimBot_ joined #nimrod
23:24:35*NimBot_ joined #nimrod
23:25:50*NimBot_ joined #nimrod
23:27:05*NimBot_ joined #nimrod
23:28:20*NimBot_ joined #nimrod
23:29:35*NimBot_ joined #nimrod
23:30:35*NimBot joined #nimrod
23:31:35*NimBot joined #nimrod
23:32:35*NimBot joined #nimrod
23:33:35*NimBot joined #nimrod
23:34:35*NimBot joined #nimrod
23:35:35*NimBot joined #nimrod
23:36:35*NimBot joined #nimrod
23:37:35*NimBot joined #nimrod
23:38:35*NimBot joined #nimrod
23:39:35*NimBot joined #nimrod
23:40:35*NimBot joined #nimrod
23:41:35*NimBot joined #nimrod
23:42:35*NimBot joined #nimrod
23:43:35*NimBot joined #nimrod
23:44:35*NimBot joined #nimrod
23:45:35*NimBot joined #nimrod
23:46:35*NimBot joined #nimrod
23:47:35*NimBot joined #nimrod
23:48:35*NimBot joined #nimrod
23:49:35*NimBot joined #nimrod
23:50:35*NimBot joined #nimrod
23:51:35*NimBot joined #nimrod
23:52:35*NimBot joined #nimrod
23:53:35*NimBot joined #nimrod
23:54:35*NimBot joined #nimrod
23:55:35*NimBot joined #nimrod
23:56:36*NimBot joined #nimrod
23:57:36*NimBot joined #nimrod
23:58:36*NimBot joined #nimrod
23:59:36*NimBot joined #nimrod