<<15-01-2013>>

00:10:00NimBotAraq/Nimrod d1be69e Araq [+0 ±1 -0]: fixes a performance regression for json handling
00:10:00NimBotAraq/Nimrod 48a2d66 Araq [+0 ±1 -0]: support for LuaJIT
00:21:14*q66 quit (Quit: Quit)
00:51:12*XAMPP-8 joined #nimrod
02:25:38*XAMPP_8 joined #nimrod
02:27:13*XAMPP quit (Ping timeout: 245 seconds)
02:27:24*XAMPP-8 quit (Ping timeout: 252 seconds)
02:30:32*XAMPP-8 joined #nimrod
02:32:00*XAMPP_8 quit (Ping timeout: 276 seconds)
03:05:41*XAMPP joined #nimrod
03:19:32*fowl quit (Quit: Leaving)
05:29:29*XAMPP_8 joined #nimrod
05:33:23*XAMPP-8 quit (Ping timeout: 248 seconds)
05:59:29*XAMPP_8 quit (Quit: Leaving)
06:37:00*XAMPP_ joined #nimrod
06:40:58*XAMPP quit (Ping timeout: 245 seconds)
10:48:47*fowl joined #nimrod
11:24:03*Araq_ joined #nimrod
11:37:59*Araq_ quit (Quit: ChatZilla 0.9.89 [Firefox 17.0.1/20121128204232])
12:56:38*q66 joined #nimrod
13:28:14*libMAN is now known as libman
13:42:44*libman quit (Quit: leaving)
13:44:10*libman joined #nimrod
14:42:58*Araq_ joined #nimrod
14:45:57*Araq_ quit (Client Quit)
15:44:59*libman quit (Read error: Operation timed out)
17:34:18*gradha joined #nimrod
17:49:48*FreeArtMan joined #nimrod
18:48:55gradhaugh, math.randomize doesn't allow a specific seed value?
18:51:57dom96hrm, indeed. Seems to simply use the current time.
18:52:47*FreeArtMan quit (Remote host closed the connection)
18:59:38gradhameh, can't add a default "invalid" parameter to randomize since srand48 accetps longs, so there are no wasted values for the int/clong type
19:00:00gradhamaybe simply add an overloaded proc randomize(seed: long)?
19:02:46dom96that would work, yes.
19:03:11dom96at first I was thinking maybe use -1 as a value which means "use the current time" but then -1 can be a seed too I guess.
19:41:49gradhaany idea why the interface for srand48 accepts a cint instead of a clong? the manpage for srand48 says it uses a long instead of an int
19:49:29dom96maybe the wrapper is simply wrong?
19:51:03gradhahmmm... when you don't specify a type in C isn't the default type int?
19:51:21gradhamanpage says srand(unsigned seed), which would implicitly be int
19:51:52gradhaand int == long on my machine, so even the normal srand(cint) wrapper would be incorrect, since cint maps to int32, not int
19:53:24gradhamaybe srand should accept a csize and srand48 a clong
19:59:14gradhayay, manpage about srand() says it copies the "32 bits of the seed value". So maybe when long was 32bits (did that ever happen?)
19:59:33gradhabut more importantly: why am I caring so much about this instead of going on with life?
20:33:05gradhadoes nimrod have a syntax where you can call a proc with a tuple and the tuple is unpacked into the single parameters?
20:33:22gradhaI only found tuple unpacking for return values
20:43:39Araqgradha: no, it's on my (theimaginery part of) todo list
20:44:30Araqyour json file was evil btw but it's not slightly faster than the python version on my machine :P
20:44:37Araq*now
20:44:54gradhaI know, it's all evilness coming from a python script
20:48:18gradhaat some point the whole python script will be implemented in nimrod, for now only serialization will do, and the json is the dump between python/nimrod
20:48:41Araqwell the json parser is now on par with python's
20:49:05gradhaon my machine now both clock on the "I don't care" scale, so that's enough
20:49:22gradhain the future I plan to pit nimrod's json against the fastest json parser for objc on ios
20:49:42Araqit's 0.05s vs 0.04s
20:50:22dom96hrm, is Python's implemented in C?
20:50:29gradhayour machine is then three times faster than mine
20:51:38Araqdunno if the 0.04s was a debug build :P
20:51:54AraqI would hope python's is implemented in C ...
20:52:24AraqI still didn't get why the nimrod version was that slow
20:52:51Araqit spent most of the time in memset()'ing 2MB strings or something
20:53:09Araqdefinitely something we can optimize away
20:54:56Araqbut I still don't get why it's so much slower, must be some GC weirdness too
20:55:42gradhait looks that way, that's when macs grind to a halt, when they page swap
20:56:05gradhabtw, I don't know if it was related, but the system monitor showed the system to be using 20GB of swap, so had to reboot to regain normal use speed
20:56:23gradhacould it be that the gc was allocating strings and not freeing them because of a tight loop?
20:59:11Araqnot on my 64 bit machine
20:59:20Araqwell ... hm
20:59:56Araqperhaps yes
21:00:34gradhait may have been just bad luck too, I'm always torrenting/video encoding in the background, so maybe one of those was the culprit
21:01:12Araqnah I think you're right; it's recursive and there are likely some stack locations that look like pointing to the old strings
21:01:32Araqso indeed it couldn't free and all hell breaks lose then
21:02:15AraqI don't get how anybody can seriously use an imprecise GC
21:02:32Araqnimrod's is only imprecise for the stack and even that already causes problems
21:03:45Araqoh well we'll get it completely precise with C++ codegen or other tricks :P
21:52:54*gradha quit (Quit: Leaving)
23:37:53*XAMPP-8 joined #nimrod