<< 06-10-2013 >>

00:11:45OrionPKanyone know if there's a performance difference between using tuples vs types
00:11:54OrionPKlike if I had an (x,y,z) vector type
00:20:26Araq'object' and 'tuple' have the same performance
00:24:06OrionPKk
00:27:10OrionPKwhat are all the crazy compiler switches for producing an optimal build? :P
00:29:56dom96-d:release
00:30:01dom96Should be enough
00:31:09OrionPK--opt:speed ?
00:32:12dom96release implicitly sets opt to 'speed'
00:34:30OrionPKmmk
00:37:00dom96OrionPK: Are you writing that raytracer thingy?
00:37:08OrionPKyeah, it's done just slow
00:38:03OrionPKdom96 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:34dom96cool
00:39:07OrionPKhttps://gist.github.com/onionhammer/6847795
00:41:14OrionPKafk
00:44:29*DAddYE joined #nimrod
00:46:26AraqOrionPK: yet another rac tracer? http://forum.nimrod-code.org/t/167
00:46:50OrionPKyeah
00:47:03OrionPKit's a common benchmark
00:49:12Araqyour 'bytes' array is shared and it seems you don't keep "false sharing" of cache lines into account
00:49:45Araqwhich can cost you an incredible amount of performance
00:49:53Araqfactor 3 or so
00:50:47*DAddYE quit (Ping timeout: 240 seconds)
00:51:44Araqgood 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:32OrionPKAraq, 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:21OrionPKaporia desparately needs some indent guidage
03:13:16OrionPKalso 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:05Araqdyu: I thought about your stack overflow detection problem
09:33:14Araqand 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:47dyuAraq: by sandbox you mean embedding nimrod right? Anything in particular that makes it a bad idea?
09:56:55dyueven with -d:useMalloc --gc:none
09:59:30Araqwhat?
09:59:46Araqhow does --gc:none improve things? o.O
09:59:55Araqso you rather have leaks instead?
10:00:19Araqand no, I mean sandboxing because that's how I understood you
10:00:43Araqembedding is fine anyway but then what's the deal with catching stack overflows?
10:03:26dyumisunderstanding on the sandbox part ... what I mean was embedding
10:03:32dyumeant*
10:03:33*[1]Endy joined #nimrod
10:06:20Araqwell please elaborate how this embedding is supposed to look like
10:06:24dyuAraq: 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:00dyuthis is basically a just-in-case setting ... unit tests would avoid these runtime bugs
10:19:02Araqok 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:37dom96'morning
11:20:55*brson quit (Ping timeout: 260 seconds)
11:33:41dom96So I was looking through repos with .nim files on github and found this: https://github.com/bamtor/nimm
11:36:01Araqinteresting
11:44:43Araqdom96: do you mind if I change "src" to "nimcache" for niminst?
11:45:17Araqit's technically no cache but I guess people are used to the generate dir "nimcache" now
11:46:33dom96huh? what do you mean?
11:47:32AraqI dislike it generates a "src" directory and puts the C code in there
11:48:24dom96hrm, I guess it's fine.
11:48:40dom96Just 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:06NimBotAraq/Nimrod master c3abba3 Araq [+0 ±6 -0]: niminst: slashify was a stupid idea
15:01:27Araqdom96: pretty impressive work, babel works really nicely now on windows
15:02:08dom96great, thanks :)
15:07:19*OrionPK joined #nimrod
15:13:52dyu_quick question, what is the compiler option that overrides the output name (e.g nimrod c -o override_hello hello.nim)
15:14:30dyu_can't seem to find it in the docs
15:14:47Araq--out:override_hello
15:14:53dyu_thanks
15:15:46*wlhlm joined #nimrod
15:17:44dyu_Araq: doesn't work ... the compiler doesn't generate an executable (and it doesn't complain)
15:18:18Araqlook in the right directory then
15:19:23Araqwhat the ...? Hally Berry is 47? o.O
15:24:39Trixar_zaShe's how old? Oo
15:27:46OrionPKsandra bullock is 49
15:27:51OrionPKand she looked damned fine in gravity
15:28:34Araqso ... how is gravity, OrionPK
15:28:41OrionPKphenomenal
15:28:45OrionPKwould highly recommend
15:28:46Araqthe trailer looked interesting
15:29:11Araqbut then I thought "well maybe she is just turning in space for 90 minutes"
15:29:17OrionPK:D
15:29:20OrionPKnope
15:29:28Araqalright will watch it then
15:29:31Araqno spoilers
15:29:38OrionPKno spolers
15:30:29OrionPKaraq did you have any thoughts on optimizing that ray tracer that didnt involve completely re-architecting it and changing the algorithm? :)
15:30:55AraqI told you
15:31:07Araqyou need to consider aligned accesses to the array
15:31:14Araqno need to re-architect
15:31:33Araqa cache line is 32 bytes
15:31:42OrionPKso what, changing the size of the types?
15:31:56Araqso you have to ensure the accesses between threads do not cross a cache line
15:32:26OrionPKgotcha.. so each chunk of the array should be multiple of 32
15:33:04OrionPKI dont think the C++ version does that though, at least not the version im comparing against
15:33:09Araqer screw this
15:33:12Araqit's 64 bytes
15:33:42Araqwell I don't know what the c++ version does
15:34:02Araqin principle we should be as fast as c++
15:34:07OrionPKhttps://github.com/kid0m4n/rays/blob/master/cpprays/main.cpp
15:34:16Araqin practice we're not there for reasons I don't know
15:34:28OrionPKit's been updated since I grabbed it
15:34:36Araqneed to study the produced assembler
15:34:49dyu_Araq: figured it out ... there seems to be a bug. See http://pastebin.com/hWZduuhr
15:34:54OrionPKyeah
15:35:00dyu_or maybe just a caching issue
15:35:14OrionPKthe C++ version is completely different from yesterday, they aded some SSE optimizations it looks like
15:37:36Araqdyu_: try it with -f please
15:39:19dyu_Araq: yea that works.
15:39:33Araqyeah it's a caching problem then
15:39:41Araqit doesn't re-link if nothing changed
15:39:53Araqand for some reason a second build changes things
15:40:09Araqanother interesting research topic ;-)
16:04:21dyu_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:13dyu_from the results, it made nimrod the fastest compiled language when calling c shared libs
16:07:57dom96That's weird. Dynlib means that it will load the .so at runtime IIRC.
16:08:37dyu_yea, and it indeed loads it at runtime
16:10:12*BitPuffin quit (Ping timeout: 252 seconds)
16:32:57OrionPKdom96, where's the aporia wishlist? :P
16:33:29dom96there is none, there is only a todo list.
16:33:58dom96lots of work still for 0.2
16:34:56dom96if you have a wish then create an issue :P
16:35:06OrionPKI have lots of wishes :P
16:36:12dom96tell me
16:36:14dom96I am curious
16:36:50OrionPKindent guide, scroll past end, code folding, ctrl+y (redo), ctrl+x (cut entire line if select length = 0), multiple code panes
16:37:50dom96scroll past end is in my todo; I really want it too. Indent guide? You want like dotted lines showing the indent level?
16:38:03OrionPKyeah, as an option of course
16:38:07dom96code folding is something which the gtk people will need to implement.
16:38:26dom96ctrl+y for redo will come once I implement customizable keyboard shortcuts
16:38:40dom96same for ctrl+x
16:38:47OrionPKcool
16:38:55dom96multiple code panes may be possible
16:39:43OrionPKhttps://dl.dropboxusercontent.com/u/417554/indentguide.png
16:39:51dyu_dom96: auto-import functionality would be nice
16:40:00dom96I have lots of ideas though: https://github.com/nimrod-code/Aporia/blob/master/todo.markdown
16:40:26Araqdyu_: 'dynlib' is not necessarily slow, especially not on x86 which has lots of crazy optimizations when it comes to indirect calls
16:40:30OrionPKah ok
16:40:41dom96OrionPK: Yeah, that's what I thought.
16:40:54dom96dyu_: Hrm, what do you mean by that?
16:41:01dyu_dom96: you could copy features from intellij's pycharm
16:41:30dom96ideas are not a problem now, it's getting the time to implement them well is the problem.
16:41:59dyu_http://www.jetbrains.com/pycharm/features/index.html
16:42:00OrionPKjust makes things easier to read, especially if you want to 'leave' multiple indented blocks
16:42:06dyu_Araq: cool
16:42:31dyu_didn't expect the perf to improve
16:42:35OrionPKlike being able to see where the end of that "for" loop is kind of tricky to tell with only 2 space indents
16:42:44OrionPKthe outer for loop
16:44:01dom96OrionPK: Of course pull requests are always welcome :P
16:44:05OrionPK;)
16:45:02OrionPKi've been feeling motivated this weekend only because I've been sick and have no motivation to do anything else
16:45:03dom96I'm getting a bit worried about the status of GTK on Windows though :\
16:45:32OrionPKgtk generally?
16:45:48dom96yeah
16:45:57Araqdom96: exhu's UI library will be ready before GTK died ;-)
16:46:13OrionPKcourse then he'd need to ditch codeview
16:46:15dom96Sure, but then that means a lot of rewrites.
16:46:49dom96and I am playing with the idea of creating my own UI lib too :P
16:46:57OrionPKwish sublime was open source
16:46:57Araqgah don't
16:47:04Araqhelp exhu instead please
16:47:48Araqand it's not necessarily you who has to port it ;-)
16:52:49dom96i'm really jealous of sublime
16:56:44wlhlmOrionPK: What editor is this in the screenshot?
16:56:54OrionPKsublimetext
16:57:01wlhlmok
16:57:09wlhlmlooks nice
16:57:26OrionPKit is quite nice.. no real good nimrod plugin for it though
16:57:42OrionPKit's got some limited (and broken) syntax highlighting and is pretty out of date
16:57:53OrionPKthink it's based on like.. ASP or something
18:04:48*DAddYE joined #nimrod
18:05:57Araqhi 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:26Mat2hi @ 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:22Araq_hi Mat2; how's the progress on your JIT?
19:21:58*dyu_ quit (Quit: later!)
19:22:14Mat2hi Araq
19:22:41Araq_hi sardman, welcome
19:23:37Mat2the backend interface is finished, I work now on the language implementation (slowly at current because of time need for my work)
19:25:16Mat2the situation will get better end of this month, so I can spend more time on coding on it
19:25:53Mat2hi 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:34dom96hello Mat2 and welcome sardman
19:36:52sardmanthanks for the welcome.
19:37:01*filwit joined #nimrod
19:37:15dom96hey filwit!
19:37:22filwithi dom96 :)
19:37:58dom96please test babel if you can, i'm hoping to release 0.1 soon
19:38:22filwitokay, i looked at babel a bit
19:40:18Mat2hi dom96, filwit and sardman
19:40:31filwithi Mat2
19:40:38sardmanhey Mat2.
19:54:37*Endy quit (Ping timeout: 246 seconds)
19:55:26*wlhlm quit (Quit: WeeChat 0.4.1)
20:23:55Mat2ciao
20:24:03Araq_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:18NimBotnimrod-code/packages master fed6eb0 achesak [+0 ±1 -0]: Added nimrod-pastebin.
22:35:18NimBotnimrod-code/packages master 1a04c63 achesak [+0 ±1 -0]: Added yahoo-weather.
22:35:18NimBotnimrod-code/packages master fd6dbd8 achesak [+0 ±1 -0]: Oops.
22:35:18NimBotnimrod-code/packages master 610b6ff achesak [+0 ±1 -0]: Oops again.
22:35:18NimBot1 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:13reactormonknimrod-pastebin? O.o
23:36:34*DAddYE joined #nimrod
23:41:02*DAddYE quit (Ping timeout: 264 seconds)