<< 02-07-2013 >>

00:00:20*Roin quit (Read error: Operation timed out)
00:04:17*Roin joined #nimrod
00:08:53*nihathrael quit (Ping timeout: 245 seconds)
00:10:02*nihathrael joined #nimrod
00:18:34*pnutzh4x0r joined #nimrod
00:24:28*Associat0r quit (Quit: Associat0r)
01:00:48*BitPuffin quit (Remote host closed the connection)
01:34:03*DAddYE quit (Remote host closed the connection)
02:06:43*OrionPK quit (Quit: Leaving)
02:08:54*OrionPK joined #nimrod
02:09:49*DAddYE joined #nimrod
02:29:57*DAddYE quit (Remote host closed the connection)
02:30:24*DAddYE joined #nimrod
02:34:37*DAddYE quit (Ping timeout: 240 seconds)
03:31:15*DAddYE joined #nimrod
03:38:19*DAddYE quit (Ping timeout: 264 seconds)
04:32:52*fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org)
04:46:08*OrionPK quit (Quit: Leaving)
04:48:27*fowl joined #nimrod
04:53:08*Associat0r joined #nimrod
04:53:11*Associat0r quit (Changing host)
04:53:11*Associat0r joined #nimrod
05:04:05Araqhi pnutzh4x0r, welcome
05:21:56*DAddYE joined #nimrod
05:22:11reactormonkAraq, so you say I can leave in seq n stuff even when I have no malloc?
05:26:52*DAddYE quit (Ping timeout: 276 seconds)
05:38:15*darkf joined #nimrod
06:22:36*DAddYE joined #nimrod
06:29:04*DAddYE quit (Ping timeout: 240 seconds)
07:07:53*Araq_ joined #nimrod
07:08:25Araq_reactormonk: that's what I said
07:08:38Araq_welcome darkf
07:21:03darkfthank you Araq_ :D
07:25:38*DAddYE joined #nimrod
07:26:11*DAddYE quit (Remote host closed the connection)
07:26:17*DAddYE joined #nimrod
08:11:53*EXetoC joined #nimrod
08:40:47*DAddYE quit (Remote host closed the connection)
08:40:57*DAddYE joined #nimrod
08:41:02*DAddYE quit (Remote host closed the connection)
08:41:13*DAddYE joined #nimrod
08:41:17*DAddYE quit (Remote host closed the connection)
08:41:27*DAddYE joined #nimrod
08:41:32*DAddYE quit (Remote host closed the connection)
08:42:00*DAddYE joined #nimrod
08:46:08*DAddYE quit (Ping timeout: 241 seconds)
09:32:37*gradha joined #nimrod
09:42:43*DAddYE joined #nimrod
09:47:15EXetoCwill case statements be expressions eventually?
09:49:19*DAddYE quit (Ping timeout: 256 seconds)
09:51:14Araq_they already are
09:51:26gradhalooks like assigning a case to a let breaks codegen though
09:51:42Araq_works for me whenever I do it
09:51:54EXetoCthat didn't appear to be the case, but I will try again
09:52:00gradhais this syntax right http://pastebin.com/vvBeFsp4 ?
09:52:20Araq_sure, gradha
09:52:40gradhaI'll open an issue then
09:52:45Araq_good
09:53:34gradhatrying to wrinte a case in nimrod interactive is also problematic, want another issue for that?
09:53:57gradha>>> let a = 3
09:53:57gradha>>> case a
09:53:57gradhastdin(2, 4) Error: illformed AST: case a
09:54:04gradhait actually exits the process
09:55:16Araq_how is that a bug?
09:55:30Araq_you didn't read the docs
09:55:31*q66 joined #nimrod
09:56:07gradhaI believe the bug is exiting the nimrod interactive process
09:56:41gradhaI'll reread the docs, since I can't get the indentation right for http://pastebin.com/1uYaiWY0
09:56:42Araq_To determine whether an input line is an incomplete statement to be continued these rules are used:
09:56:43Araq_ The line ends with [-+*/\\<>!\?\|%&$@~,;:=#^]\s*$ (operator symbol followed by optional whitespace).
09:56:45Araq_ The line starts with a space (indentation).
09:56:46Araq_ The line is within a triple quoted string literal.
09:59:41Araq_well illformed AST better stays a fatal error, gradha
10:01:32*Boscop quit (Read error: Connection reset by peer)
10:01:39gradhacan't figure out how to continue the case http://pastebin.com/SfP3YMs8
10:01:53*Boscop joined #nimrod
10:02:09EXetoCok, so returning values in some branches, while raising in others was the problem. it does work in Rust for example, and I think it is a good feature
10:03:40EXetoCwill make a feature request
10:05:18Araq_gradha: for instance
10:05:25Araq_block dummy:
10:05:35Araq_ case x # yay now indented
10:07:41Araq_EXetoC: sounds nasty to implement ...
10:08:41Araq_gradha: or simply:
10:08:48Araq_case a: # now ends in :
10:10:03gradhahmm... new compiler stops compiling my code
10:11:23Araq_that's too bad, used any complex macros?
10:12:58gradhathe argument_parser module says map is an undeclared identifier
10:14:22gradhaah, ok, had the git source in a bad state, now it works again (suddenly echo "Hello world" wouldn't compile either)
10:16:26Araq_argument_parser is part of the test suite I think
10:16:36Araq_well parts of it
10:17:03gradhalet's zip all .nim files from stdlib and append them to the compiler binary for true staticness
10:23:22EXetoCAraq_: ok
10:31:46*mario-goulart quit (Remote host closed the connection)
10:32:36EXetoCit should be a fairly common pattern, but there are more important things to work on I guess
10:33:15EXetoCwill the upcoming threading stuff be similar to some existing approach?
10:34:23Araq_yes and no
10:34:52*mario-goulart joined #nimrod
10:35:49Araq_I'm trying example programs with my current design, and it's not satisfactionary
10:37:23Araq_*satisfying
10:42:09EXetoCright
10:44:08Araq_in fact ... for now I like the current design better :-/
10:45:44*DAddYE joined #nimrod
10:53:10*DAddYE quit (Ping timeout: 276 seconds)
11:00:50*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
11:19:56EXetoCjust get all that ready before christmas, and we'll have a million users in no time :>
11:19:58EXetoChappy coding
11:20:02*EXetoC is now known as EXetoC_
11:48:52*DAddYE joined #nimrod
11:52:59*Sergio965 joined #nimrod
11:55:48*DAddYE quit (Ping timeout: 256 seconds)
12:21:29*BitPuffin joined #nimrod
12:35:57*Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
12:43:26*Sergio965 joined #nimrod
12:59:13*SirSkidmore joined #nimrod
12:59:24SirSkidmoredom96: just saw your kernel, very, very cool stuff :)
12:59:42SirSkidmoreI may need to try to port it to ARM asm (which I'm trying to learn)
14:00:25*Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803])
15:40:12reactormonklib/system/excpt.nim(252, 12) Error: undeclared identifier: 'sysFatal'
15:40:15reactormonkmerge fail?
15:48:31SirSkidmoreafter a babel install nake
15:48:50SirSkidmoreI still get cannot open 'nake' in the repo
15:49:07SirSkidmoredo I need to copy the file to my repo, out of ~/.babel?
15:49:31fowlYou have latest babel and at least 0.9.2 right?
15:49:51SirSkidmoreyeah
15:50:20fowlYou don't need to cp anything
15:50:37SirSkidmoreWhy can't the nakefile fine nake then?
15:50:42fowlIts an issue with something
15:50:58SirSkidmoreHmm
15:51:07SirSkidmorehttps://github.com/dom96/nimkernel
15:51:13SirSkidmoreI just followed the instructions here
15:51:25SirSkidmoreI build babel with nimrod c -d:release babel
15:51:31SirSkidmoreput babel in my path
15:51:35fowlWhat platform?
15:51:36SirSkidmoreran babel install nake
15:51:41SirSkidmorelinux x86
15:51:49SirSkidmorei386 rather
15:52:31SirSkidmoreoh
15:52:44SirSkidmoreit says that it add .babel/libs to my path
15:52:53SirSkidmorebut when I install, it install to pkgs
15:53:13fowlThat's for binary packages
15:53:40fowlId wait for dom or araq
15:54:10SirSkidmoreokay
15:54:15SirSkidmorethanks fowl
15:54:20SirSkidmoreI need to go get some lunch anyway
16:13:23*pnutzh4x0r left #nimrod ("WeeChat 0.4.1")
16:18:29*Endy joined #nimrod
16:31:08*DAddYE joined #nimrod
16:36:31dom96SirSkidmore: Yeah, sorry. You need to update --babelPath in your nimrod.cfg
16:36:47dom96Babel now installs everything to ~/.babel/pkgs
16:37:48SirSkidmorenot libs
16:38:11dom96and yeah it needs to be updated in the nimrod repo
16:38:33SirSkidmoregreat, that works well
16:39:00*darkf quit (Quit: lmao)
16:45:10SirSkidmoredom96: I get a "Error: Port memory manager to your platform" when I try to run ./nakefile build in nimkernel
16:45:50dom96hrm, that's weird.
16:46:04dom96Did you get the cross compiler building and everything?
16:46:25SirSkidmoreyeah
16:46:33dom96what does nimrod -v output?
16:46:33SirSkidmoreI built binutils and gcc without a hitch
16:46:47SirSkidmoreVersion 0.9.2
16:46:58dom96Give me the full output please
16:47:07SirSkidmoresure thing, sorry
16:47:18SirSkidmoreNimrod Compiler Version 0.9.2 (2013-05-20) [Linux: i386]
16:47:21SirSkidmoreCopyright (c) 2004-2013 by Andreas Rumpf
16:47:26dom96That's enough for me to tell you though that you need the latest.
16:47:31dom96From github.
16:47:40SirSkidmoreah
16:47:41SirSkidmoreokay
16:47:43dom96I did say that in nimkernel's readme ;)
16:47:44SirSkidmorewell, shoot
16:47:56SirSkidmoreyeah :P I did cheat a little
17:06:23*Associat0r quit (Quit: Associat0r)
17:27:50*q66 quit (Quit: Leaving)
17:45:38EXetoC_meep meep
17:46:05Sergio965beep beep
17:46:52NimBotAraq/Nimrod master 9505841 Araq [+1 ±1 -0]: fixes #503
17:46:52NimBotAraq/Nimrod master 5f8446c Araq [+0 ±1 -0]: fixes #505
17:46:52NimBotAraq/Nimrod master 2cb35ca Araq [+0 ±1 -0]: Merge branch 'master' of github.com:Araq/Nimrod
17:47:15Araqbbl
17:57:28EXetoC_d:
17:57:44*q66 joined #nimrod
18:22:39dom96SirSkidmore: Got it working?
18:24:23EXetoC_gonna merge the package pulls soon?
18:24:58*EXetoC_ is now known as EXetoC
18:25:11dom96oh sorry, forgot
18:25:22NimBotnimrod-code/packages master 4340557 Erik Johansson Andersson [+0 ±1 -0]: nimrod-glfw3 -> nim-glfw3
18:25:22NimBotnimrod-code/packages master 11e0335 Dominik Picheta [+0 ±1 -0]: Merge pull request #20 from EXetoC/patch-1... 2 more lines
18:25:55EXetoCktnx homie
18:25:56dom96Looks like I need to add a requirement to the readme: "SPECIFY WHAT LIB YOU'RE ADDING IN THE COMMIT MESSAGE"
18:26:03EXetoC:>
18:26:23dom96Next time someone writes "updates packages.json" I will cry
18:26:26*dom96 looks at fowl
18:29:27NimBotnimrod-code/packages master 142fc0f Billingsly Wetherfordshire [+0 ±1 -0]: Update packages.json... 2 more lines
18:29:27NimBotnimrod-code/packages master ab31134 Dominik Picheta [+0 ±1 -0]: Merge pull request #21 from fowlmouth/patch-7... 2 more lines
18:29:39EXetoCblame github for making it the default :p
18:29:54dom96oh I see.
18:31:12DAddYEAraq: quick question, the online docs available some where? I want to give it some love, a bit of css + highlighting and so on, maybe on a git repo + markdown so anyone can contribute
18:33:16dom96DAddYE: The code which generates the docs is somewhere deep in the compiler source, not sure exactly where. Maybe for now you could just style the already generated docs?
18:34:03EXetoCthere's nothing like this in Nimrod, right? "x => x + 1" rather than "proc(x: T): U = x + 1"
18:34:48dom96not yet :P
18:35:34EXetoCyeah. some day probably
18:39:54AraqDAddYE: it's all configurable in config/nimdoc.cfg and nimdoc.tex.cfg
18:40:19SirSkidmoredom96: no :/
18:40:25SirSkidmoreI'm on my crappy Windows work machine
18:40:31SirSkidmoreand I'm having a ton of Qemu issues
18:40:34dom96oh
18:40:37SirSkidmoreI'm just going to wait until I get home
18:41:39DAddYEThx Araq dom96
18:46:08AraqEXetoC: macro `\`(body: expr): expr = # implementation left as an exercise
18:46:31Araq\(x + 1) # extract single letter idents as parameters and transform to:
18:46:39Araq proc (x): auto = x + 1
18:50:31EXetoCso simple, unsurprisingly :>
18:53:02Araqdom96: answer the new guy on the forum that you know ;-)
18:54:00dom96he honestly sounds like he's advertising the RPI lol
18:57:46Araqhe's simply surprised Nimrod runs on anything and Rust and D nowhere
18:59:04NimBotAraq/Nimrod master d6322ee Grzegorz Adam Hankiewicz [+3 ±1 -0]: Adds idetools --suggest test case. Refs #484.... 4 more lines
18:59:04NimBotAraq/Nimrod master 0fafbc7 Araq [+3 ±1 -0]: Merge pull request #485 from gradha/pr_suggest_case... 2 more lines
19:00:58EXetoCwhat about traits and/or interface constraints a la D?
19:01:18EXetoCnot that D's support for constraints doesn't have issues
19:02:09Araqzahary is working on more expressive constraints, I don't know what the status is
19:02:27EXetoCgreat
19:03:26Araqhe also has a nice patch that allows to pass values as generic arguments, should be merged soon
19:10:53Araqso dom96 ... if I make nimgrep a babel package, does that mean it needs its own repository?
19:12:07dom96yes
19:12:26Araqgah but it should stay in the standard distribution
19:12:34EXetoChopefully it'll be possible to implement a D-ish range interface then
19:13:04Araqthat's already possible via 'compiles'
19:13:39EXetoCsure. that needs to be in the body though, right?
19:14:04Araqright
19:15:10Araqtbh it's annoying that people constantly suggest adding D's broken features
19:15:25EXetoCactually, I'm not sure why it would matter
19:16:19Araqranges have issues, 'const/immutable' is an unusable whiteboard design, the language is incredibly hostile to an efficient GC implementation
19:17:11Araq"postblit" operators only make sense if you have no idea how a modern GC works
19:17:12EXetoCI can't remember what the issues were, other than the fact that you can barely use it together with const/immutable, which sucks
19:17:35EXetoCactually, the constraint stuff is an issue, because the error message are cryptic at times
19:17:59Araqmixins are a poor macro system ... etc. etc. etc.
19:18:25EXetoCthe error messages are supposed to be better than the ones you get when you use templates incorrectly in C++, but it's still pretty bad
19:18:53EXetoCAraq: yup, I think they know that, though it's still in the language
19:19:41Araqit's exactly the language that you get when design a "better C++" when all you know is Java and C++
19:25:58EXetoCyes..
19:31:23EXetoCI obviously don't want exact copies of the features I mentioned
19:33:07Araqsure but there is also some value in letting others do the research for us, i.e. copying features that are stable ;-)
19:35:57Araqjust imagine I would have copied Rust's typestate feature ...
19:37:05Araqhowever I'm not surprised it didn't work; I read the paper :P
19:41:55*Endy quit (Ping timeout: 264 seconds)
20:02:54Araqbbl
20:06:54*amarsahinovic joined #nimrod
20:10:20*gradha joined #nimrod
20:12:37gradhaso D is to C++ like svn to cvs, with nimrod being a dvcs?
20:16:43amarsahinovicdom96: Benchmarks are out, here is the HN thread with link: https://news.ycombinator.com/item?id=5979766
20:17:11dom96finally!
20:17:25dom96Do I want to look at the results lol?
20:18:11amarsahinovicwhy not :D
20:18:20dom96oh god, that's not very good.
20:19:32amarsahinovicwell, most of the stuff at the top is Java and Go, it's not easy to compete :)
20:19:53dom96Doing worse than PHP is just depressing...
20:22:07amarsahinovicwell, there is time to improve for round 7, and besides, this JSON test is not really the best way to show performance
20:22:31dom96yeah, there is a lot of room to improve.
20:22:52EXetoCcan't even find it in any of the charts
20:23:10dom96it's in the JSON serialization
20:26:54gradhathe JSON test implies parsing in the native language or can frameworks just call some C lib?
20:27:00dom96I bet the main bottleneck is concurrency.
20:27:15dom96Because I just spawned 8 processes and called it a day :P
20:27:54gradhadidn't you even use countProcessors? wow
20:29:20gradhathe processor table seems to indicate jester doesn't scale well past 16 processors
20:29:24dom96I couldn't do that.
20:30:09dom96Because if I did then nginx wouldn't know how many processes it can access.
20:30:26gradhaawww... would like to see objc gcd servers doing the json parsing, in other tests I've seen they scale linearly
20:33:04gradhawhat's the EC2 thingy? jester is on par with php there
20:33:23dom96yay
20:33:36dom96I think CPU is worse on EC2
20:33:50dom96So it must be the process spawning that is throwing it off.
20:34:09dom96I shall implement concurrency in Jester! :D
20:35:31gradhamaybe the compiler needs a -d:releaseForSpecialBenchmark switch, like OpenGL drivers used to have for quake
20:36:28*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
20:41:45dom96Well at least we're not last :)
20:42:40dom96Perhaps I will submit jester for the Windows tests too.
20:43:05dom96Not using nginx would also probably help.
20:52:01*ack006 joined #nimrod
20:55:44*Associat0r joined #nimrod
20:55:44*Associat0r quit (Changing host)
20:55:44*Associat0r joined #nimrod
21:31:03Araqlol? how can this be? you said we're faster than Go on your machine, dom96 ...
21:31:18dom96Araq: I was wrong, I'm sorry :'(
21:31:46dom96It obviously folded under the pressure of concurrency.
21:31:53dom96So don't worry, we'll do better in the next round.
21:33:08EXetoCinline asm!
21:33:25dom96inline parallel asm!
21:33:32dom96if that's possible.
21:34:29AraqI'm too stupid to read the results ...
21:34:43dom96lol
21:34:54dom96What do you not understand?
21:35:00Araqoh wait ... lol
21:35:07*Araq had to scroll down .....
21:35:08dom96There is a good side to this, my comment on HN and reddit seems to be doing nicely.
21:35:28dom96Araq: Nice job :P
21:36:16Araqso ... we beat rails on the json benchmark, right?
21:36:38dom96yeah, by a lot.
21:37:21AraqI can't find jester for the "single query" bench
21:37:31dom96I only implemented the JSON benchmark
21:37:42Araqwtf? seriously?
21:37:47Araqoh well ... lol
21:37:56dom96dude, I had exams.
21:38:02dom96You were welcome to implement it.
21:38:08Araqbut hey, it's less than a factor of 5 to the top, right?
21:38:10dom96don't wtf me!
21:38:43dom96The only problem is that it doesn't scale well.
21:38:44Araqsorry about the wtf
21:39:01dom96Because I didn't have time to do proper concurrency in jester
21:39:14Araq*shrug* "scaling" that doesn't mean much
21:39:26dom96look at the raw data
21:39:37Araqthe important thing is to web scale
21:40:23dom96and of course we're still using select lol
21:41:00Araqwell the first class iterators surely will help too
21:41:31dom96I dunno.
21:41:35dom96I think they might add more overhead
21:41:50dom96getting httpserver optimised and using it directly
21:41:55dom96will improve the situation
21:42:03AraqI don't think they have much overhead
21:42:22Araqshould have way less overhead than a Goroutine
21:42:27dom96It sends data twice
21:42:45dom96From jester to nginx and from nginx to wrk (benchmark tool)
21:43:00dom96oh, that's what you're talking about.
21:43:23dom96first class iterators won't automatically make things concurrent.
21:43:31Araqsure
21:43:52Araqwell I think using nginx makes it a real world benchmark
21:44:22dom96perhaps, but who cares, we want greatest speed :P
21:44:22Araqnobody uses raw language servers anyway
21:44:40Araq<-- does anybody know a good term for that?
21:44:55dom96I like to use the term "Araq" for that.
21:45:03dom96or sometimes Andreas.
21:45:12Araqfor "raw language server"?
21:45:22dom96hehe
21:45:31dom96Don't get my joke huh?
21:45:38AraqI did but it's not funny
21:46:05Araqoh btw ... my jogging was quite productive
21:46:30AraqI think I found a novel way to make an AST interpreter as fast as a bytecode VM ...
21:47:16reactormonkAraq, hm?
21:47:50Araqwell at least it should speed up the evaluator quite a lot
21:47:56dom96Araq: You should just get some workout machine in front of your computer and code while exercising :P
21:48:29Araqdom96: I don't think that would work as well
21:50:30Araqreactormonk: the basic idea is to do some advanced pattern matching on the AST and patch the AST to contain special superoperator nodes
21:50:47dom96wow, asp.net is really crap.
21:50:51reactormonkAraq, sorry, you lost me
21:50:57dom96even on windows
21:51:18Araqreactormonk: wait for my patches to the evaluation engine then
21:51:37dom96Araq: cool cool. But what about getting ffi support?
21:54:24Araqdom96: we have ffi support since months
21:54:52Araqhowever, it's fragile because of a compiler bug; the stupid thing can't compute offsets properly
21:57:51dom96So I still can't use sockets in the repl?
21:58:26Araqyou can try ...
21:58:40Araqbut why is that important anyway?
21:58:53AraqI never used sockets in pyhton's REPL
21:59:16dom96it's an example..
21:59:27Araqyou can use file IO
21:59:37*EXetoC quit (Quit: WeeChat 0.4.1)
22:00:03dom96and I have used sockets in pythons repl a lot
22:00:16Araqand I got an SDL window to work but the key events don't work due to the offset bug
22:00:42dom96what if I want to test jester in the repl?
22:00:50dom96or any of the other modules which require sockets?
22:01:03Araqwell you can't
22:01:14dom96Sorry, but I won't use it until those limitations are gone.
22:01:32Araq*shrug* you'll use it for Nimbot, I'm sure
22:02:53dom96REPLs are great for testing
22:03:04dom96You can't test if some things don't work.
22:03:54Araqtesting IO stuff in a REPL is a bad idea anyway imho; you can't undo the IO state changes easily
22:09:00dom96it's not like every IO call changes state.
22:14:17Araqmany people tweak algorithms and formulars the REPL should be handy for them at least
22:18:33*OrionPK joined #nimrod
22:46:39*XAMPP-8 joined #nimrod
22:46:56*XAMPP-8 quit (Read error: Connection reset by peer)
22:59:36*amarsahinovic left #nimrod (#nimrod)
23:17:11*Sergio965 quit (Ping timeout: 252 seconds)