00:07:28 | EXetoC | the 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:02 | Araq_ | hi rubino123 welcome |
10:55:11 | * | EXetoC joined #nimrod |
10:55:13 | rubino123 | hell |
10:55:17 | rubino123 | hello |
10:55:31 | rubino123 | are there any benchmarks available? |
10:55:53 | Araq_ | EXetoC: that's a bug report it please, the compiler should never chdir |
10:56:25 | EXetoC | ok |
10:56:31 | Araq_ | rubino123: there are a couple of old benchmarks on bitbucket |
10:56:53 | rubino123 | Any chance there is a nimrod websocket client lib? |
10:57:22 | Araq_ | http://forum.nimrod-code.org/t/167 here is a newer one |
11:00:04 | Araq_ | rubino123: I'm afraid we have no websockets library yet |
11:00:22 | rubino123 | Araq_, I will have to start one |
11:00:58 | Araq_ | great |
11:16:59 | Araq_ | 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:04 | BitPuffin | heyo! |
11:42:18 | EXetoC | hi |
11:43:38 | BitPuffin | EXetoC: sup? |
11:46:18 | * | dom96_ joined #nimrod |
11:46:22 | dom96_ | hey |
11:47:07 | EXetoC | BitPuffin: code and stuff |
11:47:12 | EXetoC | dom96_: hi |
11:47:18 | BitPuffin | hey dom96_½ |
11:47:32 | BitPuffin | EXetoC: whatcha working on |
11:48:31 | BitPuffin | dom96_: will babel get support for mercurial repositories? |
11:48:38 | dom96_ | sure, why not. |
11:49:12 | BitPuffin | dom96_: cool! |
11:51:55 | BitPuffin | dom96_: because I'd like to have my nimrod libs in hg |
11:54:04 | EXetoC | UI code |
11:54:07 | dom96_ | sure, I was planning on supporting other VCS' |
11:54:24 | dom96_ | how's the vector lib going? |
11:55:40 | BitPuffin | dom96_: vectors are pretty much fully supported, only have to do a quick commit |
11:55:44 | BitPuffin | then on to matrices |
11:57:30 | BitPuffin | dom96_: I ran in to a compiler bug with the cross product but Araq fixed it |
11:59:48 | dom96_ | cool |
11:59:59 | dom96_ | so what will you use this vector lib for? |
12:00:12 | BitPuffin | dom96_: games! |
12:05:09 | BitPuffin | dom96_: 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:20 | BitPuffin | dom96_: how is git repositories currently implemented? are you using libgit or are you just calling the git executable |
12:14:40 | EXetoC | I don't know how useful it is to allow arbitrary dimensions, if it's going to be part of some game lib |
12:15:18 | BitPuffin | EXetoC: 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:41 | nihathrael | that 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:52 | EXetoC | I don't think that's a big problem in a language that has good metaprogramming features |
12:20:58 | dom96_ | BitPuffin: the latter |
12:21:49 | EXetoC | because then you can query the array length at compile-time, which means that SIMD instructions etc can be used conditionally |
12:23:18 | EXetoC | conditionally at compile-time of course. it's going to suck otherwise :-) |
12:25:13 | nihathrael | some 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:19 | EXetoC | reflection to the rescue once again, I guess |
12:28:05 | BitPuffin | erf |
12:28:11 | BitPuffin | I don't think that's a big issue |
12:28:44 | Araq_ | in theory manually unrolling loops for small vectors should make things harder for the backend |
12:28:47 | BitPuffin | pretty sure some of that stuff can be optimized by compilers anyway :P |
12:28:51 | Araq_ | but I need to verify this |
12:28:55 | EXetoC | and maybe it's even possible to do "when x.len < y: for i in 0.. <s.len: {.unroll: x.len.}..." |
12:29:17 | Araq_ | EXetoC: you can also very easily create an unroll iterator in nimrod |
12:29:47 | BitPuffin | Yep, if things turn out to be too slow (highly doubt it tbh) I'm just gonna have to try to optimize it :) |
12:29:47 | BitPuffin | EXetoC: pretty much |
12:30:01 | Araq_ | but as I said, I think it's a bad idea for any modern backend |
12:30:03 | EXetoC | well some other unroll value |
12:30:47 | EXetoC | Araq_: except maybe when it comes to SIMD |
12:30:50 | * | Araq_ 's vectorizer would suck at manually unrolled loops |
12:30:56 | BitPuffin | honestly though we're not talking about something here that usually clogs down a real time system all that much |
12:31:15 | BitPuffin | it's usually important to optimize other stuff than the vector code |
12:31:27 | EXetoC | I guess it makes sense to use such instructions manually at least in very general libs |
12:31:52 | BitPuffin | does nimrod have any simd stuff in the stdlib? |
12:32:47 | Araq_ | BitPuffin: not yet and I think GCC got pretty good at it anyway |
12:32:54 | BitPuffin | yeah |
12:33:29 | BitPuffin | plus |
12:33:44 | BitPuffin | gl3n uses N-dimensional vectors and it works fine :) |
12:34:03 | BitPuffin | whatever is more flexible is pretty much always better imo |
12:34:13 | BitPuffin | and that's pretty much what's gonna build this api |
12:34:23 | BitPuffin | maximum flexibility and extendability |
12:34:39 | BitPuffin | and customizability |
12:35:50 | EXetoC | not that the public interface would have to be changed much, if at all in such cases |
12:36:00 | BitPuffin | exactly |
12:36:19 | * | BitPuffin is now afk |
12:46:11 | * | Mat2 joined #nimrod |
12:46:16 | Mat2 | hi |
12:46:39 | * | rubino123 quit (Ping timeout: 246 seconds) |
12:46:43 | dom96_ | hey Mat2 |
12:46:56 | dom96_ | BitPuffin: Do you think it would be better to use libgit? |
12:49:43 | Mat2 | hi dom96 |
12:53:40 | Araq_ | hi Mat2 have a look at my new VM when you find the time |
12:54:06 | Araq_ | it's not working yet but I now worry about the 'shr' for instruction decoding :P |
12:54:19 | Mat2 | I will take a look |
12:54:39 | Araq_ | thanks |
12:57:15 | EXetoC | Araq_: 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:49 | EXetoC | but maybe that's the same thing in the end |
13:00:16 | EXetoC | "nimrod c -o:exe src/main; ./src/exe" |
13:01:31 | Araq_ | that is a feature |
13:02:12 | EXetoC | that's settled then |
13:16:48 | * | dom96_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]) |
13:17:45 | Mat2 | Araq: Where can I found your VM sources ? |
13:20:57 | EXetoC | I'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:13 | Araq_ | compiler/vm.nim in the nimrod repo |
13:21:19 | Mat2 | thanks |
13:54:55 | Mat2 | Araq_: 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:09 | Araq_ | well I will implement .interpreterloop which turns it into computed gotos |
14:00:39 | Araq_ | 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:24 | Mat2 | see you later |
14:45:39 | * | Mat2 quit (Quit: Verlassend) |
16:18:16 | * | Mat2 joined #nimrod |
16:38:18 | Mat2 | Araq: 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:06 | Araq | Mat2: not only does it need a large number of registers it also needs a large number of opcodes |
17:07:15 | Araq | so combined dispatching won't work |
17:07:51 | * | DAddYE joined #nimrod |
17:08:03 | Mat2 | hmm, ok use software-pipelining |
17:08:13 | Araq | the argument passing semantics use register ranges opcCall r4..r7 |
17:08:37 | Araq | this way procedure calls have not much overhead |
17:11:23 | Mat2 | brb, 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:10 | Mat2 | Araq: Are you planning adding JIT compilation later ? |
18:07:34 | Araq | hell no |
18:08:04 | Araq | it should be more than fast enough for what I have in mind for it |
18:08:45 | Mat2 | good to know |
18:22:48 | EXetoC | fun fact: mat means food in swedish |
18:28:56 | Mat2 | mat means good in continental gaellic |
18:44:49 | EXetoC | cool |
18:53:28 | Araq | ping zahary |
18:53:39 | dom96 | zahary: zahary zahary zahary |
18:54:37 | EXetoC | zaharyzhryhyrzahry! |
19:00:44 | Mat2 | "zahary" irc-ping :m cWakeUp rp :irc |
19:03:33 | Araq | now see what you did, dom96 |
19:03:46 | dom96 | what did I do? |
19:04:01 | Araq | starting a trend |
19:04:15 | dom96 | yeah, i'm so cool everyone just copies what I do. |
19:04:35 | Araq | you should fix compiler bugs then :P |
19:04:39 | Mat2 | *lol* |
19:05:25 | dom96 | hrm, good idea. |
19:05:41 | dom96 | They might possibly just fix the same bug I fixed though. |
19:05:47 | dom96 | Depends 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:58 | dom96 | oh would you look at that, bitbucket allows you to choose the language of your repo. |
19:26:05 | NimBot | Araq/Nimrod master 12849d8 Araq [+0 ±1 -0]: bugfix: gensym |
19:26:20 | Araq | dom96: is nimrod listed? |
19:26:23 | dom96 | It doesn't dabble with detecting it like github. |
19:26:26 | dom96 | Of course :D |
19:27:10 | Araq | good good |
19:27:37 | Araq | brb |
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:23 | gradha | if 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:33 | Araq | indeed overrriding of modules is a feature |
19:37:41 | Araq | but it doesn't make sense for *packages* |
19:37:53 | Araq | it's just that we no notion of a package in the compiler yet |
19:38:21 | Araq | maybe the existance of a .nimrod.cfg defines a package? |
19:39:26 | gradha | yes, 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:31 | Mat2 | are you in search for a specific syntax declaring packages ? |
19:41:07 | Araq | not really, Mat2 |
19:41:37 | Araq | I don't want 'package pkg' headers for instance |
19:42:32 | dom96 | Shouldn'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:16 | Araq | dom96: that's one way of doing it but it prohibits module overriding |
19:43:40 | Araq | but maybe we don't need overriding |
19:43:57 | Araq | and especially not silent overriding |
19:43:59 | dom96 | Maybe you should add explicit overriding |
19:44:02 | Araq | yeah |
19:45:09 | dom96 | However, 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:31 | dom96 | Araq: What is genSym actually meant to create? All I see is a 'Sym'. |
19:46:49 | dom96 | Also I defined a var with the same name and it returns a Sym with the same name. |
19:47:04 | Araq | so? |
19:47:19 | dom96 | so it would clash? |
19:47:19 | Araq | it's not the same symbol |
19:47:23 | dom96 | I see. |
19:48:02 | dom96 | So what do I do with this 'Sym'? Do I use it in place of an 'Ident'? |
19:48:15 | Araq | yep |
19:48:22 | dom96 | kool |
19:49:13 | dom96 | bitbucket even handles 'Raw' for .nim files correctly. |
19:49:30 | dom96 | Github's got some competition. |
19:50:28 | gradha | dom96: wouldn't expect less from the inventors of spooning |
19:50:47 | dom96 | :D |
19:51:06 | dom96 | Yes, some very smart guys work there. |
19:53:11 | Mat2 | hmm, looks like assembla |
20:02:55 | zahary | hi everyone, why are you summoning me? |
20:03:06 | EXetoC | I don't know |
20:03:12 | gradha | huh, never thought that would work |
20:03:22 | Mat2 | hello |
20:03:25 | dom96 | it works! |
20:03:34 | EXetoC | I think only Araq knows |
20:03:37 | dom96 | Araq: now you owe me. |
20:04:14 | Araq | hi zahary, it's been a while |
20:04:33 | Araq | when is your value to generics ready? ;-) |
20:04:37 | dom96 | cool, generated C now has comments showing the nimrod equivalent of the types. |
20:05:04 | zahary | yeah, sorry for not being around - I'm following the github development, but I've been too busy for IRC |
20:05:30 | zahary | the remaining bug with the generics is quite simple actually |
20:06:57 | dom96 | Araq: gensym works nicely btw |
20:41:55 | NimBot | Araq/Nimrod master f5a49b7 Araq [+0 ±3 -0]: new evaluation engine: next steps |
20:41:55 | NimBot | Araq/Nimrod master 28c4425 Araq [+0 ±2 -0]: new vm: next steps |
20:41:55 | NimBot | Araq/Nimrod master 6a27081 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod |
20:59:06 | dom96 | Araq: What am I missing? https://gist.github.com/dom96/40368ae2f05623e227a1 |
20:59:17 | dom96 | why is there a 'ExprColonExpr' generated? |
21:00:35 | Araq | good question |
21:06:40 | dom96 | shall I file a bug? |
21:06:54 | dom96 | I can workaround it with a 'var' param for now |
21:09:50 | dom96 | Araq: Seems genSym-ing the same symbol multiple times creates incorrect C code. |
21:10:30 | Araq | it shouldn't |
21:11:31 | dom96 | it does though |
21:15:13 | NimBot | Araq/Nimrod master 5b1e0e6 Dominik Picheta [+0 ±1 -0]: Added macros.newIfStmt and macros.newVarStmt. |
21:15:41 | NimBot | Araq/Nimrod asyncmacro 950597b jbe [+0 ±1 -0]: export pointer types for SDL event objects |
21:15:41 | NimBot | Araq/Nimrod asyncmacro 9051a01 Araq [+4 ±0 -0]: first steps to a new evaluation engine |
21:15:41 | NimBot | Araq/Nimrod asyncmacro a7aa473 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod |
21:15:41 | NimBot | Araq/Nimrod asyncmacro 2dd9357 Araq [+0 ±5 -0]: added macros.genSym |
21:15:41 | NimBot | 13 more commits. |
21:16:46 | dom96 | Araq: Want me to submit an issue or are you fixing it now? |
21:17:37 | dom96 | oh well bbl |
21:18:41 | Araq | submit an issue please, but I'm not sure it's a bug |
21:18:49 | Araq | maybe it's the 'do' rewriting |
21:19:36 | BitPuffin_ | dom96: nah I think it's good enough to invoke it from shell |
21:19:49 | * | BitPuffin_ is now known as BitPuffin |
21:26:14 | BitPuffin | dom96: also makes it easy to port to new CVS's |
21:38:09 | * | Endy quit (Ping timeout: 256 seconds) |
21:40:45 | NimBot | Araq/Nimrod master 0d0ab0d Araq [+0 ±1 -0]: attempt to make C codegen aware of 'gensym' |
21:40:45 | NimBot | Araq/Nimrod master 9c56633 Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod |
21:48:10 | Mat2 | get some sleep, ciao |
21:48:25 | Araq | bye |
21:48:26 | * | Mat2 quit (Quit: Verlassend) |
22:04:31 | * | OrionPK joined #nimrod |
22:17:22 | dom96 | back |
22:17:43 | dom96 | By that commit message I assume you haven't tested your fix heh |
22:18:00 | Araq | no |
22:18:04 | Araq | testing takes too much time |
22:18:15 | dom96 | ok, i'll test it |
22:24:19 | dom96 | Araq: you fixed it |
22:26:50 | dom96 | BitPuffin: indeed |
22:28:24 | Araq | good 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:36 | dom96 | good 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:36 | BitPuffin | Is there any profiling tool that works well with nimrod? |
23:45:43 | BitPuffin | and debugger |
23:47:07 | BitPuffin | ooh, and how do I create an alias for something? |
23:53:17 | BitPuffin | EXetoC: you asleep? |
23:57:08 | EXetoC | you did alias types before, and I guess you can alias pretty much anything using templates |
23:59:19 | BitPuffin | EXetoC: before? |
23:59:51 | EXetoC | yes the vectors |