00:11:45 | OrionPK | anyone know if there's a performance difference between using tuples vs types |
00:11:54 | OrionPK | like if I had an (x,y,z) vector type |
00:20:26 | Araq | 'object' and 'tuple' have the same performance |
00:24:06 | OrionPK | k |
00:27:10 | OrionPK | what are all the crazy compiler switches for producing an optimal build? :P |
00:29:56 | dom96 | -d:release |
00:30:01 | dom96 | Should be enough |
00:31:09 | OrionPK | --opt:speed ? |
00:32:12 | dom96 | release implicitly sets opt to 'speed' |
00:34:30 | OrionPK | mmk |
00:37:00 | dom96 | OrionPK: Are you writing that raytracer thingy? |
00:37:08 | OrionPK | yeah, it's done just slow |
00:38:03 | OrionPK | dom96 I'll put it up for you guys to poke at, it's pretty much a straight port so it's not necessarily very nimroddy |
00:38:34 | dom96 | cool |
00:39:07 | OrionPK | https://gist.github.com/onionhammer/6847795 |
00:41:14 | OrionPK | afk |
00:44:29 | * | DAddYE joined #nimrod |
00:46:26 | Araq | OrionPK: yet another rac tracer? http://forum.nimrod-code.org/t/167 |
00:46:50 | OrionPK | yeah |
00:47:03 | OrionPK | it's a common benchmark |
00:49:12 | Araq | your 'bytes' array is shared and it seems you don't keep "false sharing" of cache lines into account |
00:49:45 | Araq | which can cost you an incredible amount of performance |
00:49:53 | Araq | factor 3 or so |
00:50:47 | * | DAddYE quit (Ping timeout: 240 seconds) |
00:51:44 | Araq | good night |
01:00:48 | * | MFlamer_ joined #nimrod |
01:47:39 | * | DAddYE joined #nimrod |
01:52:05 | * | DAddYE quit (Ping timeout: 245 seconds) |
01:59:31 | * | q66 quit (Quit: Leaving) |
02:06:44 | * | Demos joined #nimrod |
02:07:32 | OrionPK | Araq, if there's anything i can do that wouldnt change the algorithm.. great, otherwise i think it'd defeat the purpose of the benchmark |
02:48:56 | * | DAddYE joined #nimrod |
02:55:30 | * | DAddYE quit (Ping timeout: 240 seconds) |
03:12:21 | OrionPK | aporia desparately needs some indent guidage |
03:13:16 | OrionPK | also scroll past end and code folding |
03:23:25 | * | reactormonk quit (Quit: WeeChat 0.4.1) |
03:28:14 | * | DAddYE joined #nimrod |
03:43:06 | * | OrionPK quit (Read error: Connection reset by peer) |
03:48:40 | * | Associat0r quit (Quit: Associat0r) |
04:07:19 | * | Associat0r joined #nimrod |
04:07:19 | * | Associat0r quit (Changing host) |
04:07:19 | * | Associat0r joined #nimrod |
05:10:35 | * | DAddYE quit (Remote host closed the connection) |
05:11:49 | * | DAddYE joined #nimrod |
05:17:14 | * | DAddYE quit (Remote host closed the connection) |
05:17:45 | * | DAddYE joined #nimrod |
05:22:05 | * | DAddYE quit (Ping timeout: 245 seconds) |
05:25:46 | * | dyu joined #nimrod |
05:26:50 | * | DAddYE joined #nimrod |
05:30:21 | * | DAddYE quit (Remote host closed the connection) |
05:33:33 | * | DAddYE_ joined #nimrod |
05:43:14 | * | Associat0r quit (Quit: Associat0r) |
06:08:31 | * | MFlamer_ quit (Ping timeout: 250 seconds) |
06:20:00 | * | dyu quit (Quit: Leaving) |
06:38:28 | * | brson joined #nimrod |
06:59:48 | * | brson quit (Ping timeout: 240 seconds) |
07:14:50 | * | Endy joined #nimrod |
07:21:43 | * | Demos quit (Quit: Leaving) |
07:25:03 | * | DAddYE_ quit (Remote host closed the connection) |
08:05:31 | * | shodan45 quit (Quit: Konversation terminated!) |
08:14:12 | * | io2 joined #nimrod |
09:26:07 | * | dyu joined #nimrod |
09:32:05 | Araq | dyu: I thought about your stack overflow detection problem |
09:33:14 | Araq | and you're right that would work for your case, however you're trying to sandbox nimrod code which looks like a bad idea unless you go with the JS target |
09:55:47 | dyu | Araq: by sandbox you mean embedding nimrod right? Anything in particular that makes it a bad idea? |
09:56:55 | dyu | even with -d:useMalloc --gc:none |
09:59:30 | Araq | what? |
09:59:46 | Araq | how does --gc:none improve things? o.O |
09:59:55 | Araq | so you rather have leaks instead? |
10:00:19 | Araq | and no, I mean sandboxing because that's how I understood you |
10:00:43 | Araq | embedding is fine anyway but then what's the deal with catching stack overflows? |
10:03:26 | dyu | misunderstanding on the sandbox part ... what I mean was embedding |
10:03:32 | dyu | meant* |
10:03:33 | * | [1]Endy joined #nimrod |
10:06:20 | Araq | well please elaborate how this embedding is supposed to look like |
10:06:24 | dyu | Araq: if I could catch them then I'd be able to log the buggy procedure at runtime |
10:07:13 | * | Endy quit (Ping timeout: 256 seconds) |
10:07:13 | * | [1]Endy is now known as Endy |
10:08:00 | dyu | this is basically a just-in-case setting ... unit tests would avoid these runtime bugs |
10:19:02 | Araq | ok got it |
10:25:20 | * | q66 joined #nimrod |
10:40:53 | * | brson joined #nimrod |
11:11:35 | * | brson quit (Read error: Operation timed out) |
11:13:21 | * | brson joined #nimrod |
11:13:29 | * | Associat0r joined #nimrod |
11:13:29 | * | Associat0r quit (Changing host) |
11:13:29 | * | Associat0r joined #nimrod |
11:14:32 | * | zhtx joined #nimrod |
11:14:36 | * | zhtx left #nimrod (#nimrod) |
11:20:37 | dom96 | 'morning |
11:20:55 | * | brson quit (Ping timeout: 260 seconds) |
11:33:41 | dom96 | So I was looking through repos with .nim files on github and found this: https://github.com/bamtor/nimm |
11:36:01 | Araq | interesting |
11:44:43 | Araq | dom96: do you mind if I change "src" to "nimcache" for niminst? |
11:45:17 | Araq | it's technically no cache but I guess people are used to the generate dir "nimcache" now |
11:46:33 | dom96 | huh? what do you mean? |
11:47:32 | Araq | I dislike it generates a "src" directory and puts the C code in there |
11:48:24 | dom96 | hrm, I guess it's fine. |
11:48:40 | dom96 | Just make sure to edit the .sh and .bat files |
12:54:53 | * | dyu quit (Disconnected by services) |
12:55:25 | * | dyu_ joined #nimrod |
13:01:24 | * | brson joined #nimrod |
14:09:45 | * | brson quit (Ping timeout: 252 seconds) |
14:42:06 | NimBot | Araq/Nimrod master c3abba3 Araq [+0 ±6 -0]: niminst: slashify was a stupid idea |
15:01:27 | Araq | dom96: pretty impressive work, babel works really nicely now on windows |
15:02:08 | dom96 | great, thanks :) |
15:07:19 | * | OrionPK joined #nimrod |
15:13:52 | dyu_ | quick question, what is the compiler option that overrides the output name (e.g nimrod c -o override_hello hello.nim) |
15:14:30 | dyu_ | can't seem to find it in the docs |
15:14:47 | Araq | --out:override_hello |
15:14:53 | dyu_ | thanks |
15:15:46 | * | wlhlm joined #nimrod |
15:17:44 | dyu_ | Araq: doesn't work ... the compiler doesn't generate an executable (and it doesn't complain) |
15:18:18 | Araq | look in the right directory then |
15:19:23 | Araq | what the ...? Hally Berry is 47? o.O |
15:24:39 | Trixar_za | She's how old? Oo |
15:27:46 | OrionPK | sandra bullock is 49 |
15:27:51 | OrionPK | and she looked damned fine in gravity |
15:28:34 | Araq | so ... how is gravity, OrionPK |
15:28:41 | OrionPK | phenomenal |
15:28:45 | OrionPK | would highly recommend |
15:28:46 | Araq | the trailer looked interesting |
15:29:11 | Araq | but then I thought "well maybe she is just turning in space for 90 minutes" |
15:29:17 | OrionPK | :D |
15:29:20 | OrionPK | nope |
15:29:28 | Araq | alright will watch it then |
15:29:31 | Araq | no spoilers |
15:29:38 | OrionPK | no spolers |
15:30:29 | OrionPK | araq did you have any thoughts on optimizing that ray tracer that didnt involve completely re-architecting it and changing the algorithm? :) |
15:30:55 | Araq | I told you |
15:31:07 | Araq | you need to consider aligned accesses to the array |
15:31:14 | Araq | no need to re-architect |
15:31:33 | Araq | a cache line is 32 bytes |
15:31:42 | OrionPK | so what, changing the size of the types? |
15:31:56 | Araq | so you have to ensure the accesses between threads do not cross a cache line |
15:32:26 | OrionPK | gotcha.. so each chunk of the array should be multiple of 32 |
15:33:04 | OrionPK | I dont think the C++ version does that though, at least not the version im comparing against |
15:33:09 | Araq | er screw this |
15:33:12 | Araq | it's 64 bytes |
15:33:42 | Araq | well I don't know what the c++ version does |
15:34:02 | Araq | in principle we should be as fast as c++ |
15:34:07 | OrionPK | https://github.com/kid0m4n/rays/blob/master/cpprays/main.cpp |
15:34:16 | Araq | in practice we're not there for reasons I don't know |
15:34:28 | OrionPK | it's been updated since I grabbed it |
15:34:36 | Araq | need to study the produced assembler |
15:34:49 | dyu_ | Araq: figured it out ... there seems to be a bug. See http://pastebin.com/hWZduuhr |
15:34:54 | OrionPK | yeah |
15:35:00 | dyu_ | or maybe just a caching issue |
15:35:14 | OrionPK | the C++ version is completely different from yesterday, they aded some SSE optimizations it looks like |
15:37:36 | Araq | dyu_: try it with -f please |
15:39:19 | dyu_ | Araq: yea that works. |
15:39:33 | Araq | yeah it's a caching problem then |
15:39:41 | Araq | it doesn't re-link if nothing changed |
15:39:53 | Araq | and for some reason a second build changes things |
15:40:09 | Araq | another interesting research topic ;-) |
16:04:21 | dyu_ | Araq: is there something special about dynlib pragma? I refactored the ffi code to use it (https://github.com/dyu/ffi-overhead/commit/67a41f68c31bdfe06d91efca3c23f1197af5f940) and it just shaved off ~1200 ms |
16:04:47 | * | BitPuffin joined #nimrod |
16:07:13 | dyu_ | from the results, it made nimrod the fastest compiled language when calling c shared libs |
16:07:57 | dom96 | That's weird. Dynlib means that it will load the .so at runtime IIRC. |
16:08:37 | dyu_ | yea, and it indeed loads it at runtime |
16:10:12 | * | BitPuffin quit (Ping timeout: 252 seconds) |
16:32:57 | OrionPK | dom96, where's the aporia wishlist? :P |
16:33:29 | dom96 | there is none, there is only a todo list. |
16:33:58 | dom96 | lots of work still for 0.2 |
16:34:56 | dom96 | if you have a wish then create an issue :P |
16:35:06 | OrionPK | I have lots of wishes :P |
16:36:12 | dom96 | tell me |
16:36:14 | dom96 | I am curious |
16:36:50 | OrionPK | indent guide, scroll past end, code folding, ctrl+y (redo), ctrl+x (cut entire line if select length = 0), multiple code panes |
16:37:50 | dom96 | scroll past end is in my todo; I really want it too. Indent guide? You want like dotted lines showing the indent level? |
16:38:03 | OrionPK | yeah, as an option of course |
16:38:07 | dom96 | code folding is something which the gtk people will need to implement. |
16:38:26 | dom96 | ctrl+y for redo will come once I implement customizable keyboard shortcuts |
16:38:40 | dom96 | same for ctrl+x |
16:38:47 | OrionPK | cool |
16:38:55 | dom96 | multiple code panes may be possible |
16:39:43 | OrionPK | https://dl.dropboxusercontent.com/u/417554/indentguide.png |
16:39:51 | dyu_ | dom96: auto-import functionality would be nice |
16:40:00 | dom96 | I have lots of ideas though: https://github.com/nimrod-code/Aporia/blob/master/todo.markdown |
16:40:26 | Araq | dyu_: 'dynlib' is not necessarily slow, especially not on x86 which has lots of crazy optimizations when it comes to indirect calls |
16:40:30 | OrionPK | ah ok |
16:40:41 | dom96 | OrionPK: Yeah, that's what I thought. |
16:40:54 | dom96 | dyu_: Hrm, what do you mean by that? |
16:41:01 | dyu_ | dom96: you could copy features from intellij's pycharm |
16:41:30 | dom96 | ideas are not a problem now, it's getting the time to implement them well is the problem. |
16:41:59 | dyu_ | http://www.jetbrains.com/pycharm/features/index.html |
16:42:00 | OrionPK | just makes things easier to read, especially if you want to 'leave' multiple indented blocks |
16:42:06 | dyu_ | Araq: cool |
16:42:31 | dyu_ | didn't expect the perf to improve |
16:42:35 | OrionPK | like being able to see where the end of that "for" loop is kind of tricky to tell with only 2 space indents |
16:42:44 | OrionPK | the outer for loop |
16:44:01 | dom96 | OrionPK: Of course pull requests are always welcome :P |
16:44:05 | OrionPK | ;) |
16:45:02 | OrionPK | i've been feeling motivated this weekend only because I've been sick and have no motivation to do anything else |
16:45:03 | dom96 | I'm getting a bit worried about the status of GTK on Windows though :\ |
16:45:32 | OrionPK | gtk generally? |
16:45:48 | dom96 | yeah |
16:45:57 | Araq | dom96: exhu's UI library will be ready before GTK died ;-) |
16:46:13 | OrionPK | course then he'd need to ditch codeview |
16:46:15 | dom96 | Sure, but then that means a lot of rewrites. |
16:46:49 | dom96 | and I am playing with the idea of creating my own UI lib too :P |
16:46:57 | OrionPK | wish sublime was open source |
16:46:57 | Araq | gah don't |
16:47:04 | Araq | help exhu instead please |
16:47:48 | Araq | and it's not necessarily you who has to port it ;-) |
16:52:49 | dom96 | i'm really jealous of sublime |
16:56:44 | wlhlm | OrionPK: What editor is this in the screenshot? |
16:56:54 | OrionPK | sublimetext |
16:57:01 | wlhlm | ok |
16:57:09 | wlhlm | looks nice |
16:57:26 | OrionPK | it is quite nice.. no real good nimrod plugin for it though |
16:57:42 | OrionPK | it's got some limited (and broken) syntax highlighting and is pretty out of date |
16:57:53 | OrionPK | think it's based on like.. ASP or something |
18:04:48 | * | DAddYE joined #nimrod |
18:05:57 | Araq | hi DAddYE |
18:06:14 | * | Araq is waiting for the timeout |
18:08:31 | * | DAddYE quit (Remote host closed the connection) |
18:09:05 | * | Araq is not surprised |
18:18:38 | * | DAddYE joined #nimrod |
18:33:21 | * | Mat2 joined #nimrod |
18:33:26 | Mat2 | hi @ all |
18:40:05 | * | sardman joined #nimrod |
18:46:32 | * | Associat0r quit (Quit: Associat0r) |
18:47:04 | * | MFlamer_ joined #nimrod |
18:49:08 | * | MFlamer quit (Ping timeout: 240 seconds) |
18:58:53 | * | reactormonk joined #nimrod |
19:02:32 | * | DAddYE quit (Remote host closed the connection) |
19:03:07 | * | DAddYE joined #nimrod |
19:07:08 | * | DAddYE quit (Ping timeout: 240 seconds) |
19:19:07 | * | arumpf joined #nimrod |
19:20:32 | * | DAddYE joined #nimrod |
19:20:55 | * | arumpf is now known as Araq_ |
19:21:22 | Araq_ | hi Mat2; how's the progress on your JIT? |
19:21:58 | * | dyu_ quit (Quit: later!) |
19:22:14 | Mat2 | hi Araq |
19:22:41 | Araq_ | hi sardman, welcome |
19:23:37 | Mat2 | the backend interface is finished, I work now on the language implementation (slowly at current because of time need for my work) |
19:25:16 | Mat2 | the situation will get better end of this month, so I can spend more time on coding on it |
19:25:53 | Mat2 | hi sardman |
19:31:08 | * | DAddYE quit (Remote host closed the connection) |
19:31:37 | * | DAddYE joined #nimrod |
19:36:04 | * | DAddYE quit (Ping timeout: 246 seconds) |
19:36:34 | dom96 | hello Mat2 and welcome sardman |
19:36:52 | sardman | thanks for the welcome. |
19:37:01 | * | filwit joined #nimrod |
19:37:15 | dom96 | hey filwit! |
19:37:22 | filwit | hi dom96 :) |
19:37:58 | dom96 | please test babel if you can, i'm hoping to release 0.1 soon |
19:38:22 | filwit | okay, i looked at babel a bit |
19:40:18 | Mat2 | hi dom96, filwit and sardman |
19:40:31 | filwit | hi Mat2 |
19:40:38 | sardman | hey Mat2. |
19:54:37 | * | Endy quit (Ping timeout: 246 seconds) |
19:55:26 | * | wlhlm quit (Quit: WeeChat 0.4.1) |
20:23:55 | Mat2 | ciao |
20:24:03 | Araq_ | good night |
20:24:17 | * | Mat2 quit (Quit: Verlassend) |
20:32:09 | * | DAddYE joined #nimrod |
20:36:39 | * | DAddYE quit (Ping timeout: 260 seconds) |
20:37:41 | * | wlhlm joined #nimrod |
20:49:12 | * | Associat0r joined #nimrod |
21:47:44 | * | Araq_ quit (Ping timeout: 248 seconds) |
22:06:27 | * | DAddYE joined #nimrod |
22:16:32 | * | io2 quit () |
22:35:18 | NimBot | nimrod-code/packages master fed6eb0 achesak [+0 ±1 -0]: Added nimrod-pastebin. |
22:35:18 | NimBot | nimrod-code/packages master 1a04c63 achesak [+0 ±1 -0]: Added yahoo-weather. |
22:35:18 | NimBot | nimrod-code/packages master fd6dbd8 achesak [+0 ±1 -0]: Oops. |
22:35:18 | NimBot | nimrod-code/packages master 610b6ff achesak [+0 ±1 -0]: Oops again. |
22:35:18 | NimBot | 1 more commits. |
22:39:46 | * | DAddYE quit (Ping timeout: 245 seconds) |
22:44:12 | * | filwit quit (Quit: Leaving) |
22:44:28 | * | Araq_ joined #nimrod |
22:56:31 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]) |
23:25:21 | * | q66 quit (Quit: Leaving) |
23:31:13 | reactormonk | nimrod-pastebin? O.o |
23:36:34 | * | DAddYE joined #nimrod |
23:41:02 | * | DAddYE quit (Ping timeout: 264 seconds) |