<< 11-11-2013 >>

00:25:05*BitPuffin quit (Read error: Operation timed out)
02:10:50VarriountDoes anyone think Araq would be averse to me documenting/commenting the nimrod compiler internals?
02:41:24*mflamer joined #nimrod
02:42:12*alex_hoola quit (Quit: Leaving)
02:46:25*mflamer quit (Ping timeout: 272 seconds)
03:46:34xenagii would say no...but idk
03:46:37xenagiVarriount,
04:05:19*vidot_j quit (Remote host closed the connection)
04:28:13*brson joined #nimrod
04:31:19*brson quit (Client Quit)
04:31:27*brson joined #nimrod
04:31:29*brson quit (Client Quit)
04:32:43*brson joined #nimrod
04:32:43*brson quit (Client Quit)
04:33:07*brson joined #nimrod
04:33:42*brson quit (Client Quit)
04:33:50*brson joined #nimrod
04:34:44*brson quit (Client Quit)
04:35:07*brson joined #nimrod
04:38:56reactormonkVarriount, go for it
05:14:47*p0nce is now known as ponce
05:30:45*xenagi quit (Ping timeout: 248 seconds)
05:32:03*OrionPK quit (Quit: Leaving)
05:33:41*ponce is now known as Guest32951
05:33:41*Guest32951 quit (Killed (cameron.freenode.net (Nickname regained by services)))
05:33:59*p0nce joined #nimrod
05:34:59*mflamer joined #nimrod
05:50:25*ics joined #nimrod
05:58:07*fowl joined #nimrod
06:05:02*filwit joined #nimrod
06:18:53*filwit quit (Quit: Leaving)
06:19:47*isenmann joined #nimrod
06:56:18*dyu_ joined #nimrod
08:25:26*brson quit (Ping timeout: 264 seconds)
09:07:14*mflamer quit (Ping timeout: 244 seconds)
09:10:36*Trixar_za quit (Ping timeout: 245 seconds)
09:11:39*Trixar_za joined #nimrod
09:42:37*BitPuffin joined #nimrod
09:43:26*CarpNet joined #nimrod
09:55:40*dyu_ quit (Ping timeout: 264 seconds)
10:46:39*noam_ joined #nimrod
10:48:56*noam quit (Ping timeout: 245 seconds)
11:14:26*dyu_ joined #nimrod
11:18:48*Jackneill joined #nimrod
11:20:21*brson joined #nimrod
11:22:24*BitPuffin left #nimrod ("WeeChat 0.4.2")
11:23:48*dyu_ quit (Quit: Leaving)
12:23:38*dyu_ joined #nimrod
12:26:21*BitPuffin joined #nimrod
12:26:35BitPuffinfowl: how usable is nim3d currently?
12:26:39BitPuffinwhat does it do >.<
12:36:11BitPuffindom96: there seems to be a problem with babel or nimrod. It only adds the packages to the path but not the appropriate srcDir's
12:40:18BitPuffinAraq: actually it might be an issue with the currenty compiler config
12:46:01BitPuffinfowl, Araq: nimrod compiler hangs in baseapp.nim in nim3d
12:46:43BitPuffinon latest master
12:50:52BitPuffinseems like I'm the only one here :/
12:57:34*faassen joined #nimrod
13:14:42*Ricky_Ricardo joined #nimrod
13:15:52*brson quit (Ping timeout: 240 seconds)
14:04:35*BitPuffin quit (Ping timeout: 245 seconds)
14:14:24*q66_ joined #nimrod
14:18:24*q66 quit (Ping timeout: 260 seconds)
14:24:12*BitPuffin joined #nimrod
14:29:58*OrionPK joined #nimrod
14:31:58*alex_hoola joined #nimrod
14:33:18*q66_ is now known as q66
14:53:02*Ricky_Ricardo quit (Quit: Ricky_Ricardo)
14:57:20*mflamer joined #nimrod
15:01:26mflamerhappy Monday everyone
15:17:04BitPuffinhappy monday mflamer!
15:36:51BitPuffinand nobody else >:D
15:40:11mflamerwhat are you working on today BitPuffin
15:40:57mflamerDid I read correctly that Araq is offline for a few days?
15:47:07BitPuffinmflamer: not much, I'm interning. But this very second I am working a bit on linagl
15:47:23mflamercool
15:47:28BitPuffinadding submatrices and determinant etc
15:48:22BitPuffinis there a proc for getting the first number of a number
15:48:25BitPuffinlike in the case of 12
15:48:29BitPuffincan i extract the 1
15:48:30BitPuffinand the 2
15:48:33BitPuffinseparately?
15:49:24mflamerI'll have to take a look soon. Sounds like it's turning out to be a nice lib. Is it mostly for 3D vecs and mats? Like 3x4 or 4x4 or are you going to add sparse representation etc?
15:49:57mflamernot sure
15:50:10EXetoCparse*?
15:50:13BitPuffinmflamer: it is ment for 3d but is written to also work for general use. The matrices are not 3x4 (although that might get added) etc they are N-dimensional
15:50:44mflamerok, cool
15:50:47BitPuffinEXetoC: but then I'd have to convert to string
15:50:49BitPuffinbut hmm
15:50:58BitPuffinI guess if I enforce it being compile time it won't matter..
15:51:25EXetoCmodulus?
15:51:34BitPuffinI'm not sure
15:58:16EXetoCecho(3216 div 1000 mod 10); echo(3216 div 100 mod 10); echo(3216 div 10 mod 10); echo(3216 mod 10)
15:58:58BitPuffinhmm true
15:59:42EXetoCwhat's it for?
15:59:54BitPuffinEXetoC: submatrices
16:00:13EXetoCok
16:03:58BitPuffinhmm
16:04:09BitPuffinquestion is how I impelement this with zahary's bugs :(
16:09:21mflamerhow does this apply to submatrices?
16:09:36*gradha joined #nimrod
16:10:09BitPuffinmflamer: return type
16:11:08BitPuffinI need to be able to say that {}(m, n): TMatrix[m.type.T, m.type.R-1, m.type.C-1]
16:13:15EXetoCåsum
16:14:15BitPuffinEXetoC: no because that's not possible atm xD
16:16:18*Endy joined #nimrod
16:18:04mflamerI see
16:18:34BitPuffinI'm just creating a branch now and coding blindly
16:19:02BitPuffinand hope zahary fixes it soon
16:30:33*mflamer quit (Ping timeout: 244 seconds)
16:36:07*BitPuffin quit (Read error: Operation timed out)
16:37:41*[1]Endy joined #nimrod
16:40:47*Endy quit (Ping timeout: 272 seconds)
16:40:48*[1]Endy is now known as Endy
16:42:15*[1]Endy joined #nimrod
16:45:35*Endy quit (Ping timeout: 272 seconds)
16:45:37*[1]Endy is now known as Endy
16:45:40OrionPKhmm
16:45:55OrionPKhow do I fseek a TFile
16:47:32*[1]Endy joined #nimrod
16:50:23p0ncehow are Haskell "typeclasses" different from a D type which would pass the isADuck compile-time constraint?
16:50:29OrionPKahh setFilePos
16:50:31OrionPKweird name
16:50:41*Endy quit (Ping timeout: 244 seconds)
16:50:42*[1]Endy is now known as Endy
16:51:26p0nceoh, wrong channel sorry
16:52:52*[1]Endy joined #nimrod
16:55:39*Endy quit (Ping timeout: 252 seconds)
16:55:40*[1]Endy is now known as Endy
16:58:16*[1]Endy joined #nimrod
17:01:26*Endy quit (Ping timeout: 264 seconds)
17:01:26*[1]Endy is now known as Endy
17:06:50*dyu_ quit (Quit: Leaving)
17:07:04*Endy quit (Ping timeout: 264 seconds)
17:08:39*Jackneill quit (Ping timeout: 240 seconds)
17:08:44*Endy joined #nimrod
17:17:57*[1]Endy joined #nimrod
17:21:25*Endy quit (Ping timeout: 272 seconds)
17:21:25*[1]Endy is now known as Endy
17:22:30*Jackneill joined #nimrod
17:23:16*[1]Endy joined #nimrod
17:25:33*MFlamer joined #nimrod
17:26:20*Endy quit (Ping timeout: 244 seconds)
17:26:21*[1]Endy is now known as Endy
17:28:38*[1]Endy joined #nimrod
17:32:05*Endy quit (Ping timeout: 272 seconds)
17:32:06*[1]Endy is now known as Endy
17:49:08*[1]Endy joined #nimrod
17:52:15*Endy quit (Ping timeout: 265 seconds)
17:52:15*[1]Endy is now known as Endy
17:54:40*Jackneill quit (Ping timeout: 240 seconds)
17:54:47*shodan45 quit (Quit: Konversation terminated!)
18:02:24VarriountMeep
18:04:53*Jackneill joined #nimrod
18:05:38gradhaVarriount: could you check if the test cases for the generics you are doing include something like that from https://github.com/Araq/Nimrod/issues/636 ?
18:12:33*Endy quit (Ping timeout: 265 seconds)
18:14:48*Endy joined #nimrod
18:21:12*Jackneill quit (Ping timeout: 246 seconds)
18:25:20*[1]Endy joined #nimrod
18:25:29Varriountgradha, the modification I did is very much like a sledgehammer - it tends to knock all the errors out, at the expense of other things. I'll try, in any case.
18:25:46*webskipper joined #nimrod
18:26:27webskipperYou know a nimrod syntax highlighting plugin for eclipse / netbeans ?
18:27:19gradhawebskipper: don't think there is, but if you start one you could base yours on python which has similar syntax
18:27:31VarriountUnfortunately, neither of those editors make designing plugins.. straightforward
18:28:00*Jackneill joined #nimrod
18:28:05gradhawebskipper: so far there is https://github.com/Araq/Nimrod/wiki/Editor-Support
18:28:14gradhafeel free to improve upon that
18:28:31webskipperAh ty
18:28:54*Endy quit (Ping timeout: 246 seconds)
18:28:55*[1]Endy is now known as Endy
18:30:41Varriountgradha, what exactly do you want me to test?
18:31:33*CarpNet quit (Quit: Leaving)
18:31:38gradhaI think it would be enough if you add the testcase at the end of that issue (the one importing unicode) to the suite, wherever the generics tests are
18:31:56gradhaas it seems that changes to generics may break that code easily, and it wasn't detected before
18:32:09VarriountAll I'm doing right now is investigating how to require completely implicit generic functions (those that have no parameter types at all) to have 'auto' as a return type.
18:32:35gradhasorry, maybe that issue was fixed by something else and is not related to your changes at all
18:32:47gradhabut I blame you since you are answering on IRC
18:33:05*gradha whistles and looks in another direction
18:33:29Varriountgradha, that issue was fixed before I made any additions to nimrod.
18:34:28gradhaok, I'll blame then MFlamer for https://github.com/Araq/Nimrod/commit/e57b0f43025045a7c2d3a10d6be3a0ec24ac7267
18:34:42Varriount:3
18:35:00*[1]Endy joined #nimrod
18:35:34gradhaheh, looks like a "distinct" generics breakage
18:37:39*gradha notes Apple's spellcheck doesn't recognize "fricking", what good is that
18:38:30VarriountGradha, generics is where I would say nimrod is most.. fragile
18:38:38*Endy quit (Ping timeout: 240 seconds)
18:38:39*[1]Endy is now known as Endy
18:38:44MFlamerUh oh. Did I do something bad again?
18:43:09reactormonkVarriount, the problem with generics is that in a not-everything-reference you need to deal with sizes too
18:44:42Varriountreactormonk, explain?
18:45:50*dymk quit (Ping timeout: 240 seconds)
18:48:52OrionPKany examples of pointer arithmetic in nimrod out there
18:50:28*[1]Endy joined #nimrod
18:52:14VarriountI'm not talking about the code generation part. Nimrod's semtantic checking process handles generics in a fragile way.
18:52:27VarriountWhether a less fragile way is possible, I don't know.
18:53:12*alex_hoola quit (Quit: Leaving)
18:53:21*Endy quit (Ping timeout: 252 seconds)
18:53:22*[1]Endy is now known as Endy
18:55:33EXetoCOrionPK: fowl has some pointer lib that wraps the low level operations. google fowltek
18:55:48*[1]Endy joined #nimrod
18:55:49EXetoCyou basically just need to cast the pointer to an array
18:56:02OrionPKalright
18:56:05EXetoCcast[ptr array[x, T]](ptr)
18:56:12OrionPKthanks
18:56:22EXetoCI think I got that right
18:56:22OrionPKthe issue with that is the 'x'
18:56:31MFlamerI cast to int
18:56:31EXetoCok, why?
18:56:40OrionPKit's not constant
18:57:34EXetoCI usually set it to the highest possible size that I might encounter
18:58:38*Endy quit (Ping timeout: 240 seconds)
18:58:38OrionPKfowl does this result = cast[ptr A](cast[int](some) + (b * sizeof(A)))
18:58:39*[1]Endy is now known as Endy
18:59:04OrionPKgrabbed his offset proc from fowltek thanks for pointing me to it
18:59:16OrionPKthat should be in the stdlib
19:00:08EXetoCI prefer bounds-checking, but whatever works for you
19:00:09webskipperHas nimrod support for win/linux pipes ?
19:00:57OrionPKbounds checking is good
19:01:01EXetoCshell pipes?
19:01:06OrionPKbut im porting a library written in C
19:01:08*[1]Endy joined #nimrod
19:01:12OrionPKnot trying to write something from scratch
19:01:24EXetoCI don't know why that matters, but ok
19:02:03gradhawebskipper: the same support any other C program has, stdin, stderr and stdout
19:02:33gradhanote that pipes are actually out of the language itself, it's a process intercommunication system, so it is language agnostic
19:04:15*Endy quit (Ping timeout: 252 seconds)
19:04:15*[1]Endy is now known as Endy
19:04:33EXetoCright. the target program doesn't know how data i fed to stdin for example, so you just need to collect data until EOF
19:04:44webskippery, I asked because python has it own abstraction named os.pipe()
19:05:42EXetoCok that's a little different
19:06:24*dymk joined #nimrod
19:06:26EXetoCbecause then you're communicating with a separate process. I don't know if we have a convenient API for that
19:07:05*Jackneill quit (Ping timeout: 244 seconds)
19:07:31*Jackneill joined #nimrod
19:08:35webskipperosproc...
19:08:37webskippercould be..
19:08:59webskipper"proc inputStream"
19:09:24webskipper"This module implements an advanced facility for executing OS processes and process communication."
19:09:42EXetoCgreat
19:10:15gradhawebskipper: that python module is not windows compatible
19:10:56gradhaI guess the differences of windows/unix shell are enough nobody tries to bother writting a common wrapper for them
19:11:06*BitPuffin joined #nimrod
19:11:42*[1]Endy joined #nimrod
19:13:09EXetoCgradha: popen?
19:13:50webskippergradha: I try nimrods "osproc"
19:14:42*Endy quit (Ping timeout: 268 seconds)
19:14:42*[1]Endy is now known as Endy
19:16:00gradhaEXetoC: I was eyeing the specific pipes module
19:17:10EXetoCright
19:20:32gradhawebskipper: if you need examples at https://github.com/gradha/the_hyperlink_vs_nimrod/blob/master/the_hyperlink_vs_nimrod.nim#L682 I have a complex one
19:21:00gradhathat runs the nimrod idetools command in parallel, or sequentially in server mode
19:21:18gradhamight give you ideas on how to communicate with the processes
19:32:05*[1]Endy joined #nimrod
19:35:00*Endy quit (Ping timeout: 244 seconds)
19:35:00*[1]Endy is now known as Endy
19:46:50VarriountOrionPK, Nimrod, on Windows, currently lacks support for iocp, so select doesn't work quite right
19:47:20OrionPKwhats this in regards to?
19:47:55VarriountProcess communication
19:48:31OrionPKselect in sockets.nim doesnt work right because the implementation is backwards
19:48:44VarriountThat too.
19:49:09VarriountHowever, if it doesn't work right, then why is it that nimbot and friends work?
19:50:48OrionPKbecause the uses of it are expecting the backward behavior
19:52:11gradhawouldn't it be because nimbot and such run on unix?
19:52:32*[1]Endy joined #nimrod
19:54:18OrionPKafaik select *works*, it's just backwards on windows and nix
19:54:40OrionPKso the fds that are ready to be read/written etc are pruned rather than ones that aren't being pruned
19:55:44*Endy quit (Ping timeout: 260 seconds)
19:55:44*[1]Endy is now known as Endy
19:56:54VarriountOrionPK, did you also fix the other uses that expect the backward behavior, to now not expect the backward behavior?
20:04:49*eigenlicht quit (Ping timeout: 272 seconds)
20:12:41webskipperWhat is meant with "impure" libraries
20:12:42webskipper?
20:14:43dom96modules which depend on DLLs.
20:15:06dom96e.g. re depends on pcre.
20:15:28*[1]Endy joined #nimrod
20:19:03*Endy quit (Ping timeout: 252 seconds)
20:19:03*[1]Endy is now known as Endy
20:25:04*MFlamer quit (Ping timeout: 264 seconds)
20:27:31*Endy quit (Ping timeout: 272 seconds)
20:49:12*CarpNet joined #nimrod
20:52:04OrionPKVarriount I fixed the ones I found in the stdlib
20:52:23OrionPKbut not in anything outside of the nimrod repo
20:52:40OrionPKI think dom/araq want to take a diff approach anyway
20:53:03OrionPKmake an 'events' module with select/etc in there, switch sockets to use that and deprecate select in sockets.nim
20:54:46VarriountI wonder what kind of asynchronous framework style would be best suited for nimrod...
20:56:29VarriountIn all the network/internet related programming I've done, I've primarily used twisted (the python framework).
20:56:58VarriountAre there other paradigms out there, I wonder..?
21:02:21webskippernot sure, node.js is popular too
21:03:02VarriountI haven't used node.js, what kind of paradigm does it use?
21:03:08webskipperevent driven too
21:03:16*BitPuffin quit (Quit: WeeChat 0.4.2)
21:03:18*Jackneill quit (Remote host closed the connection)
21:03:28webskipperbut of course you need a set of (leigthweight) processes - else it makes no sense
21:03:56webskippertwisted is bound by the GIL of python
21:04:15webskipperonly on thread is executed by the interpreter
21:04:51Varriountwebskipper, yeah, but in it's defense, at least it's not per-thread concurrency
21:05:22VarriountThe ideal solution would use both threads and an asynchronous event loop.
21:05:30webskippersure
21:05:43webskippersee nginx
21:05:48webskipperc http server
21:06:01VarriountI know the software, just nothing of its internals.
21:06:19webskipperuses event-driven model in combination with threads I read on wikipedia ^^
21:06:41webskippernimrod offers a lib
21:06:49webskipperasync and actors you can combine
21:07:06webskipperasyncio
21:08:25webskipperor you use IPC with osproc - but I guess the communication is not fast like shared memory
21:09:46VarriountCreating processes is very... heavy weight, in terms of memory
21:09:47VarriountThe operating system has to do a huge number of things.
21:10:37webskipperYes, but sometimes its easier to develop an app and write the code
21:10:41VarriountThough, for sandboxing uses, it's an interesting thought. You could limit, say, the amount of memory that the xml parsing part of an application might use, in case of attacks.
21:10:58webskipperpostfix uses procs too If am right
21:11:19*io2 joined #nimrod
21:12:02*MFlamer joined #nimrod
21:14:40Varriountwebskipper, postfix?
21:14:52webskippermail server
21:15:03webskipperused by lot of companies
21:30:56EXetoCVarriount: and on linux? I've heard that process creation is pretty cheap there compared to on windows
21:50:00MFlamercan anyone explain what compiler magic is?
21:50:36gradhalike when you put some lines of code in one side and on the other you have a working binary? totally magic
21:50:41MFlamerI see it exposes stuff to the std lib
21:50:41*io2 quit ()
21:51:25gradhaoh, I think that may be the C sources of nimrod, maybe
21:51:27MFlamerno, the compiler really has magic in it
21:51:56MFlameryou think Araq is actually human?
21:52:06gradhamaybe dom96 or zahary can tall something about compiler magic
21:52:12gradhano, I don't think Araq is human
21:53:43gradhain fact I don't think any programmer is human, playing with machines instead of other people is not a human trait
21:53:56webskipperAraq is human ? :D
21:54:31MFlamerAutism anyone?
21:54:43gradhathanks, I prefer brownies
21:56:21webskipperEXetoC: Process creation but what about context switching. I read its more work (costs) compared with user threads.
21:56:46gradhaobviously user threads don't have context switches
21:57:50webskipperless costs than I guess
21:58:07gradhabut no true multithreading
21:58:30dom96MFlamer: It's a way to implement a function through the compiler or something.
21:58:37webskipperuser threads in user space. have to read my tanenbaum again ^^
22:00:23*faassen quit (Quit: Leaving.)
22:01:41MFlamerdom96: Yeah I guess that makes sense. I suppose it lets the compiler call into it self from the lib while its compiling
22:02:03MFlameror something like that....
22:04:31*mflamer_ joined #nimrod
22:04:33dom96MFlamer: Yeah. It means that the magic procs can use information which only the compiler knows about.
22:04:54MFlamerok, that helps
22:05:08gradhaNSA procs, less attractive than magical procs
22:05:55MFlameralthough that makes it really hard to debug
22:07:16*zezba9000 joined #nimrod
22:09:05dom96Actually, I think it's pretty easy.
22:09:18dom96Since you know the name of the magic, just grep for the name in the compiler src.
22:09:56MFlamersure, I meant while compiling or at runtime
22:10:30MFlamerbut, maybe it's not a big deal
22:12:35VarriountHm. Does nimrod have a depracation policy?
22:15:38MFlamerwhat feature do you have in mind?
22:16:26gradhagood night
22:16:37*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=mcyhZEXwfh0 again)
22:16:41VarriountAt the risk of being repetetive: implicit generics with no argument types or return type
22:47:55*EXetoC quit (Quit: WeeChat 0.4.2)
22:53:48*filwit joined #nimrod
23:07:23*OrionPK quit (Ping timeout: 250 seconds)
23:12:03*mflamer_ quit (Ping timeout: 246 seconds)
23:14:27*CarpNet quit (Quit: Leaving)
23:17:43*q66_ joined #nimrod
23:21:35*q66 quit (Ping timeout: 260 seconds)
23:22:46*OrionPK joined #nimrod
23:32:23*q66_ is now known as q66
23:38:51*XAMPP-8 joined #nimrod
23:46:34*zezba9000 left #nimrod (#nimrod)