<<31-01-2013>>

00:19:06*q66 quit (Quit: Quit)
06:55:47*zahary1 quit (Ping timeout: 252 seconds)
06:56:43*zahary joined #nimrod
07:57:34*Araq_ joined #nimrod
09:34:42Araq_ping zahary
09:36:18Araq_well you'll read this anyway: bootstrapping on my laptop: old version ~170 MB of ram, 3.1s
09:36:34Araq_new GC version: 235 MB, 3.3s
09:37:59Araq_and without having checked it, I blame the new cycleRoots handling for that :P
09:41:13*Araq_ quit (Read error: Connection timed out)
09:42:49*Araq_ joined #nimrod
10:29:21*Araq_ quit (Read error: Connection timed out)
10:30:51*Araq_ joined #nimrod
10:45:22*Araq_ quit (Quit: ChatZilla 0.9.89 [Firefox 18.0.1/20130116073211])
11:04:02*XAMPP-8 joined #nimrod
12:52:40*Trix[a]r_za is now known as Trixar_za
13:05:23*q66 joined #nimrod
13:16:52*Trixar_za is now known as Trix[a]r_za
13:31:37*Trix[a]r_za is now known as Trixar_za
14:12:13*Trixar_za is now known as Trix[a]r_za
14:46:54*zahary quit (Ping timeout: 264 seconds)
15:09:32*zahary joined #nimrod
15:28:57*XAMPP-8 quit (Ping timeout: 276 seconds)
15:33:07*XAMPP-8 joined #nimrod
16:18:43*XAMPP-8 quit (Ping timeout: 248 seconds)
16:22:52zaharyhi Araq. I can explain why you see this increase even tho the old collector didn't collect any cyclic objets, but I have only a few minutes right now
17:12:52shevyam I the only one to find games really difficult to make?
17:17:52Araqping zahary
17:25:12NimBotAraq/Nimrod fcef03e Araq [+0 ±7 -0]: cleaner GC switching
17:25:12NimBotAraq/Nimrod 16808f2 Araq [+1 ±5 -1]: revert to old GC; use --gc:v2 to activate the new GC
17:29:38*gradha joined #nimrod
17:30:19Araqgradha: I know, I know, I broke bootstrapping ... ;-)
17:30:49gradhahuh?
17:31:21gradhaif you mean changes from git, I only update when I want to fetch some commit
17:31:31Araqalright
17:31:45gradhaand there's no problem going back in time either
17:32:01gradhashevy: define "difficult", I'm sure you can make a tic-tac-toe
17:32:36shevygradha oh yeah, those games are easy
17:32:43gradhaok, define game then
17:32:47shevy9 fields, 4 or 5 actions per player
17:32:52shevygradha, a browser game for instance
17:33:05gradhahmm... what?
17:33:16gradhalike a "select your option" dialog/story?
17:33:40gradhaor you mean games you can make with unity and play with the browser plugin?
17:34:18gradhamaybe you mean flash games?
17:35:07dom96To me the difficult thing about games is the art and sound.
17:35:48gradhayou can always settle for the "8-bit" look and make crap mspaint graphics and beeps for sound
17:37:07*XAMPP-8 joined #nimrod
17:37:41Araqbut who will play it if it looks like minecraft?
17:38:24*dom96 is highly jealous of Minecraft
17:38:28gradhayou can ask people who play text based muds
17:38:41gradhadom96: why are you jealous of Minecraft?
17:39:21dom96gradha: Because it's extremely successful
17:39:23Araqha, I used to develop a text based adventure game
17:39:38Araqyou could chose between human, orc and elve
17:39:55Araqif you pick elve you lose immediately XD
17:40:33Araq*elf
17:40:46gradhathat's really xenophobic against elves
17:40:59gradhathey will come and kill you shooting hundreds of arrows
17:41:14reactormonkor boil your brain with magic
17:41:47Araqthe game said something like "fag elves cannot win!" :P
17:41:55gradhadom96: I'm more jealous of the guy who made the 1 million pixels page
17:42:13dom96gradha: the what?
17:42:36gradhahttp://www.milliondollarhomepage.com
17:43:07gradhawhenever I want to cry and kill myself I go read http://en.wikipedia.org/wiki/The_Million_Dollar_Homepage
17:44:21gradhaI'm also jealous of the guy who made the first "fart-app" on the app store
17:44:37gradhato me, these are examples of extreme genius for raking the best profit with minimal work
17:44:52gradhaminecraft is successful, but still has work behind
17:45:50gradhaAraq: was the game any different if you played orc or human?
17:46:43Araqnah, I don't think so
17:46:55dom96damn, that is quite brilliant.
17:47:14Araqyou could choose 2-3 different things after the "race" and then it would be over anyway
17:47:32dom96I keep thinking that there is still so many of these million dollar ideas out there, but I can't come up with a single damn thing.
17:47:39gradhathat's genius too, you increase replayability by 100% or more simply by adding a few selection screens
17:48:02gradhathe problem is nowadays people with interent figure stuff earlier
17:48:21gradhalike in star wars kotor, they figured all stats are irrelevant compared to strength
17:48:52Araqyou're already quite successful if you have players who notice that ;-)
17:49:36gradhayeah, I would love to have such problems, sleeping on my pile of money
17:53:08reactormonkor you didn't beta-test enough
17:53:46gradhamaybe the betatesters were sleeping on their piles of money?
17:53:52Araqyou don't make money by beta-testing
17:54:01gradhatrue
17:54:24gradhaso maybe you get the pile of money by not employing betatesters? woah, amazing revelation
17:55:28gradhaalways wondered why multi-billion comanies can't afford to hire a few guys who just test security of their software, I guess it's not worth it
17:57:05reactormonkAraq, depends, QA makes money
17:58:18gradhaindeed, http://build.nimrod-code.org is all... orange and red? I'll never understand those colors
17:58:50*dom96 notes to self to never become a UI designer
17:59:16gradhaI don't mind the colors if you write somewhere what they mean
17:59:57dom96yeah, I will get around to that.
18:00:20gradhadaltonic people would welcome too some graphical indicator too, apart from the colors
18:03:30dom96As soon as some daltonic person actually shows up, then I will think about doing that :P
18:03:56gradhathat's a nice superpower you have there: telepathic user detection
18:03:56NimBotAraq/Nimrod ff2a049 Araq [+0 ±7 -0]: rebuilt C sources for bootstrapping
18:04:22gradhaAraq: you mentioned writing drivers without gc, what happens with memory when you disable the gc? is there a delete for new?
18:05:38Araqgradha: nah, it either leaks or doesn't compile :P
18:05:45dom96gradha: hah. by what I said I mean as soon as they complain :P
18:06:29gradhaAraq: so you could use nimrod with manual memory thorugh calls to C's malloc/realloc/free?
18:06:41gradhaas long as you don't use nimrod's new, that is
18:08:55gradhaI'm thinking of the example in the manual using alloc0+dealloc, that would work?
18:09:37gradhathat example (in the Referenced and pointer types) calls the GC to unref the var, so I guess not
18:10:32Araqgradha: alloc0 + dealloc would work yeah
18:10:47Araqit's a bit more complex though
18:11:21gradhaah, the unref'ed variable is the string, which was automatically allocated by nimrod I guess
18:11:31Araqexactly
18:11:35gradhaso there would you get the memory leak if gc is disabled
18:11:53Araqcurrently yeah but nimrod's seq and strings semantics don't require a GC ;-)
18:12:12Araqit's planned to use C++'s styled destructors for them one day
18:12:32Araqhowever 'GC_unref' would then invoke the destructor
18:13:15Araqbut it's all academic anyway because for drivers you're in kernel mode and need to call something like kernel_alloc()
18:13:44Araqnimrod's memory allocator doesn't work in kernel land out of the box
18:14:07Araqif you happen to write a driver that lives in userspace, Nimrod's allocator may be fine
18:14:14Araqbut then so would Nimrod's GC as well
18:14:28gradhaexcellent, nimrod is HURD ready then
18:15:15Araqthe only things in the language that require GC is 'ref' and closures
18:15:55AraqI guess the compiler should warn/error about closures when you do --gc:none
18:17:59gradhaif a closure references a variable from the enclosing scope, does the closure make a copy?
18:18:10Araqdepends
18:18:25Araqoften the compiler manages to allocate the variable in the environment upfront
18:18:52gradhaoh, so the compiler analizes the life of the closure?
18:19:08Araqnot really for now
18:19:29Araqbut it's planned and easy to do
18:20:49gradhaso the hidden environment is itself a ref, and that's why closures would not work anyway without gc (or leak)
18:20:59Araqyep
18:21:28Araqin practice often the closure can be optimized to live on the stack though
18:22:00Araqthe compiler will error then when it can't do that with --gc:none
18:22:23Araqso yeah the semantics then depend on the compiler's optimizer :P
18:22:46gradhais there a proc like instantiationInfo() to get info about the hidden environment of closures?
18:23:29Araqthere is system.rawEnv
18:23:37Araqand system.rawProc
18:24:05Araqbut both return untyped pointers :P
18:24:58Araqyou're too concerned about closures though
18:25:08gradhaI'm just curious
18:25:22gradhaclosures are this magical thing I'm not used to too much
18:25:25Araqnimrod's templates are faster, fit the language better, don't require GC
18:25:41Araqand work better with nimrod's effect system
18:25:58gradhathe closures I'm used to are for async programming, I don't know how templates would help with that
18:26:07Araqusing closures for sequtils is misguided ;-)
18:26:18Araqfor async programming we have first class iterators
18:26:31Araqbut they indeed use closures too :-)
18:27:16gradhaone trend in the ios/objc community is to abuse closures to specify callback procs
18:27:49gradhaeven when you don't need to capture variables, people think it's neater to have all code close together
18:28:40Araqif you don't capture variables, the nimrod compiler doesn't create an environment on the heap
18:32:24gradhaI also think that creating a shared environment avoids the problem ios/objc has with closures referencing their parent object and creating loops
18:32:57gradhayou sometimes have to use the "weak__" modifier for variables, or create temporary values on the stack to avoid referencing the parent object
18:34:46gradhaother than dealing yourself with what the compiler might do regarding memory management, it just works!
18:35:15Araqcycles are no problem for a real GC
18:35:26Araqexcept for Nimrod's ... *cough*
18:35:36Araqbut we're working on it
18:37:01Araqin fact the new --gc:v2 fixes that
18:47:02*FreeArtMan joined #nimrod
18:57:57*shevy quit (Ping timeout: 245 seconds)
19:01:02*gradha quit (Quit: Leaving)
19:10:52*shevy joined #nimrod
19:20:53*XAMPP-8 quit (Ping timeout: 255 seconds)
20:25:41*XAMPP-8 joined #nimrod
20:32:48*gradha joined #nimrod
20:44:35gradhaah, can't write "assert not a in b", nor "assert a not in b", have to use assert (not (a in b))
20:44:59gradhaso lispy
20:45:32reactormonkgradha, bug Araq so he changes precedence ^^
20:45:56Araqgradha: assert a notin b
20:46:23Araqand reactormonk, it's not a problem of precedence, it's a parser/grammar thing
20:46:43reactormonkAraq, oh
20:48:56gradhanotin down notin
20:50:33gradhaisnot, what's the contrary? ==?
20:50:58reactormonkgradha, is
20:51:04Araqis/isnot, == / !=
20:51:39Araqbut there is no 'notof' :P
20:52:36reactormonkAraq, aww
20:52:37gradhais there an 'is'? Just tried "assert proc_returning_bool is false" and the compiler didn't like it
20:53:04Araqthat's because you just can't take your python knowledge and apply it to nimrod :P
20:53:17gradhaI'm just replacing == with is as you said above?
20:53:50Araq'is' is a type check for generic types: if T is int: ...
20:54:21reactormonkAraq, does the type system use that? so T is considered to be int in that body?
20:54:22gradhaok, misunderstood is/isnot as equivalent of comparisons
20:55:19Araqreactormonk: no, but it's not necessary either as nimrod's generics are quite macro-like
20:55:29reactormonkAraq, ok
20:55:49Araqaka "C++-styled duck typing" within generic code
20:55:56reactormonk^^
21:10:58*FreeArtMan quit (Remote host closed the connection)
21:16:17Araqping zahary
21:21:21*XAMPP-8 quit (Ping timeout: 252 seconds)
21:33:59gradhais this bad? "Error: internal error: (filename: compiler/sem.nim, line: 76)"
21:38:37Araqyeah, an internal error is a bug
21:46:27gradhaif you want me to test https://github.com/Araq/Nimrod/issues/324 with the latest git commit tell me what to do to avoid the bootstrapping problem
21:47:14Araqgradha: just unzip the C sources from the git repo, run build.sh and there you go
21:47:37gradhaisn't that the normal way? what broke?
21:49:52Araqnormally no unzipping of the C code is necessary
21:50:01Araqas the old version can build the new one
21:50:13Araqbut ... not today ;-)
21:50:23reactormonkwhat did you change?
21:50:44gradhaI use a shell script which purges the build files and unzips every time, so wouldn't have noticed
21:53:35AraqI added support for compileOption("gc", "v2") which system.nim now uses
21:53:48Araqso it's a chicken and egg problem
21:55:04reactormonkzahary, documentation for nimrod serve? *puppyeyes*
21:55:49Araqit's like you can't program without an IDE :P
21:55:53gradhaarj, was going to shout bad things but forgot to merge my clang fixup branch
22:03:29gradhahttps://github.com/Araq/Nimrod/issues/324 still fails with the recent git version
22:04:57Araqhow can a 'dirty' template contain a 'gensym' ? :P
22:05:19AraqI guess the compiler should produce a decent error message instead of crashing
22:05:22gradhaI wonder where did that come from
22:06:53gradhacompiling and running the sequtils module itself works, so why does it not crash there?
22:08:10Araqbad luck
22:08:50Araqwithin an 'assert' it's expanded differently
22:09:00Araqas 'assert' itself is a template
22:09:46gradhaindeed, bad luck http://memegenerator.net/instance/34154059
22:10:42AraqI planned to rework the templating system for 0.9.4
22:10:58Araqbut apperently it needs to fixed for 0.9.2 ...
22:11:32gradha"inject and gensym have no effect in dirty templates", oh yeah, they crash and burn, hehe
22:12:01*q66 quit (Quit: Quit)
22:12:50gradhayay, so removing dirty makes it work
22:28:57reactormonkAraq, well, the idetools work somewhat halfway
22:29:08Araqreactormonk: I know, I know ...
22:29:24AraqI'm sorry I'm not paid to work on Nimrod fulltime, you know
22:29:39reactormonkAraq, I know ;-)
22:29:46gradhaI'm also sorry
22:30:45gradhasomething I'm hitting now with idetools is starting to type the name of a proc, open parenthesis, and think, "what where the parameters again?"
22:30:51reactormonkAraq, oh, I found it... my bug. Forgot to read project configs for includes
22:31:02gradhaso I back on the name of the proc, search for it, and it is not found, but deleting the open parenthesis tends to work
22:31:32Araqidetools support the '(' event
22:31:50Araqso it could be your editor doesn't know about that
22:32:00gradhamaybe I'm remembering incorrectly and the problem is when I've written one or two parameters but that doesn't match the proc's signature
22:32:06Araqmore likely however is that it's broken in the compiler
22:32:22Araqyou know ... it's pretty hard to test without editor support :P
22:32:35gradharight
22:33:19Araqbut since the editor support improves, we have the chance to improve idetools
22:33:33gradhahmm... zahary: how about a vim macro which spits out a testcase? like, you have open a small file, put the cursor where idetools is supposed to work in a way, but it doesn't, and you capture all that? oh, and post to github since you are at it
22:33:51reactormonkgradha, snippets?
22:34:04gradhanot sure what those are
22:34:11AraqI thought about adding support for testing idetools to our tester
22:34:22Araqbut it's quite a lot of work :-/
22:34:57gradhareactormonk: to make an idetools test case you need to put the source and invoke the compiler on it with line/column info, maybe that could be generated from the editor itself
22:35:10reactormonkgradha, more elisp \o/
22:35:37reactormonkbut this evening is dedicated to scala.
22:36:17gradhaAraq: how about a proxy tester which reads target source and line/col info from some xml/json?
22:36:37gradhathe json could contain the expected output and fail if it doesn't match what the compiler returns?
22:36:50Araqyou don't need json for that
22:36:59Araqbut it's still some work
22:37:15gradhathe source of the test case would contain the line/col info?
22:37:43Araqever looked at the current test suite?
22:37:57gradhajust recently got it to completely run, so no
22:38:02Araqlook at tests/reject/t*.nim
22:38:11Araqto see how it's done already
22:38:23Araqoh btw dom96
22:39:40reactormonkcat 99bottles.nim
22:39:41reactormonk# Test if the compiler detects invalid module names
22:39:44reactormonk:-)
22:41:25Araqugh, dom96, sometimes numbers like 0xff'i32 are not highlighted properly in aporia
22:41:36Araqbut I can't reproduce it now :-/
22:44:14reactormonkAraq, could syntax hl be done by idetools?
22:45:02Araqwhy should it?
22:45:06gradhasounds extremely slow for every typed character
22:45:13Araqyeah
22:45:13reactormonkgradha, yep :-/
22:45:26Araqnimrod is not that hard to lex
22:53:30dom96Araq: "Sometimes", that doesn't give me much to go on :(
22:54:03Araqdom96: perhaps it was an older version of aporia
22:54:28Araqit's was one file in compiler/*.nim, I'll write down which one when I notice it again
22:54:32dom96I don't think I changed how that stuff is highlighted though.
22:55:03AraqI'll look at that file again soon I think
23:01:12*gradha quit (Quit: Leaving)
23:16:29*XAMPP-8 joined #nimrod