<< 25-07-2013 >>

00:07:28EXetoCthe compiler cd's, which seems a little inconvenient
00:48:41*reactormonk joined #nimrod
01:00:20*Associat0r quit (Quit: Associat0r)
01:21:14*q66 quit (Quit: Leaving)
01:25:37*DAddYE quit (Remote host closed the connection)
01:32:24*zahary quit (Read error: Connection reset by peer)
01:32:38*zahary joined #nimrod
01:53:14*jbe_ quit (Remote host closed the connection)
02:27:08*DAddYE joined #nimrod
02:33:35*DAddYE quit (Ping timeout: 260 seconds)
02:34:02*EXetoC quit (Quit: WeeChat 0.4.1)
03:11:02*DAddYE joined #nimrod
04:13:32*Associat0r joined #nimrod
04:13:32*Associat0r quit (Changing host)
04:13:32*Associat0r joined #nimrod
04:25:33*OrionPK quit (Read error: Connection reset by peer)
05:55:26*Associat0r quit (Quit: Associat0r)
06:05:45*Endy joined #nimrod
07:12:44*Araq_ joined #nimrod
08:46:25*apotheon quit (Ping timeout: 248 seconds)
09:57:27*apotheon joined #nimrod
09:57:27*apotheon quit (Changing host)
09:57:27*apotheon joined #nimrod
10:17:44*q66 joined #nimrod
10:42:06*Associat0r joined #nimrod
10:42:07*Associat0r quit (Changing host)
10:42:07*Associat0r joined #nimrod
10:54:51*rubino123 joined #nimrod
10:55:02Araq_hi rubino123 welcome
10:55:11*EXetoC joined #nimrod
10:55:13rubino123hell
10:55:17rubino123hello
10:55:31rubino123are there any benchmarks available?
10:55:53Araq_EXetoC: that's a bug report it please, the compiler should never chdir
10:56:25EXetoCok
10:56:31Araq_rubino123: there are a couple of old benchmarks on bitbucket
10:56:53rubino123Any chance there is a nimrod websocket client lib?
10:57:22Araq_http://forum.nimrod-code.org/t/167 here is a newer one
11:00:04Araq_rubino123: I'm afraid we have no websockets library yet
11:00:22rubino123Araq_, I will have to start one
11:00:58Araq_great
11:16:59Araq_see you later
11:17:02*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212])
11:35:08*BitPuffin joined #nimrod
11:39:04BitPuffinheyo!
11:42:18EXetoChi
11:43:38BitPuffinEXetoC: sup?
11:46:18*dom96_ joined #nimrod
11:46:22dom96_hey
11:47:07EXetoCBitPuffin: code and stuff
11:47:12EXetoCdom96_: hi
11:47:18BitPuffinhey dom96_½
11:47:32BitPuffinEXetoC: whatcha working on
11:48:31BitPuffindom96_: will babel get support for mercurial repositories?
11:48:38dom96_sure, why not.
11:49:12BitPuffindom96_: cool!
11:51:55BitPuffindom96_: because I'd like to have my nimrod libs in hg
11:54:04EXetoCUI code
11:54:07dom96_sure, I was planning on supporting other VCS'
11:54:24dom96_how's the vector lib going?
11:55:40BitPuffindom96_: vectors are pretty much fully supported, only have to do a quick commit
11:55:44BitPuffinthen on to matrices
11:57:30BitPuffindom96_: I ran in to a compiler bug with the cross product but Araq fixed it
11:59:48dom96_cool
11:59:59dom96_so what will you use this vector lib for?
12:00:12BitPuffindom96_: games!
12:05:09BitPuffindom96_: actually it will probably be part of my big open source real time application API (kind of a low level game engine that's more flexible than typical engines) that seems like I'll write it all in nimrod, and then the lib won't be called linagl anymore :)
12:06:20BitPuffindom96_: how is git repositories currently implemented? are you using libgit or are you just calling the git executable
12:14:40EXetoCI don't know how useful it is to allow arbitrary dimensions, if it's going to be part of some game lib
12:15:18BitPuffinEXetoC: well it's all ment to be modular and reusable so, someone might want it for purposes that aren't graphics
12:15:59*Araq_ joined #nimrod
12:17:41nihathraelthat depends pretty much on what that means for performance, typically for games you have your 2 and 3D vectors specifically, because those are usually a bit more efficient than n-dimensional vectors
12:19:52EXetoCI don't think that's a big problem in a language that has good metaprogramming features
12:20:58dom96_BitPuffin: the latter
12:21:49EXetoCbecause then you can query the array length at compile-time, which means that SIMD instructions etc can be used conditionally
12:23:18EXetoCconditionally at compile-time of course. it's going to suck otherwise :-)
12:25:13nihathraelsome operations might be faster on fixed dimensions, like adding vectors together, where you'll need a loop for n dimensions as opposed to hardcoding it. But then again, I don't know enough about nimrod to say it is a problem or not
12:27:19EXetoCreflection to the rescue once again, I guess
12:28:05BitPuffinerf
12:28:11BitPuffinI don't think that's a big issue
12:28:44Araq_in theory manually unrolling loops for small vectors should make things harder for the backend
12:28:47BitPuffinpretty sure some of that stuff can be optimized by compilers anyway :P
12:28:51Araq_but I need to verify this
12:28:55EXetoCand maybe it's even possible to do "when x.len < y: for i in 0.. <s.len: {.unroll: x.len.}..."
12:29:17Araq_EXetoC: you can also very easily create an unroll iterator in nimrod
12:29:47BitPuffinYep, if things turn out to be too slow (highly doubt it tbh) I'm just gonna have to try to optimize it :)
12:29:47BitPuffinEXetoC: pretty much
12:30:01Araq_but as I said, I think it's a bad idea for any modern backend
12:30:03EXetoCwell some other unroll value
12:30:47EXetoCAraq_: except maybe when it comes to SIMD
12:30:50*Araq_ 's vectorizer would suck at manually unrolled loops
12:30:56BitPuffinhonestly though we're not talking about something here that usually clogs down a real time system all that much
12:31:15BitPuffinit's usually important to optimize other stuff than the vector code
12:31:27EXetoCI guess it makes sense to use such instructions manually at least in very general libs
12:31:52BitPuffindoes nimrod have any simd stuff in the stdlib?
12:32:47Araq_BitPuffin: not yet and I think GCC got pretty good at it anyway
12:32:54BitPuffinyeah
12:33:29BitPuffinplus
12:33:44BitPuffingl3n uses N-dimensional vectors and it works fine :)
12:34:03BitPuffinwhatever is more flexible is pretty much always better imo
12:34:13BitPuffinand that's pretty much what's gonna build this api
12:34:23BitPuffinmaximum flexibility and extendability
12:34:39BitPuffinand customizability
12:35:50EXetoCnot that the public interface would have to be changed much, if at all in such cases
12:36:00BitPuffinexactly
12:36:19*BitPuffin is now afk
12:46:11*Mat2 joined #nimrod
12:46:16Mat2hi
12:46:39*rubino123 quit (Ping timeout: 246 seconds)
12:46:43dom96_hey Mat2
12:46:56dom96_BitPuffin: Do you think it would be better to use libgit?
12:49:43Mat2hi dom96
12:53:40Araq_hi Mat2 have a look at my new VM when you find the time
12:54:06Araq_it's not working yet but I now worry about the 'shr' for instruction decoding :P
12:54:19Mat2I will take a look
12:54:39Araq_thanks
12:57:15EXetoCAraq_: I don't know if it cd's, or if it prepends something to the value passed to "-o"; possibly the directory that 'projectfile' resides in
12:57:49EXetoCbut maybe that's the same thing in the end
13:00:16EXetoC"nimrod c -o:exe src/main; ./src/exe"
13:01:31Araq_that is a feature
13:02:12EXetoCthat's settled then
13:16:48*dom96_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212])
13:17:45Mat2Araq: Where can I found your VM sources ?
13:20:57EXetoCI'm not sure if it simplifies anything. it's very common to have a separate 'build' directory, and one might want to put every test binary there, which is only trivial in the case where the source directory is flat, which means that you know how much relative backtracking needs to be done
13:21:13Araq_compiler/vm.nim in the nimrod repo
13:21:19Mat2thanks
13:54:55Mat2Araq_: Take a look at my older Ngaro version: It is based upon replicated-switch threading. You can use the same technique for reducing the large number of BTB misses: http://bazaar.launchpad.net/~crc-x/retro-language/retro/files/head:/vm/experimental/faster/
13:58:09Araq_well I will implement .interpreterloop which turns it into computed gotos
14:00:39Araq_see you later
14:00:43*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212])
14:33:46*silven quit (Read error: Connection reset by peer)
14:35:47*silven joined #nimrod
14:45:24Mat2see you later
14:45:39*Mat2 quit (Quit: Verlassend)
16:18:16*Mat2 joined #nimrod
16:38:18Mat2Araq: Does your VM really need 256 virtual registers ? I'm asking because restricting to - say 4 would allow combined dispatching of opcodes + registers at least
16:47:10*DAddYE quit (Remote host closed the connection)
17:07:06AraqMat2: not only does it need a large number of registers it also needs a large number of opcodes
17:07:15Araqso combined dispatching won't work
17:07:51*DAddYE joined #nimrod
17:08:03Mat2hmm, ok use software-pipelining
17:08:13Araqthe argument passing semantics use register ranges opcCall r4..r7
17:08:37Araqthis way procedure calls have not much overhead
17:11:23Mat2brb, lunch time
17:11:32*Mat2 is now known as Mat2-lunch
17:17:50*BitPuffin_ joined #nimrod
17:18:38*BitPuffin quit (Ping timeout: 240 seconds)
17:48:31*Mat2-lunch is now known as Mat2
18:07:10Mat2Araq: Are you planning adding JIT compilation later ?
18:07:34Araqhell no
18:08:04Araqit should be more than fast enough for what I have in mind for it
18:08:45Mat2good to know
18:22:48EXetoCfun fact: mat means food in swedish
18:28:56Mat2mat means good in continental gaellic
18:44:49EXetoCcool
18:53:28Araqping zahary
18:53:39dom96zahary: zahary zahary zahary
18:54:37EXetoCzaharyzhryhyrzahry!
19:00:44Mat2"zahary" irc-ping :m cWakeUp rp :irc
19:03:33Araqnow see what you did, dom96
19:03:46dom96what did I do?
19:04:01Araqstarting a trend
19:04:15dom96yeah, i'm so cool everyone just copies what I do.
19:04:35Araqyou should fix compiler bugs then :P
19:04:39Mat2*lol*
19:05:25dom96hrm, good idea.
19:05:41dom96They might possibly just fix the same bug I fixed though.
19:05:47dom96Depends how well they copy.
19:17:48*q66 quit (*.net *.split)
19:17:48*apotheon quit (*.net *.split)
19:17:49*mal``` quit (*.net *.split)
19:18:41*q66 joined #nimrod
19:18:41*apotheon joined #nimrod
19:18:41*mal``` joined #nimrod
19:20:24*DAddYE quit (*.net *.split)
19:20:25*silven quit (*.net *.split)
19:21:13*DAddYE joined #nimrod
19:21:13*silven joined #nimrod
19:23:56*Mat2 quit (*.net *.split)
19:25:58dom96oh would you look at that, bitbucket allows you to choose the language of your repo.
19:26:05NimBotAraq/Nimrod master 12849d8 Araq [+0 ±1 -0]: bugfix: gensym
19:26:20Araqdom96: is nimrod listed?
19:26:23dom96It doesn't dabble with detecting it like github.
19:26:26dom96Of course :D
19:27:10Araqgood good
19:27:37Araqbrb
19:28:26*Mat2 joined #nimrod
19:30:59*gradha joined #nimrod
19:33:53*gradha wonders what swizzling means in a statically compiled language
19:35:23gradhaif https://github.com/Araq/Nimrod/issues/546 is a feature, maybe babel libs should be distributed as pseudo-compiled? or add a feature to babel to coalesce all imports into a single file to disallow overriding modules
19:37:33Araqindeed overrriding of modules is a feature
19:37:41Araqbut it doesn't make sense for *packages*
19:37:53Araqit's just that we no notion of a package in the compiler yet
19:38:21Araqmaybe the existance of a .nimrod.cfg defines a package?
19:39:26gradhayes, I was going to say, there's no difference between something imported through babel and a custom directory you add with -path manually
19:40:31Mat2are you in search for a specific syntax declaring packages ?
19:41:07Araqnot really, Mat2
19:41:37AraqI don't want 'package pkg' headers for instance
19:42:32dom96Shouldn't the compiler be smart enough to realise that the module importing 'unicode' is nowhere near the relative dir of the file being compiled?
19:43:16Araqdom96: that's one way of doing it but it prohibits module overriding
19:43:40Araqbut maybe we don't need overriding
19:43:57Araqand especially not silent overriding
19:43:59dom96Maybe you should add explicit overriding
19:44:02Araqyeah
19:45:09dom96However, I still need to implement better isolation in babel. So that 'babel build' only works when you specify the right dependencies, i.e. I still have to override babelPath. Maybe babel does that already, can't remember.
19:46:31dom96Araq: What is genSym actually meant to create? All I see is a 'Sym'.
19:46:49dom96Also I defined a var with the same name and it returns a Sym with the same name.
19:47:04Araqso?
19:47:19dom96so it would clash?
19:47:19Araqit's not the same symbol
19:47:23dom96I see.
19:48:02dom96So what do I do with this 'Sym'? Do I use it in place of an 'Ident'?
19:48:15Araqyep
19:48:22dom96kool
19:49:13dom96bitbucket even handles 'Raw' for .nim files correctly.
19:49:30dom96Github's got some competition.
19:50:28gradhadom96: wouldn't expect less from the inventors of spooning
19:50:47dom96:D
19:51:06dom96Yes, some very smart guys work there.
19:53:11Mat2hmm, looks like assembla
20:02:55zaharyhi everyone, why are you summoning me?
20:03:06EXetoCI don't know
20:03:12gradhahuh, never thought that would work
20:03:22Mat2hello
20:03:25dom96it works!
20:03:34EXetoCI think only Araq knows
20:03:37dom96Araq: now you owe me.
20:04:14Araqhi zahary, it's been a while
20:04:33Araqwhen is your value to generics ready? ;-)
20:04:37dom96cool, generated C now has comments showing the nimrod equivalent of the types.
20:05:04zaharyyeah, sorry for not being around - I'm following the github development, but I've been too busy for IRC
20:05:30zaharythe remaining bug with the generics is quite simple actually
20:06:57dom96Araq: gensym works nicely btw
20:41:55NimBotAraq/Nimrod master f5a49b7 Araq [+0 ±3 -0]: new evaluation engine: next steps
20:41:55NimBotAraq/Nimrod master 28c4425 Araq [+0 ±2 -0]: new vm: next steps
20:41:55NimBotAraq/Nimrod master 6a27081 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod
20:59:06dom96Araq: What am I missing? https://gist.github.com/dom96/40368ae2f05623e227a1
20:59:17dom96why is there a 'ExprColonExpr' generated?
21:00:35Araqgood question
21:06:40dom96shall I file a bug?
21:06:54dom96I can workaround it with a 'var' param for now
21:09:50dom96Araq: Seems genSym-ing the same symbol multiple times creates incorrect C code.
21:10:30Araqit shouldn't
21:11:31dom96it does though
21:15:13NimBotAraq/Nimrod master 5b1e0e6 Dominik Picheta [+0 ±1 -0]: Added macros.newIfStmt and macros.newVarStmt.
21:15:41NimBotAraq/Nimrod asyncmacro 950597b jbe [+0 ±1 -0]: export pointer types for SDL event objects
21:15:41NimBotAraq/Nimrod asyncmacro 9051a01 Araq [+4 ±0 -0]: first steps to a new evaluation engine
21:15:41NimBotAraq/Nimrod asyncmacro a7aa473 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod
21:15:41NimBotAraq/Nimrod asyncmacro 2dd9357 Araq [+0 ±5 -0]: added macros.genSym
21:15:41NimBot13 more commits.
21:16:46dom96Araq: Want me to submit an issue or are you fixing it now?
21:17:37dom96oh well bbl
21:18:41Araqsubmit an issue please, but I'm not sure it's a bug
21:18:49Araqmaybe it's the 'do' rewriting
21:19:36BitPuffin_dom96: nah I think it's good enough to invoke it from shell
21:19:49*BitPuffin_ is now known as BitPuffin
21:26:14BitPuffindom96: also makes it easy to port to new CVS's
21:38:09*Endy quit (Ping timeout: 256 seconds)
21:40:45NimBotAraq/Nimrod master 0d0ab0d Araq [+0 ±1 -0]: attempt to make C codegen aware of 'gensym'
21:40:45NimBotAraq/Nimrod master 9c56633 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod
21:48:10Mat2get some sleep, ciao
21:48:25Araqbye
21:48:26*Mat2 quit (Quit: Verlassend)
22:04:31*OrionPK joined #nimrod
22:17:22dom96back
22:17:43dom96By that commit message I assume you haven't tested your fix heh
22:18:00Araqno
22:18:04Araqtesting takes too much time
22:18:15dom96ok, i'll test it
22:24:19dom96Araq: you fixed it
22:26:50dom96BitPuffin: indeed
22:28:24Araqgood night
22:31:58*mario-go` joined #nimrod
22:33:52*tumak_ joined #nimrod
22:34:31*tumak quit (Ping timeout: 248 seconds)
22:34:31*mario-goulart quit (Ping timeout: 248 seconds)
22:40:29*mario-go` is now known as mario-goulart
22:45:36dom96good night, i'm away to sleep too.
22:57:20*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
23:29:57*Associat0r quit (Quit: Associat0r)
23:45:36BitPuffinIs there any profiling tool that works well with nimrod?
23:45:43BitPuffinand debugger
23:47:07BitPuffinooh, and how do I create an alias for something?
23:53:17BitPuffinEXetoC: you asleep?
23:57:08EXetoCyou did alias types before, and I guess you can alias pretty much anything using templates
23:59:19BitPuffinEXetoC: before?
23:59:51EXetoCyes the vectors