<<01-02-2013>>

00:11:37*Anaphaxeton quit (Remote host closed the connection)
00:17:56*SchalaZeal joined #nimrod
00:23:11SchalaZealI don't think I can wrap jQuery... the API docs are confusing
02:50:18SchalaZealAdditionally I may need help regarding objects that are prototype oriented
06:08:20shevyhmm
06:08:41shevynow that you guys have this babel-addon installer thingy, is there a plan to have some kind of central repo for nimrod packages/addons or something like that?
06:34:16*SchalaZeal quit (Quit: Konversation terminated!)
06:48:44*FreeArtMan joined #nimrod
08:42:19*Araq_ joined #nimrod
08:43:55*Araq_ quit (Client Quit)
08:44:42*zahary_ joined #nimrod
08:45:53*Trix[a]r_za is now known as Trixar_za
08:58:34*Trixar_za is now known as Trix[a]r_za
09:02:39*Trix[a]r_za is now known as Trixar_za
09:32:52*Trixar_za is now known as Trix[a]r_za
10:10:12*zahary_ quit (*.net *.split)
10:10:12*Zor quit (*.net *.split)
10:13:08*zahary_ joined #nimrod
10:13:08*Zor joined #nimrod
11:16:41*XAMPP_8 joined #nimrod
11:20:02*XAMPP-8 quit (Ping timeout: 245 seconds)
11:33:01*gradha joined #nimrod
11:34:18gradhashevy: the central repo for packages would be https://github.com/nimrod-code/packages
11:44:41shevycool
11:44:56shevyoh
11:44:58gradhawhat are you going to add?
11:45:01shevyit requires one to have github?
11:45:10shevynah, I am far from being able to add anything meaningful yet
11:45:34gradhaI'm sure you could shout here and it would be added anyway
11:45:51gradhaas a user you could always open an issue asking for a package
11:46:43gradhapull requests may give you more control and make it easier on dom96's time
11:47:21shevyyeah I can understand that
11:47:28shevypoor dom96 is going to be drained of his time :D
11:47:44gradhanah, he loves it
11:48:15gradhait's true however that babel seems to lack retrieval methods other than git
11:48:27gradhasee https://github.com/nimrod-code/babel/blob/master/babel.nim#L199
11:50:47shevyhmm
11:50:56shevywget would be nice
11:51:09shevythere is probably no other easy way to push than git :(
12:05:14gradhayay, first february post! http://forum.nimrod-code.org/t/122
12:17:29*Anaphaxeton joined #nimrod
12:20:44*zahary quit (Ping timeout: 252 seconds)
12:22:03*zahary joined #nimrod
12:56:05*gradha quit (Quit: Leaving)
13:31:32*zahary quit (Ping timeout: 248 seconds)
13:33:24*zahary joined #nimrod
15:06:43*Anaphaxeton quit (Remote host closed the connection)
15:38:30*XAMPP_8 quit (Ping timeout: 264 seconds)
15:55:31*Trix[a]r_za is now known as Trixar_za
16:41:42*Trixar_za is now known as Trix[a]r_za
17:35:57*gradha joined #nimrod
17:51:48*Trix[a]r_za is now known as Trixar_za
17:59:15*gradha quit (Quit: Leaving)
18:06:03*Trixar_za is now known as Trix[a]r_za
18:36:12Araqping zahary
19:15:12*shevy quit (Ping timeout: 264 seconds)
19:27:32*shevy joined #nimrod
20:30:25*gradha joined #nimrod
20:30:41Araqhey gradha
20:30:45gradhahey Araq
20:31:04AraqI answered your question
20:31:16gradhacool, going to check it
20:32:30gradhathe "And yes, it's planned to get rid of nil for sequences and strings..." is for 1.0?
20:32:47Araqdunno
20:32:56Araqthere are a couple of options for 'nil'
20:33:26Araqeasiest is that 'nil' stays but 'len' and 'add' check for it and treat it like @[], ""
20:34:15Araqmaybe we'll have a super fast xlen then that skips the nil check for performance junkies
20:34:52gradhaisn't it enough to check for nil inside an assert?
20:35:26gradhathe kind of asserts which go away when compiled in release mode
20:35:30Araqbut then this doesn't help the poor programmer who gets useful default values for almost everything but not for strings and seqs
20:36:01Araqmost of my constructors are only necessary to init strings and seqs to "", @[]
20:36:21Araqotherwise the "default constructor" which sets everything to 0, false, etc. is just fine
20:37:03Araqan assertion would only provide a more helpful error message for newbies
20:37:24Araqthe code crashes immediately already with a stack trace
20:37:32gradhadoes the planning to get rid of nil for sequences and strings involve avoiding heap allocation for @[] and the empty string?
20:37:57Araqsure
20:38:03Araqlet me explain it again :P
20:38:20Araq'nil' stays but is for most built-ins treated as ""
20:38:36Araqthis way you don't have to initialize your strings to "" as nil works fine too
20:38:53Araqand yeah that should reduce heap allocations
20:38:53gradhayou said that, but also with that being "the easiest"
20:39:04Araqwell yeah
20:39:09gradhawhat is your "hardest" option?
20:39:46Araqmaking 'string' equivalent to 'string not nil' and make the compiler enforce the 'not nil' annotations
20:40:53Araqthis means that you don't get nil crashes anymore but still have to use "" everywhere
20:41:09Araqso it won't affect heap allocations
20:42:29gradhawhen I started objc I disliked how "sending a message" implicitly checks the object for nil to avoid crashing, yet I've never had a performance problem with that
20:42:58gradhathe code is really bad if the bottleneck is on nil checks
20:43:11gradhaor rather than bad, not doing much other than if checking
20:43:33AraqI agree
20:58:37gradhaYou could slip in nil checks in nimrod without announcing it and see if anybody notices performance issues (ignoring people whining about idetools)
21:03:46Araqthe compiler itself is not a bad benchmark for these kind of things
21:05:26AraqI have to check out these cachegrind etc. profiling tools
21:06:04Araqbut my guts say it's all pretty irrelevant, a cache miss costs 200-600 cycles now
21:07:26Araqso optimizing for memory usage should always pay off
21:07:41gradhaI heard valgrind helps with cache miss detection
21:07:54gradhabut I've only used it for crash debugging, and just a few times
21:08:14Araqyeah but that subsystem is called "cachegrind" afaik
21:09:00gradhaindeed, I also heard it was implemented in haskell
21:09:10Araqnah
21:09:23Araqit's implemented in C++ I think
21:10:57gradhamy sources are unreliable and old, they told me this about 13 years ago
21:12:31gradhahehe, so testing a rails app with valgrind results in a minimum memory footprint of 4GB, impressive
21:14:59Araqthanks
21:15:09Araqyou made me download valgrind's source code
21:15:19Araqand now my nightmares will return :P
21:15:21gradhameh, sorry about that
21:15:32Araqit's actually written in C
21:15:40Araqmillions of lines of C
21:16:01gradhaif there are so many, maybe some haskell is hidden in there?
21:16:34gradhabut nightmares about source code, that's really something
21:17:24AraqI don't see any *.hs file
21:17:36Araqthere is also some assembler code
21:19:31gradhathere's a clear lesson in here: don't trust strangers on IRC
21:22:36Araqdunno, your github avatar looks trustworthy ;-)
21:23:03gradhaALL HAIL HELLO KITTY!
21:23:15gradhaI would be nothing without those cereals
21:25:57gradhamaybe you should get a cerebrate avatar in march
21:26:09Araqhrm, yeah
21:26:18Araqmaybe even this weekend
21:54:04Araqso gradha, what about some new project for ya?
21:54:20Araqnimrod on NaCl?
21:54:43gradhaI'm still doing argument parsing
21:54:55gradhait's a fascinating world of strings with dashes
21:55:18Araqyou'll note that parseopt is actually very well designed :P
21:55:35gradhait is, I simply prefer my wheel more squared
21:55:37Araqexcept for the uncommon --key:value syntax I guess
21:57:43gradhainvestigating python's argparse module I've reached a strange conclusion: it seems overcomplicated because they lack callbacks/custom procs
21:58:14gradhaI'm at a point where implementing further functionality is easier letting the user provide her own procs for specialized parsing
21:58:35gradhaand it strikes me as really weird that the python module doesn't use such a strategy
21:58:49Araq*his own procs please ;-)
21:59:19Araq(there are hardly any female users anyway)
21:59:42Araqand yes
21:59:52Araqsoon you require a mapping string->proc
22:00:16Araqat which point you may figure that you could yield the string instead and let the client use a string case
22:00:36Araqat which point you've reinvented parseopt :P
22:01:10gradhayeah, but my wheel has more corners, I export even three objects!
22:01:33Araqbut of course case statements are "ugly" and a table[string, proc] is "beautiful"
22:02:46gradhamy original aim for argument parsing stays: learn to use macros
22:02:56gradhaso whenever I feel confident writing macros I'll switch to something else
22:03:48gradhathis is again another point which freaks me out about the python module: instead of parsing a DSL for argument specification they resort to dozens of named parameters
22:04:15gradhaI dunno, at some point in the past I thought that code was brilliant, now it seems kinda meh
22:06:43Araqit's more code to use it than to process the command line yourself
22:09:29gradhashevy: things like https://www.youtube.com/watch?v=pYJ4A53UziQ get slightly more complicated to make, indeed
22:23:38Araqhow could kratos ever become imprisoned?
22:24:15gradhaI think this is not the first "god of war" game, maybe in previous ones tried to rewrite the wheel?
22:24:58gradhathe camera system is very cinematic and good for watching, but there are blind spots and situations where your player is hidden, I really hate that
22:25:16Araqgameplay looks stultifying
22:26:09gradhanever got the hang on button smashing games, feel pretty random to me
22:28:41Araqtrue
22:54:26Araqugh, why is this cycle collector so hard to get right?
22:55:24gradhataking a break and doing something else might help
22:57:19AraqI already watched your video ... :-/
22:58:21gradhadidn't help me either
23:27:18gradhaI wonder what these autoaway message options do... tell me if they spam the channel too much
23:36:29gradhawhy do you need to forward declare procs but not forward declare types? are they easier?
23:36:48gradhaor maybe everything internally is just an object and you don't need to worry about the type?
23:37:35gradhajust wrote a callback with a parameter type which is introduced later, I expected that would fail compilation without a forward type declaration
23:39:35Araqyou have to forward declare types too in a way
23:39:53Araqit's just that within a single 'type' section order does not matter
23:40:12Araqand you cannot have recursive types spanning multiple 'type' sections
23:40:30gradhaheh, was just going to try that
23:41:06Araqand believe it or not
23:41:23Araqit never occured to me that people despise forward declarations that much
23:41:45Araqzahary's working on getting rid of them for nimrod
23:42:52gradhato put it in other words: haven't found yet many people who prefer forward declarations
23:43:25Araq*shrug* it surely simplifies things for the compiler
23:43:41Araqespecially for a language like nimrod
23:45:28gradhaforward declarations require a little bit more of discipline, but so does a language with strong types, it's odd zahary likes one and not the other
23:45:46gradhaunless you tell me now he is working also on making everything a number (to mess up TCL followers)
23:46:02Araqnah, it's not odd
23:46:25Araqit's about making computer perform the mundane work for you
23:46:48Araqwhen you have dynamic typing you often end up doing the type checking in your head
23:46:58Araqoffloading it to the computer is a pretty good idea
23:47:27gradhaI spread asserts like ebola, catches most stuff in debug mode, release version tends to works fine
23:49:16Araqhopefully we'll soon have race detection at compile time
23:49:27Araqtry to do that with 'assert' :P
23:50:04gradhathat's going to be interesting
23:52:09gradhastill not sure what kind of race detection it is, so far I've read nimrod's threading is message passing and non shared memory, is that right?
23:54:19Araqthere is a shared memory heap, it's not GC'ed for now though
23:54:58Araqthe plan is to improve on that
23:55:47Araqas message passing is inevitably less efficient IMO
23:57:15gradhaargh, that reminds me today I had the urge to write a threaded image processing library in nimrod
23:59:34Araquse sharedAlloc and it should work out quite nicely
23:59:41Araqer, allocShared