<< 03-11-2013 >>

00:00:17BitPuffinAraq: ohh
00:00:36EXetoCVarriount: will they be "container"-agnostic?
00:00:59EXetoCwe have one or two of those functions in sequtils, but they're tied to sequences obviously
00:01:27VarriountEXetoC, I'll try my best
00:02:04VarriountPersonally, python's itertools module is one of my favorites - it's usefull in so many situations
00:02:42BitPuffinAraq: I'll work around it then
00:04:59BitPuffinAraq: Well I tried changing the API to take a dimension intead of a range but suddenly got this http://ix.io/8R8
00:06:19VarriountAnyone know if there is currently a bug ticket for the compiler crashing when using high(int) in an enum?
00:06:37AraqVarriount: no
00:17:15BitPuffinmatrix.nim(129, 10) Error: internal error: ReplaceTypeVarsT: tyGenericBody
00:17:17BitPuffinNo stack traceback available
00:28:37BitPuffinhttp://ix.io/8R9
00:28:39BitPuffinhttp://ix.io/8Ra
00:29:15BitPuffinAraq: should I do a bug report on that? (see pastes)
00:29:56BitPuffinthere might be some idiotic logic because I just refactored everything into row major
00:30:00filwithow do i get float.max?
00:30:01BitPuffinand removed aliases
00:30:06filwitwhoops
00:30:09filwitdidn't mean to post that
00:30:32Araqwhat's float.max and why is it important?
00:30:38Araqis that +INF ?
00:31:01BitPuffinah see some left overs there from aliases
00:33:03BitPuffinsub will now stand for submatrix
00:40:04AraqBitPuffin: yes bug report please
00:44:00BitPuffinAraq: sorry guess that site didn't support line numbers
00:45:01BitPuffinhere's a version from gist
00:46:18BitPuffinjust so that you know which line the error is about
00:51:38BitPuffinAraq: Can I just do the bug report with the source code or do I have to create a simpler example, it's turning out to be a bit difficult to slim it down
00:53:57EXetoChe has said before that it's fine
00:54:02AraqI told you you don't have to create simpler examples for compiler bugs
00:54:19Araqgood night
00:54:25EXetoCbye
00:55:47BitPuffinAraq: ah, well I just thought you appreciated (like most others) a minimal base test. But cool, saves time I guess
00:56:25BitPuffinsleep well
01:06:31BitPuffinalright since this bug is a show stopper for linagl I'll go to bed and work on the website tomorrow
01:07:08EXetoCmay you dream of ponies
01:07:18BitPuffinI hope not
01:07:39EXetoCoh well. peace
01:07:50BitPuffincheers!
01:12:21*mflamer quit (Ping timeout: 272 seconds)
01:12:59*BitPuffin quit (Ping timeout: 272 seconds)
01:17:21*mflamer joined #nimrod
01:31:32*EXetoC quit (Quit: WeeChat 0.4.2)
02:18:25*freezerburnv joined #nimrod
02:27:27filwitwhy don't number convert to strings correctly?
02:27:35filwitsorry, floats
02:28:16filwitvar x = 123.324
02:28:16filwitecho x # writs 1.2332400000000+02
02:29:08Varriountfilwit, floating point accuracy, remember?
02:30:43filwitwell i guess there's a formatFloat proc i'm suppose to use
02:41:06filwitwhat's the best way to write raw binary to a file?
02:57:18VarriountOpen it in binary mode, and write to it?
02:57:39*Associat0r joined #nimrod
02:57:39*Associat0r quit (Changing host)
02:57:39*Associat0r joined #nimrod
02:58:54*Associat0r quit (Client Quit)
03:11:07*freezerburnv quit (Quit: freezerburnv)
03:14:06*freezerburnv joined #nimrod
03:16:45*freezerburnv quit (Client Quit)
03:32:59*brson joined #nimrod
03:36:22*brson_ joined #nimrod
03:40:26*brson quit (Ping timeout: 245 seconds)
04:17:55*mflamer quit (Ping timeout: 272 seconds)
04:24:30*zezba9000 joined #nimrod
04:39:36*Associat0r joined #nimrod
04:39:36*Associat0r quit (Changing host)
04:39:36*Associat0r joined #nimrod
04:59:18*filwit quit (Quit: Leaving)
05:04:32*Scramblejams left #nimrod (#nimrod)
05:07:51*OrionPK quit (Read error: Connection reset by peer)
05:16:27*brson_ quit (Ping timeout: 260 seconds)
05:18:13*brson joined #nimrod
05:19:01*Boscop quit (Read error: Connection reset by peer)
05:36:33*Boscop joined #nimrod
06:09:16*brson quit (Quit: leaving)
06:25:19*gour joined #nimrod
06:32:57*mflamer joined #nimrod
06:51:57*Demos quit (Quit: Leaving)
07:22:45*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
07:23:18*zezba9000 left #nimrod (#nimrod)
07:25:04*ics joined #nimrod
07:25:16*ics quit (Client Quit)
07:49:46*Endy joined #nimrod
08:02:14*Associat0r quit (Quit: Associat0r)
08:58:05*Jackneill joined #nimrod
09:27:40*io2 joined #nimrod
09:54:41*EXetoC joined #nimrod
10:41:08*delian2 quit (Remote host closed the connection)
10:44:31*delian2 joined #nimrod
10:45:59*BitPuffin joined #nimrod
10:47:15BitPuffinhey goys!
10:54:50*dyu joined #nimrod
10:57:29BitPuffinhey dyu, welcome!
10:57:56dyuhey hey
10:58:44BitPuffindyu: are you new?
10:59:10dyuBitBuffin: nope. I guess you had'nt seen me idlin here
10:59:34BitPuffindyu: ah nope :D carry on then :P
11:01:11dyualrighty then
11:11:44BitPuffindom96: didn't someone just implement sha hashes?
11:14:40BitPuffinor Araq even. I believe whever did it asked if it could be in the stdlib
11:24:04dom96BitPuffin: OrionPK did
11:25:53BitPuffindom96: why isn't it in babel?
11:26:06dom96BitPuffin: It's in his websockets pkg
11:26:14dom96I think
11:27:24BitPuffineh
11:27:29BitPuffinwhy would it be in websockets
11:27:31BitPuffinit's a hash xD
11:27:38dom96don't ask me
11:28:32BitPuffindom96: anyways it would be nice to have it in jester
11:28:46dom96for what?
11:28:58BitPuffindom96: for hmac cookies
11:29:03dom96ahh, true.
11:29:40BitPuffindom96: and since scrypt.nim will force you to link to libtarsnap.a it's not very practical to use scrypt hashes
11:29:56EXetoCBitPuffin: any reason why your `+` doesn't return an expr anymore?
11:30:17BitPuffinEXetoC: woot?
11:30:19EXetoCthe one in your bug report
11:30:23BitPuffinin linagl?
11:30:25BitPuffinah
11:30:31BitPuffinlink? xD
11:30:43EXetoCbad memory?
11:30:46BitPuffinyes
11:30:46EXetoCj/k
11:30:58BitPuffinI refactored everything without paying much attention
11:31:25BitPuffinEXetoC: is it in vector or matrix?
11:31:36EXetoCI think programmers should be required to have photographic memory
11:31:44EXetoChttps://gist.github.com/BitPuffin/7285266#file-gistfile1-nim-L38
11:32:32BitPuffinEXetoC: are you sure that returned expr before?
11:35:18EXetoCI think so, and I don't know why it's a template now that it doesn't
11:35:30BitPuffinEXetoC: older commit https://bitbucket.org/BitPuffin/linagl/src/c0315f2199e5bf514af2245be402f8f374093a37/src/linagl/matrix.nim?at=default#cl-45
11:36:06BitPuffindoesn't look like it ever was expr
11:36:10BitPuffinbut I can change it to expr
11:38:10EXetoCdoes borrow work here?
11:38:51BitPuffinEXetoC: that fixed the error lol
11:39:10EXetoCnevermind. a proc will also do. the generated code should be the same
11:39:12EXetoCok
11:39:57BitPuffinEXetoC: https://bitbucket.org/BitPuffin/linagl/commits/eca93a97689984f97383a037c670438e695f839e
11:40:17dom96It's almost as if Mr. Rossum did all the research for me: https://www.youtube.com/watch?v=1coLC-MUCJc :P
11:44:56BitPuffindom96: nice!
11:46:16EXetoCand it works if 'm' is not a constant or a literal? I'd use a proc, but maybe the compiler is sufficiently clever in this case
11:49:12BitPuffinEXetoC: I've got no idea
11:49:19BitPuffinI'm just following orders
11:49:24BitPuffinit doesn't seem to error on it though
11:53:46dom96It took them a year to create tulip... gah.
11:54:31dom96But oh well. We don't need to be as feature complete as tulip.
11:54:33BitPuffinwhy am I doing matrix multiplication in my head reading code
11:54:40BitPuffinbecause I'm a genius that's why
11:55:22EXetoCsure
12:07:18BitPuffinseems like I am going to need pen and paper
12:07:30BitPuffindun dun dun bom psch bka bka pmm psch
12:07:38BitPuffin(kill bill)
12:10:00*CarpNet joined #nimrod
12:17:09*Endy quit (Ping timeout: 248 seconds)
12:24:05BitPuffinokay it works
12:24:07BitPuffinyayayayay
12:24:16BitPuffinlinagl is now row major
12:24:34*Associat0r joined #nimrod
12:24:34*Associat0r quit (Changing host)
12:24:34*Associat0r joined #nimrod
12:25:42EXetoCare you going to use something like bullet in Nimrod?
12:25:59EXetoCor maybe you didn't like when you said you were a genius, in which case I expect you to roll your own physics engine
12:26:08BitPuffinEXetoC: probably either newton or ode
12:26:13BitPuffinEXetoC: but yeah I'll roll my own
12:26:19BitPuffinbut not for my first projects
12:27:03EXetoCwhat do they do better?
12:27:43BitPuffinEXetoC: than?
12:28:14EXetoCbullet
12:28:26EXetoCmaybe the C api isn't up to par, and I've heard that the code base is a mess
12:28:27BitPuffinEXetoC: bullet is fast but not as accurate
12:28:35BitPuffinEXetoC: but mostly it is because C api
12:30:14BitPuffinwtf
12:30:24EXetoCyou could compile to C++ though
12:30:39EXetoCbut that doesn't even work atm. I need to file a bug report
12:30:50EXetoCpure_pegs.cpp:8024:42: error: ‘abs’ was not declared in this scope
12:31:01BitPuffinhttps://gist.github.com/BitPuffin/7289782
12:31:47BitPuffinEXetoC: meh I probably won't do that
12:32:03EXetoCit's not there? or the path is wrong? try moving the exe around
12:32:33BitPuffinyeah it doesn't produce an exe
12:32:35BitPuffinwtf
12:32:41BitPuffinwhy does nimrod keep doing this to me
12:32:56BitPuffinparallelBuild:1 time
12:33:15EXetoCkeep a debug build of nimrod around
12:33:59BitPuffinhell ye
12:34:04BitPuffinokay I'll do it
12:40:01BitPuffinEXetoC: okay how will dbnimrod help me now
12:40:14BitPuffindoesn't say more than the release build xD
12:42:18EXetoCI guess it doesn't always have more to say :p
12:43:15BitPuffinEXetoC: do you think more or less all templates in here should return expr?
12:51:24EXetoCI don't think I use templates myself unless I need to inject stuff or return expr/stmt
13:02:20EXetoCbut you're basically just creating aliases, so I don't think it really matters
13:04:04EXetoC`+` is an alias, but `-` actually does something
13:08:21EXetoC"proc f: int = result" -> "Error: value returned by statement has to be discarded" should be allowed, right?
13:12:00EXetoCthis is a slightly better example, in case you're wondering why I might want to do this: "proc f: int = if true: result elif 42: 0 else: 1"
13:13:28EXetoCwhich is a convenient way to use "statements" as expressions, while making it clear that the value remains the same in some cases
13:24:27*Endy joined #nimrod
13:25:15*freezerburnv joined #nimrod
13:31:05EXetoCI should just file a bug report either way, so don't bother answering here
13:33:03*fredmorcos joined #nimrod
13:47:02*io2 quit ()
14:20:28BitPuffinEXetoC: well the reason I have + as an alias for just the same thing is that it should work mathematically
14:20:30BitPuffin+a = a
14:20:46BitPuffinand why waste a proc call on that
14:21:20BitPuffinso template
14:22:05freezerburnvSo what's the difference between a bare object, (e.g.: TFoo = object ...) and a tuple? (e.g.: TFoo2 = tuple ...) filwit helped me out yesterday with a recursive type where I had to use an object instead of a tuple for an FFI thing I'm writing. Also I've been using ptrs in tuples for the FFI, should I be using refs instead? I'm assuming, based on documentation, that a ref will be tracked under the GC, while
14:22:05freezerburnva ptr will not? Will the GC interfere with the native code in any way when I hand it off, or will it end up being ok all the time?
14:28:54BitPuffinfreezerburnv: a tuple is used to specify a type that can have the vaules you specify
14:29:15BitPuffinfreezerburnv: a bare object will have fields that can have any value that is valid for the fields type
14:29:26BitPuffinfreezerburnv: refs are traced by GC and ptrs are not
14:29:50BitPuffinfreezerburnv: I'm not sure what you mean by the last questio
14:30:08BitPuffinwhat exactly do you mean interfere
14:30:52freezerburnvBitPuffin: Will the GC move the object, so that the library will try to access an object that doesn'T exist? Or free the object when the library isn't expecting it? Etc. Or does the GC not do any of that when a function in a library is using an object?
14:30:57BitPuffinwhen doing FFI stuff, the GC cannot GC other libraries code if that's what you mean. So if you know that an FFI function will store the memory and not just passed by reference by performance it should be a ptr
14:32:54BitPuffinfreezerburnv: if you don't know that what you are passing to an FFI proc becomes a part of that librarys state, then it should be ptr
14:33:04freezerburnvFor example, in SDL, if I create a surface, which I currently have defined with a "ref TPixelFormat" in it, will the GC track that TPixelFormat and deallocate it or move it when I do something to that surface via an SDL call?
14:33:33freezerburnvRather, I have it as a "ptr TPixelFormat", sorry
14:33:43BitPuffinfreezerburnv: are you wrapping SDL? because that is already wrapped in the stdlib and SDL2 is wrapped by fowl
14:34:23BitPuffinfreezerburnv: you might be able to make things GCd by marking destructors with destructor pragma
14:35:26freezerburnvBitPuffin: Currently yeah, I am. I think std lib only wraps version 1 though? And fowl declares his library as requiring 0.9.3, when 0.9.2 is the latest binary release. So I'm kinda wrapping SDL2 for fun, to learn the FFI, and Nimrod in general. (I find it relaxing to be writing the wrapper, for some reason)
14:36:07BitPuffinfreezerburnv: it's probably a good idea to upgrade to 0.9.3 though
14:38:07freezerburnvBitPuffin: I suppose that's true enough. I'll work on that at some point
14:38:30freezerburnvEither way, writing the FFI is kinda fun/relaxing for me, and it's helping me learn things like the distinction between ptrs and refs :P
14:39:36freezerburnvWhy isn't 0.9.3 an official binary that's been released, anyway?
14:40:22BitPuffinfreezerburnv: 0.9.1 0.9.3 0.9.5 etc are development versions
14:41:27BitPuffinany point release where the number mod 2 is not 0 is development versions :P
14:41:46freezerburnvAh ha
14:42:07BitPuffinI believe the linux kernel or some similar project follows that kind of scheme
14:42:57BitPuffinI can't remember if Araq said that the compiler not outputting binaries was a known issue
14:42:59BitPuffingonna check the logs
14:43:53freezerburnvSo just to get my initial question straight: in general, I should be marking stuff that comes from an FFI as ptrs? Such as the pixel format struct inside of a surface coming from SDL
14:44:20freezerburnvUnless I do some other wizardry to make it able to be tracked by the GC?
14:44:57BitPuffinfreezerburnv: well it depends
14:45:31BitPuffinfreezerburnv: if you know that the procedure doesn't store the reference somehow after returning it is safe to mark it as ref
14:46:42BitPuffincan't find anything in the logs
14:46:45freezerburnvFair enough. I'd have to check source files for that, or ask devs. So most times, I'd probably want to just mark is as a ptr, and use the FFI functions to manage lifetimes (SDL_DestroySurface, or something like that)
14:46:47BitPuffinI'm looking through bug reports
14:47:51BitPuffinfreezerburnv: sure, or wrap them in a way that let's you leverage GC :D
14:48:16freezerburnvBitPuffin: :D I'd have to learn how to do that though. Still a novice! If you want to point me in the right direction for learning that, I'd appreciate it
14:49:08*dyu quit (Ping timeout: 240 seconds)
14:49:23*q66_ joined #nimrod
14:49:50*q66 quit (Disconnected by services)
14:49:52*q66_ is now known as q66
14:50:03BitPuffinfreezerburnv: here is a good place to start :) http://nimrod-code.org/manual.html#destructor-pragma
14:50:35*OrionPK joined #nimrod
14:50:53freezerburnvBitPuffin: Awesome, thanks! I'll look into that as soon as I have time. For now though, seems I have some things to do. Thanks for the help!
14:51:26*fredmorcos quit (Quit: Leaving)
14:52:01BitPuffingood luck :)
14:52:09*freezerburnv quit (Quit: freezerburnv)
15:02:14*dyu_ joined #nimrod
15:09:15EXetoCBitPuffin: I'll be damned if GCC or whatever won't inline that
15:09:40EXetoCbut either way works
15:22:55EXetoCmaybe there should be an implicit `+` when only `-` is defined :p
15:29:54*mwcampbell joined #nimrod
15:30:42mwcampbellIs the ecmas backend still being maintained?
15:33:55*gour quit (Disconnected by services)
15:34:00*gour_ joined #nimrod
15:39:24mwcampbellOK, my mistake. Looks like the JavaScript backend is now called jsgen.
15:41:55mwcampbellI figured JavaScript wouldn't be a good target for Nimrod, though, since Nimrod is more of a system-level language, with an explicit distinction between value types and pointers.
16:00:26EXetoCthere's no need to care about that when using the DOM module for example, but maybe the biggest issue would be third-party libs
16:08:21*filwit joined #nimrod
16:11:56*freezerburnv joined #nimrod
16:14:33*freezerburnv quit (Client Quit)
16:17:30filwitAraq, dom96: so we (my brother an I) did performance tests comparing Nimrod to C# (Mono & .NET) using a cleaned up version of that ray tracer posted on the Nimrod forums (we managed to speed it up by ~40ms on my machine)
16:17:46filwitAraq, dom96: needless to say, Nimrod killed it
16:18:52dom96filwit: Is your brother impressed? :P
16:18:55filwitAraq, dom96: on Linux (my AMD Phenom II X4), Nimrod takes ~320ms while Mono takes ~2.2sec
16:19:10filwitdom96: i think he was more frustrated, at least right now
16:19:38filwitAraq, dom96: on the Rasberri Pi, Nimrod completed in 6.2secs while Mono completed in ~35secs
16:20:47filwitAraq, dom96: MS .NET completed in ~1sec on my Windows boot (which was the closest).. but yeah, Nimrod is _fast_ :D
16:21:02EXetoCdom96: Wouldn't it be a good idea to use the JS target for the website?
16:21:36filwitAraq, dom96: didn't even mess with the GC, and I'll be using the test to try SIMD in the future (see if we can't get even more speed out of it)
16:22:02filwitEXetoC: to what end? the website already works
16:22:32filwitEXetoC: although it could use more regular blog updates
16:22:55EXetoCfair enough. hopefully I'll have time to use it myself then, because no one responded before when I asked if it was used in practice
16:23:41filwitahh, i see.. eat your own dog-food is why you're suggesting that
16:23:47filwitnot a bad idea
16:26:55filwitanyways, dom96, Araq. Just wanted to let you guys know about the results of our performance tests.
16:28:03dom96filwit: Did Nimrod also take 320ms on Windows?
16:28:26filwitdom96: about that.. couldn't get Nimrod to build on Windows
16:28:37filwitdom96: build64.bat failed
16:29:18filwitdom96: not sure why, didn't care to waist a ton of time there.. it was kinda at the end that we tested on my Windows boot
16:29:50filwitdom96: i'm on Window 8 if that makes any difference (will be on 8.1 soon), and i'll report the issues later
16:29:55Varriountdom96, I made a reddit post in /r/nimrod
16:30:07dom96filwit: I think I know what the issue is
16:30:08EXetoCwaste
16:30:09filwitVarriount: link?
16:30:17Varriountfilwit, if you need to build nimrod on windows, I can help
16:30:58Varriounthttp://www.reddit.com/r/nimrod/comments/1pt8u8/ideas_on_how_to_implement_partial_functions/
16:30:58filwitVarriount: thanks, but mostly it was my lack of caring which prevented me from building it :) I'll spend more time trying to build it later
16:32:47EXetoCVarriount: https://gist.github.com/AdrianV/5397444
16:33:06EXetoCmaybe we need something like that. I don't know if there are issues with iterators per se
16:34:03VarriountEXetoC, those are all sequence-dependant
16:34:15VarriountI'm aiming for something more... generaic
16:34:19Varriount*generic
16:34:38EXetoCI don't think they are. let me check
16:36:16VarriountEXetoC, you're right, they aren't. My mistak.
16:36:28EXetoCit seems to be almost exactly like in D, where a range ... ok nm :p
16:37:26VarriountI guess my problem is that I'm used to iterators being essentially functions with state.
16:40:03*dyu_ quit (Quit: Leaving)
16:40:09EXetoCbut some issues will disappear just by adding code that determines if items and/or pairs are present, right?
16:40:18EXetoCwhich are defined by convention
16:46:31*ics joined #nimrod
16:49:42BitPuffinEXetoC: it is probably inlined but I don't trust GCC
16:54:12filwitdom96: so i've been thinking about making a couple of new .lang files for Aporia/Gedit which are like my Kate language scheme
16:54:30filwitdom96: but i have a couple of questions on what you'll accept
16:55:15filwitdom96: you've seen my screenshot already: http://reign-studios.net/philipwitte/screenshots/arch-win-mac2.png
16:56:17filwitdom96: basically, what I'm doing to get all those colors (which i really, really like to separate the code) is just adding a couple of Regex lines to the lang file (it's different for Kate, but basically the same thing)
16:56:42filwitdom96: i have one that colors anything followed by a '(' a function
16:57:19filwitdom96: anything that begins with a capital is colored as a type
16:58:07filwitdom96: and anything followed by a '.' is colored slightly different as well (to distinguish important data)
16:59:28filwitdom96: i was thinking it would be nice if Nimrod had a couple of IDE specific Pragmas ({.keyword, property, etc..}) which would instruct the color formatting
17:02:05dom96I think that belongs to the IDE config.
17:02:24dom96Colors should not be different per .nim file.
17:03:04filwitwell the idea is to allow lib writes to "suggest" to coders how their symbols are supposed to be used (and that has to be defines on the code itself)
17:03:16BitPuffinEXetoC: no waist obviously :P
17:03:59filwitdom96: for instance, I want my "part" macro to looks like a keyword
17:04:24filwitdom96: which means i have to modify any Nimrod language schemes
17:04:45EXetoCfilwit: I don't get it. Is the developer of said lib supposed to put those everywhere?
17:05:13filwitEXetoC: no.. only if they want something out of the ordinary
17:05:23filwitEXetoC: like my example with 'part'
17:05:49filwitthe reason is Nimrod's symbols are so powerful
17:06:36filwityou can essentially define your own keywords or at least key API macros
17:06:47filwitbut they don't look like that in color
17:07:03filwitwhich makes them feel out of place (to mean, who is a very visual person)
17:07:07filwitto me**
17:07:33filwiti'm kinda OCD when it comes to colors.. lol
17:08:27BitPuffinfilwit: would be nice to have something like that for vim
17:08:28filwitdom96: it's okay if you don't want these changes ;-) just thought i'd offer
17:08:59*Jackneilll joined #nimrod
17:09:11*Jackneill quit (Ping timeout: 245 seconds)
17:09:17filwitBitPuffin: yeah, i'm not sure exactly what text-editor/IDE would be best to allow that sort of dynamic scheme editing. I use (and love) Kate right now
17:09:58BitPuffinfilwit: not sure. Vim would probably be able to handle it considering how scriptable it is. Same goes for emacs
17:10:31filwitBitPuffin: problem is i hate Vim, haha
17:10:48filwitBitPuffin: jk, but i never really learned how to use it (or saw the point)
17:10:49EXetoC:(
17:10:50BitPuffinfilwit: everybody has their preferences :P
17:11:01filwityeah
17:11:15BitPuffinthere is definitely a point
17:11:16filwiti just really like Kate, KDevelop, and MonoDevelop
17:11:21BitPuffinand you see it once you start to learn it
17:11:26filwitVisual Studios is good too
17:11:29BitPuffinbut it seems like you are in to simple editors
17:11:34BitPuffinand that's totally fine
17:11:52EXetoCmy biggest priority is being able to read the text *and* not have my eyes pwned by bright backgrounds. interesting concept though. you could start by implementing it yourself
17:12:25BitPuffinEXetoC: amen to bright backgrounds. They can go fuck themselves
17:12:30filwityeah, BitPuffin, i can see how having a completely Keyboard navigated system would speed things up, but I just don't care to tackle that learning curve right now (especially when i do so many other, non-coding related things)
17:12:39EXetoCBitPuffin: I just had to read what a few people had to say about it, to know what it was all about
17:13:06BitPuffinfilwit: you decide when/if you are ready
17:13:14filwitEXetoC: but all editors have dark color schemes. I prefer bright ones, though.
17:13:23BitPuffinEXetoC: about what?
17:13:33EXetoCvim
17:14:25EXetoCyes it's pretty steep at first, but I did alright after plowing through vimtutor
17:15:25filwiti started to try it once
17:15:41EXetoCit helps when you suffer from RSI at the very least
17:15:56filwiti know the basics out of practicality (when a Arch log pops up, gotta know how to quit it)
17:16:07filwitRSI?
17:16:29EXetoCrepetitive strain injury
17:17:21filwiti see
17:18:43EXetoCarch log?
17:19:16filwityeah, i guess i've never thought about that. I imagine using a keyboard-only system would be more attractive if it was painful to move your elbows and stuff
17:20:15filwiteh, arch log meaning those files that open with vim by default sometimes in the terminal.. it happens on my system even thought the editor is technically nano
17:20:23filwitdunno why
17:21:43filwityou know, i was very impressed with PCLinuxOS recently
17:22:19filwitdidn't know there was another rolling-release distro that was really stable, easy to install, and came with nice bios tools and stuff
17:22:54filwitwas tempted to switch from Arch to it.. and that's saying something cause i love my Arch system
17:23:08*io2 joined #nimrod
17:23:59EXetoCecho $EDITOR. you can set it in .bashrc for example. export EDITOR=xjriweo
17:24:13filwitbut they can run Chrome, which helps with some video playbacks (youtube) i think (it was the only system that self-setup correctly on my brother's PC)..
17:25:02filwityeah i know EXetoC, that's why i'm saying.. it's set to nano, but still vim opens sometimes
17:25:17filwitahh.. probably cause root user's set to vim..
17:25:29filwitso when i'm low level and something opens.. it's vim
17:25:31filwitthat makes sense
17:25:46BitPuffinEXetoC: you suffer from RSI?
17:25:54filwitcause it only really happens when linux crashes or i open some xorg crash log
17:26:42*mwcampbell quit (Quit: ircII EPIC5-1.1.2 -- Are we there yet?)
17:31:30BitPuffinthis compiler bug is killing me ._.
17:32:07EXetoCfilwit: using sudo? if so, then passing -E to it should do the trick
17:32:10EXetoCBitPuffin: yes
17:32:55BitPuffinEXetoC: I see, I feel it too sometimes, I've made some ergonomic adjustments to my workflow for this
17:32:57BitPuffinlike vim and i3
17:33:08BitPuffinand other things as well with desk etc
17:37:47EXetoCthat should help
18:11:07*fredmorcos joined #nimrod
18:11:22fredmorcosI have a question about tutorial 1, case statements
18:11:38filwitwhat's you question?
18:11:57fredmorcosit basically says, you cannot cover all cases (due to not being able to enumerate all possible integer values), so an else clause is needed to cover the remaining cases
18:12:22fredmorcosthen it says the exact opposite about all possible string valyues
18:12:24fredmorcos*values
18:12:45fredmorcosNote that it is impossible to cover all possible string values: that is why there is no such check for string cases.
18:13:15VarriountAraq, how does a closure iterator work exactly? Can you "instanciate" like an object, and then pass it around? or iterate over only a section of it?
18:13:23fredmorcossure you still need that check (and it would be nice actually for the compiler to do that check)
18:13:52filwitfredmorcos: i'm not sure what you are asking
18:14:16fredmorcosfilwit, either i don't understand that section in the tutorial, or its contradictory
18:14:25fredmorcoshere are two statements from the tutorial:
18:14:42filwitfredmorcos: strings present and infinite number of combinations (in theory)
18:15:01fredmorcosfilwit, same for integers
18:15:06fredmorcosthey're an infinite set
18:15:12filwitfredmorcos: but you still want to require an else statement for your finite types for security and sanity
18:15:24fredmorcosfilwit, sure
18:15:31fredmorcosfor both, finite and infinite types
18:16:16filwitfredmorcos: maybe, i'm not sure. I was never actually a fan of that anyways
18:16:21fredmorcosstrings are an infinite set
18:16:26fredmorcosintegers are an infinite set
18:16:42fredmorcosints require an else clause in a switch, strings don't
18:16:47fredmorcosi don't see why
18:16:49filwitfredmorcos: integers are not an invinite set
18:17:07fredmorcosin theory, they are, no?
18:17:22filwitfredmorcos: i guess, but maybe it's about what's realistic?
18:17:35filwitidk, but what are you asking for?
18:17:56fredmorcosi personally think this logic is mistaken
18:17:56filwitthat strings case statements always require a trailing "else: discard" block?
18:18:04fredmorcosyes
18:18:11fredmorcoselse: nil
18:18:18EXetoCforgot a word there?
18:18:58fredmorcosEXetoC, ?
18:18:58filwitidk, i don't like the idea really, fredmorcos
18:19:06fredmorcosfilwit, why not?
18:19:19filwitsure it's an inconsistency, but i'd rather not have to type something pointless
18:19:35filwitin fact, i'd almost rather not have to type the "else: nil" in general
18:19:36fredmorcosfilwit, well you have to do it when using integers, so why not strings too?
18:19:37filwitbut that's just me
18:19:53fredmorcosyea sure, but that's not what i'm concerned about it
18:20:20fredmorcosyou either type else: nil for strings AND integers, or not type else: nil for strings AND integers, that's what i'm asking about
18:20:52EXetoCI vote for required in all cases
18:20:59filwitfredmorcos: well anyways, you'll have to take this up with Araq or others. I don't really care either way, lol
18:21:07fredmorcosEXetoC, me too actually, to remind the programmer
18:21:11EXetoCfile a bug report if you want
18:21:19EXetoCright
18:21:39fredmorcosis it worth a bug report? i mean, would such a thing be up for discussion?
18:22:09filwiti never truly saw the point of the "else: nil" statement... people just end up throwing that on there to satisfy the compile error, and it becomes just the same as if the compiler didn't check.
18:22:29fredmorcosfilwit, explicit is better than implicit ;)
18:22:42filwitfredmorcos: that's not always true
18:23:07filwitfredmorcos: in general i agree though
18:23:19filwitfredmorcos: and i do agree, consistency is very important
18:23:34fredmorcosi will file a bug report later today
18:23:46fredmorcosbut i have to bounce now unfortunately... thanks filwit, EXetoC!
18:23:59filwitfredmorcos: bye!
18:24:02EXetoCnp. peace out
18:25:05filwitbtw, is there a difference between "else: nil" and "else: discard" ??
18:25:25EXetoCthere's no value to discard in this case
18:25:44filwitis that a benefit for any reason ? (performance?)
18:26:14filwitto use discard over nil i mean
18:26:36*fredmorcos quit (Quit: Leaving)
18:28:52EXetoCthey have different uses. nil can be used as a placeholder, because a block must contain at least one statemment. discard is for discarding values returned from functions for example
18:29:49EXetoCproc f(): int = 0; discard f(); let x = f();
18:30:08EXetoCjust f() won't be allowed, because then the value is implicitly discarded (ignored)
18:30:21filwitright, okay that makes sense
18:32:08BitPuffincan anyone see a reason why this apparently fails in secret with the compilation? https://gist.github.com/BitPuffin/7293252
18:36:46EXetoCcase branches can take ranges actually. it doesn't seem terribly useful as a way of covering all cases rather than just specifying an else clause though, but it's possible
18:56:55Araqwhat? I use case ranges all the time ...
18:57:59filwitAraq, do you have any plans to allow overloading by return-type in the future?
18:58:59Araqyeah but don't wait for it
18:59:20filwitAraq, okay great, so you're not apposed to it?
18:59:35Araqthe language is complex enough already to keep us busy for years until everything is stable, I'm afraid
18:59:55Araqnot opposed to it, but as I said, after 1.0 is out
19:00:05VarriountHm.. Anyone have any idea how I would do something similar to pythons expansion of function arguments from a list/dict?
19:00:26AraqVarriount: that's what macros allow
19:01:03filwitAraq: hmm... so it would take a lot to do? (if not, i might like to try to implement at some point)
19:01:21VarriountAraq, trying to make an iterator/procedure wrapper for partials. I was hoping not to have to resort to macros.
19:01:46EXetoCAraq: I mean adding a case statement for the sole purpose of replacing 'else'
19:01:47BitPuffinVarriount: macros would give you nicer syntax options
19:02:13BitPuffinAraq: you did say that the compiler saying success but not giving output was an known issue right?
19:02:24AraqBitPuffin: nope
19:02:40Araqnever happens to anybody except you
19:02:58BitPuffinAraq: weird, wanna see if it happens for you?
19:02:59VarriountBitPuffin, https://gist.github.com/Varriount/7293614
19:03:17BitPuffinAraq: or should I just bug report
19:04:03BitPuffinbecause it is kind of show stopping
19:04:07filwitAraq: i'm interested, because as I was going through some code, I realized I may agree with a certain part of your functional design, and even prefer it, if i was able to do this logically: var m:Model = load('...')
19:04:23OrionPKAraq i'm running into that GC issue again I think; but only with the asyncio enabled :\
19:04:55AraqOrionPK: yay
19:05:18OrionPKi let it sit there w/ my websocket client app while I did some errands, came back to 50mb of ram
19:05:25BitPuffinI have 96% space left on my /home so it can't be that
19:05:36OrionPK(50 mb of ram used by the app, not remaining)
19:06:06Araqfilwit: it doesn't really matter how complex it is to implement; I'm trying feature freeze
19:06:32AraqBitPuffin: I'm quite sure I can't reproduce it. why should I?
19:06:42OrionPKif anyone wants to look this over and try it out, I'd appreciate a 2nd pair of eyes to track down the leakhttps://github.com/onionhammer/onion-nimrod/blob/master/websockets/websockets.nim
19:06:49OrionPKoop: https://github.com/onionhammer/onion-nimrod/blob/master/websockets/websockets.nim
19:06:53filwitAraq: okay i see, so what are your launch windows looking like?
19:07:36filwitAraq: nevermind, nevermind i understand
19:07:47Araqfilwit: when everything goes smoothly I'll be dead by the end of the year. Then I'll have plenty of time.
19:07:47filwitAraq: feature freeze until bugs are fixed, got it
19:07:56OrionPKAraq if you see anything in there that screams memory leak..
19:08:56BitPuffinAraq: how can you be sure if you haven't tried?
19:09:10BitPuffinAraq: https://gist.github.com/BitPuffin/7293653 here is code and terminal output
19:09:18AraqOrionPK: var TWebSocketServer where TWebSocketServer* = ref TWebSocketServerImpl screams "sigh, I wish people would understand pointers"
19:09:59OrionPKI've been just desparatenly changing shit to try to fix the leak
19:10:02BitPuffinAraq: since you use LMDE we use more or less identical systems so
19:10:17OrionPKthat is one of the desparate changes
19:11:23AraqBitPuffin: how does that compile? 'linagl-vector' is not a valid module name
19:11:33BitPuffinAraq: it's because gist doesn't allow / in the name
19:11:52BitPuffinAraq: replace the - with / (it is in the subdir linagl)
19:12:55*Amrykid quit (Changing host)
19:12:55*Amrykid joined #nimrod
19:14:10AraqBitPuffin: /home/andreas/projects/linagl/nimcache/linagl_vector.o: In function `vectorInit':
19:14:11Araqlinagl_vector.c:(.text+0x109b): undefined reference to `swizzleimpl_90828'
19:14:12Araqlinagl_vector.c:(.text+0x12fc): undefined reference to `swizzleimpl_91628'
19:14:14Araqlinagl_vector.c:(.text+0x15a5): undefined reference to `swizzleimpl_92428'
19:14:16Araqlinagl_vector.c:(.text+0x1806): undefined reference to `swizzleimpl_90828'
19:14:17Araqlinagl_vector.c:(.text+0x1a67): undefined reference to `swizzleimpl_91628'
19:14:19Araqcollect2: error: ld returned 1 exit status
19:14:27Araqso ... it's clearly some bug but compilation doesn't succeed
19:14:34Araqfor me
19:14:45BitPuffinAraq: but why doesn't it tell me that?
19:15:43EXetoCwith neither compiler config?
19:15:55EXetoCsame bug as before when I asked?
19:16:48AraqEXetoC: I can't follow. are you BitPuffin?
19:16:49BitPuffinAraq: I remember seeing a similar error to that once I couldn't get it again
19:17:04BitPuffinAraq: No EXetoC is Erik, I am Isak
19:17:55Araqthat was a rhetorical question
19:18:12EXetoCforgot to higlight BitPuffin
19:18:54BitPuffinAraq: did you use different compiler options than me? (removing paralellBuild and not using --path doesn't make a difference)
19:19:05BitPuffinEXetoC: what do you mean by "with neither compiler config?"
19:19:22AraqBitPuffin: I used your compiler options
19:19:26EXetoC*build. debug/release
19:19:29BitPuffinthere isn't any nimrod.cfg in this project if that is what you are wondering
19:19:37BitPuffinAraq: weird
19:19:41BitPuffinsinister bug :P
19:19:48BitPuffinI'm writing a bug report
19:23:46AraqOrionPK: Nimrod's sections have the point to make comments like '##Types' superfluous ...
19:24:45OrionPKsections?
19:25:03Araq##Types
19:25:04Araqtype
19:25:06Araq ...
19:25:09OrionPKright
19:25:10BitPuffinAraq: is this good enough? https://github.com/Araq/Nimrod/issues/660
19:26:01AraqBitPuffin: aha! can reproduce it :P
19:26:12OrionPKAraq preferably I'd have code folding over that entire thing
19:26:13Araqthe compiler doesn't re-run the linker if nothing changed
19:26:29filwitwoah.. wait.. guess i don't need overload by return types..
19:26:33BitPuffinAraq: aaaaahhh, so that's why I only saw that error once
19:26:35filwitneverminds.
19:26:46AraqBitPuffin: yeah :-/
19:27:00Araqthe compiler should always invoke the linker IMHO
19:27:01BitPuffinAraq: yep so when removing nimcache I get the error message
19:27:53BitPuffinAraq: added a comment on the bug with our new discovery
19:28:12BitPuffin(this is to document the process I guess)
19:28:18OrionPKIt would be nice if asyncio used generics
19:28:23BitPuffinAraq: so two bugs in one
19:28:26BitPuffinisn't that lovely
19:28:36OrionPKso I could attach arbitrary data to the socket
19:29:10AraqOrionPK: yeah and then everything that uses sockets needs to be generic too. great idea. generics are viral
19:29:17OrionPK:P
19:29:28OrionPKonly as an option
19:29:43OrionPKand only libraries would need it
19:29:47BitPuffinAraq: the linker bug is probably a bit less sinister than the other bug I assume
19:30:16EXetoCsystem.nim doesn't count, right? :p
19:30:31AraqBitPuffin: both bugs are easy to fix
19:30:55VarriountIs there any way for a macro to get a node, or information, associated with an identifier?
19:31:36VarriountLike, say I have a macro that is passed the name of a procedure - Can I look up the procedure's ast somehow?
19:32:22BitPuffinAraq: that's good then :P
19:33:07EXetoCso passing a T that the function could treat as a series of bytes wouldn't be good? operator to the rescue then!
19:33:30BitPuffinAraq: are generic parameters other than ranges supposed to work because I had issues with that
19:35:21Araqno idea. I don't even know what are regressions and what never worked with generics. creeping featurism is bad.
19:35:44Araqbut hey, lets have MOAR features.
19:36:04VarriountI prefer to have bugs fixed first, then features.
19:36:40VarriountUnfortunately, I don't know where to start in regards to fixing nimrod compiler bugs.
19:36:47BitPuffinAraq: well I think in that case it's more about completeness of a feature (generic parameters) rather than new features
19:36:58BitPuffinVarriount: I know where to start
19:37:10BitPuffinVarriount: https://github.com/Araq/Nimrod/issues
19:38:04VarriountBitPuffin, well, yeah, but how would I fix those bugs? Even if I find what I *think* is the problem site, I wouldn't know how to correct it.
19:39:07BitPuffinVarriount: mess with it until it works I guess, version control makes it easy
19:39:32BitPuffinbut yeah
19:39:38BitPuffinmaybe we should all sit down and fix bugs
19:40:12BitPuffinah this is what Araq said was a known issue https://github.com/Araq/Nimrod/issues/618
19:40:53EXetoCfix what bugs? I don't have the energy to mess about with the compiler
19:41:02BitPuffinEXetoC: all the bugs
19:41:31BitPuffinwould be nice to have some sort of overview document of the compiler
19:41:39BitPuffinjust so that you have a sort of reference
19:41:48VarriountBitPuffin, there's the internals document
19:41:53EXetoClike the one covering quite a few modules?
19:41:59BitPuffinoh
19:42:00BitPuffinlinks?
19:42:18VarriountBitPuffin, http://nimrod-code.org/documentation.html
19:42:27VarriountLokk at the very bottom
19:42:31Varriount*Look
19:42:39*io2 quit ()
19:42:45Varriount"Internal Documentation"
19:43:03BitPuffinseriously though guys
19:43:09BitPuffinif we spent a full weekend collectively
19:43:15BitPuffinmaybe we could fix like 40 bugs
19:43:20BitPuffinand introduce 583 new ones
19:44:08VarriountBitPuffin, ok, how about this one - https://github.com/Araq/Nimrod/issues/618
19:44:27BitPuffinVarriount: that's the one I'm looking at too
19:44:39EXetoCit's a cakewalk innit
19:45:10BitPuffinyeah I might try it after dinner
19:45:20BitPuffinand read the compiler docs during dinner :P
19:47:24EXetoCenjoy
19:47:40*Demos joined #nimrod
19:47:56Araq"'result' cannot be the last statement of a proc, either directly or indirectly (inside another "expression-statement")"
19:48:26Araqyes and that's in accordance with the (unwritten parts of the) spec.
19:50:09VarriountAraq, who was that directed at?
19:50:13EXetoCme
19:50:28Araqproc h: int =
19:50:29Araq let x = if true: result else: 0 # This works
19:50:32Araqargh
19:50:46EXetoCI had self-documentation in mind, when the last expression in a branch is result. but it's minor. alright, onto the next minor issue
19:50:52EXetoCwhatever that is :>
19:51:22VarriountI'm working on 641, since it actually has a traceback/error
19:52:12Varriountif isNil(n.sons): result = 0 <- Why would this cause a segfault?
19:52:21BitPuffinAraq: what exactly is the issue with the undefined reference to swizzleimpl etc, maybe I'll be able to fix it
19:52:24Araqn is nil?
19:53:05AraqBitPuffin: try to run it with --implicitStatic:on
19:53:13EXetoCsince it's a clear indication that no change has been made, but there are about three ways to remedy that
19:53:15Araqthat's about to become the default anyway
19:53:43EXetoClet noChange = result
19:53:52EXetoCalright, good to know
19:54:11AraqEXetoC: I was referring to --implicitStatic:on
19:54:23BitPuffinAraq: that doesn't seem to make any difference?
19:54:32AraqBitPuffin: too bad :P
19:54:46BitPuffinlol
19:54:54BitPuffinthem hintz
19:55:27NimBotAraq/Nimrod master f8d6545 Mark Henderson [+0 ±1 -0]: a few typos
19:55:27NimBotAraq/Nimrod master 70af5f7 Andreas Rumpf [+0 ±1 -0]: Merge pull request #659 from markhend/master... 2 more lines
19:55:29BitPuffinstill says undefined reference etc
19:56:19VarriountWhat is 'auto'? I see it in the docs, but it has no description..
19:56:55BitPuffinVarriount: proc foo(a, b): auto = a + b
19:57:32VarriountBitPuffin, you left out the param types?
19:57:44BitPuffinVarriount: yes I did sir
19:58:00EXetoCthe type is implicitly expr I believe
19:58:14Demosdoes that make the function implicitly generic or does the compiler solve for the types?
19:58:24Araqimplicitly generic
19:58:27VarriountDemos, currently, the compiler just crashes.
19:58:33BitPuffinworks for me
19:58:36BitPuffinin nimrod repl
19:58:41BitPuffinlol
19:58:46VarriountBitPuffin, var s = proc (x, y): auto = x+5
19:58:50Demosthe rpel crashes if you sneeze at it though
19:59:27BitPuffinDemos: like the plane you'll be on your next trip
19:59:57Demoserm OK
20:00:06BitPuffinhttp://youtu.be/CXRMCzmbcdw
20:00:18BitPuffinbrb shower
20:14:42*Endy quit (Ping timeout: 246 seconds)
20:18:40*freezerburnv joined #nimrod
20:28:40VarriountAraq, is there any option to make nimrod explicitly check for nil arguments?
20:28:54Araqno.
20:39:24*Jackneilll quit (Remote host closed the connection)
20:55:20*zezba9000 joined #nimrod
20:55:58BitPuffinalright
20:56:04BitPuffintime to cook and read compiler docs
20:57:30Araqhi zezba9000 welcome
20:58:07filwityou're not welcome here, zezba9000
20:58:17zezba9000lol
20:58:40filwit;)
21:00:15zezba9000Araq: Tnx
21:00:20BitPuffindom96, Araq: maybe we should be present in the live chatroom on jupiterbroadcasting if my email about nimrod gets read on coder radio
21:00:25BitPuffinthink it is tomorrow
21:01:25zezba9000Got on cuz I did some benchmarks of C# last night. Going to add Nimrod tests to compare in a sec.
21:01:41zezba9000How hard would it be to build Nimrod for iOS or Android?
21:02:02Araqwe have an iOS example in the repo
21:02:16Araqand perhaps an Android too lol
21:02:40zezba9000The results so far are: https://github.com/zezba9000/RayTraceBenchmark
21:03:56filwiti'm adding the Nimrod results right now
21:04:23zezba9000**But they are only from one PC so far.
21:05:28Demosunhless nimrod decided to copy out the ass I predict large fasterness
21:05:52zezba9000yes it is much faster then C# on x86-x64
21:06:04zezba9000but I rly want to test on ARMv6 and ARMv7
21:06:27Demosis ARMv7 the ARM64 one?
21:06:48zezba9000If you look at the "LG VM670 600MHz": It took "359.878 sec"
21:06:58zezba9000with Mono
21:07:31zezba9000Would be cool to see how much faster Nimrod is on that device as its by far the slowest.
21:07:53zezba9000No not ARM64
21:08:16zezba9000Only new iPhones have that... and that new iPad
21:11:33zezba9000Nirmod on the RaspberryPi only takes 6 sec, where Mono 2.11.4 HardFloat takes 35 sec... So that gives a good idea at how much faster it is.
21:12:00VarriountAraq, do you know why semstmts.semLambda, line 883, passes nil to semParamList?
21:12:09OrionPK6 seconds vs 35 seconds sounds like an algorithm problem
21:12:51VarriountIt seems that line is part of the root of the problem with "var s = proc (x, y): auto = x+5"
21:13:08filwitOrionPK: i don't think it is. We will be posting code to show you in a sec. Can double check in a sec
21:13:11zezba9000No they are using the same algorithm
21:14:55Demosis it real-time on x86_64?
21:15:21AraqVarriount: quite possible. what do other procs pass to semParamList?
21:16:46zezba9000No it renders the image once in system memory. Then after the test is done, is save to a raw image file
21:17:10zezba9000The resolution of the image is 1280x720
21:17:14dom96BitPuffin: What time is it on?
21:17:34dom96oh cool, welcome filwit's brother. :P
21:17:57filwit;)
21:18:07BitPuffindom96: 6pm Berlin time
21:18:08zezba9000dom96: Tnx
21:18:15BitPuffinhttp://www.jupiterbroadcasting.com/release-calendar/
21:18:51dom96BitPuffin: hrm, remind me tomorrow :P
21:19:17BitPuffindom96: will dew!
21:19:23*freezerburnv quit (Quit: freezerburnv)
21:20:09BitPuffindom96: you could also just have jblive.tv open in a tab and check it once an hour for the countdown :P
21:20:40dom96BitPuffin: I will probably forget to check :P
21:21:11VarriountAraq, assuming it isn't aliased anywhere else under a different name, semParamList is only passed a nil genericParams on that one line. Elsewhere, it is either passed a genericParams node from what I can only guess is the actual syntax tree, or a genericParams node is created is created and passed.
21:21:14*Associat0r quit (Quit: Associat0r)
21:22:09BitPuffinbtw filwit and zezba9000, how was the code size relative to each other in your ray tracers?
21:22:25filwitBitPuffin: just pushed the Nimrod code up
21:22:37BitPuffinfilwit: link?
21:22:46filwithttps://github.com/zezba9000/RayTraceBenchmark
21:22:56dom96Compiler bug fixing weekend is a good idea btw. I'm sure if we all work together we can at least fix a couple of bugs, if we all support each other it will be much easier :)
21:23:49VarriountHm. Even if I can't fix certain bugs, I can at least help narrow them down.
21:24:04zezba9000.NET is 10k Nimrod 94k
21:24:05AraqVarriount: ok then change it to something that seems appropriate to you
21:24:10BitPuffinfilwit: looks like nimrod was around 3/5ths !
21:24:35BitPuffinbut that wasn't even looking at sloc
21:24:38filwitBitPuffin: yep! pretty impressive for Nimrod
21:25:00BitPuffinwhen looking at sloc it was around half lol
21:25:01VarriountAlso, consider the fact that nimrod doesn't have a big shiny standard library.
21:25:05BitPuffinor even less than half
21:25:18BitPuffinor no
21:25:18filwitBitPuffin: i wasn't concerned with LOC, plus i think being a little more verbose isn't bad
21:25:19BitPuffinabout half
21:25:55BitPuffinfilwit: sure, but when it's half the size you gotta admit it's really attractive language wise
21:26:04BitPuffinespecialy considering that nimrod is pretty pretty
21:26:38filwitBitPuffin: lol, true it's quite a bit less
21:27:06BitPuffindom96: yep, so let's get on Araq's butt to have him encourage the damn thing :P
21:27:25BitPuffinfilwit: but yeah who cares about a few line here and there
21:27:53dom96filwit: 'makefile'; what is this blasphemy doing in Nimrod's directory?! :P
21:28:05filwitdom96: LOL..
21:28:08BitPuffinthat should be a nakefile!!!
21:28:12*filwit kinda likes makefiles
21:28:23*Varriount hates autoconfig
21:28:46filwitdom96: just in case someone doesn't know how to compile with -d:release
21:29:36dom96BitPuffin: I'm sure he encourages it, just in a silent way :P
21:30:51OrionPKwebsockets with asyncio seems to have stabilized at 15,868k memory :P
21:31:06OrionPKwould prefer it stabilized at 900k though, like the non-asyncio version
21:31:40BitPuffindom96: no he despises the very idea, he wants all bugs for himself :P
21:32:08zezba9000Added C# results for "AMD Phenom II X4 920 2.8Ghz" CPU to compare with Nimrod.
21:32:18filwit(that's my CPU)
21:32:30filwitand the CPU which we ran Nimrod on
21:32:52*Hannibal_Smith joined #nimrod
21:32:53OrionPKdom when you have a minute, I'd like your take on where you think the leak might be happening.
21:32:57OrionPKhttps://github.com/onionhammer/onion-nimrod/blob/master/websockets/websockets.nim
21:34:14OrionPKafk
21:34:54*dom96 needs to take a shower first
21:34:55dom96bbl
21:34:59filwitbye
21:36:54*VarriountPhone joined #nimrod
21:44:38*fredmorcos joined #nimrod
21:47:54VarriountPhoneAraq, I passed the semParamList function a new node, and it gave me an invalid type error
21:49:35VarriountPhoneAlso, I feel like I'm going to throw up
21:50:08BitPuffinVarriountPhone: did you lose your taste for nimrod?
21:50:48VarriountPhoneNo, my people in my family have been getting sick
21:51:30BitPuffinhaha your people
21:51:38BitPuffinno but get well you guys
21:51:40BitPuffinI mean it
21:53:27BitPuffinAraq: why isn't pragmas.nim called sempragmas?
22:00:03zezba9000I know Nimrod has a Nimrod to javaScript component correct? How hard do you think it would be if say I wanted to make a Nimrod to C# component. The reason for this is portability to Indie C# only platforms like PSVita(via PSM), Xbox360(Indie), WP7 and Silverlight plugins?
22:00:35BitPuffinzezba9000: not harder than the others I would think
22:01:27zezba9000How does Nimrod limit itself when it compiles to javaScript? As javaScript doesn't have pointer access ect?
22:02:22zezba9000Does it just give compile errors when trying to use unsuported features
22:02:39BitPuffinzezba9000: it doesn't limit itself
22:02:46Araqzezba9000: nimrod supports 'ref' but not 'ptr' for JS, there are lots of other limitations as JS lacks unsigned ints for instance
22:02:56BitPuffinzezba9000: currently javascript nimrod semantics are different than nimrod semantics
22:03:08AraqBitPuffin: now that's not fair
22:03:10*DAddYE joined #nimrod
22:03:21Araqthe semantics are the same except for corner cases in closures
22:04:21BitPuffinAraq: you aren't always fair either :D but okay I could have elaborated
22:04:56zezba9000So you could say I could use most of the same code to write a Native Phone App and WebGL version?
22:05:06BitPuffinAraq: what is your stance on a bugfixing weekend
22:05:08zezba9000...of a game
22:05:08BitPuffinzezba9000: absolutely
22:05:20BitPuffinzezba9000: in fact that's what I'm slowly doing
22:05:29zezba9000So if I made a Nimrod to C# component this should work as well
22:05:55BitPuffinyes
22:06:51BitPuffinzezba9000: you could make a simple test if you want to check
22:08:10AraqBitPuffin: that suggests that I'm not spending as much time as possible on nimrod but I do
22:08:13zezba9000I am not familiar with Nimrod at all so would have to learn a little more first. Before that though I would like to test it on WinRT frameworks for Win8 and WP8.
22:09:13BitPuffinAraq: that's the synical way to look at it
22:09:16BitPuffincynical*
22:09:28zezba9000Has anyone ever tested on WinRT frameworks? Or even NaCl? These platforms don't have all the normal stuff in them.
22:10:00BitPuffinAraq: but that is not a fair way to look at it
22:10:11AraqI don't think NaCl works, zezba9000
22:10:29Araqnimrod uses mmap etc which are not supported on nacl afaik
22:10:33zezba9000Araq: Is this because the standard libraries don't work?
22:10:45BitPuffinAraq: it just says that writing a compiler for a language is a lot of work and that the community wants to let you focus on the last features you need before the freeze without worrying too much about bugs
22:15:00*io2 joined #nimrod
22:15:29*DAddYE quit (Remote host closed the connection)
22:15:30zezba9000So does Nimrod currently not have async IO frameworks? Javascript using the async model? So could this be changed to support the async models on WinRT and NaCl? Or am I missing something
22:16:03fredmorcosAraq, there was a discussion earlier about case statements, on ints and on strings
22:16:16Araqfredmorcos: well?
22:16:46fredmorcoswhere not covering all cases for ints gets the compiler to spit out: Error: not all cases are covered
22:16:56fredmorcoswhile not covering all cases for strings is ok
22:17:08fredmorcosmay I ask what the reasoning about this difference is?
22:17:51fredmorcosTutorial 1 says that you can't possibly cover all cases for strings
22:18:10fredmorcoswhich is strange, because the same is true for ints, theoretically speaking
22:18:27fredmorcospractically speaking, the int set is finite, but so is the strings set
22:18:43Araqno, that's wrong
22:19:02Araqpractically speaking the int set is finite but the strings set is not
22:19:09fredmorcoshow so?
22:19:11filwitthat's what i said
22:19:18Araq"a", "aa", "aaa", ...
22:19:32fredmorcosAraq, what about the length of the string, isn't that an int?
22:19:54Araqhmm a fair point I guess
22:19:58Araq:D
22:20:06fredmorcosso the longest string you can have is probably of length MAX_UINT
22:20:27BitPuffinwtf is RTL
22:20:30EXetoCtry to write a case range for that :p
22:20:45fredmorcosEXetoC, else: nil :)
22:20:50Araqwell in any case you can do low(int)..high(int) and cover every case but you can't do the same for strings
22:20:53filwiti would like to know about zezba9000's question as well though. What exactly would it take to make Nimrod compile a binary for Win8/WP8 & Nacl?
22:21:03AraqI don't know
22:21:04dom96VarriountPhone: strange that your r/nimrod post is only visible in /new
22:21:33EXetoCfredmorcos: not a range, but I also think that the requirements should be the same
22:21:39Araqfilwit: when I try these things I do what needs to be done to make it work :P
22:22:15filwitAraq: i understand. just want to know where my boundaries are ;)
22:23:36zezba9000Maybe a fake "mmap" could be used on NaCl. So just write a dumby mmap of the features you need to use on the platforms that don't support it.
22:23:54fredmorcosAraq, what about adding an enforcement in the compiler to have an explicit else: <something> in switches on strings?
22:24:28Araqwhy? what's the point? everybody can see that a string case without else can't cover every case
22:25:04BitPuffinand what the hell is a ROD file
22:25:12fredmorcosAraq, 1. will be consistent with switches on ints, 2. programmer will be aware that they need to explicitly handle the remainder of cases (which is usually a good thing) --> no gotchas in their code
22:26:28Araqso every string case requires an 'else'?
22:26:42fredmorcosyes
22:26:45EXetoCI don't know if it matters, since "case x of 0'u32: 1 else 1'u32..uint32.max: 2" isn't that useful anyway. it's just more verbose than else
22:27:18EXetoCbut maybe being explicit isn't the goal
22:27:46Araqfredmorcos: you've a point. I'll consider changing it
22:28:25fredmorcosAraq, alright... i would be interested in providing a patch if 1. you'll accept it, 2. it's simple enough
22:28:38BitPuffintime to walk the dog and sleep
22:28:43BitPuffinI read enough to perhaps fix a bug or so
22:28:55BitPuffinor at least know a little bit where I might start looking
22:29:01BitPuffingoodnight y'all!
22:29:11EXetoCbuy buy
22:29:27fredmorcosgood night!
22:29:40BitPuffinEXetoC: purchase purchase
22:29:57*brson joined #nimrod
22:30:12dom96BitPuffin: sweet dreams!
22:33:12Araqfredmorcos: 2. it's simple enough but a bit tedious as it requires a deprecation path
22:33:53*BitPuffin quit (Ping timeout: 245 seconds)
22:34:23*freezerburnv joined #nimrod
22:37:11freezerburnvEvening all
22:40:07VarriountPhoneI just threw up 2 glasses of water, 4 taquitos, and a pineapple pop
22:40:14VarriountPhoneblargh
22:40:19freezerburnvAlso: that benchmark zezba9000 posted is awesome
22:40:38freezerburnvVarriountPhone: Owch. Sounds like you got something nasty going on there :(
22:41:09VarriountPhone:<
22:41:17freezerburnvHope you feel better soon!
22:42:48EXetoCthat wasn't very wise
22:51:35filwitfreezerburnv: the test zezba9000 posted was originally adapted from code found in this Nimrod forums post: http://forum.nimrod-code.org/t/167
22:52:06filwitfreezerburnv: he haven't updated the repo to give appropriate credit yet
22:52:10filwitwe**
23:04:23*Hannibal_Smith quit (Quit: Sto andando via)
23:07:06freezerburnvI was mostly just saying it was awesome :)
23:10:39zezba9000freezerburnv: Well I would agree with you on that ;)
23:16:48fredmorcosfreezerburnv, what benchmark?
23:18:02zezba9000fredmorcos: https://github.com/zezba9000/RayTraceBenchmark
23:21:42*Ricky_Ricardo joined #nimrod
23:21:46*CarpNet quit (Quit: Leaving)
23:27:02*gour_ quit (Quit: WeeChat 0.4.1)
23:35:11*Ricky_Ricardo quit (Quit: Ricky_Ricardo)
23:36:13fredmorcosI used to work for a professor who commented out LaTeX with some \newcommand he defined in every file, called PUNT, that replaces its parameters with nothing... made me angry, because the first time I ran after the bug where some pieces of the document wouldn't get rendered despite being in the LaTeX file.
23:36:34fredmorcosSpent hours
23:37:03fredmorcosAnd what pissed me off more was that he used emacs, and couldn't just M-; a marked block
23:37:27*io2 quit ()
23:37:34fredmorcossame for #if 0
23:37:52fredmorcosand when false: :(
23:38:46fredmorcosbecause the code stays highlighted, and unless you notice this \PUNT, #if 0, and when false:... you're going to have a really bad time
23:39:15fredmorcoson the other hand, most reasonable highlighting text editors, change text color when something is commented out
23:40:22fredmorcoswhich makes it trivially visible that it won't be part of the output
23:40:41fredmorcoswhat I'm getting to is, in tutorial 1, I think it is not a good idea to have something like the following: Note: To comment out a large piece of code, it is often better to use a when false: statement than to use real comments. This way nesting is possible.
23:53:41freezerburnvA truly good editor will notice which when block is valid and make the others less visible :P
23:54:52freezerburnvI wonder if that kind of thing is in the idetools command line stuff?