00:02:18 | * | OrionPK joined #nimrod |
00:33:06 | * | Araq_ joined #nimrod |
00:34:14 | * | Araq__ quit (Ping timeout: 256 seconds) |
00:36:28 | * | noam_ joined #nimrod |
00:36:33 | * | noam quit (Read error: Connection reset by peer) |
00:49:09 | * | Boscop joined #nimrod |
01:49:24 | * | Boscop quit (Disconnected by services) |
02:34:00 | * | Associat0r joined #nimrod |
02:34:00 | * | Associat0r quit (Changing host) |
02:34:00 | * | Associat0r joined #nimrod |
02:47:21 | * | Sergio965 joined #nimrod |
02:49:37 | * | Boscop joined #nimrod |
03:49:54 | * | Boscop quit (Disconnected by services) |
03:56:19 | * | OrionPK quit (Read error: Connection reset by peer) |
04:08:09 | * | Associat0r quit (Quit: Associat0r) |
04:50:12 | * | Boscop joined #nimrod |
05:16:01 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
05:50:28 | * | Boscop quit (Disconnected by services) |
05:56:13 | * | zahary quit (Ping timeout: 246 seconds) |
05:56:19 | * | zahary1 joined #nimrod |
06:50:42 | * | Boscop joined #nimrod |
07:50:57 | * | Boscop quit (Disconnected by services) |
08:51:08 | * | Boscop joined #nimrod |
09:20:30 | * | EXetoC joined #nimrod |
09:24:30 | * | Associat0r joined #nimrod |
09:24:30 | * | Associat0r quit (Changing host) |
09:24:30 | * | Associat0r joined #nimrod |
09:51:30 | * | Boscop quit (Disconnected by services) |
10:10:48 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]) |
10:21:24 | dom96 | hi |
10:24:04 | EXetoC | hi |
10:51:43 | * | Boscop joined #nimrod |
11:05:18 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
11:43:51 | * | Araq_ joined #nimrod |
12:23:56 | * | BitPuffin joined #nimrod |
12:25:30 | * | Boscop quit (Disconnected by services) |
12:31:57 | * | rndbit quit (Quit: rand() & 1) |
12:38:41 | * | rndbit joined #nimrod |
12:43:50 | NimBot | Araq/Nimrod master 3a9eda3 Zahary Karadjov [+1 ±4 -0]: implemented and documented the new typedesc binding rules |
12:47:54 | dom96 | http://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/ |
12:48:14 | * | dom96 hasn't read it yet |
12:48:48 | dom96 | oh look, we're 3rd |
12:53:25 | dom96 | And 1st in regards to SLOC |
12:53:34 | dom96 | Araq_: ^ |
13:04:52 | * | Associat0r quit (Read error: Connection reset by peer) |
13:05:55 | * | Associat0r joined #nimrod |
13:05:55 | * | Associat0r quit (Changing host) |
13:05:55 | * | Associat0r joined #nimrod |
13:13:14 | Araq_ | I still don't know why we lose against D |
13:13:32 | dom96 | The difference is very small anyway |
13:13:40 | Araq_ | but I can't reproduce these on my machine anyway |
13:13:51 | Araq_ | I hope he mentions that |
13:14:10 | dom96 | sadly, no. |
13:15:06 | dom96 | For me gcc was faster than clang. |
13:16:53 | Araq_ | for me my version was both smaller and faster |
13:17:15 | Araq_ | though the variance was quite high |
13:17:21 | Araq_ | so it's hard to tell really |
13:17:46 | Araq_ | but excellent work, dom96 |
13:18:00 | dom96 | thanks |
13:18:09 | Araq_ | the article is quite in favour of us |
13:18:11 | Araq_ | :D |
13:18:29 | dom96 | indeed |
13:21:54 | Araq_ | well next time I'll check the generated asm for differences |
13:22:09 | Araq_ | should be interesting |
13:22:40 | Araq_ | in fact ... it's a bit disappointing that sharing the same backend still produces 2% differences in runtimes |
13:23:24 | Araq_ | makes me wonder why these optimizers are still so fragile |
13:25:48 | * | Boscop joined #nimrod |
13:38:04 | * | EXetoC joined #nimrod |
13:51:46 | Araq_ | dom96: what about some forum post? |
13:52:08 | dom96 | hrm, good idea. |
14:03:10 | Associat0r | dom96: http://www.kickstarter.com/projects/1461411552/elite-dangerous/posts/578089 |
14:06:47 | dom96 | Associat0r: Sounds awesome. |
14:26:23 | Associat0r | indeed |
14:26:27 | Associat0r | I can't wait |
14:50:39 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 23.0.1/20130814063812]) |
14:53:42 | dom96 | interesting, my HN post was revived even though it got to the second page of /new |
15:09:20 | * | mwcampbell joined #nimrod |
15:09:42 | mwcampbell | I just noticed that the Nimrod home page describes the GC as "non-tracing". So how does it work? Is it reference counting? |
15:11:33 | dom96 | mwcampbell: I think so, i'm not sure of the details. http://build.nimrod-code.org/docs/gc.html seems to confirm that it is reference counting. |
15:12:28 | dom96 | if you stick around until Araq is available he will be able to tell you the details. |
15:20:26 | mwcampbell | What is the advantage of deferred reference counting over a typical tracing GC? After all, IIUC, a deferred reference counting system doesn't immediately destroy unused objects like typical reference counting. |
16:17:43 | EXetoC | I guess you can figure out if the count will remain the same after all the local statements have been executed |
16:21:58 | EXetoC | eh, it probably doesn't matter if it's unchanged |
16:25:25 | zahary1 | nimrod GCs are switchable at compile-time, but yes, the default one used deferred reference counting. |
16:26:22 | dom96 | used? it doesn't anymore? |
16:26:32 | zahary1 | the idea of deferred reference counting is that most of the increment/decrement operations actually involve stack variables as the managed objects are passed around functions |
16:27:12 | zahary1 | so the goal is to eliminate counting for such stack locations (this is not done in any particular smart way, pointers on the stack just don't update the ref count of the allocated object) |
16:27:44 | zahary1 | then after a while, you decide that it's time to collect and you must scan the stack to find any "active" pointers that may be there at this particular moment |
16:27:47 | zahary1 | only then you count them |
16:28:24 | zahary1 | sorry dom96. I meant "use" |
16:28:42 | dom96 | ahh, alright. |
16:32:39 | EXetoC | I tried to call some GC function before, but I got a compilation error. is that to be expected when not specifying --gc? |
16:34:49 | EXetoC | markAndSweep and gc2 can't be specified apparently |
16:36:38 | zahary1 | well, which GC function did you try to call? |
16:37:02 | EXetoC | actually, just importing any of the modules fails |
16:37:20 | zahary1 | they are already sourced as part of system.nim |
16:38:04 | zahary1 | if the function is not exported it's not supposed to be callable from user space, but if you just want to mess around you can temporary export it (just modify the GC implementation file) |
16:39:34 | EXetoC | yeah. it works now |
17:20:37 | EXetoC | the stepping mechanism appears to be usable |
17:36:57 | EXetoC | it seems to be able to do its job at a max cycle length of about 0.9ms when stressed, which is nice |
17:38:41 | dom96 | nice. I think Araq said that in his tests it met a deadline of 2ms |
17:39:11 | zahary1 | some parts of the GC are not subjected to this stepping mechanism yet (the cycle detection and clean up). . you should be fine as long as you don't create a large cyclic graphs in memory like the compiler does for example |
17:40:41 | zahary1 | the 2 ms deadline is unfortunately old news. some expensive fixes have been implemented since then that can break it |
17:43:59 | EXetoC | dom96: yeah it's stated in the GC documentation |
17:44:42 | dom96 | well it's certainly good news that you can reproduce it with an even faster time. |
17:47:42 | EXetoC | what I meant was that it doesn't really recycle any memory below that point, when stressed |
17:48:31 | EXetoC | "[GC] missed deadline: 12633000" so it takes a little less than 13ms sometimes |
17:50:24 | EXetoC | *1.3ms |
17:52:34 | dom96 | how are you testing it? |
17:55:06 | EXetoC | and a deadline of at least 5ms ought to be good enough for most people |
17:56:05 | * | Sergio965 joined #nimrod |
17:59:11 | EXetoC | dom96: in a very crude way. I have this "var a = newSeq[int](5000000)" in my newGame function, and then I just call it a couple of times until the memory usage reaches about 3gb :> |
18:00:07 | * | Mat2 joined #nimrod |
18:00:12 | Mat2 | hi all |
18:00:31 | EXetoC | hopefully I'll have a decent game some time in the future, that can act as a real-world benchmark |
18:00:32 | EXetoC | hi |
18:00:50 | Mat2 | hi EXetoC |
18:01:38 | dom96 | This looks like a lot of code just to get arg[0] and parse it as an int: https://github.com/arnehormann/Levgen-Parallel-Benchmarks/commit/4d23326c97fbb3ef8d01219b636bad2d4707fbae#L0R124 |
18:03:37 | dom96 | Silly Go. |
18:07:17 | EXetoC | I'll make it a little more real-world by creating 2k NPC's, which should make the tree a little more complex :> |
18:07:37 | EXetoC | or maybe 500. it takes an awfully long time for some reason |
18:08:53 | dom96 | EXetoC: Ludum Dare starts in ~7 hours! Still not competing? |
18:10:17 | EXetoC | ok, I did that 5k times apparently :> |
18:12:58 | EXetoC | zahary1: when was that dealt with? before this release? |
18:14:10 | EXetoC | dom96: nope |
18:15:03 | dom96 | to be honest, I probably won't compete either |
18:16:18 | Mat2 | EXetoC: Probably some kind of life game would be a good test (and easy to code) |
18:19:54 | EXetoC | dom96: why not? |
18:20:39 | EXetoC | Mat2: I guess |
18:20:55 | zahary1 | EXetoC, can't quite remember (if you ask about the GC fixes). but have you already introduced possible pointer cycles in your types? I suspect most simple projects won't have those |
18:21:22 | * | OrionPK joined #nimrod |
18:21:23 | dom96 | EXetoC: I may not have the time over the weekend. |
18:23:27 | EXetoC | ok |
18:24:00 | EXetoC | zahary1: few, if any, I think |
18:26:49 | zahary1 | it's a matter of whether they are possible or not. the compiler will try to determine at compile-time if a certain type can form cycles or not |
18:28:16 | EXetoC | right |
18:28:46 | EXetoC | dom96: do you have time for a couple of 0ad games this weekend? |
18:29:16 | * | mwcampbell quit (Quit: ircII EPIC5-1.1.2 -- Are we there yet?) |
18:29:51 | dom96 | EXetoC: All depends on how quickly I can write this blog post :) |
18:33:29 | dom96 | EXetoC: I'll say 'maybe', but I feel bad for giving you hope and then telling you no the next day :( |
18:35:59 | EXetoC | I'm sure you can do it in 5-10 minutes :> |
18:37:32 | dom96 | I'm getting distracted reading comments about these benchmarks lol |
18:38:58 | EXetoC | just unplug your internets |
18:39:29 | Mat2 | multitask faster :D |
18:39:45 | dom96 | But then I can't stream music from spotify :P |
18:39:58 | Mat2 | *lol* |
18:47:17 | * | io2 joined #nimrod |
18:47:48 | dom96 | hello io2 |
18:47:56 | io2 | hi |
18:48:20 | io2 | came in after reading http://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/ |
18:48:42 | Mat2 | hi io2, dom96 |
18:48:57 | * | Mat2 is now known as Mat2-coding |
18:49:12 | dom96 | Cool. Nice to see we are getting new people thanks to it :) |
18:55:49 | io2 | static typing; compile time metaprogramming and export to C++. What is not to like now that I think about it. |
18:56:03 | dom96 | precisely :D |
18:58:19 | io2 | the multiple dispatch feat looks interesting as well, could simplify certain scenarios |
19:06:57 | dom96 | yes, and so much more: first class iterators, closures, generics, a real-time GC and a brilliant python-style syntax. |
19:09:47 | EXetoC | win |
19:14:25 | EXetoC | no curly braces everywhere |
19:14:41 | dom96 | yes, and no semi-colons! |
19:17:15 | Mat2-coding | an IDE |
19:17:32 | dom96 | and IDE support in the compiler! |
19:17:45 | * | dom96 feels like a car salesman lol |
19:24:43 | OrionPK | no debugger in the IDE |
19:25:10 | Mat2-coding | hi OrionPK |
19:25:32 | OrionPK | hola |
19:26:11 | Mat2-coding | do you mean a machine-code debugger (that would be useful) ? |
19:26:43 | OrionPK | no source level debugger built into the IDE |
19:27:10 | OrionPK | breakpoints and locals and all that good stuff |
19:29:32 | Mat2-coding | hmm, I can not think of a scenario where such a debugger would be needed but anyhow: Who else here wishes a source-level debugger for Nimrod ? |
19:30:02 | OrionPK | u never need it until you really do to track down a tricky bug |
19:30:33 | dom96 | Sure, debugger integration with the IDE would be nice. For now, 'echo' is your friend. |
19:38:22 | Mat2-coding | is 'while false:' the correct statement for an endless loop ? |
19:38:43 | EXetoC | true? |
19:39:54 | EXetoC | yes you'd use while |
19:40:10 | Mat2-coding | thanks |
19:43:12 | Mat2-coding | dom96: My opinion is that the exception mechanism should a sufficient and easy to handle mechanism for all possible debugging tasks- Of course very subjectve viewpoint |
19:43:43 | Mat2-coding | ^should be |
19:50:21 | EXetoC | some operations are always unintended, and the compiler might throw because of that, but many logic errors will be uncaught |
19:51:39 | Mat2-coding | and you find it easier to find out these kind of errors with use of a debugger ? |
19:52:12 | EXetoC | rather than what? anyway, echo has been good enough for me, but I've never done anything really complicated |
19:54:35 | * | shodan45 joined #nimrod |
19:54:45 | dom96 | hello shodan45 |
19:54:46 | Mat2-coding | hmm, I think my current project is somewhat complex but haven't need a debugger so far |
19:54:52 | Mat2-coding | hi shodan45 |
19:55:14 | dom96 | To me, echo is good enough too. But I agree with what EXetoC said. |
19:59:17 | Mat2-coding | ok, exist there any plans for a source-level debugger in Aporia ? |
19:59:54 | shodan45 | hello |
20:00:04 | dom96 | I may integrate endb (http://build.nimrod-code.org/docs/endb.html) sometime in the future. |
20:00:21 | shodan45 | I'm assuming that since there are 31 nicks in here that you don't get many newcomers? ;) |
20:01:40 | dom96 | yeah. We get newcomers from time to time, there are a lot more during times when we are on the front page of reddit and HN though as you may imagine. |
20:04:49 | shodan45 | I got here via http://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/ via HN |
20:05:12 | dom96 | indeed, that's what I figured :) |
20:05:14 | shodan45 | so... first question: OOP? |
20:05:24 | OrionPK | debugger is pretty invaluable for large scale applications |
20:05:24 | shodan45 | no mention of it on the site |
20:05:34 | OrionPK | there arent that many large scale nimrod applications, other than the compiler itself ;) |
20:06:13 | dom96 | OrionPK: You can still use endb or gdb from the command line if you're in dire need of a debugger |
20:06:20 | OrionPK | you can do OOP, shodan45, sec |
20:06:39 | OrionPK | http://nimrod-code.org/tut2.html#object-oriented-programming |
20:06:44 | OrionPK | dom96 yeah, I know |
20:06:55 | OrionPK | dom96 talking about an integrated debugger in the IDE though |
20:08:51 | shodan45 | OrionPK: oh ok... cool |
20:09:46 | OrionPK | shodan45 it's almost like creating extension methods for types, if you've ever done C# |
20:10:27 | dom96 | People also created some macros to make OOP nicer in Nimrod: http://forum.nimrod-code.org/t/90 |
20:13:33 | shodan45 | I'm coming from Python, JS, some Go, and PHP (ughhh) |
20:13:48 | OrionPK | well you should enjoy the performance benefits ;) |
20:17:11 | * | oal joined #nimrod |
20:21:15 | dom96 | Definitely. I came from Python too :) |
20:21:19 | dom96 | hello oal |
20:21:19 | oal | Nimrod looks super cool |
20:21:21 | oal | Hi |
20:21:34 | oal | Pythonista here as well |
20:21:54 | Mat2-coding | hi oal |
20:22:36 | dom96 | Always nice to hear when people call Nimrod cool :D |
20:22:54 | oal | I found it because of https://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/ |
20:22:56 | dom96 | Araq is missing all this flattery heh |
20:23:00 | oal | on HN |
20:23:53 | OrionPK | dom96 wrote the nimrod implementation for that benchmark |
20:25:50 | * | charles is now known as Guest77535 |
20:26:11 | dom96 | indeed :) |
20:27:45 | * | [2]charles quit (Ping timeout: 276 seconds) |
20:32:39 | oal | dom96, wow, you're really active in the Nimrod world :) |
20:32:53 | * | ltbarcly joined #nimrod |
20:33:00 | oal | I'm browsing github, and your nick shows up on every other page :p |
20:33:31 | dom96 | lol |
20:33:38 | dom96 | yep, that's me. |
20:33:42 | dom96 | hello ltbarcly! |
20:33:51 | ltbarcly | hello there |
20:34:14 | Mat2-coding | hi ltbarcly |
20:34:50 | shodan45 | hmm, it's friday and I found a new language to learn... I see a fun weekend ahead :D |
20:35:37 | dom96 | Feel free to ask any questions that you may have here :) |
20:36:37 | shodan45 | omg nimrod, where have you been all my life?! |
20:36:39 | shodan45 | xD |
20:37:20 | shodan45 | hm, interesting comment system |
20:37:50 | dom96 | hrm, what comment system? |
20:38:24 | shodan45 | comments are language tokens |
20:38:35 | shodan45 | you can't just put them anywhere |
20:38:51 | dom96 | oh hah. For some reason I thought you were talking about comments on some website. |
20:40:01 | dom96 | yeah, that's because they are part of the AST> |
20:40:04 | dom96 | *. |
20:41:44 | dom96 | however, I think soon this restriction may disappear. |
20:42:01 | shodan45 | it's certainly... unique ;) |
20:42:25 | shodan45 | of course, I haven't used it yet, so I don't know if I like it or not |
20:42:31 | dom96 | This seems to suggest that my memory is correct: https://github.com/Araq/Nimrod/blob/master/todo.txt#L59 |
20:44:04 | EXetoC | changed how? |
20:45:00 | dom96 | I would bet that Araq will make the rules more relaxed. Not sure if he would remove the comments from the AST altogether. |
20:49:47 | shodan45 | oh very slick - the compiler checks case statements to make sure all possible cases are covered |
20:54:30 | * | gradha joined #nimrod |
20:55:32 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
20:55:50 | gradha | but comments are only available if invoked with "nimrod doc", or can you access them "at runtime"? |
20:56:22 | dom96 | You mean at compile-time in a macro? |
20:56:47 | gradha | can you write echo foo._doc_? |
20:56:54 | dom96 | no |
20:56:56 | gradha | I guess docs are simply stripped for performance |
20:57:01 | dom96 | Indeed. |
20:57:40 | gradha | would be fun to work with dynamic dispatch |
20:58:01 | EXetoC | it's just a matter of including only those that are referenced |
20:58:27 | gradha | reminds me of C++ template library problem |
21:01:47 | gradha | dom96: are you writing that blog post in your new shiny blog generation engine? |
21:01:53 | * | Mat2-coding is now known as Mat2 |
21:01:58 | dom96 | gradha: yep |
21:02:15 | dom96 | Haven't started on that blog post yet though, have other ones to finish first heh |
21:03:05 | Mat2 | hi gradha |
21:03:19 | gradha | hi Mat2 |
21:03:53 | dom96 | gradha: you should check out ipsum genera. The name is just so cool IMO lol |
21:05:25 | Mat2 | ok, so my Nimrod port seem to work so far, I can compile some test routines. How is the auto-generation of documentation handled ? Does it work like doxygen for example ? |
21:05:48 | gradha | dom96: I would like something more fancy like: 天鎖斬月, literally "Heaven Chain Slaying Moon" |
21:05:57 | gradha | Mat2: run "nimrod doc2 module.nim" |
21:06:13 | gradha | that creates an HTML with all exported symbols |
21:06:20 | gradha | there's nothing more at the moment |
21:06:22 | dom96 | gradha: It should support unicode thanks to Nimrod's awesomeness. |
21:06:39 | Mat2 | gradha: thanks |
21:07:17 | EXetoC | yeah, that's how awesome Nimrod is |
21:07:29 | EXetoC | unicode, biatch! |
21:08:51 | gradha | dom96: I was brainstorming for a next blog post title, how about "30 years later we still can't be friends" |
21:09:37 | dom96 | http://memegenerator.net/instance/40826287 :D |
21:11:21 | Mat2 | my all-time star of text encodings is EBCDIC ;) |
21:11:23 | * | dom96 hopes someone watches Breaking Bad here and gets the reference |
21:11:44 | dom96 | gradha: I hope that post is not about me. |
21:12:20 | Araq | hey shodan45 |
21:12:25 | Araq | I love your nick :D |
21:12:51 | gradha | dom96: it's about how interprocess cooperation for cpu/memory has stupidly failed, hindering progress, so we have these processes which believe they are alone in the machine and waste resources |
21:13:58 | gradha | dom96: and example is running two processes at the same time, each spawning the "optimal" number of threads, one per cpu, and now you have 16 threads fighting for cpu |
21:14:06 | dom96 | gradha: oh hell yes. I want to read that. And I completely agree. Also, that's a brilliant title for a blog post about that. |
21:14:09 | gradha | dom96: on an 8 core machine |
21:14:40 | dom96 | welcome back Araq. You've missed all the new users! |
21:14:52 | Araq | gradha: "optimal" is often 2 threads per CPU due to hyper threading |
21:15:07 | Araq | dom96: yeah well I noticed :-) |
21:15:13 | gradha | Araq: only if the OS is not already virtualizing hyperthreading as 2 cores |
21:15:17 | dom96 | Araq: Also read the reddit/HN discussion. |
21:15:21 | Araq | gradha: true |
21:16:58 | Mat2 | hi Araq |
21:18:26 | Araq | dom96: I read it, nice comments |
21:20:53 | dom96 | indeed |
21:21:30 | Araq | hi Mat2 |
21:22:04 | gradha | the other day i tried running nimrod gamera under wine and found odd results, it would randomly crash, but running kock again would continue compiling further each time |
21:22:53 | gradha | in the end I managed to recompile the git version under wine, but it hinted that either wine is broken, or there's some other nimrod issue is hitting under wine |
21:23:26 | gradha | reminds me of open file handles under macosx for the test suite |
21:24:45 | * | gradha still unable to write koch properly despite all the attention |
21:24:56 | * | Aramur joined #nimrod |
21:25:10 | Araq | yeah these 4 letter words are cruel, gradha |
21:25:13 | Araq | hi Aramur |
21:25:26 | gradha | who needs dongle jokes with such a build system |
21:25:29 | Aramur | hi |
21:26:02 | ltbarcly | I can't figure out why this won't compile: https://gist.github.com/justinvanwinkle/6324195 |
21:26:08 | ltbarcly | it says test.nim(14, 53) Error: undeclared field: 'student_id' |
21:26:19 | ltbarcly | I took it right out of the tutorial |
21:26:22 | ltbarcly | mostly |
21:27:18 | ltbarcly | I brew installed nimrod, version 0.9.2 |
21:27:48 | Araq | ltbarcly: you need to do TStudent(student_id: 5, ...) |
21:27:55 | Araq | sorry it's a known bug .. |
21:27:56 | ltbarcly | why would the order matter? |
21:27:58 | ltbarcly | oh |
21:28:00 | ltbarcly | gotcha |
21:28:03 | Araq | yeah :-( |
21:28:10 | ltbarcly | I'll fix it, any idea where the bug is? |
21:28:18 | Araq | lol sure |
21:28:55 | ltbarcly | I was randomly making something very similar to Nimrod, not knowing it existed |
21:29:03 | gradha | ltbarcly: brave soul |
21:29:11 | Araq | compiler/semexprs.nim:1649 following |
21:29:12 | shodan45 | Araq: hi... you're the one to "blame" for nimrod? ;) |
21:29:28 | Araq | shodan45: yes |
21:29:28 | ltbarcly | https://github.com/justinvanwinkle/mule |
21:29:31 | ltbarcly | I was compiling to CL though |
21:29:35 | ltbarcly | 99% the same ideas |
21:29:40 | ltbarcly | so, you know, good work :) |
21:29:55 | shodan45 | Araq: interesting language you have here |
21:29:58 | Araq | we'll see about the 99% same ideas :P |
21:30:00 | ltbarcly | I had spent about 2 weeks on it before I saw your thing |
21:30:10 | Araq | we have some unique features :P |
21:30:18 | ltbarcly | yea, there is more than one way to skin a cat |
21:30:21 | shodan45 | hm, anyone use nimrod on embedded hardware? microcontrollers, etc? |
21:30:26 | ltbarcly | unique? like what |
21:30:28 | shodan45 | or are the binaries to big? |
21:30:47 | gradha | shodan45: IIRC reactormonk did some work to make it compile to arduino |
21:30:52 | Araq | shodan45: check dom96's toy OS kernel |
21:31:00 | dom96 | ltbarcly: That looks very similar to plain old python. |
21:31:15 | ltbarcly | well, the compiler is plain old python |
21:31:22 | ltbarcly | https://github.com/justinvanwinkle/mule/tree/master/src/test |
21:31:46 | ltbarcly | I was just about to add a package system and now I'm going to play with nimrod awhile instead |
21:32:01 | gradha | Araq: since you are touring the guests around the compiler, where would I hook the ouroboros module for import/include to use it? |
21:32:50 | dom96 | shodan45: https://github.com/dom96/nimkernel :) |
21:33:18 | Araq | gradha: compiler/importer.nim I guess |
21:33:46 | gradha | Araq: ok, thanks |
21:33:47 | shodan45 | yeah, I'm more curious about bare-metal coding for AVR or MSP430 |
21:33:58 | shodan45 | meaning no kernel at all :) |
21:34:28 | Araq | we used to have an example for the avr, I don't know if it still works |
21:34:46 | Araq | I think --os:standalone --cpu:avr does the job |
21:35:45 | ltbarcly | hmm, the bootstrapping instructions reference csources.zip |
21:35:50 | ltbarcly | they seem to be awol |
21:36:04 | Araq | well we changed that |
21:36:16 | Araq | sorry it's still heavily in development |
21:36:19 | Mat2 | shodan45: take a look at 4e4th for the TI launchpad |
21:36:29 | shodan45 | Araq: that's amazing... I've only scratched the surface so far - how are you able to do all of this? Go, for example, isn't able to target microcontrollers because it's just too "big". |
21:36:29 | ltbarcly | sure, not complaining, how do you do it |
21:36:56 | Araq | shodan45: the language semantics are defined with the optimizer in mind |
21:37:27 | Araq | so we have global dead code elimination and try hard the semantics don't break it |
21:38:09 | shodan45 | Araq: ok, fair enough... but why isn't everyone else doing that? AFAIK, nimrod is fairly unique in being pretty high level but still being small & fast. |
21:38:41 | Aramur | here's a question... I'm testing Nimrod to build an interpreter for another language, is there any particular reason on why classes seem to be orders of magnitude faster than unions when interpreting an AST? |
21:38:54 | gradha | ltbarcly: recently i compiled from git and didn't have problems following the instructions, maybe you are reading the outdated ones? |
21:39:06 | dom96 | ltbarcly: Which bootstrapping instructions are you referring to? |
21:39:07 | Araq | no idea what you mean Aramur, nimrod doesn't have 'class' |
21:39:08 | ltbarcly | I just forked like 10 minutes ago :/ |
21:39:12 | ltbarcly | the ones in install.txt |
21:39:21 | EXetoC | don't languages like D, Rust and C++ satisfy those requirements? |
21:39:27 | Aramur | Araq: sorry, I mean objects |
21:40:03 | dom96 | ltbarcly: Ahh yes. Sorry, forgot to update that. Take a look at the readme. |
21:40:24 | EXetoC | possibly with a little bit of work |
21:41:28 | ltbarcly | ahh, thanks |
21:41:43 | Aramur | in particular, this is the code I'm testing: http://pastebin.com/raw.php?i=xp9F1CA5 (trying to decide the best way to represent an AST efficiently) |
21:41:54 | Araq | shodan45: well it's hard to answer this question and stay polite to the other language designers at the same time |
21:42:38 | * | profmakx joined #nimrod |
21:42:42 | profmakx | hi |
21:42:47 | Mat2 | hi |
21:42:50 | ltbarcly | Araq: I heard the other language designers were making fun of you behind the gym, you shouldn't be so nice |
21:42:53 | gradha | hello profmakx |
21:42:54 | Aramur | hi, profmakx |
21:42:54 | dom96 | hello profmakx |
21:43:59 | Araq | ltbarcly: I am not nice, stay here and you'll find out |
21:44:13 | OrionPK | yeah he's definitely a mean old sod |
21:44:24 | profmakx | heh, what a warm welcome. A colleague of mine mentioned nimrod to me, and i started doing some coding, I really like it so far |
21:44:57 | Mat2 | shodan45: Which MCU of the MSP430 series have you in mind ? |
21:45:01 | EXetoC | great |
21:45:37 | EXetoC | soon we'll be able to go on kickstarter and raise a million dollars |
21:46:07 | gradha | EXetoC: we need to build that new gym for Araq without the people who talk behind his back |
21:46:28 | Araq | EXetoC: yay. Then I will show my enemies the true meaning of perfection. |
21:46:34 | ltbarcly | yea, our own gym. with blackjack. and hookers. |
21:46:55 | EXetoC | and a cat circus |
21:47:03 | ltbarcly | you know what? forget the gym |
21:47:09 | EXetoC | live lolcats |
21:47:09 | gradha | it's going to be the best kickstarter ever |
21:47:26 | dom96 | woo futurama references ftw |
21:48:17 | ltbarcly | wow, this channel is just like #python. well, some small differences, like knowing things and having a sense of humor |
21:48:41 | Araq | hey the python guys have a nice sense of humor |
21:48:57 | ltbarcly | not the ones in #python |
21:49:23 | Araq | "explicit is better than implicit" ... speaking about a *dynamically typed* language |
21:49:39 | ltbarcly | you're the one that stole 70% of your syntax from them |
21:49:48 | Araq | no I didn't |
21:49:58 | Mat2 | oO |
21:50:01 | ltbarcly | 90%? |
21:50:12 | Araq | check out pascal and modula 3 and Ada to see where it comes from |
21:50:13 | EXetoC | yeah stole is the right word |
21:50:22 | gradha | ltbarcly: you just haven't read about the syntax naming wars in nimrod yet |
21:50:29 | ltbarcly | fine fine |
21:50:39 | dom96 | he merely borrowed it, he will return it to them once nimrod hits version 1.0. |
21:51:06 | Mat2 | get some sleep, ciao |
21:51:07 | Araq | oh and Oberon |
21:51:14 | gradha | bye Mat2 |
21:51:19 | dom96 | cya Mat2 |
21:51:39 | * | Mat2 quit (Quit: Verlassend) |
21:51:42 | shodan45 | Mat2: I just have a launchpad from a while back... none in particular, I just meant generally suited for microcontrollers |
21:51:48 | shodan45 | oops heh |
21:52:35 | gradha | awww, http://forum.nimrod-code.org/t/191 should reference the github issue acumulating all the name calling |
21:53:10 | ltbarcly | yea, modula 3 and ada both use indentation rather than block ending tokens, and they use : at the beginning of a block, and they all have exception systems with the syntax try: … except ExClass: … finally: …, and so on for like 2 hours |
21:53:39 | ltbarcly | I'm not saying you were wrong, it's quite nice. I mean, you could have made it look like ruby, and that would be sad |
21:54:04 | dom96 | or like C which all the other new languages seem to be doing :\ |
21:54:15 | ltbarcly | but its easy to PARSE |
21:54:44 | ltbarcly | and that's obviously the most important thing to these guys |
21:54:58 | gradha | is there much difference to parsing between using indentation and braces? |
21:55:24 | ltbarcly | well, kindof |
21:55:33 | dom96 | Yeah, of course. Apparently computers are still not capable of determining the end of line based on well, the end of line character, they need a damn semicolon. |
21:55:42 | ltbarcly | it's trickier, but in the end it takes maybe an extra 2 hours of work |
21:55:42 | ltbarcly | generally you have to take the token stream and 'fix it up' |
21:55:45 | Araq | gradha: not really |
21:55:48 | ltbarcly | although with something like a Peg you can do it directly |
21:55:56 | zahary1 | any way you slice it, parsing is one of the easiest problem when implementing a compiler |
21:56:02 | Araq | it took me 3 attempts to get it right |
21:56:11 | ltbarcly | yea, I found parsing to be the hardest part |
21:56:13 | Araq | but the first attempt is the same as the third so ... |
21:56:16 | ltbarcly | but I didn't do it in school |
21:56:27 | gradha | dom96: hah, just imagine the pain of using a backslash for line continuations, the horror! |
21:56:45 | Araq | and indeed if parsing is a problem for you you shouldn't be designing a language, sorry |
21:56:56 | Araq | no offense, ltbarcly |
21:57:10 | * | ltbarcly lets spill a single tear |
21:57:21 | gradha | we really need that new gym |
21:58:12 | dom96 | gradha: I would watch that horror movie. |
21:58:21 | ltbarcly | I don't know if 'you shouldn't be' is even relevant, if you want to do something, figure it out, nobody is born shitting EBNF |
21:59:02 | * | zahary1 is now known as zahary |
22:00:11 | dom96 | Araq: why is the bootstrap info in install.txt anyway? |
22:00:23 | Araq | I think you wanted it there, dom96 |
22:00:37 | dom96 | Is it because it becomes part of download.html on the website? |
22:00:41 | Araq | I didn't include it in the beginning |
22:00:58 | Araq | that's not the reason, download.txt can easily add its own stuff |
22:02:13 | dom96 | If I wanted it in there I probably would have included it myself. I don't recall telling you to put it in there. |
22:02:35 | Araq | well I recall you telling me exactly that |
22:03:00 | Araq | but just move it to download.txt and be done with it |
22:03:22 | * | gradha imagines a gym with posters of manly pink unicorns |
22:04:25 | dom96 | Araq: Are you still insistent on having both a readme.md and a readme.txt? |
22:04:33 | Araq | yeah |
22:04:38 | Araq | windows is important |
22:04:51 | dom96 | well alright |
22:05:50 | gradha | I've heard rumors you can transmogrify .md files into .txt for releases |
22:06:04 | * | brson joined #nimrod |
22:06:46 | dom96 | Yeah. I attended one week of Hogwarts and learned how to do that. |
22:08:17 | dom96 | hello brson |
22:08:30 | EXetoC | hi Rust dude |
22:08:38 | EXetoC | it's still difficult to open arbitrary files in a text editor? on a default installation anyway :> |
22:14:16 | NimBot | Araq/Nimrod master 814e441 Dominik Picheta [+0 ±3 -0]: Removed outdated bootstrapping info from install.txt |
22:14:54 | EXetoC | maybe he's here because of that blog entry |
22:15:36 | EXetoC | brson: how's the work on 0.8 going? |
22:16:16 | * | ltbarcly quit (Ping timeout: 260 seconds) |
22:16:25 | brson | dom96: hi |
22:16:40 | brson | EXetoC: it's going the way it usually goes. controlled chaos |
22:17:04 | EXetoC | sounds good |
22:18:19 | zahary | hi brson, nice to see you here. are you new to nimrod or you've seen it in the past too? |
22:19:42 | Araq | zahary: btw I disagree that nimrod's deferred RC is nothing special; the compiler does location analysis to determine whether it's on the stack or the heap |
22:20:21 | Araq | that may not be beyond state of the art, but it's not simplistic either |
22:20:30 | zahary | I meant that the idea of deferred GC doesn't try any of the "smarter" liveliness analysis and so on |
22:20:53 | zahary | wasn't trying to say anything about our implementation |
22:21:01 | Araq | oh alright |
22:24:00 | Araq | and btw wait until you see my 'writes' effect tracking which does escape analysis as a side effect :P |
22:28:24 | zahary | I'm indeed interested in this. sometimes I even daydream how I'm gonna use in the compiler to pinpoint who is modifying the shared AST of a generic type for example :) |
22:28:54 | Araq | well I'm writing a blog post about it |
22:29:26 | Araq | the algorithm is not too hard, it needs 2 passes over the AST, no fixpoint iteration worries |
22:29:55 | zahary | is this still a proc level granularity for the two passes? |
22:30:04 | Araq | yes |
22:30:26 | Araq | it's control flow independent |
22:30:47 | Araq | I could make it control flow dependent but I don't think this makes any sense |
22:30:56 | gradha | Araq: after you finish writing that blog post, will you make the blog visible? |
22:31:12 | Araq | gradha: depends on whether you like it :P |
22:31:38 | * | gradha starts to get nervous at the responsability |
22:32:11 | brson | zahary: i don't have any experience with nimrod, but I see it discussed pretty often in stories about systems languages |
22:32:14 | dom96 | Araq: Just add some kpop in there and gradha will love it. |
22:32:36 | gradha | Araq: yes, I can send you gifs to sprinkle around |
22:33:20 | gradha | you could use this one for the people from the gym http://dl.dropbox.com/u/145894/gifs/crayon_pop_cares.gif |
22:33:42 | dom96 | lol |
22:35:20 | zahary | brson, do you plan at any point integrating an interpreter in the rust's compiler? for stuff like CTFE and maybe richer macro support |
22:39:57 | brson | zahary: CTFE is likely to happen at some point, not with an interpreter but with some sort of phased compilation. also required for macro exporting, yes. |
22:40:22 | zahary | phased compilation, you mean compiling a DLL module that the compiler will then load? |
22:40:33 | zahary | this idea have been explored here as well |
22:40:36 | brson | yes |
22:41:15 | brson | i think the jit has also been considered for this |
22:41:20 | brson | it's pretty far off at this point though |
22:42:52 | zahary | this is probably the biggest difference between the languages right now. you have serial types, which is nice (the unique pointers), but these are likely to arrive here as well and our generics system is more "soft" (more like C++, where you don't have to specify interfaces) |
22:43:34 | zahary | of course, there are many other differences, but I find them more superficial |
22:43:46 | reactormonk | gradha, yeah, and it doesn't really work |
22:43:53 | reactormonk | too complicated |
22:45:44 | * | jdpo joined #nimrod |
22:46:36 | Araq | hi jdpo, welcome |
22:46:48 | jdpo | hey |
22:47:15 | dom96 | Are you jdp? |
22:47:38 | jdpo | no |
22:47:59 | dom96 | This could get confusing heh. |
22:49:17 | * | gradha wonders how to perform a coup d'état against NimBot |
22:50:42 | dom96 | You !ping it till it dies :P |
22:51:28 | gradha | need to find a good replacement though, like the GI Joe movie |
22:52:39 | gradha | NimBot: whistle the nimrod song! |
22:53:25 | gradha | hrm... I guess teaching it to high five comes first |
22:55:35 | Araq | !lag |
22:55:35 | NimBot | 110ms between me and the server. |
22:55:45 | Araq | that's the nimrod song for ya |
22:55:58 | jdpo | is there 1.0 release date? |
22:56:24 | Araq | jdpo: my guess: end of 2014 |
22:56:36 | io2 | seriously? |
22:56:42 | Araq | quite |
22:56:45 | gradha | even though 2013 is the year of nimrod? |
22:56:52 | io2 | that is quite interesting |
22:57:17 | Araq | well ... we only have people working on it in their spare time |
22:57:35 | gradha | btw, it's so weird to import ouroboros from the compiler, it's like... dirty... a language using itself to... ugh... |
22:57:58 | io2 | Araq: where do I find more info about functional programming style in Nimrod |
22:58:28 | io2 | meaning, projects using the style in nimrod, code speaks for itself |
22:58:53 | gradha | io2: stuff like using map instead of loops? |
22:59:21 | io2 | stuff like using monads |
23:00:01 | Araq | fowl has a "maybe monad" check out his repositories |
23:00:33 | io2 | where? |
23:00:42 | dom96 | https://github.com/fowlmouth/nimlibs/blob/master/fowltek/maybe_t.nim |
23:01:07 | io2 | thanks dom96 |
23:01:22 | dom96 | np |
23:01:26 | io2 | is there a planet like aggregator for nimrod blogs? |
23:01:43 | gradha | io2: you are presuming there are nimrod blogs |
23:01:57 | io2 | or, people who write about nimrod |
23:02:03 | io2 | indeed |
23:02:17 | * | shodan45 quit (Quit: Konversation terminated!) |
23:02:43 | gradha | I have at http://gradha.github.io a single lonely post which barely mentions nimrod |
23:03:05 | dom96 | I am setting up a blog as we speak. |
23:03:07 | gradha | dom96 and Araq are preparing theirs, but they are still beta |
23:03:11 | io2 | been in yours gradha :) |
23:03:19 | * | gradha blushes |
23:03:26 | dom96 | You can read the forum if you want. |
23:03:27 | io2 | I'd say they are doing them in nimrod? |
23:03:39 | gradha | dom96 should be |
23:03:42 | io2 | been checking that out actually |
23:03:46 | dom96 | indeed. I got sick of Jekyll. |
23:03:50 | gradha | I'll convert to dom96's religion whenever he publishes his |
23:04:05 | dom96 | gradha: Yes. Become a ipsumarian. |
23:04:22 | gradha | ipsumarianism sounds good |
23:04:31 | io2 | jekyll if overcomplicating simple stuff |
23:04:34 | io2 | is* |
23:05:02 | dom96 | My static blog generator is already on github btw: https://github.com/dom96/ipsumgenera |
23:05:37 | dom96 | I wrote it very quickly though, so docs could be improved. |
23:05:45 | dom96 | And most of the rst AST is still not implemented heh |
23:05:52 | gradha | dom96 that's why I'm watiting for the real example |
23:06:05 | * | dom96 hopes people will love his design |
23:06:22 | io2 | thanks for the tips guys, so far it seems an interesting language |
23:06:40 | gradha | how many gods does ipsumarianism pray to? still have a few slots free |
23:06:53 | io2 | later all |
23:06:58 | gradha | io2: bye |
23:06:59 | * | io2 quit () |
23:07:30 | zahary | Araq, what plans did you have about the "generic" keyword? |
23:08:19 | Araq | zahary: quite like rust's "impl" keyword |
23:09:02 | Araq | generic TTable[TKey, TValue]: |
23:09:11 | dom96 | hrm, is that like type classes in haskell? |
23:09:17 | Araq | proc get(self; k: TKey): TValue |
23:09:46 | * | Sergio965 joined #nimrod |
23:09:52 | dom96 | hrm, I guess not. |
23:09:58 | Araq | dom96: no it's only sugar to avoid some typing |
23:10:05 | dom96 | indeed. I remember suggesting it. |
23:10:16 | dom96 | How did we end up with the 'generic' keyword for it? |
23:10:48 | dom96 | hrm, well. I guess it is a bit different to what I suggested. |
23:11:01 | Araq | well some other plan just was: |
23:11:11 | Araq | generic TKey, TValue: |
23:11:25 | dom96 | I'm thinking of: |
23:11:36 | Araq | proc get(self: TTable[TKey, TValue], key: TKey): TValue |
23:12:09 | Araq | and here it's obvious why it's called "generic" |
23:12:23 | dom96 | with (foo: TObject): proc blah() = # foo is the first param that blah takes. |
23:13:03 | Araq | well thanks to zahary's awesome generics it's not necessary anymore |
23:13:12 | Araq | so it's free for anything |
23:13:53 | dom96 | what's not necessary anymore? |
23:13:59 | zahary | I plan to use it for my user-defined type classes syntax |
23:14:28 | zahary | type Container = generic value |
23:14:28 | zahary | value.size is int |
23:14:29 | zahary | items(value) is iterator |
23:15:03 | Araq | that's fine syntactically |
23:15:20 | BitPuffin | zahary: does the stuffs work yet? :D |
23:15:22 | Araq | not sure if it's the right thing to do :P |
23:16:54 | zahary | the indented block is arbitrary statements that should compile. this is really awesome way to solve the problem because it allows you to encode protocols without committing to certain types |
23:17:07 | dom96 | hrm, interesting. Does that actually check for the presence of a field of name 'size' and type 'int'? |
23:17:17 | dom96 | So the type class will match any type with that field? |
23:17:36 | zahary | type Foo = generic value |
23:17:36 | zahary | var x = value.getImplementationDetail |
23:17:36 | zahary | x.foo(10, 20) is AnotherTypeClass |
23:17:57 | Araq | zahary: ah so 'items' can be a fuzzy iterator with default params etc. |
23:18:09 | Araq | well the parameter list can be fuzzy |
23:18:16 | Araq | that's good |
23:18:27 | zahary | everything can be fuzzy, as I said arbitrary code |
23:18:37 | zahary | it just happens that the is operator is useful for the common case |
23:18:57 | Araq | hmm |
23:19:13 | Araq | well you got a list of statements of "bool" then, which is something new |
23:19:45 | Araq | currently only the last statement of a block may yield a non-void type |
23:19:47 | dom96 | from your latest example: does that mean that a type can have a field which is in fact a type class? |
23:21:51 | zahary | well, I know the gritty details - it does require a bit special treatment and there will be a semTypeClassMatch(T, StmtList) :) |
23:23:03 | zahary | there are also some other tricks like modifying the input expression (for implementing conversions ala varargs[string, $] and implementing stuff similar to scals's implicit traits) |
23:23:13 | zahary | I'll abuse the return keyword for this |
23:23:20 | Araq | hmm |
23:23:31 | Araq | I don't know |
23:23:44 | Araq | but in general feel free to introduce a better keyword |
23:23:55 | Araq | and also a new tyWhatever in the compiler |
23:24:05 | Araq | tyExpr is heavily overloaded now I think |
23:24:25 | zahary | another feature is that it's possible to modify the error string |
23:24:25 | zahary | type Foo = generic value |
23:24:26 | zahary | must "implement a copy constructor": |
23:24:26 | zahary | check particularly for this |
23:24:31 | Araq | add it at the end and ensure it doesn't end up in RTTI and it should be fine |
23:25:32 | EXetoC | value is the right term? |
23:25:36 | * | jdpo is now known as jdpo|away |
23:25:49 | zahary | dom96, no. the `is` operator checks that a particular value belongs to the type class |
23:26:07 | zahary | e.g. |
23:26:07 | zahary | var x = 10 |
23:26:07 | zahary | x is int | string -> true |
23:26:07 | zahary | x is Container -> false |
23:27:00 | dom96 | yes, and 'x is Container' will return true iff 'x' is an object with a 'size' field and which implements an items iterator? |
23:27:08 | EXetoC | what about constraints as part of the declaration for procs and templates? |
23:27:16 | zahary | EXetoC, the value name is actually up to the user |
23:27:16 | zahary | type Foo = generic x is also fine |
23:27:28 | EXetoC | ok |
23:27:41 | zahary | when you create the type class, it then can be used in implicitly generic procs (and regular generics) |
23:27:49 | zahary | proc foo(x: Container) |
23:28:11 | dom96 | (and of course when that 'size' field is in fact an int) |
23:28:36 | zahary | dom96, yes |
23:28:45 | dom96 | cool |
23:29:09 | BitPuffin | wow a lot of people came by thanks to that HN post lol |
23:30:20 | zahary | BitPuffin, btw the matrix fixes are in |
23:30:29 | dom96 | Doesn't really feel like a lot. Now if this channel had 100 people by now, that would be a lot :P |
23:30:46 | Araq | dom96: steter Tropfen höhlt den Stein |
23:30:49 | EXetoC | this is similar to what D has done with ranges I think, just less tedious |
23:31:19 | zahary | it's very similar to the lite concepts proposal for C++ 14 |
23:31:30 | Araq | "Constant dripping wears away the stone." |
23:31:31 | EXetoC | no need to add "isInputRange!R" everywhere |
23:31:50 | dom96 | Araq: Lubię jeść gówno krów? |
23:31:50 | zahary | only they don't have our implicit generic awesomeness |
23:32:04 | dom96 | aww, I was close. |
23:32:05 | Araq | meh english proverbs are strange |
23:32:09 | BitPuffin | zahary: yay!! |
23:32:12 | gradha | dom96: graz w piegi? |
23:32:36 | dom96 | gradha: nie mam pojęcia co to piegi są. |
23:32:47 | EXetoC | kurwa |
23:32:52 | dom96 | mać |
23:33:01 | gradha | twoja? |
23:33:23 | dom96 | mama? |
23:33:35 | Araq | stop it |
23:33:40 | dom96 | It's funny what that translates to literally, but it isn't actually used that way in Polish. |
23:34:05 | Araq | 1 german saying per night is allowed, otherwise speak english :P |
23:34:19 | dom96 | Araq: No, I demand being able to speak Polish in this channel. |
23:34:31 | gradha | I demand to invade Poland |
23:34:33 | Araq | check out #nimrod-polish then |
23:35:03 | dom96 | gradha: Go ahead. I live in Ireland anyway. |
23:35:23 | gradha | dom96: come on, it will be fun! |
23:35:45 | EXetoC | lök |
23:36:20 | dom96 | gradha: ok, lets invade it together. |
23:36:32 | dom96 | Araq: You have only yourself to blame :P |
23:36:34 | gradha | yes, and you know polish, so you could be my personal translator |
23:36:38 | Araq | meh, we've been there, done that |
23:36:47 | dom96 | I should make NimBot speak Polish. |
23:36:56 | Araq | poor resistance |
23:36:58 | dom96 | and only polish |
23:37:02 | Araq | the french did somewhat better I think |
23:37:08 | EXetoC | svn co #nimrod-polish? |
23:37:25 | dom96 | Yet we survived in the end didn't we? |
23:37:39 | Araq | yeah but only the Pope was on your side |
23:37:43 | Araq | *because |
23:38:46 | dom96 | In the end practically everyone was on our side. |
23:39:04 | gradha | pangea ftw! |
23:42:12 | EXetoC | da pope is ugly |
23:42:15 | EXetoC | and old |
23:42:21 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
23:42:28 | dom96 | The new pope is cool though, right? |
23:42:48 | EXetoC | who? |
23:43:11 | dom96 | Dunno. Some guy from argentina or brazil or somewhere. |
23:51:23 | * | fowl joined #nimrod |
23:51:41 | Araq | hi fowl |
23:51:56 | BitPuffin | Guys you forgot to mention that I will also blog about nimrod :( |
23:52:11 | fowl | hi |
23:52:12 | fowl | whats new in nimrod land |
23:52:17 | Araq | BitPuffin: well that's news to us |
23:52:19 | dom96 | where have you been fowl? |
23:52:20 | gradha | BitPuffin: do you already have a blog? |
23:53:31 | fowl | dom96, trying to become un-homeless |
23:53:35 | fowl | no, not successful |
23:53:58 | fowl | i dont have much time these days for computering |
23:54:05 | dom96 | oh, that sucks. |
23:54:53 | fowl | yea and my phone was stolen yesterday |
23:54:59 | EXetoC | >.< |
23:55:20 | fowl | it was my fault tho, i was drunk |
23:55:30 | Araq | fowl: the bugs in the evaluation engine are hopefully gone very soon as we got a new one |
23:55:35 | BitPuffin | gradha: I do, but I am moving to my own one eventually, and when I have done that I will blog about nimrod |
23:55:43 | BitPuffin | Araq: No, dom96 knows about it :) |
23:55:54 | dom96 | oh no. Now i'll get the blame. |
23:56:10 | BitPuffin | dom96: yeah seriously wtf, we depend on you for this kind of stuff! >:( |
23:56:33 | dom96 | You can't expect me to remember everything!!! |
23:56:40 | BitPuffin | NO |
23:56:45 | * | dom96 :( |
23:56:47 | BitPuffin | BUT YOU SHOULD REMEMBER EVERYTHING ABOUT _ME_ |
23:56:55 | * | BitPuffin has god complex |
23:57:10 | dom96 | How dare you. I will get NimBot to teach you a lesson. |
23:57:18 | BitPuffin | NimBot: bring it! |
23:57:32 | dom96 | fowl: Did you see the new benchmarks? |
23:57:36 | fowl | no |
23:58:01 | dom96 | http://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/ |
23:58:10 | dom96 | oh and reddit discussion: http://www.reddit.com/r/programming/comments/1kxt7w/parallel_roguelike_levgen_benchmarks_rust_go_d/ |
23:58:46 | fowl | cool |
23:59:34 | Araq | dom96 didn't send my version of it :P |
23:59:42 | Araq | which was faster on my machine |
23:59:51 | dom96 | it was slower on mine :P |