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:17 | jfilstrup | ls |
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:26 | flaviu | Hey, remember the Purge? |
01:52:52 | flaviu | It doesn't seem to have worked, there are still binaries in the repo |
02:01:45 | flaviu | It looks like someone needs to get github support to run `git gc --prune=now --aggressive` |
02:16:13 | * | superfun1 joined #nimrod |
02:16:29 | Varriount | flaviu: Wouldn't that entail notifying everyone of a history change? |
02:17:03 | superfun1 | Anybody 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:11 | flaviu | It 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:19 | flaviu | git is like black magic |
02:18:48 | flaviu | Ah, here is one of the commits: https://github.com/Araq/Nimrod/commit/a447c6889e0c8224d0f1ca2bd535f10cd6f05522 |
02:21:56 | flaviu | WTF, the commit isn't even in the graph, and it still hasn't been collected |
02:34:04 | flaviu | Oh, I see the problem now, it was so easy to fix |
02:34:34 | * | bjz_ joined #nimrod |
02:34:54 | flaviu | I'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:33 | Skrylar | flaviu: 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:14 | flaviu | I want to poke him about repo maintenance, not about features |
02:52:28 | Skrylar | well pff. |
02:58:51 | flaviu | Never mind, it looks like fixing it is impossible without literally sshing into github |
03:01:20 | Skrylar | whats going on? |
03:01:33 | Skrylar | oh that |
03:01:41 | Skrylar | the csources thing |
03:02:00 | * | Jesin joined #nimrod |
03:02:13 | flaviu | A bunch of old pull requests are holding on to old blobs, and its causing huge repo size when cloning with --mirror |
03:02:29 | Skrylar | i donno if github normally prunes |
03:02:39 | flaviu | It can't, its still refrenced |
03:02:44 | Skrylar | i was under the impression they were a bit like Google in that they hold on to everything forever |
03:02:52 | flaviu | Each 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:22 | dom96 | hi dwhite85, welcome. |
20:31:24 | Varriount | Meep |
20:39:58 | * | NoobsFlyVFR quit (Read error: Connection reset by peer) |
20:45:18 | dwhite85 | hi dom96, automated bot? |
20:49:45 | dwhite85 | If anybody has some free time I've got a nimrod related question I posted on the forum. I would appreciate any feedback |
20:49:57 | Demos | no, dom96 is a contributor to the nimrod library and compiler |
20:50:23 | Demos | dwhite85, I read your question, and I suspect that the answer will be to fix the bug in your C compiler |
20:50:52 | Demos | and the end goal is pretty much the goal of compilers in general |
20:50:56 | dwhite85 | fair enough, sadly I'm not the owner of said compiler |
20:51:10 | Demos | you can write the loop in nimrod like the loop in c |
20:51:14 | Demos | that may work |
20:51:49 | dwhite85 | yeah, 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:52 | Demos | but 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:12 | dwhite85 | an understandable assumption, but not always the case sadly |
20:52:54 | Demos | true, 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:41 | dwhite85 | agreed, but pinning my hopes on ARM and every other company fixing their stuff is pretty pointless |
20:53:55 | dwhite85 | I even get paid to give them this sort of feedback |
20:54:04 | dwhite85 | still not fixed |
20:54:28 | dwhite85 | perhaps I'll make my own simple project that is capable of something like this |
20:54:37 | Demos | can GCC target the CPUs in question? |
20:54:53 | dwhite85 | yeah, true I could contribute to gcc |
20:54:57 | dwhite85 | probably a reasonable choice |
20:55:14 | dwhite85 | never done that before so never thought of it |
20:55:30 | Demos | well gcc may be able to generate the faster code in the first place |
20:55:53 | dwhite85 | it doesn't currently, but theoretically I could submit a patch |
20:56:20 | Matthias247 | i thought gcc knows about which instructions are slow and which are fast and optimizes according to that |
20:56:48 | Matthias247 | that's at last the reason why you can specify the architecture so much in detail in the compiler flags |
20:56:50 | dwhite85 | sure to the degree that the person who programmed gcc knows about which instructions are slow and writes a good optimization strategy |
20:57:08 | dwhite85 | unfortunately, in the case of ARM, there's a lot left to be desired |
20:57:16 | dwhite85 | well cortex Ms specifically |
20:57:27 | dwhite85 | As do better thanks largely to out-of-order processing on the fly |
20:57:44 | Matthias247 | hmm, that's surprising. Because I wouldn't assume too man people writing ARM code still in assembler :) |
20:58:02 | dwhite85 | yeah I might be one of a small group |
20:58:21 | dwhite85 | though I dont start out with assembly to be fair |
20:58:33 | Demos | arm has a pretty nice ISA though :D, if one wants to learn assembly ARM is a much better choice than x86_64 |
20:58:40 | dwhite85 | agreed |
20:58:55 | Matthias247 | I had assumed integer MAC to be single-cycle :) |
20:59:14 | dwhite85 | in 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:24 | dwhite85 | oh i should have specified float MAC |
20:59:31 | dwhite85 | integer MAC is indeed single cycle |
20:59:52 | Matthias247 | Demos: but there's also much fragmentation now. ARM, Thumb, Thumb2, ... |
21:00:23 | dwhite85 | toss in the new 64bit stuff |
21:00:43 | Demos | I 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:09 | Matthias247 | ok. probably most people don't care much about floating point on CortexM, because that's not what they are made for ;) |
21:01:20 | dwhite85 | yeah that part is pretty spectacular, this case is a rarity |
21:01:24 | * | linkmonitor joined #nimrod |
21:01:34 | dwhite85 | well the cortex M4 comes with a hardware FPU |
21:01:42 | dwhite85 | or it can anyways |
21:01:57 | Matthias247 | ah ok. And this doesn't like MAC? |
21:02:31 | dwhite85 | so 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:50 | dwhite85 | what happens with the float MAC is it is just a multiple instruction followed by an add instruction |
21:02:58 | dwhite85 | so it takes 3 or 4 cycles based on if the result is used next |
21:03:13 | dwhite85 | all you're doing by using the float MAC is guaranting one of the stalls you could have eliminated |
21:03:19 | Matthias247 | without MAC you have more interaction overhead between cpu and fpu, so it sounds slower |
21:04:16 | dwhite85 | there's no additional overhead by separating aside from 1 extra line of code |
21:04:24 | dwhite85 | which could plausibly be a concern in some cases |
21:06:15 | dwhite85 | anyways, 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:14 | dom96 | dwhite85: hehe, no. I'm not a bot. Me and Araq like to welcome new people. |
21:21:42 | dwhite85 | :) |
21:24:53 | OrionPK | sounds like something a bot would say |
21:25:03 | * | q66 joined #nimrod |
21:25:10 | dom96 | lol |
21:25:10 | adoniscik | welcome to #nimrod, human |
21:27:53 | * | Kazimuth joined #nimrod |
21:30:38 | shodan45 | hello #nimrod |
21:31:11 | * | Jehan_ joined #nimrod |
21:31:20 | shodan45 | please say something intelligent, I was just in #jquery.... ;_; |
21:32:26 | dwhite85 | the world is getting hotter on average |
21:34:51 | Jehan_ | 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:46 | dwhite85 | danke 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:36 | dwhite85 | normally unrolling logic is pretty simple copy and paste the entire loop code in order |
21:39:46 | linkmonitor | Interesting 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:54 | Jehan_ | 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:02 | dwhite85 | yeah 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:09 | dwhite85 | probably gonna investigate a bit |
21:48:03 | dwhite85 | It 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:40 | dwhite85 | currently I do these sort of optimizations on a per file basis, but if it were automated it would obviously save time |
21:53:57 | dom96 | dwhite85: 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:57 | dwhite85 | hmm 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:35 | adoniscik | is there a way to apply pragmas to multiple procs? |
22:27:57 | adoniscik | sort of like with {.pragma.}: |
22:29:11 | dom96 | {.push: pragma.} |
22:29:40 | dom96 | or maybe it's {.push pragma.} |
22:29:53 | adoniscik | nice, I get the idea. Let me try it with some imported C procs |
22:30:59 | adoniscik | {.push header: "<foo.h>", nodecl.} ? |
22:31:30 | dom96 | Try it, dunno if it will work. |
23:04:05 | adoniscik | what 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:00 | dom96 | adoniscik: looks like it: http://build.nimrod-lang.org/docs/system.html#csize |
23:15:00 | dom96 | You may wanna use 'csize' nonetheless though |
23:15:30 | adoniscik | good 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 |