00:07:31 | * | zielmicha quit (Remote host closed the connection) |
00:09:19 | * | io2 quit () |
00:10:56 | OrionPK | :-) |
00:25:09 | * | vendethiel quit (Remote host closed the connection) |
00:25:27 | * | vendethiel joined #nimrod |
00:37:08 | * | Mordecai joined #nimrod |
00:37:55 | * | psquid quit (Ping timeout: 245 seconds) |
00:38:52 | * | Mordecai is now known as psquid |
01:11:58 | * | icebattle quit (Quit: Leaving) |
01:30:36 | * | dmac quit (Quit: Leaving.) |
01:42:30 | * | Demos joined #nimrod |
01:45:40 | * | Demos quit (Client Quit) |
02:07:13 | * | dmac joined #nimrod |
02:09:06 | * | Demos joined #nimrod |
02:23:12 | * | DAddYE quit (Remote host closed the connection) |
02:23:48 | * | DAddYE joined #nimrod |
02:27:01 | * | [1]Endy joined #nimrod |
02:27:51 | dmac | Hi, I'm new to nimrod so sorry if this is explained somewhere. Nimrod is described as producing "small executables without dependencies", which I assumed meant it can produce statically-linked standalone executables, but I'm having trouble figuring out how to compile one. Am I missing something? |
02:28:11 | * | DAddYE quit (Ping timeout: 252 seconds) |
02:30:25 | Demos | what in particular is the problem, are you getting dependencies on shared libs? |
02:31:46 | * | jpoirier joined #nimrod |
02:32:33 | dmac | When I compile a basic file and run ldd on it, it shows some shared libraries. |
02:32:43 | dmac | libc.so.6, etc. |
02:33:17 | Demos | I am not on a linux box atm but I would try compiling with --passl:-static |
02:35:05 | Demos | nimrod programs use the standard C compiler and linker after being processed by nimrod, so the regular static linking stuff should work |
02:36:26 | dmac | Yep, that worked. Thanks for the easy fix! |
02:36:48 | Demos | no problem |
03:02:12 | fowl | Demos, what are you working on atm |
03:02:26 | Demos | I am idly browsing rotten tomatoes |
03:02:57 | Demos | before that I was working on a custom nimrod project type for visual studio |
03:03:01 | fowl | ah |
03:04:25 | Demos | I am actually going to be going to sleep soon, I have an airplane at 7AM tomorrow |
03:06:48 | fowl | where you flying to |
03:07:45 | Demos | Ann-Arbor |
03:08:01 | Demos | was going to leave yesterday but my flight got canceled |
03:08:23 | fowl | michigan? |
03:09:16 | Demos | yeah |
03:10:31 | fowl | but its winter time.. its going to be uber cold |
03:12:17 | Demos | well classes start tomorrow |
03:12:23 | Demos | but yeah |
03:12:36 | Demos | oh shit I gotta make sure I have bus arrangements |
03:14:23 | * | [1]Endy quit (Ping timeout: 252 seconds) |
03:16:56 | * | dmac quit (Quit: Leaving.) |
03:17:34 | Demos | this is goddamn insane |
03:24:31 | * | DAddYE joined #nimrod |
03:28:38 | * | DAddYE quit (Ping timeout: 240 seconds) |
03:33:01 | Demos | nn |
03:33:25 | fowl | gn |
03:37:55 | * | Demos quit (Ping timeout: 272 seconds) |
03:52:50 | * | dmac joined #nimrod |
04:18:39 | * | dmac quit (Quit: Leaving.) |
05:20:51 | * | dmac joined #nimrod |
05:25:15 | * | dmac quit (Ping timeout: 252 seconds) |
05:37:43 | * | brson quit (Quit: leaving) |
05:38:00 | * | brson joined #nimrod |
06:21:07 | * | dmac joined #nimrod |
06:25:47 | * | dmac quit (Ping timeout: 252 seconds) |
06:58:55 | * | XAMPP joined #nimrod |
07:03:20 | * | brson quit (Quit: leaving) |
07:21:25 | * | ddl_smurf joined #nimrod |
07:21:28 | * | dmac joined #nimrod |
07:25:40 | * | dmac quit (Ping timeout: 246 seconds) |
07:48:07 | * | achim joined #nimrod |
07:51:33 | * | dmac joined #nimrod |
07:55:46 | * | dmac quit (Ping timeout: 246 seconds) |
08:32:32 | * | Araq_ joined #nimrod |
08:46:38 | * | Araq_ quit (Ping timeout: 240 seconds) |
08:49:31 | * | Araq_ joined #nimrod |
08:50:47 | * | Araq_ quit (Client Quit) |
08:51:58 | * | dmac joined #nimrod |
08:56:31 | * | dmac quit (Ping timeout: 252 seconds) |
09:24:12 | * | Araq_ joined #nimrod |
09:42:33 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]) |
09:52:17 | * | dmac joined #nimrod |
09:57:04 | * | dmac quit (Ping timeout: 265 seconds) |
09:58:38 | * | achim quit (Ping timeout: 252 seconds) |
10:05:05 | * | achim joined #nimrod |
10:10:14 | * | achim quit (Ping timeout: 240 seconds) |
10:11:01 | * | achim joined #nimrod |
10:16:41 | * | CarpNet joined #nimrod |
10:22:17 | * | aftersha_ joined #nimrod |
10:52:38 | * | dmac joined #nimrod |
10:54:26 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
10:57:29 | * | dmac quit (Ping timeout: 265 seconds) |
11:37:10 | * | dmac joined #nimrod |
11:46:19 | * | wan joined #nimrod |
11:47:29 | wan | Hi. Is dom96 around? |
11:47:46 | dom96 | yes |
11:47:52 | wan | The framework benchmarks is going to have another round soon |
11:48:05 | wan | I have stuff that you could use for the jester example |
11:48:44 | wan | https://github.com/idlewan/nawak/blob/master/example/nawak_app.nim |
11:49:09 | wan | Basically, I made a jester-like micro-framework just to test out the Mongrel2 server (not scgi, not html) |
11:50:03 | wan | I made modifications to bindings for postgre |
11:50:24 | dom96 | hrm, maybe it would be worth submitting it to the framework benchmarks? |
11:50:35 | wan | yes yes, that was my next step |
11:50:51 | dom96 | how's the performance? |
11:51:10 | wan | better than jester thanks to mongrel2, but half as good as go |
11:51:37 | wan | When I'll have the time, I'll make bindings for monkey and we'll take the first place performance-wise |
11:51:37 | dom96 | What's stopping it from being just as good as Go? |
11:52:56 | wan | Because it works in two parts (mongrel2 communicating through zeromq sockets to the app), there might be overhead there. |
11:53:11 | wan | That's why the monkey and duda stuff will be really good |
11:53:23 | dom96 | hrm, does it scale well over multiple cores? |
11:54:03 | wan | nawak, yes, because the zeroMQ pub and sub stuff does it automatically if I recall |
11:54:19 | wan | So only one app worker is enough |
11:54:52 | wan | Oh, of course when I say 'half as go', that only works for json and plaintext tests. I haven't tested the go stuff with a database |
11:56:43 | * | achim quit (Quit: Computer has gone to sleep.) |
12:12:44 | * | dmac quit (Quit: Leaving.) |
12:13:55 | * | io2 joined #nimrod |
12:13:57 | * | radsoc joined #nimrod |
12:13:59 | * | achim joined #nimrod |
12:15:28 | * | dmac joined #nimrod |
12:21:47 | * | faassen joined #nimrod |
12:39:06 | * | XAMPP_ joined #nimrod |
12:42:38 | * | XAMPP quit (Ping timeout: 252 seconds) |
12:49:21 | * | darkf quit (Quit: Leaving) |
13:04:43 | * | wan quit (Ping timeout: 252 seconds) |
13:12:26 | * | wan joined #nimrod |
13:23:16 | * | Araq_ joined #nimrod |
13:33:45 | Araq_ | wan: when is the deadline for that benchmark? I have a new thread pool implementation in the works that might be ready for this test |
13:33:45 | Araq_ | might kick ass, might suck, I have no idea yet :-) |
13:36:23 | * | dmac quit (Quit: Leaving.) |
13:36:24 | wan | https://groups.google.com/forum/?fromgroups=#!topic/framework-benchmarks/-D6mXi9N5qw |
13:37:08 | wan | It's not clear when is the deadline because of the last message |
13:37:27 | wan | There is a preview round before the real ETA |
13:45:03 | Araq_ | hmm so 1 day left. I don't think that's enough |
13:45:25 | Araq_ | but I'll try, bbl |
13:45:25 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]) |
13:59:28 | wan | The last message of the ggroup says that they'll be late anyway and it's TBD instead, so you might have a week or more |
14:07:05 | * | dmac joined #nimrod |
14:15:51 | * | dmac quit (Ping timeout: 252 seconds) |
14:28:39 | OrionPK | well, we'll eventually win all the benchmarks:-P |
14:52:05 | wan | Definitely. But I think being featured in benchmarks is super important for the popularity of Nimrod. |
14:53:12 | wan | Once Nimrod gets popular enough, we'll be more and more able to program in it while being paid :) |
15:00:58 | OrionPK | who makes money off of programming languages? :P |
15:06:01 | wan | I meant you'd prefer being employed programming in Nimrod than being empoyed programming in whatever |
15:11:56 | * | dmac joined #nimrod |
15:13:52 | wan | Hi dmac! |
15:16:31 | * | dmac quit (Ping timeout: 260 seconds) |
15:16:37 | * | brson joined #nimrod |
15:47:58 | EXetoC | dom96: Can 'get' bodies in Jester be evaluated when requested rather than just once? |
15:49:52 | EXetoC | actually, that might not be the problem |
15:54:29 | * | radsoc quit (Ping timeout: 272 seconds) |
15:54:53 | EXetoC | it's obviously my templates that needs to be reloaded, and that has nothing to do with that. maybe a shared lib is needed in that case. |
15:58:54 | EXetoC | or just a simple recursive modification time checker |
15:59:11 | dom96 | The code in the body of 'get' gets executed for each request which matches the 'get' pattern |
16:00:57 | EXetoC | yes |
16:12:18 | * | dmac joined #nimrod |
16:16:58 | * | dmac quit (Ping timeout: 265 seconds) |
16:38:18 | * | [1]Endy joined #nimrod |
16:45:41 | * | Zor_ quit (Ping timeout: 246 seconds) |
17:07:10 | * | icebattle joined #nimrod |
17:12:41 | * | dmac joined #nimrod |
17:12:47 | * | [2]Endy joined #nimrod |
17:14:13 | icebattle | Is there a roadmap for Nimrod leading to the 1.0 release? |
17:14:51 | dom96 | A small one is at the bottom of http://nimrod-lang.org/ |
17:15:21 | dom96 | Araq's todo is more in-depth: https://github.com/Araq/Nimrod/blob/master/todo.txt |
17:15:23 | icebattle | Thanks. I shoulda read to the bottom! |
17:16:15 | * | [1]Endy quit (Ping timeout: 276 seconds) |
17:16:21 | icebattle | I'm still very green here - I found the reference to nimrod in a Dr Dobbs posting yesterday. |
17:17:01 | dom96 | Cool. That must be Araq's article. |
17:17:08 | dom96 | Are you a Dr Dobbs subscriber? |
17:17:17 | icebattle | And it looks super promising. I'm a little burned with Rust, and Go is a bit too big for what I'm looking for. |
17:17:23 | * | dmac quit (Ping timeout: 265 seconds) |
17:17:38 | * | radsoc joined #nimrod |
17:17:41 | icebattle | I get the email they send out. |
17:17:55 | icebattle | It says there's a bigger write up coming this onth. |
17:18:09 | icebattle | "month" |
17:18:09 | dom96 | cool |
17:18:19 | dom96 | So it's just like a teaser? heh |
17:19:10 | icebattle | Yeah - but when I saw the link and what they said about nimrod, my hair stood up |
17:19:31 | dom96 | What did they say exactly? |
17:19:51 | icebattle | http://www.drdobbs.com/jvm/the-rise-and-fall-of-languages-in-2013/240165192 |
17:20:57 | icebattle | Not a lot of detail unfortunately |
17:21:28 | dom96 | That's still awesome. |
17:21:50 | dom96 | If you want to read more about Nimrod you can take a look at my blog post in the meantime: http://picheta.me/articles/2013/10/about-nimrods-features.html |
17:22:03 | icebattle | I thought it was very fair, and it sure wet my appetite |
17:22:18 | icebattle | Absolutely. Thanks. |
17:22:54 | dom96 | Araq's talk at the emerging langs conference will also be out soon (13th IIRC). So that's something to look forward to as well. |
17:25:58 | icebattle | Great. I'm surprised at how under the radar nimrod is. There are a lot of people looking for native languages with simpler syntax than C++. I've been playing with Rust, but it didn't feel right. D is neat, but even a little too big. |
17:27:10 | * | faassen left #nimrod (#nimrod) |
17:28:27 | * | q66_ joined #nimrod |
17:28:40 | dom96 | Yeah, but it's hard to break through when you don't have Google or Mozilla supporting you. |
17:29:18 | dom96 | We simply don't have the time to work on Nimrod and to write blog posts advertising all of its great features. |
17:30:18 | icebattle | haha. I understand. |
17:32:23 | * | q66 quit (Ping timeout: 252 seconds) |
17:41:45 | * | DAddYE joined #nimrod |
17:44:29 | * | [1]Endy joined #nimrod |
17:46:37 | * | Mat3 joined #nimrod |
17:47:13 | Mat3 | G'Day |
17:48:09 | * | [2]Endy quit (Ping timeout: 252 seconds) |
17:51:06 | wan | I've made my pull request to FrameworkBenchmarks |
17:51:46 | Mat3 | hi wan |
17:52:00 | wan | Hi |
18:07:29 | * | io2 quit (Ping timeout: 272 seconds) |
18:11:04 | * | io2 joined #nimrod |
18:11:09 | * | io2 quit (Changing host) |
18:11:09 | * | io2 joined #nimrod |
18:11:17 | * | wan quit (Ping timeout: 272 seconds) |
18:12:59 | * | dmac joined #nimrod |
18:15:34 | * | wan joined #nimrod |
18:15:37 | * | wan quit (Client Quit) |
18:15:45 | * | wan joined #nimrod |
18:17:45 | * | dmac quit (Ping timeout: 252 seconds) |
18:25:46 | * | q66_ is now known as q66 |
18:35:19 | * | dmac joined #nimrod |
18:37:11 | Araq | wow |
18:37:21 | Araq | somebody improved c2nim quite a bit! |
18:38:39 | dom96 | it appears to be an infant eating cake. |
18:39:34 | dom96 | well, toddler. |
18:39:55 | * | Mordecai joined #nimrod |
18:40:48 | dom96 | Araq: Does c2nim have any tests? |
18:41:05 | Araq | yes |
18:41:14 | Araq | 2 tests |
18:41:16 | Araq | though they are excessive :P |
18:41:56 | * | psquid quit (Read error: Operation timed out) |
18:42:35 | * | Mordecai is now known as psquid |
18:43:32 | * | silven_ is now known as silven |
18:46:19 | * | CarpNet quit (Quit: Leaving) |
18:56:54 | OrionPK | improved it in what way/ |
18:57:47 | dom96 | Read the PR, it tells you. |
19:17:13 | Araq | uh oh |
19:17:38 | Araq | I need the intrinsic for "pause" ... |
19:19:08 | Araq | ping Mat3 |
19:24:56 | Mat3 | hi Araq! |
19:27:14 | Mat3 | sorry, which of the many ways of x86 dependent synchronisation do you prefer ? |
19:28:06 | * | Mat3 bit confused because currently involved in a heavy debugging session, sorry |
19:28:20 | Araq | the "pause" instruction aka "rep nop" |
19:28:50 | Araq | when defined(gcc) and (defined(x86) or defined(amd64)): |
19:28:52 | Araq | proc pause {.inline.} = |
19:28:53 | Araq | asm """volatile("pause" ::: "memory");""" |
19:28:58 | Araq | will that work? |
19:29:00 | Mat3 | no |
19:31:26 | Araq | care to elaborate? |
19:32:09 | Mat3 | for Intel cpu's it is not garanted that the pipeline flush is eleminated (as noted in the official Intel documentation) |
19:33:59 | Mat3 | it's safe for AMD cpu's as I know however |
19:34:16 | Araq | well I have a polling loop and do "pause" for 1000 times before I call os.sleep(10) |
19:36:27 | Mat3 | in this scenario it would work of course |
19:37:29 | Mat3 | (simply because you can assume that in relation to OOO execution one delayered flush is executed) |
19:48:56 | Mat3 | ok, after reading in my handbook, you can also the 'wbinvd' opcode as alternative because flushing all caches forces a pipeline flush also (beware I have not tested this behaviour) |
19:49:05 | Mat3 | ^also use |
19:53:06 | Mat3 | the drawback of this method is: The instruction is only valid at GP0 level |
19:57:18 | Mat3 | (hint: using these instruction alone would halt the processor because execution is continued independent of the cache state. You must add an absolute branch to initiate flashing right after) |
19:58:25 | Mat3 | does this help ? |
19:59:37 | Araq | sure |
19:59:43 | Araq | next question |
20:00:26 | Araq | I need "atomicIfTrueThenSetToFalse" |
20:01:07 | Araq | not "compareAndSwap" as that always swaps |
20:01:47 | Mat3 | use one of the cmov instuctions and hold the flag state in a register |
20:02:11 | Araq | if x.ready: |
20:02:15 | Araq | x.ready = false |
20:02:27 | Araq | code follows here |
20:02:47 | Araq | but this "if x.ready: x.ready = false" needs to be atomic |
20:02:53 | Araq | are you sure cmov does that? |
20:05:22 | Mat3 | xor r8, r8 (zero register = false), mov r9, 1 (true flag), cmp <mem ptr>, r8, cmoveq r8,r9 |
20:06:02 | Mat3 | (the cmovx mnemonics can differing from assembler to assembler) |
20:18:20 | * | gradha joined #nimrod |
20:21:04 | Mat3 | hi gradha |
20:21:10 | gradha | hi Mat3 |
20:44:38 | * | [2]Endy joined #nimrod |
20:48:07 | * | [1]Endy quit (Ping timeout: 265 seconds) |
20:49:17 | Mat3 | hmm, seem I've found a bug in the memory-managment routines . Freeing priour allocated and per mprotect correctly remarked memory can lead to an kernel-exception if freed (because the memory pointer somehow get invalidated in between)... strange |
20:51:21 | Mat3 | (that's a bug in linux's libC not Nimrod to be precise) |
20:55:35 | Araq | ok |
20:56:45 | Araq | I hope you're right and it's not nimrod which corrupted your pointer |
20:57:04 | Araq | btw alloc() and dealloc() are thread-local, something to keep in mind |
20:57:11 | * | Mat3 I think this behaviour can lead to security problems because theoretical a simple application without admin rights would be able to scan for such memory areas and use them for code injection somehow |
20:58:41 | Mat3 | I can reproduce it with other languages as Nimrod |
20:58:48 | Araq | ok |
20:59:18 | Araq | well another thing to keep in mind is that munmap() can free the whole block allocated with mmap() |
20:59:28 | Araq | and not just the pages that you explicitly free |
20:59:31 | Araq | it's crazy |
20:59:40 | Araq | took my weeks to figure out |
20:59:43 | Araq | *me |
21:00:44 | Mat3 | yes, that's the reason why I prefer allocation with valloc (which is sadly not part of POSIX) |
21:03:21 | Mat3 | hint: This function is not includes in the Nimrod wrapper although both linux and all known BSD's support it |
21:03:30 | Mat3 | ^included |
21:04:03 | * | [1]Endy joined #nimrod |
21:06:13 | * | Mat3 the rational reasons behind mmap's interface are somewhat questionable in my opinion |
21:07:00 | * | [2]Endy quit (Ping timeout: 260 seconds) |
21:07:38 | Araq | Mat3: well I don't know valloc and why should I wrap something which might have even bigger issues than mmap? ;-) |
21:10:23 | Mat3 | mmaps interface is inconsequental, This situation can not get any worse |
21:10:29 | Mat3 | ^mmap's |
21:11:22 | Araq | *shrug* it's the low level memory management routine though. is valloc in libc or in the kernel? does vfree even exist? questions over questions |
21:12:57 | Mat3 | valloc is implemented in linux as instrinsic kernal function (as I know). I think this applies also to the BSD's |
21:17:39 | * | [1]Endy quit (Ping timeout: 260 seconds) |
21:18:00 | Mat3 | hmm. you can emulate it though calling memalign(sysconf(_SC_PAGESIZE),size) [I think this function is POSIX conform] |
21:22:11 | Mat3 | ok, linux do not have an valloc like syscall... that's ... bad |
21:26:14 | OrionPK | http://www.chris-granger.com/2014/01/07/light-table-is-open-source/ |
21:26:18 | OrionPK | nimrod support, ho! |
21:26:57 | OrionPK | https://github.com/LightTable/LightTable |
21:27:16 | OrionPK | dom96 theres your new base for aporia :p |
21:29:06 | * | aftersha_ joined #nimrod |
21:35:43 | Mat3 | hi OrionPK |
21:40:29 | OrionPK | hola |
21:42:09 | Mat3 | LightTable is some kind of IDE, right ? |
21:47:28 | OrionPK | yep |
21:47:30 | OrionPK | texteditor/ide |
21:56:00 | Mat3 | just take a look at there intoduction video. I found it amazing that this IDE shows essential the same ideas forth and lisp environments are known for decades before |
21:56:09 | Mat3 | ^introduction |
21:58:40 | Mat3 | get some sleep, ciao |
21:58:51 | gradha | good night Mat3 |
21:58:54 | * | Mat3 quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
22:11:19 | * | achim quit (Quit: Computer has gone to sleep.) |
22:29:21 | Araq | gradha: I'm implementing a prototype for "spawn" and there is a beautiful solution for nimrod's thread local heaps |
22:29:57 | Araq | but this means the implementation can't support Grand central dispatch :P |
22:32:09 | gradha | does your solution scale down with other apps running on the system? |
22:32:59 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
22:33:53 | Araq | no, it's aggressive to win benchmarks |
22:34:50 | Araq | it doesn't play nice with anything, not even with itself |
22:35:21 | Araq | creates 100 threads and misuses the OS's scheduler |
22:39:17 | gradha | Nimrod: expressing unix fork bombs efficiently, with style |
22:40:51 | Araq | more seriously though "spawn" is now blocking |
22:41:29 | Araq | and thus I get inter thread communication with 1 copy of the message instead of 2 |
22:41:41 | Araq | and 1 lock acquisition instead of 2 |
22:42:03 | Araq | I'm writing a blog post about it :P |
22:43:13 | gradha | is it another of those fight club style posts? |
22:43:32 | Araq | hey |
22:43:44 | Araq | are my others "fight club style"? |
22:44:01 | gradha | well, the first rule of fight club is you don't talk about fight club |
22:45:35 | Araq | ah that's what you mean |
22:45:58 | Araq | well ... my prototype doesn't crash, that's good |
22:46:08 | Araq | it also doesn't produce valid output, that's bad |
22:47:17 | gradha | can I add to rstgen a `foo-bar`:autolink: style syntax for hyperlinking of stuff in the docs? |
22:47:44 | Araq | ok |
22:47:50 | Araq | sounds good |
22:48:37 | Araq | maybe even something shorter like "a" instead of "autolink" |
23:05:57 | * | radsoc quit (Ping timeout: 245 seconds) |
23:09:55 | * | darkf joined #nimrod |
23:11:49 | * | io2 quit () |
23:14:47 | * | io2 joined #nimrod |
23:16:15 | OrionPK | varriount found another bug |
23:16:21 | OrionPK | it starts a doc comment after normal comments |
23:25:44 | Araq | that's a feature :P |
23:37:43 | Araq | good night |
23:37:48 | gradha | good night |
23:37:56 | * | gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again) |
23:57:07 | * | io2 quit () |