<< 14-04-2014 >>

00:00:55BitPuffinthere will be some lociking though, because in the interval on how long you've set a session to expire each substore will go through their sessions and cleanup expired ones
00:01:36BitPuffinalthough maybe I should offset that so that so that they are not all locked at the same time
00:12:39reactormonkflaviu, kewl
00:18:00VarriountEXetoC: What kind of pragma were you trying to apply to a foreign proc?
00:18:43*bjz joined #nimrod
00:20:09*bjz_ quit (Ping timeout: 250 seconds)
00:25:16dom96BitPuffin: Let the user create a session per thread.
00:25:27dom96i.e. let the user worry about it
00:26:40dom96'night
00:51:08*brson quit (Ping timeout: 245 seconds)
00:51:46BitPuffindom96: I dunno if I wanna do that
00:52:02BitPuffindom96: creating lots of threads like that is very expensive
00:52:10BitPuffinthe point of it is to be able to handle massive amounts of sessions
00:52:14BitPuffinnight
00:53:03BitPuffinand I really want the interface to just be store.genSession() and store[session.id].hasExpired() basically. So that any monkey can use it
00:53:19*brson joined #nimrod
00:55:21*q66 quit (Quit: Leaving)
01:35:18flaviuDoes nimrod have green threads?
01:39:17BitPuffinnimrod doesn't run in a vm
01:39:23BitPuffinell
01:39:30BitPuffinI guess maybe with the vm
01:40:00BitPuffinnot sure why you'd want 'em though, brb
01:43:46EXetoCä
01:43:58flaviuWell, they'd allow for a crap ton of threads like you want, but I guess that 'fiber' would be a better term.
01:44:39*BitPuffin quit (Ping timeout: 250 seconds)
02:18:00EXetoC{.importc: "glFoo", .ogl.} gives me this apparently: Pragma StrLit glFoo Ident !"ogl". bug?
02:20:37*OrionPK quit (Ping timeout: 250 seconds)
02:22:31flaviuEXetoC: Whats going in `.ogl`?
02:25:46flaviuI can't get it to compile without removing the dot.
02:26:38EXetoCdisregard the dot
02:26:42EXetoCflaviu: {.pragma: ogl, header: "<GL/glew.h>".}
02:30:44EXetoCthis node doesn't have a plural name, so I don't know how it works in this case with multiple pragmas
02:31:35*BitPuffin joined #nimrod
02:32:32BitPuffino/
02:34:05flaviuBitPuffin: Well, they'd allow for a crap ton of threads like you want, but I guess that 'fiber' would be a better term.
02:35:11BitPuffinflaviu: ah, then I'm more familiar with what you are saying
02:35:11flaviuEXetoC: Definitely looks like a bug
02:35:22BitPuffinflaviu: however aren't they all still on the same thread?
02:35:33BitPuffinthe point of having the many cores in this case is to utilize all the cores
02:35:39flaviuYou'd have a thread pool, so everything would be spread out
02:35:49BitPuffinhmm
02:35:56BitPuffinwell
02:36:23BitPuffinI don't really think I can get a lock free thing without doing it this way
02:36:37flaviuI have no idea what I'm talking about. I've just used then, not implemented them
02:36:41BitPuffinbecause each thread will have their own slice of the store in their local heap
02:36:52BitPuffinyeah well I don't really know either
02:37:28flaviuMaybe use the actors library? Send them an anon function and have them execute it?
02:38:05flaviuThe goal would be to define everything in terms of functions that don't care where they're executed
02:38:08BitPuffinwell if I did that they would have to lock a big global store instead
02:38:11BitPuffinwhich would probably be slower
02:41:33flaviuEXetoC: Nimrod has a class that renders ASTs back to source code, it outputs something like {."glFoo", ogl.}, which is definitely a bug, if only in the renderer
02:41:51flaviuBut I doubt its only in the renderer
02:45:37flaviuBitPuffin: Actors seem to be lock-free
02:47:20BitPuffinflaviu: the actors themself maybe but they can't just magically access data without locks can they? o.O
02:48:05flaviuCan you structure things so that everything is readonly?
02:49:07BitPuffinflaviu: not really, the whole thing with a session store is that it is rw intensive
02:57:11flaviuBitPuffin: http://doc.akka.io/docs/akka/1.3.1/scala/tutorial-chat-server.html#Session_management
02:57:20flaviuNot nimrod, but I'm sure it could work
02:57:25flaviuits a start at least
02:57:38BitPuffinI'll take a looksy
02:57:51BitPuffinofc it's not nimrod, otherwise I wouldn't be writing a session store for nimrod :P
03:00:47flaviuBitPuffin: Well, reading more they go on to say that that approach doesn't work very well
03:00:57BitPuffinhaha
03:01:01BitPuffinwell hrm
03:01:09BitPuffinI think my design is pretty alright
03:01:19BitPuffin just need to implement it and try to benchmark it with like a million sessions
03:02:23*brson quit (Quit: leaving)
03:18:18*Jesin joined #nimrod
03:19:27flaviuBitPuffin: Do you have to lock on the entire array? Just lock on each object when it's requested, and unlock when its return.
03:19:27flaviuYou're probably already doing that though and I have no idea what I'm talking about. Night.
03:19:30*flaviu quit (Quit: Leaving.)
03:20:41VarriountHi Jesin
03:20:52Jesinhi
03:40:50*Jesin quit (Quit: Leaving)
04:06:16*xenagi quit (Quit: Leaving)
04:17:47*OrionPK joined #nimrod
05:00:59*Varriount quit (Read error: Connection reset by peer)
05:07:33*Varriount joined #nimrod
05:26:10*DAddYE joined #nimrod
05:26:41*bjz_ joined #nimrod
05:27:44*bjz quit (Ping timeout: 258 seconds)
05:35:18*DAddYE quit (Ping timeout: 245 seconds)
06:55:54Varriountfowl: Even after some fixes, I'm getting an "Error: unhandled exception: Unknown operating system." exception when running your allegro test example.
06:58:46Varriountfowl: Oh, fixed that error, now I get an illegal storage access during the "redraw" call.
08:22:56*nande quit (Read error: Connection reset by peer)
09:33:31*omgeewtfbbq joined #nimrod
09:33:57*omgeewtfbbq left #nimrod (#nimrod)
09:46:35*seubert quit (Ping timeout: 240 seconds)
09:46:41*seubert joined #nimrod
09:47:29*io2 joined #nimrod
09:53:30*noam_ joined #nimrod
09:53:49*faassen joined #nimrod
09:56:36*noam quit (Ping timeout: 252 seconds)
10:08:45*BitPuffin quit (Ping timeout: 252 seconds)
10:40:04*|apriori| joined #nimrod
10:40:15|apriori|Varriount, are you here?
10:40:32dom96'morning
10:40:38|apriori|hello dom96
10:40:44dom96hello |apriori|
10:40:49|apriori|it's been a loong time I've been here
10:41:14dom96indeed. How have you been?
10:41:17|apriori|*since I last have been here
10:41:28|apriori|well, busy with studies.. in the process of finishing them
10:41:44|apriori|and.. playing with other languages as well.. mainly haskell and idris
10:42:12dom96ahh, i'm in the same boat in regards to studies.
10:42:52|apriori|it was kinda funny to see getting spammed at with tons of mails, regarding nimrod bugs etc. on github
10:42:59|apriori|I still did not deregister
10:43:01dom96I've read about Idris, is it any good?
10:43:24|apriori|well, it will take time. stability is not exactly that great. currently suffering from "featureritis"..
10:43:25dom96You can disable emails if they bother you in Github settings.
10:43:27dom96I did that.
10:43:41dom96It only then sends emails when you comment on issues, or when the issues are your own.
10:43:46|apriori|the idea behind is kind of awesome, though
10:43:54|apriori|yeah, might look into that..
10:44:02|apriori|but that's actually not the reason why I'm here
10:44:19|apriori|Varriount opened an issue on my nimCL (opencl binding for nimrod)
10:44:22dom96I recently fixed some things in Nimrod's JS backend and made this: http://build.nimrod-lang.org/docs/lib.html#babel
10:44:41|apriori|Now I've seen that nimrod itself already includes a more recent version. So I ask, can I get rid of that repository alltogether?
10:45:01|apriori|yeah, I've read about babel
10:45:21|apriori|good thing - many language miss something like it.
10:45:47|apriori|I mean, I see it with cabal on haskell... I really something like that on other languages. Even though it can be (and will be) a bitch sometimes
10:46:10|apriori|*I really miss
10:46:24dom96The package list is dynamically generated with JS generated by Nimrod though :)
10:46:31dom96Also, I would keep the repo.
10:46:46dom96Araq's opencl binding may not be complete.
10:47:01dom96I think he didn't realise that you wrapped it already
10:47:03|apriori|hm.. mine might not be eitehr, actually.
10:47:14|apriori|he did.. but I did not longer maintain it
10:47:18|apriori|that's why he "forked"
10:47:40dom96Still. No harm in keeping both.
10:47:46|apriori|okay
10:51:31|apriori|anyway, dom96, I wish you guys good luck and all the best (including success with nimrod). I gotta go again.
10:52:41*|apriori| quit (Quit: Leaving)
10:55:40EXetoCdom96: do you know how construct a node that contains multiple pragmas, some of which are given arguments? {.p: "x".} outputs "Pragma StrLit "x"
10:56:29EXetoCthis might be a bug, but I don't know if it means that I cannot currently do this
10:57:10EXetoCA series of argument-less pragmas gives me Pragma Ident !"x" Ident !"y"
11:18:04*BitPuffin joined #nimrod
11:20:38dom96EXetoC: newNimNode(nnkPragma).add(newStrLit("x")) ?
11:27:06*foodoo joined #nimrod
11:29:11EXetoCdom96: isn't that {."x".}?
11:29:35dom96Probably. I was going by what you said it outputs.
11:30:01dom96So dumpTree gives you that?
11:30:43dom96You're right. That does seem like a bug.
11:31:03dom96probably a bug in treeRepr
11:31:59EXetoCyou think it's actually Pragma followed by a list in reality? I don't know what the structure should be
11:33:12EXetoCPragma StmtList .. ?
11:33:26dom96I'd say it's probably Pragma, Ident !"x", StrLit "blah"
11:34:06EXetoCand {.a: "x", .b: "y".}?
11:34:15EXetoCoops, too many dots once again
11:34:56dom96let me try to fix it
11:36:02dom960_o
11:36:54foodoo"oops I dots it again" - Britney Spears
11:37:12dom96foodoo: hah
11:37:25dom96EXetoC: It seems this bug goes much further than treeRepr
11:41:04dom96EXetoC: When you dumpTree a 'var x {.importc: "asdf".} = 5' it gives: PragmaExpr (Ident !"x", Pragma(StrLit asdf))
11:41:38dom96in any case: bug report
12:04:11EXetoCobviously
12:27:35*foodoo quit (Quit: leaving)
12:53:54*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
13:09:01*mwcampbell joined #nimrod
13:09:55mwcampbellI think fmtmsg() and the associated constants should be removed from lib/posix/posix.nim. It doesn't appear that anything actually uses it, and it's not implemented in musl libc (alternative libc for Linux).
13:11:08Araqmwcampbell: it's part of posix though.
13:11:21Araqso why remove it? don't use it if you don't have it
13:11:46Araqmaybe posix.nim is missing a .deadCodeElim:on
13:13:52mwcampbellIs dead code elimination only done in release mode?
13:14:21mwcampbellI can't bootstrap Nimrod with musl libc because I don't have fmtmsg.h
13:14:33mwcampbelleven though nothing uses fmtmsg
13:15:03Araqyeah it's only done in release mode unless you turn it on per module
13:15:13Araqwith {.deadCodeElim:on.}
13:15:24Araqadd that to posix.nim please and see if it helps
13:20:27*[1]Endy joined #nimrod
13:31:13*darkf quit (Quit: Leaving)
13:39:59*[2]Endy joined #nimrod
13:40:48*mwcampbell quit (Remote host closed the connection)
13:42:29*[1]Endy quit (Ping timeout: 240 seconds)
14:00:32*[1]Endy joined #nimrod
14:03:17*[2]Endy quit (Ping timeout: 240 seconds)
14:21:04*[2]Endy joined #nimrod
14:23:57*[1]Endy quit (Ping timeout: 252 seconds)
14:41:31*[1]Endy joined #nimrod
14:44:56*[2]Endy quit (Ping timeout: 276 seconds)
15:00:05*Fernandos joined #nimrod
15:00:06*Fernandos quit (Changing host)
15:00:06*Fernandos joined #nimrod
15:01:41*Fernandos quit (Client Quit)
15:02:03*[2]Endy joined #nimrod
15:03:01reactormonkany special stringtables or just use tables?
15:03:19dom96strtabs
15:04:29*[1]Endy quit (Ping timeout: 240 seconds)
15:05:14reactormonkdom96, nah, from strings to integers
15:05:19reactormonkI got my sparse word vectors
15:08:10dom96use tables then
15:11:51reactormonkok
15:21:54*[1]Endy joined #nimrod
15:22:26fowlVarriount, what was nil? can you do a PR for the stuff you fixed?
15:24:49reactormonkfastest way to ditch the first element of a seq?
15:25:21*[2]Endy quit (Ping timeout: 258 seconds)
15:25:34reactormonkaka drop(1)
15:26:05fowlyou want to keep the order?
15:29:37reactormonkyup
15:29:41reactormonk[1..-1] for now
15:30:22fowldelete(0) will move every item down one
15:31:50reactormonkwhat's the regex module?
15:31:52reactormonksubex?
15:32:04fowlre
15:37:20reactormonk let relevantWords = words.split('|').filter do (word: string) -> bool: match(word[2],re"^(NN|JJ|VB).*")
15:37:24reactormonkgood nimrod?
15:38:32reactormonkcode.nim(10, 6) Warning: 'l' should not be used as an identifier; may look like '1' (one) [SmallLshouldNotBeUsed]
15:38:34reactormonklol.
15:41:17reactormonkbtw, how do I iterate over the lines of a file? via readline?
15:42:15fowlsystem.lines
15:42:21reactormonkmuh
15:42:22*[2]Endy joined #nimrod
15:42:38reactormonkwhy not system.items(TFile) and make it use system.lines?
15:42:40fowlwho when did the index get updated
15:43:11fowlreactormonk, someone might argue that the items of a file are bytes, not lines
15:44:53reactormonkfowl, yup
15:45:19*[1]Endy quit (Ping timeout: 250 seconds)
16:01:58reactormonkuhm, no `next` in iterators?
16:02:13*[1]Endy joined #nimrod
16:02:28reactormonkah, continue.
16:04:09*Matthias247 joined #nimrod
16:06:11*[2]Endy quit (Ping timeout: 276 seconds)
16:13:30reactormonkhmm, my nimrod code is slower than the corresponding scala code :-/
16:16:27reactormonk let relevantWords = words.filter do (x: string) -> bool: match(x.split('|')[2], re"^(NN|JJ|VB).*").map do (x: string) -> string: x.split(' ')[1]
16:16:35reactormonkgives me Error: type mismatch: got (bool, proc (string): string)
16:18:48fowlyou need parens or something
16:19:11fowlyou're calling map(match(..), func)
16:19:53*psquid quit (Ping timeout: 245 seconds)
16:20:31reactormonkah sup
16:20:54reactormonkbut which ones?
16:21:02*psquid joined #nimrod
16:21:53*[2]Endy joined #nimrod
16:22:47reactormonkah, found it
16:25:32*[1]Endy quit (Ping timeout: 258 seconds)
16:36:45reactormonkdo we have some kind of counter table?
16:40:19EXetoCin tables I think
16:40:38EXetoCTCountTable?
16:40:50BitPuffinI think I may have come up with a workaround for my linagl problem
16:41:07*io2 joined #nimrod
16:42:21*[1]Endy joined #nimrod
16:44:41*JStoker quit (Ping timeout: 255 seconds)
16:45:07*[2]Endy quit (Ping timeout: 252 seconds)
16:46:22*JStoker joined #nimrod
16:54:22Araqreactormonk: it's likely that you simply compare different regex engines. I'm pretty sure Java's regexes gained JIT support by now. There is also a version of pcre with JIT support but still the results can vary vastly
17:00:51*[2]Endy joined #nimrod
17:03:52*[1]Endy quit (Ping timeout: 258 seconds)
17:12:12*q66 joined #nimrod
17:12:13*q66 quit (Changing host)
17:12:13*q66 joined #nimrod
17:13:08*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
17:14:06*io2 joined #nimrod
17:20:05reactormonkAraq, that might be possible. I'm using the regexp a lot.
17:20:31*nande joined #nimrod
17:20:47*DAddYE joined #nimrod
17:21:21*[1]Endy joined #nimrod
17:22:49*DAddYE quit (Read error: Connection reset by peer)
17:23:09*DAddYE joined #nimrod
17:24:03*[2]Endy quit (Ping timeout: 245 seconds)
17:24:04*DAddYE quit (Read error: Connection reset by peer)
17:24:38*DAddYE joined #nimrod
17:27:19NimBotnimrod-code/nimbuild master b10ece8 Dominik Picheta [+0 ±1 -0]: Builder: Force PATH change for koch tests execution.
17:28:12Araqgah, implementing the codegen support for 'spawn' is hard ...
17:28:52dom96Araq: Cool. Someone donated some BTC to us.
17:29:25Araqyummy
17:30:10dom96~$100 worth.
17:30:24Araqyeah but rising!
17:31:35*q66 quit (Ping timeout: 252 seconds)
17:32:04dom96lol
17:32:16dom96It used to be $1000 per 1 BTC
17:32:53Araqwe simply have to wait
17:33:03Araqnext crisis is coming
17:33:25Araqand then bitcoins will be the new gold
17:33:45dom96I think we should transform these bitcoins into dogecoin
17:35:17*q66 joined #nimrod
17:35:18*q66 quit (Changing host)
17:35:18*q66 joined #nimrod
17:38:05*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
17:38:56BitPuffindom96: that's gonna be a warning for you
17:38:58fowldom96, doge is worthless
17:38:59BitPuffingod damn dogecoin
17:39:46*io2 joined #nimrod
17:40:03dom96It was a joke!
17:40:08*[2]Endy joined #nimrod
17:43:17*[1]Endy quit (Ping timeout: 240 seconds)
17:49:03BitPuffindom96: jokes are not allowed
17:49:05BitPuffinanyway
17:49:21BitPuffinI think I have come up with a possible workaround in linagl that will let me at least maybe work on ma gaem
17:49:33Araqgood
17:49:39EXetoCdoes anyone know what AST corresponds to this pragma expr: {.a: "x", b: "y".}? I can't figure it out by dumping it because of a bug, which might or might not prevent me from also constructing it
17:50:53AraqnkPragma(nkExprColonExpr(a, "x"), ...)
17:50:55reactormonkdom96, 1.2k$
17:51:08EXetoCthanks. will try that
17:55:00*shodan45 joined #nimrod
17:56:55Araqbbl
18:00:24dom96reactormonk: ?
18:06:22BitPuffinat least if my assumption on why it's erroring in the first place is correct
18:07:27*vendethiel quit (Ping timeout: 250 seconds)
18:07:49*vendethiel joined #nimrod
18:25:04*[1]Endy joined #nimrod
18:26:11*cark quit (Ping timeout: 246 seconds)
18:26:39reactormonkdom96, 1.2k$ per bitcoin
18:26:46dom96oh
18:27:59*cark joined #nimrod
18:28:31*[2]Endy quit (Ping timeout: 252 seconds)
18:31:01*brson joined #nimrod
18:45:28*[2]Endy joined #nimrod
18:48:31*[1]Endy quit (Ping timeout: 258 seconds)
18:52:41*gXen joined #nimrod
18:53:09EXetoCAraq: newNimNode(nnkPragma, newNimNode(nnkExprColonExpr).add(newIdentNode(!"...")...?
18:59:09EXetoCthat gives me {..}
19:05:58*[1]Endy joined #nimrod
19:08:33*[2]Endy quit (Ping timeout: 250 seconds)
19:14:14*Mat3 joined #nimrod
19:14:17Mat3hi all
19:23:42EXetoCMat3: hi
19:23:48EXetoCwhat up
19:26:32*[2]Endy joined #nimrod
19:27:24Mat3hi EXetoC
19:27:29fowlEXetoC, interesting
19:28:11fowlEXetoC, this is a regression
19:28:49Mat3EXetoC: I am currently rewrite my VM in assembler (far more possibilities for optimization)
19:29:03*[1]Endy quit (Ping timeout: 245 seconds)
19:32:00*Mat3 is now known as Mat3-bbl
19:32:10EXetoCMat3-bbl: neat
19:32:13EXetoCfowl: oh ok
19:39:59EXetoCwhat's the equivalent of dumpTree for PNimrodNode?
19:41:04EXetoCnevermind
19:43:59fowltreerepr/lisprepr
19:44:07fowlwhat u working on?
19:46:59*[1]Endy joined #nimrod
19:49:51*[2]Endy quit (Ping timeout: 258 seconds)
19:59:58*shodan45 quit (Quit: Konversation terminated!)
20:07:30*[2]Endy joined #nimrod
20:10:35*[1]Endy quit (Ping timeout: 276 seconds)
20:26:41*flaviu joined #nimrod
20:28:00*[1]Endy joined #nimrod
20:31:12*[2]Endy quit (Ping timeout: 265 seconds)
20:31:39*nande quit (Remote host closed the connection)
20:33:16flaviufowl: He's found a bug in the pragma AST
20:34:49EXetoChe noticed
20:36:05flaviuOh, I misunderstood the context
20:36:34EXetoCfowl: I found it is what I meant. I'm working on opengl error checking still
20:36:49EXetoCI'll just wait until it's fixed. I won't bother with your approach
20:37:38AraqEXetoC: are you certain it's a bug that matters?
20:37:58Araqlooks to me the compiler rewrites the AST, but after semantic checking, so it might be fine
20:40:55EXetoCAraq: is that some time after the macro returns? I constructed such a pragma node that I showed you, and I do 'echo result.repr' at the very end
20:41:46EXetoCI'll keep working on it if it does indeed not matter
20:42:14Araqtry an immediate macro
20:42:15EXetoCI won't be able to verify that part though, but the code is simple so I should be doing the right thing
20:42:43fowlAraq, if i call newStringOfCap in system.nim i get Error: system module needs 'rawNewString'
20:43:04fowl(this is after newStringOfCap is defined)
20:43:23*[2]Endy joined #nimrod
20:45:07Araqfowl: that means the compiler doesn't know 'rawNewString' yet
20:45:21Araqbut the code generator asks for it
20:46:05*[1]Endy quit (Ping timeout: 240 seconds)
20:47:53EXetoCAraq: I'm sure why but ok. the pragma expr shows up correctly if I do "template t: stmt = {.importc: "1".}; p.pragma = getAst(t())[0]". I get an ICE some time after I print result.repr though
20:48:24EXetoC"error: expected identifier or ‘(’ before numeric constant N_NIMCALL(void, 1)(NI target, NI s, NI t)..."
20:48:49fowlAraq, rawNewString is the importc func for newStringOfCap
20:49:04EXetoCany idea if it might've been reported? it might be difficult to determine that but I'll do a search
20:49:48AraqEXetoC: has been reported already
20:49:51EXetoCok
20:52:37*[2]Endy quit (Ping timeout: 252 seconds)
20:53:05*Mat3-bbl is now known as Mat3
20:59:50*flaviu quit (Ping timeout: 246 seconds)
21:15:17*gXen quit ()
21:18:29*flaviu joined #nimrod
21:34:06fowlhmm why doesnt shallowCopy show up on theindex.html
21:34:29reactormonkfowl, it's in system
21:35:30fowli know
21:36:58dom96weird
21:41:28fowlwtf ijust had an issue with shallow but it disappeared
21:42:32Araqwell I applied a patch wrt shallow which might have produced a regression
21:42:44fowlah i see
21:42:55fowlit works inside a block for some reason
21:43:09Araqit's broken beyond repair
21:43:21Araqso we declared it unsafe
21:43:52Araqthe compiler sometimes knows better than you and generates a copy anyway
21:44:11Araqto keep a bit of memory safety
21:50:15fowlthese are weird bugs https://github.com/Araq/Nimrod/issues/1094
21:50:36fowland Araq the compiler never knows better than me, i am a human
21:51:31*DAddYE quit (Remote host closed the connection)
21:51:33Araqthat's not weird at all
21:51:53Araqa seq/sting is a pointer
21:52:01Araqnot a pointer to a pointer
21:52:07*DAddYE joined #nimrod
21:52:17Araqyou can't mark something as 'shallow' and then resize
21:52:41Araq'shallow' is like 'freeze', you shouldn't modify afterwards
21:53:14AraqI didn't name it 'freeze' as neither the compiler nor the runtime checks for modifications (yet?)
21:53:22fowloh
21:54:02Araqimprove the docs of 'shallow' please and then close this bug
21:54:23Araqon the other hand
21:54:44Araqa check in 'add' for freezable seqs in debug mode won't kill us ...
21:56:33*DAddYE quit (Ping timeout: 245 seconds)
21:57:10Araqand yeah ... it's actually a very useful feature for performance. we should make it safe and advertise its usage.
22:01:08EXetoCshould it be possible to pass a proc declaration (no body) to a macro? I'm using a dummy importc now
22:01:16EXetoCone can go about this in several ways though
22:02:18EXetoCtuples for example, but a proc with importc is fine
22:07:51AraqEXetoC: dunno
22:10:39BitPuffinflaviu: it's not just a matter of locking the object no because sessions have to be removed from the datastore, which means relinking nodes and stuff
22:23:45fowlEXetoC, yea
22:25:12*Mat3 wonders about the linux kernel interface (even MS/DOS was more structured)
22:25:22fowlAraq, how is this "in the future, shallow strings will be frozen to prevent modification, but for now modifying a shallow string is undefined behavior"
22:29:28*Matthias247 quit (Read error: Connection reset by peer)
22:34:03*xenagi joined #nimrod
22:34:14flaviuDoes nimrod provide atomic operations?
22:35:44EXetoClib/system/atomics.nim?
22:35:59flaviuYes, thanks
22:36:10EXetoCgrep<3
22:36:13EXetoCBitPuffin: right?
22:38:42flaviuDocgen is too clever, it realized it wasn't being run with threading enabled and cut most the atomic operations from the docs
22:39:23*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
22:41:48EXetoCuh oh
22:54:04Araqfowl: sure, that's fine
23:04:09Araqgood night
23:04:25Mat3ciao
23:04:30*Mat3 quit (Quit: Verlassend)
23:11:25*Trixar_za thinks Mat3 should pass him some of the crack he's smoking
23:13:00EXetoC?
23:13:09EXetoCoh
23:19:14fowlEXetoC, lets make a game
23:19:38*darkf joined #nimrod
23:21:50BitPuffinEXetoC: ack och ve
23:35:08dom96Why don't we all make a game?
23:35:13dom96Together.
23:37:27flaviudom96: Do you have any ideas?
23:38:30dom96not really
23:40:02*DAddYE_ joined #nimrod
23:41:51dom96flaviu: do you?
23:41:53EXetoCfowl: ok
23:42:29EXetoCI suggested a multiplayer RTS+RPG. should we start with something simple?
23:43:08flaviuI sort of have an idea, I don't know if it'll be fun
23:43:23EXetoCthere's a lot of generic stuff to be done anyway
23:44:26*comex quit (Read error: Operation timed out)
23:44:43*comex joined #nimrod
23:44:48dom96Creating an RTS sounds fun
23:45:16flaviuI've played around with procedural generation a bit
23:45:20dom96Maybe we should make an ASCII RTS heh
23:49:15*Demos joined #nimrod
23:49:46flaviuhttp://imgur.com/a/yLW8v I'm particularly happy with how the first image looks
23:50:31Varriountflaviu: smoothed noise?
23:51:33EXetoCperlin noise?
23:52:09flaviuSimplex, I also implemented tiling and that requires higher dimensions which is slow with perlin noise
23:52:38flaviuI adapted the algorithm from http://www.gamedev.net/blog/33/entry-2138456-seamless-noise/
23:52:49*Jesin joined #nimrod
23:53:20EXetoCdidn't know it was one of the use cases
23:54:22DemosI have rendering code, not sure how good it is though. We would need to write collision code, I have sweep and prune implementation in c++ that I could port, but physics middlewear would be nice to have access to.
23:55:24Varriountflaviu: I've never been able to find a good explanation on how to implement simplex noise. It's supposed to be better than perlin noise, and yet drastically under-represented.
23:55:42flaviuVarriount: I took the java source, copy-paste, and translated it to scala
23:55:46DemosOnce finals finish I will actually have time to do stuff. Varriount simplex noise requires less ajacency info right?
23:56:11VarriountDemos: I think so.
23:57:15DemosI guess that is good if you really need to generate it on GPU, maybe if you want a big 3D noise texture that you want to generate on the fly
23:57:49flaviuSimplex uses simplexes, so it uses the shape with the lowest possible number of edges. Perlin uses cubes or something that's less effecent. Simplex is really superior in higher dimensions
23:59:28BitPuffindom96: we did have a game we could make but you were too much of a pansy to do it
23:59:30Varriountflaviu: Do you have any plans to translate the java/scala simplex noise implementation to nimrod?
23:59:34Demoswhy the fuck does my mouse driver require me to login to an online account?
23:59:52flaviuI don't really understand how it works intuitively, but wikipedia says that Perlin is O(2^n), while Simplex is O(n^2) for dimension n
23:59:54*DAddYE_ quit (Remote host closed the connection)