| 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) |