<< 08-01-2014 >>

00:07:31*zielmicha quit (Remote host closed the connection)
00:09:19*io2 quit ()
00:10:56OrionPK:-)
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:51dmacHi, 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:25Demoswhat in particular is the problem, are you getting dependencies on shared libs?
02:31:46*jpoirier joined #nimrod
02:32:33dmacWhen I compile a basic file and run ldd on it, it shows some shared libraries.
02:32:43dmaclibc.so.6, etc.
02:33:17DemosI am not on a linux box atm but I would try compiling with --passl:-static
02:35:05Demosnimrod programs use the standard C compiler and linker after being processed by nimrod, so the regular static linking stuff should work
02:36:26dmacYep, that worked. Thanks for the easy fix!
02:36:48Demosno problem
03:02:12fowlDemos, what are you working on atm
03:02:26DemosI am idly browsing rotten tomatoes
03:02:57Demosbefore that I was working on a custom nimrod project type for visual studio
03:03:01fowlah
03:04:25DemosI am actually going to be going to sleep soon, I have an airplane at 7AM tomorrow
03:06:48fowlwhere you flying to
03:07:45DemosAnn-Arbor
03:08:01Demoswas going to leave yesterday but my flight got canceled
03:08:23fowlmichigan?
03:09:16Demosyeah
03:10:31fowlbut its winter time.. its going to be uber cold
03:12:17Demoswell classes start tomorrow
03:12:23Demosbut yeah
03:12:36Demosoh 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:34Demosthis is goddamn insane
03:24:31*DAddYE joined #nimrod
03:28:38*DAddYE quit (Ping timeout: 240 seconds)
03:33:01Demosnn
03:33:25fowlgn
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:29wanHi. Is dom96 around?
11:47:46dom96yes
11:47:52wanThe framework benchmarks is going to have another round soon
11:48:05wanI have stuff that you could use for the jester example
11:48:44wanhttps://github.com/idlewan/nawak/blob/master/example/nawak_app.nim
11:49:09wanBasically, I made a jester-like micro-framework just to test out the Mongrel2 server (not scgi, not html)
11:50:03wanI made modifications to bindings for postgre
11:50:24dom96hrm, maybe it would be worth submitting it to the framework benchmarks?
11:50:35wanyes yes, that was my next step
11:50:51dom96how's the performance?
11:51:10wanbetter than jester thanks to mongrel2, but half as good as go
11:51:37wanWhen I'll have the time, I'll make bindings for monkey and we'll take the first place performance-wise
11:51:37dom96What's stopping it from being just as good as Go?
11:52:56wanBecause it works in two parts (mongrel2 communicating through zeromq sockets to the app), there might be overhead there.
11:53:11wanThat's why the monkey and duda stuff will be really good
11:53:23dom96hrm, does it scale well over multiple cores?
11:54:03wannawak, yes, because the zeroMQ pub and sub stuff does it automatically if I recall
11:54:19wanSo only one app worker is enough
11:54:52wanOh, 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:45Araq_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:45Araq_might kick ass, might suck, I have no idea yet :-)
13:36:23*dmac quit (Quit: Leaving.)
13:36:24wanhttps://groups.google.com/forum/?fromgroups=#!topic/framework-benchmarks/-D6mXi9N5qw
13:37:08wanIt's not clear when is the deadline because of the last message
13:37:27wanThere is a preview round before the real ETA
13:45:03Araq_hmm so 1 day left. I don't think that's enough
13:45:25Araq_but I'll try, bbl
13:45:25*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310])
13:59:28wanThe 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:39OrionPKwell, we'll eventually win all the benchmarks:-P
14:52:05wanDefinitely. But I think being featured in benchmarks is super important for the popularity of Nimrod.
14:53:12wanOnce Nimrod gets popular enough, we'll be more and more able to program in it while being paid :)
15:00:58OrionPKwho makes money off of programming languages? :P
15:06:01wanI meant you'd prefer being employed programming in Nimrod than being empoyed programming in whatever
15:11:56*dmac joined #nimrod
15:13:52wanHi dmac!
15:16:31*dmac quit (Ping timeout: 260 seconds)
15:16:37*brson joined #nimrod
15:47:58EXetoCdom96: Can 'get' bodies in Jester be evaluated when requested rather than just once?
15:49:52EXetoCactually, that might not be the problem
15:54:29*radsoc quit (Ping timeout: 272 seconds)
15:54:53EXetoCit'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:54EXetoCor just a simple recursive modification time checker
15:59:11dom96The code in the body of 'get' gets executed for each request which matches the 'get' pattern
16:00:57EXetoCyes
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:13icebattleIs there a roadmap for Nimrod leading to the 1.0 release?
17:14:51dom96A small one is at the bottom of http://nimrod-lang.org/
17:15:21dom96Araq's todo is more in-depth: https://github.com/Araq/Nimrod/blob/master/todo.txt
17:15:23icebattleThanks. I shoulda read to the bottom!
17:16:15*[1]Endy quit (Ping timeout: 276 seconds)
17:16:21icebattleI'm still very green here - I found the reference to nimrod in a Dr Dobbs posting yesterday.
17:17:01dom96Cool. That must be Araq's article.
17:17:08dom96Are you a Dr Dobbs subscriber?
17:17:17icebattleAnd 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:41icebattleI get the email they send out.
17:17:55icebattleIt says there's a bigger write up coming this onth.
17:18:09icebattle"month"
17:18:09dom96cool
17:18:19dom96So it's just like a teaser? heh
17:19:10icebattleYeah - but when I saw the link and what they said about nimrod, my hair stood up
17:19:31dom96What did they say exactly?
17:19:51icebattlehttp://www.drdobbs.com/jvm/the-rise-and-fall-of-languages-in-2013/240165192
17:20:57icebattleNot a lot of detail unfortunately
17:21:28dom96That's still awesome.
17:21:50dom96If 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:03icebattleI thought it was very fair, and it sure wet my appetite
17:22:18icebattleAbsolutely. Thanks.
17:22:54dom96Araq'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:58icebattleGreat. 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:40dom96Yeah, but it's hard to break through when you don't have Google or Mozilla supporting you.
17:29:18dom96We simply don't have the time to work on Nimrod and to write blog posts advertising all of its great features.
17:30:18icebattlehaha. 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:13Mat3G'Day
17:48:09*[2]Endy quit (Ping timeout: 252 seconds)
17:51:06wanI've made my pull request to FrameworkBenchmarks
17:51:46Mat3hi wan
17:52:00wanHi
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:11Araqwow
18:37:21Araqsomebody improved c2nim quite a bit!
18:38:39dom96it appears to be an infant eating cake.
18:39:34dom96well, toddler.
18:39:55*Mordecai joined #nimrod
18:40:48dom96Araq: Does c2nim have any tests?
18:41:05Araqyes
18:41:14Araq2 tests
18:41:16Araqthough 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:54OrionPKimproved it in what way/
18:57:47dom96Read the PR, it tells you.
19:17:13Araquh oh
19:17:38AraqI need the intrinsic for "pause" ...
19:19:08Araqping Mat3
19:24:56Mat3hi Araq!
19:27:14Mat3sorry, 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:20Araqthe "pause" instruction aka "rep nop"
19:28:50Araqwhen defined(gcc) and (defined(x86) or defined(amd64)):
19:28:52Araq proc pause {.inline.} =
19:28:53Araq asm """volatile("pause" ::: "memory");"""
19:28:58Araqwill that work?
19:29:00Mat3no
19:31:26Araqcare to elaborate?
19:32:09Mat3for Intel cpu's it is not garanted that the pipeline flush is eleminated (as noted in the official Intel documentation)
19:33:59Mat3it's safe for AMD cpu's as I know however
19:34:16Araqwell I have a polling loop and do "pause" for 1000 times before I call os.sleep(10)
19:36:27Mat3in this scenario it would work of course
19:37:29Mat3(simply because you can assume that in relation to OOO execution one delayered flush is executed)
19:48:56Mat3ok, 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:05Mat3^also use
19:53:06Mat3the drawback of this method is: The instruction is only valid at GP0 level
19:57:18Mat3(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:25Mat3does this help ?
19:59:37Araqsure
19:59:43Araqnext question
20:00:26AraqI need "atomicIfTrueThenSetToFalse"
20:01:07Araqnot "compareAndSwap" as that always swaps
20:01:47Mat3use one of the cmov instuctions and hold the flag state in a register
20:02:11Araqif x.ready:
20:02:15Araq x.ready = false
20:02:27Araq code follows here
20:02:47Araqbut this "if x.ready: x.ready = false" needs to be atomic
20:02:53Araqare you sure cmov does that?
20:05:22Mat3xor r8, r8 (zero register = false), mov r9, 1 (true flag), cmp <mem ptr>, r8, cmoveq r8,r9
20:06:02Mat3(the cmovx mnemonics can differing from assembler to assembler)
20:18:20*gradha joined #nimrod
20:21:04Mat3hi gradha
20:21:10gradhahi Mat3
20:44:38*[2]Endy joined #nimrod
20:48:07*[1]Endy quit (Ping timeout: 265 seconds)
20:49:17Mat3hmm, 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:21Mat3(that's a bug in linux's libC not Nimrod to be precise)
20:55:35Araqok
20:56:45AraqI hope you're right and it's not nimrod which corrupted your pointer
20:57:04Araqbtw 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:41Mat3I can reproduce it with other languages as Nimrod
20:58:48Araqok
20:59:18Araqwell another thing to keep in mind is that munmap() can free the whole block allocated with mmap()
20:59:28Araqand not just the pages that you explicitly free
20:59:31Araqit's crazy
20:59:40Araqtook my weeks to figure out
20:59:43Araq*me
21:00:44Mat3yes, that's the reason why I prefer allocation with valloc (which is sadly not part of POSIX)
21:03:21Mat3hint: This function is not includes in the Nimrod wrapper although both linux and all known BSD's support it
21:03:30Mat3^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:38AraqMat3: well I don't know valloc and why should I wrap something which might have even bigger issues than mmap? ;-)
21:10:23Mat3mmaps interface is inconsequental, This situation can not get any worse
21:10:29Mat3^mmap's
21:11:22Araq*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:57Mat3valloc 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:00Mat3hmm. you can emulate it though calling memalign(sysconf(_SC_PAGESIZE),size) [I think this function is POSIX conform]
21:22:11Mat3ok, linux do not have an valloc like syscall... that's ... bad
21:26:14OrionPKhttp://www.chris-granger.com/2014/01/07/light-table-is-open-source/
21:26:18OrionPKnimrod support, ho!
21:26:57OrionPKhttps://github.com/LightTable/LightTable
21:27:16OrionPKdom96 theres your new base for aporia :p
21:29:06*aftersha_ joined #nimrod
21:35:43Mat3hi OrionPK
21:40:29OrionPKhola
21:42:09Mat3LightTable is some kind of IDE, right ?
21:47:28OrionPKyep
21:47:30OrionPKtexteditor/ide
21:56:00Mat3just 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:09Mat3^introduction
21:58:40Mat3get some sleep, ciao
21:58:51gradhagood 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:21Araqgradha: I'm implementing a prototype for "spawn" and there is a beautiful solution for nimrod's thread local heaps
22:29:57Araqbut this means the implementation can't support Grand central dispatch :P
22:32:09gradhadoes your solution scale down with other apps running on the system?
22:32:59*aftersha_ quit (Quit: Computer has gone to sleep.)
22:33:53Araqno, it's aggressive to win benchmarks
22:34:50Araqit doesn't play nice with anything, not even with itself
22:35:21Araqcreates 100 threads and misuses the OS's scheduler
22:39:17gradhaNimrod: expressing unix fork bombs efficiently, with style
22:40:51Araqmore seriously though "spawn" is now blocking
22:41:29Araqand thus I get inter thread communication with 1 copy of the message instead of 2
22:41:41Araqand 1 lock acquisition instead of 2
22:42:03AraqI'm writing a blog post about it :P
22:43:13gradhais it another of those fight club style posts?
22:43:32Araqhey
22:43:44Araqare my others "fight club style"?
22:44:01gradhawell, the first rule of fight club is you don't talk about fight club
22:45:35Araqah that's what you mean
22:45:58Araqwell ... my prototype doesn't crash, that's good
22:46:08Araqit also doesn't produce valid output, that's bad
22:47:17gradhacan I add to rstgen a `foo-bar`:autolink: style syntax for hyperlinking of stuff in the docs?
22:47:44Araqok
22:47:50Araqsounds good
22:48:37Araqmaybe 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:15OrionPKvarriount found another bug
23:16:21OrionPKit starts a doc comment after normal comments
23:25:44Araqthat's a feature :P
23:37:43Araqgood night
23:37:48gradhagood night
23:37:56*gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again)
23:57:07*io2 quit ()