<< 21-10-2014 >>

00:14:01*FreezerburnV quit (Quit: FreezerburnV)
00:16:55*gattuso joined #nimrod
00:17:15*gattuso left #nimrod ("Once you know what it is you want to be true, instinct is a very useful device for enabling you to know that it is")
00:17:41*askatasuna quit (Ping timeout: 260 seconds)
00:21:37*nhunzaker joined #nimrod
00:25:56*darkf joined #nimrod
00:28:53*flaviu quit (Ping timeout: 240 seconds)
00:35:08*nhunzaker quit (Read error: No route to host)
00:35:15*nhunzake` joined #nimrod
00:39:45*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:39:50*rpag quit (Ping timeout: 250 seconds)
00:45:50*dapz joined #nimrod
00:47:25*flaviu joined #nimrod
00:49:42*nhunzake` quit (Ping timeout: 255 seconds)
00:50:12*dapz quit (Ping timeout: 244 seconds)
00:50:17*FreezerburnV joined #nimrod
00:57:38*nhunzake` joined #nimrod
00:57:47*nhunzake` quit (Remote host closed the connection)
01:03:30*rpag joined #nimrod
01:09:33*quasinoxen quit (Read error: Connection reset by peer)
01:36:06*quasinoxen joined #nimrod
01:36:18*quasinoxen quit (Client Quit)
01:50:07*superfunc__ joined #nimrod
02:01:11*saml_ joined #nimrod
02:18:16*flaviu quit (Ping timeout: 255 seconds)
02:32:03*superfunc__ quit (Quit: Page closed)
02:38:41*quasinoxen joined #nimrod
02:56:58*Joe_knock quit (Quit: Leaving)
03:00:41*superfunc__ joined #nimrod
03:03:20*superfunc__ quit (Client Quit)
03:10:29*vezzy joined #nimrod
03:11:15*zahary quit (Read error: Connection reset by peer)
03:11:26*quasinoxen quit (Ping timeout: 272 seconds)
03:11:36*zahary joined #nimrod
03:17:59*askatasuna joined #nimrod
03:26:14*vezzy quit (Ping timeout: 250 seconds)
03:29:07*FreezerburnV quit (Quit: FreezerburnV)
03:29:27*quasinoxen joined #nimrod
03:31:54*saml_ quit (Quit: Leaving)
03:47:32*askatasuna quit (Ping timeout: 272 seconds)
04:06:14*kshlm joined #nimrod
04:13:28*ARCADIVS joined #nimrod
04:50:19*superfunc__ joined #nimrod
05:06:39VarriountGah. Anyone here hve experience programmatically interacting with the windows explorer shell?
05:23:24*kshlm quit (Quit: Konversation terminated!)
05:25:40*kshlm joined #nimrod
05:30:21*Demos quit (Read error: Connection reset by peer)
05:39:46*superfunc__ quit (Ping timeout: 246 seconds)
05:40:05*nande quit (Read error: Connection reset by peer)
05:42:41*bjz joined #nimrod
06:12:32*gokr_ joined #nimrod
06:13:42*gokr quit (Ping timeout: 246 seconds)
06:17:23fowlgokr1, you might be interested in import_repo https://gist.github.com/fowlmouth/8cc9ee26bcf509b5fea5
06:35:09*khmm joined #nimrod
06:38:15*khmm_ joined #nimrod
06:38:48*kshlm quit (Remote host closed the connection)
06:39:03*kshlm joined #nimrod
06:39:58*kshlm quit (Client Quit)
06:40:14*kshlm joined #nimrod
06:40:20*khmm quit (Remote host closed the connection)
06:42:15*gokr_ quit (Ping timeout: 258 seconds)
06:42:53*gokr_ joined #nimrod
06:43:14*kaushal_ joined #nimrod
06:43:15*kshlm quit (Remote host closed the connection)
06:58:31*kaushal_ is now known as kshlm
06:59:08*kshlm quit (Quit: Konversation terminated!)
06:59:28*kshlm joined #nimrod
07:04:47*khmm_ quit (Remote host closed the connection)
07:04:51*khmm joined #nimrod
07:40:11*Trustable joined #nimrod
08:40:57gokr1fowl: Slick
08:41:21gokr1I am playing with debugging.
08:42:06gokr1KDevelop debugs quite fine, but of course the data pane is.. screwed up :)
08:42:17gokr1gdb of course, same.
08:48:43gokr1The endb works, although I lack "list" (trivial to add) and ... of course, data exploring or eval (seems ... very limited :)) doesn't seem to be much implemented.
08:50:17gokr1So I was wondering... I guess improving endb (adding a "machine" interface to it so Aporia can talk to it more easily?) in various ways is the path for Aporia and any other IDE made for Nim specifically.
08:50:50gokr1Another thing that may be interesting is exploring the GDB pretty printers via Python.
08:51:39gokr1From what I can see - breakpoints and stepping, line tracking etc works quite well - both in endb and gdb.
08:52:01gokr1The thing making it really useful is exploring memory though.
08:54:47gokr1Ah, the doc for endb actually explains what the eval can do, ok.
09:49:04*ARCADIVS quit (Quit: ARCADIVS)
10:17:46*kshlm quit (Quit: Konversation terminated!)
10:20:59gokr1So "insane" idea: Whip up a Python pretty printer module for GDB - but let Python call a Nimrod library (trivial I presume) to do the actual pretty printing.
10:21:47gokr1I am slightly unsure of how that API works, but if we can get GDB to print things "pretty" then... it percolates to all the other IDEs using GDB.
10:22:08*kshlm joined #nimrod
10:27:41*kshlm quit (Quit: Konversation terminated!)
10:28:00*kshlm joined #nimrod
10:28:08*kshlm quit (Client Quit)
10:28:25*kshlm joined #nimrod
10:37:46*kshlm quit (Ping timeout: 255 seconds)
10:43:43*gokr joined #nimrod
10:46:21*gokr_ quit (Ping timeout: 246 seconds)
10:57:19*kshlm joined #nimrod
11:37:24*Jesin quit (*.net *.split)
11:37:25*wan quit (*.net *.split)
11:37:25*milosn_ quit (*.net *.split)
11:37:41*milosn joined #nimrod
11:37:53*Jesin joined #nimrod
11:37:53*wan joined #nimrod
11:39:17*hsuh quit (Remote host closed the connection)
11:42:50*gokr quit (Ping timeout: 250 seconds)
11:43:30*hsuh joined #nimrod
12:02:52*gokr joined #nimrod
12:05:37*FreezerburnV joined #nimrod
12:05:49*gokr quit (Read error: Connection reset by peer)
12:06:01*gokr joined #nimrod
12:16:39*gokr_ joined #nimrod
12:18:25*dom96_ joined #nimrod
12:18:59*gokr quit (Ping timeout: 245 seconds)
12:19:14dom96_Araq: This is why we need the module name in type mismatch errors.
12:19:32dom96_ajitsingh's problem is that he is importing sockets not the net module.
12:19:41dom96_So the Port type is wrong.
12:22:51*khmm quit (Remote host closed the connection)
12:28:58*darkf quit (Quit: Leaving)
12:44:32*FreezerburnV quit (Quit: FreezerburnV)
12:51:19gokr1Aha
12:52:14gokr1dom96_: If I want to hack together a "proof of concept" socket server, should I use the lib/httpserver.nim codebase - and typically be on bigbreak for that?
12:52:38dom96_you should use asynchttpserver
12:52:44gokr1Its not for serious use "yet", so its fine if its a bit unstable - just as long as it runs in some sense of the word :)
12:52:54gokr1Ok, in bigbreak?
12:52:56dom96_yes
12:53:08gokr1Cool. Lots of good stuff you have done btw.
12:53:43gokr1Curious - what debugger do you use ? I presume you use Aporia as editor.
12:54:00dom96_I just use echo.
12:54:30gokr1ok. I wrote a bit about debugging here ... earlier today. About perhaps looking at GDB pretty printers
12:54:52dom96_yeah, that would be nice. It would also be cool if we could integrate gdb with Aporia.
12:55:03gokr1I tried out GDB plain, ENDB, KDevelop and Veminer. All works basically fine.
12:55:46gokr1Nemiver I mean.
12:55:52gokr1Damn hard name to remember.
12:56:18gokr1You don't think its "better" to use ENDB with Aporia?
12:56:23gokr1Or at least simpler :)
12:56:45dom96_nemiver looks cool
12:56:47dom96_never heard of it
12:57:02dom96_AFAIK ENDB isn't maintained anymore.
12:57:04dom96_bbl
12:57:08*dom96_ left #nimrod (#nimrod)
13:01:55gokr1Araq: Are we dropping ENDB or?
13:02:07gokr1Just curious. It does work fine on devel at least.
13:03:06gokr1I would presume its much easier to smoothly integrate with say Idetools and Aporia etc - since we can make a simple protocol between them.
13:05:32gokr1Hehe, now I have four different Nimrods. 0.9.6 from zip, Nimrod.devel, Nimrod master, and Nimrod.bigbreak :)
13:08:29*askatasuna joined #nimrod
13:14:01*Demos joined #nimrod
13:14:21Demosdid I tell you guys about that XL2 language I found?
13:18:14gokr_yeah ;)
13:24:16gokr1Demos: You did the... VS plugin or?
13:24:58Demoswell yeah I did do the VS plugin, I have not had time to work on it now that school has started, but it does its job. I use it
13:25:13gokr1Does it also debug?
13:25:37gokr1Or is it mainly completion and syntax highlight, and jump to definition?
13:33:07gokr1Regarding GDB pretty printing I blabbered about, interesting article: http://yosoygames.com.ar/wp/2013/12/gdb-pretty-printers-for-ogre-simd-datatypes/
13:33:41Demosit does debug
13:34:15Demosalthough the way I start the debugger is with a batch script embedded in the project XML file (better than figuring out how MSproj XML files work)
13:34:16gokr1And is it the same problem there - I mean, breakpoints and stepping works fine - but variables look like crap? (of course) :)
13:34:20*untitaker quit (Ping timeout: 258 seconds)
13:34:59Demosyeah, I mean nim does try not to rename variables but it sometimes fails, I would love more compiler support for tooling but someone actually has to do that, and I dont think anyone has time at the moment
13:35:27Demosthe bigger problem is that the nim code tends to have more scopes than the C, which is annoying
13:35:28gokr1Yeah, there is something called GDB pretty printers that I think might be worth some dev time.
13:35:40Demoshmm, maybe
13:36:01DemosI could never get those to work with c++ containers, but maybe I just did not have the proper scripts installed
13:36:11gokr1Ah.
13:36:33DemosI was trying to get em to work on my school's multiuser linux system though
13:36:35Demosso who knows
13:36:53gokr1I wonder how IDEs talk to gdb, via some hysterically complicated protocol I presume?
13:39:30*untitaker joined #nimrod
13:42:58Demosyup
13:43:06Demosone of the motivations for LLDB
13:43:10gokr1Just looking at it :)
13:43:15gokr1But it... doesn't seem that bad.
13:43:25Demosand I have noticed most IDEs that use gdb do not work that well debugging wise
13:43:41gokr1I am a long spoiled Smalltalker.
13:43:57gokr1Where shit like this just works - and extremely well.
13:43:59Demosso there is some special interface that emacs uses, and I think using it means the IDE must be GPL
13:44:06Demosor somesuch bullshit
13:44:08gokr1Ah.
13:44:19gokr1But the mi2 seems to be a simple readable line by line protocol.
13:44:45Demosmaybe it is not so bad, but I just never had much luck with IDEs that are not VS
13:45:01gokr1Ab, but ok... the "variable" stuff seems complex.
13:46:05*khmm joined #nimrod
13:53:59*khmm quit (Ping timeout: 245 seconds)
13:58:12*khmm joined #nimrod
14:06:23*khmm quit (Ping timeout: 244 seconds)
14:09:41*Fran__ quit (Ping timeout: 260 seconds)
14:10:09*Fran__ joined #nimrod
14:10:17*prosper_ joined #nimrod
14:17:13*prosper_ quit (Ping timeout: 260 seconds)
14:22:51*prosper_ joined #nimrod
14:30:45*Demos quit (Read error: Connection reset by peer)
14:31:39*Demos joined #nimrod
14:36:37*superfunc__ joined #nimrod
14:37:22*johnsoft quit (Ping timeout: 245 seconds)
14:38:12*johnsoft joined #nimrod
14:45:33*superfunc__ quit (Quit: Page closed)
14:53:28*prosper_ quit (Read error: Connection reset by peer)
14:54:01*prosper_ joined #nimrod
15:00:01AraqDemos: I had some discussions with XL's inventor via email ;-)
15:00:46Demosoh! I noticed that it had a lot of similarities with nimrid, and it looked pretty cool
15:00:56Araqhis "only 8 different kind of nodes" is too weird though. makes AST transformations too complex
15:01:54Demoshm, it has real variadic generics :>
15:01:57Araqafaict his later language designs evolved into something very different
15:10:55Araqgokr1: well there is 1 bug in the codegen wrt ENDB and nobody uses it, so I'd like to abandon it
15:11:30gokr1Ok, got it. I did look at the mi2 interpreter thingy in GDB. Most stuff didn't look too hard - but the variables... phew.
15:11:48Araqthe variables are not hard either
15:12:04gokr1Oh :) I just fell asleep when I started reading about it.
15:12:19Araqbtw 'resXY' comes from the inlining of iterators
15:13:57gokr1Ah... ok. So that's why it couldn't be found by objdump etc?
15:14:15Araqquite likely
15:14:27Araqhowever, we can patch the codegen to make that mapping easier
15:14:37gokr1But anyway, KDevelop was quite nice.
15:15:04gokr1Found an article about pretty printers too, but it seems pretty... unstable for most IDEs.
15:15:33gokr1Here it was: http://yosoygames.com.ar/wp/2013/12/gdb-pretty-printers-for-ogre-simd-datatypes/
15:15:48Araqthe problem with ENDB is that the generated code is very different from the code that normally runs
15:16:11Araqwhich is awful for debugging anything that's not a simple bug in some logic
15:16:15gokr1So my idea there was to whip up a GDB pretty printer in Python, that actually calls a Nim lib to do the work. You think it would work?
15:16:40gokr1ok
15:17:37gokr1And oh, benchmarked that asynchhttpserver.nim in bigbreak using a trivial "ab" hammer. Wow! 20000 req/sec.
15:18:35Araqyeah and we haven't really optimized it yet
15:18:37gokr1So I was toying with whipping up a proof of concept for one of our components that is a socket server that does a bit of MySQL basically.
15:19:31gokr1I need to read a simple explanation of exactly how async/await works.
15:19:48gokr1And now I gotta run - later!
15:19:53AraqDemos: variable generics are unnecessary when you have macros and varargs[$]
15:20:03Araqgokr1: dom96 wrote an article about it
15:20:09Demoslink!
15:20:15gokr1Ah... yeah please.
15:20:17Demosoh wait never mind
15:20:32DemosI want a link on how to do variadic generics with macros and varargs
15:21:47gokr1:)
15:22:26gokr1So... you basically do "await x" as soon as you do anything IO related - and you tag the callback as {.async.}?
15:22:30gokr1Oh well, later
15:28:12*Fran__ is now known as Francisco
15:28:39*untitaker quit (Quit: ZNC - http://znc.in)
15:29:55*untitaker joined #nimrod
15:44:11Demoshow do you combine varargs and macros to get variadic generics, like how might I write something like c++'s tuple<a,Args...> template
15:45:37Demoswow 20000 reqs/sec and my node.js thing at work takes 800ms to handle one goddamn request
15:55:12wanI just tried the windows 0.9.6_x64 installer from the website. The installer says it's 0.9.5 and I got a lot of "Error: HTTP/1.1 404 Not Found" while installing with everything checked.
15:56:58*gokr joined #nimrod
15:58:10wanThe 404 is the docs.zip
15:58:26wan(I just hit retry a lot of times)
15:59:57*gokr_ quit (Ping timeout: 246 seconds)
16:02:42*dom96_ joined #nimrod
16:11:47Araqwan: ugh, thanks for reporting
16:19:45woodgiraffeCan someone provide me a SQL(ite) example?
16:20:53dom96_woodgiraffe: take a look at nimforum it uses sqlite
16:20:55Araqwan: however you dont need the docs
16:21:33woodgiraffedom96_: thanks
16:23:35*Matthias247 joined #nimrod
16:27:03AraqVarriount: go fix that 64bit installer!
16:31:29*johnsoft quit (Ping timeout: 265 seconds)
16:32:06*johnsoft joined #nimrod
16:35:05*Hodapp joined #nimrod
16:35:15Araqhi Hodapp welcome
16:35:18Hodapphiya
16:35:54Hodappis the official name Nimrod, or Nim? o_o
16:35:55*mko joined #nimrod
16:36:25Araq0.9.6 is still Nimrod, 0.10.0 is Nim
16:36:56Hodappahh, okay
16:38:24HodappLooking at possibly using this for some embedded code, where I am really not looking forward to having to write a bunch of repetitive code, but I am also not looking forward to somehow generating the code and interfacing it
16:50:56*captainhook joined #nimrod
16:51:12captainhookDoes anyone know how to convert an expr to a string inside a template?
16:52:52*dom96_ quit (Quit: Page closed)
16:53:06Araqcaptainhook: astToStr(x)
16:53:23captainhookThanks!
16:56:45*kemet joined #nimrod
16:57:44*gokr_ joined #nimrod
16:57:44*gokr quit (Read error: Connection reset by peer)
16:59:49*captainhook quit (Ping timeout: 246 seconds)
17:03:06*prosper_ quit (Read error: Connection reset by peer)
17:05:09wanAraq: yes, I know I don't need the docs, but I tested the installer with everything checked to see if it worked fine
17:08:20Araqwan: very well. but you should have done that 2 days ago :-/
17:12:06HodappI'm still getting a sense of everything in the language, but is there a practical way to turn off GC? I'm looking at using Nimrod for an application where I would really like for everything to be statically allocated.
17:12:57AraqHodapp: --gc:none is not that practical, but it's also not too bad
17:14:02Hodappalrighty
17:14:57*untitaker quit (Ping timeout: 259 seconds)
17:15:54Araqdepends on whether you think it's hard to avoid the stdlib
17:16:45*gokr_ quit (Remote host closed the connection)
17:16:47Araqpersonally I think it's much simpler to use Nim without the stdlib than to use C or Ada with their stdlibs
17:17:05*gokr_ joined #nimrod
17:17:21Hodappstdlib is pretty limited here as I'm targeting ARM Cortex M0
17:18:20*enquora joined #nimrod
17:23:40*Etheco joined #nimrod
17:24:05*untitaker joined #nimrod
17:26:57*heinrich5991 joined #nimrod
17:27:36*kemet quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
17:28:51Araqhi heinrich5991
17:29:06heinrich5991hi :)
17:31:15heinrich5991Araq: do I know you or have you just welcomed me?
17:31:48Araqjust welcomed you
17:40:08*kemet joined #nimrod
17:45:40*kemet quit (Remote host closed the connection)
17:47:51*Demos quit (Ping timeout: 265 seconds)
17:53:53superfuncWere a friendly bunch
17:57:14Ethecoso as someone who has never coded c++/java am i going to struggle ? xD
17:57:45*dapz joined #nimrod
18:02:05*prosper_ joined #nimrod
18:03:37*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:07:26VarriountEtheco: Nah.
18:07:44VarriountEtheco: What languages do you have experience with?
18:07:53VarriountAraq: What's wrong with the installer?
18:09:11*prosper_ quit (Ping timeout: 265 seconds)
18:10:34*dapz joined #nimrod
18:11:48*kshlm quit (Ping timeout: 244 seconds)
18:12:37EthecoVarriount, PHP is my main one, but i have dabbled with like Python/Ruby
18:14:35AraqVarriount: read the logs please
18:20:22VarriountEtheco: I've not heard very good things of PHP
18:20:58VarriountBut I think Nimrod does enough for you that the learning curve won't be too steep.
18:21:21EthecoIt does certainly look awesome, and love i can compile :)
18:21:31Ethecosuppose its a case of slowly going though each section
18:22:25VarriountEtheco: And remember, there's no shame in asking for help. Someone is usually on.
18:22:51VarriountIt helps if you live in the US or Europe - That's where most of the users here live.
18:23:01EthecoEurope here (UK)
18:23:37*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:24:23VarriountEtheco: Then you should be good. dom96 lives in the UK as well, though he doesn't have much time to spend (He's currently taking University classes)
18:24:52*prosper_ joined #nimrod
18:25:43VarriountAraq: Blame koch - it's the one that supplied the arguments for niminst.
18:26:40AraqVarriount: hrm
18:27:08Araqwell koch uses its own version number
18:27:16Araqso you have to ensure koch has version 0.9.6
18:27:24Araqwe can add a check
18:31:08*dapz joined #nimrod
18:33:46*dapz quit (Client Quit)
18:43:23*dapz joined #nimrod
18:47:52*dapz quit (Client Quit)
18:52:29NimBotAraq/Nimrod devel 95595d8 Araq [+0 ±1 -0]: updated readme.md
18:52:30*dapz joined #nimrod
18:53:41VarriountAraq: Why doesn't koch use the version number the nimrod compiler uses?
18:54:06AraqVarriount: 'cause I was lazy
18:54:17Varriount:P
18:54:24Araqusing system.NimVersion was easier than to read Nim's output
18:56:39VarriountAraq: Um, shouldn't that give the right version no.?
18:58:14Araqwell no. if you used 0.9.5 to compile koch
18:58:27Araqthen koch thinks everything is still stuck in 0.9.5
19:00:28VarriountAraq: Slight different topic, has string assignment been optimized so that memory is reused when the length of an old string variable is greater than the length of a new string variable?
19:00:40Araqnope
19:01:00Araqwanna implement it?
19:01:26VarriountI would *like* to implement it, but whether I *can* is another matter.
19:01:37VarriountAraq: How much time and/or skill would it take?
19:02:05Araqlooks like a ~5 line patch to ccgexprs.nim
19:03:26*prosper_ quit (Read error: Connection reset by peer)
19:03:26*prosper__ joined #nimrod
19:04:40*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:06:32*dapz joined #nimrod
19:08:54*dapz quit (Client Quit)
19:36:59*BlaXpirit joined #nimrod
19:37:57TrustableAraq: Does this work? The destination string can be also on the right side of the assignment.
19:38:53AraqTrustable: good point. we have some aliasing analysis machinery that can detect this though
19:39:34Trustablenice :)
19:40:13*flaviu joined #nimrod
19:40:56Trustablebtw, add() is really fast method to concatenate strings, good job
19:41:41Araqflaviu: can you also patch pegs then?
19:41:49Araqfor consistency
19:41:55flaviuAraq: Sure
19:42:02Araqty
19:45:24*flaviu quit (Read error: Connection reset by peer)
19:47:38*flaviu joined #nimrod
19:48:06NimBotAraq/Nimrod bigbreak 50d9db0 Billingsly Wetherfordshire [+0 ±1 -0]: fix issue #1581
19:48:06NimBotAraq/Nimrod bigbreak 8910908 Andreas Rumpf [+0 ±1 -0]: Merge pull request #1582 from fowlmouth/patch-1... 2 more lines
19:48:57NimBotAraq/Nimrod bigbreak aac8de6 Erik O'Leary [+1 ±5 -0]: Fixed FD_SET casing
19:48:57NimBotAraq/Nimrod bigbreak 09f177e Erik O'Leary [+0 ±1 -0]: patched fdset call in osproc
19:48:57NimBotAraq/Nimrod bigbreak 72476e1 Andreas Rumpf [+1 ±6 -0]: Merge pull request #1566 from onionhammer/bigbreak... 2 more lines
19:59:25Araqping Varriount
20:03:09woodgiraffeSomeone aware of a nimrod dbus lib/wrapper?
20:03:34Araqwoodgiraffe: asked babel/nimble ?
20:03:50VarriountAraq: Hm?
20:04:03Araqare you updating the installer or what?
20:04:11VarriountAraq: I'm in the middle of math class.
20:04:29Araqexcuses ... ;-)
20:04:31VarriountAraq: I ran the installer generator, but I haven't had a chance to verify it.
20:04:43Araqexcellent
20:04:51Araqmath is important, pay attention!
20:05:12woodgiraffeNever understood this subtraction thing, addition I was really good at tho
20:05:27VarriountAraq: It would help if my professor was more... effective.
20:05:54VarriountAs things currently stand, I'm likely going to be forced to drop the class by the end of the month.
20:09:13VarriountI can't help but feel that an 8 question exam is not an adequite measure of a student's progress.
20:09:28flaviuVarriount: Depends on the subject
20:09:29VarriountEspecially when partial credit is not given for wrong answers.
20:09:43flaviuOk, that's ridiculous
20:18:40*dapz joined #nimrod
20:23:08VarriountAraq: What needs to be fixed regarding the documentation for the 64 bit installer?
20:23:40AraqVarriount: nothing as long as koch gets the right version number, I think
20:24:48VarriountAraq: Ok, the installer I just built seems to work.
20:26:33VarriountAraq: Do you think that string assignment optimization could be applied to other types?
20:26:48*johnsoft quit (Ping timeout: 272 seconds)
20:26:56VarriountOr is it already applied to other types?
20:27:44*johnsoft joined #nimrod
20:28:41Araqonly seqs come to mind
20:28:51Araqbut they generally are used differently
20:29:05Araqso it's not important to optimize seq assignment, I think
20:29:19Araqbtw your optimization is only an optimization in some cases
20:30:03fowlAraq, is a string really just seq[char]
20:31:05Araqfowl: no. string has a hidden \0 for O(1) conversion to cstring
20:31:52fowlAraq, in system.nim i see it casted to PGenericSeq, they are the same under the hood then?
20:33:41VarriountAraq: I found a flaw in the installer code. If a user hits 'cancel' while downloading a component, they get an error box with the abort/ignore/retry selection.
20:34:23VarriountAraq: What should happen when I use hits cancel while downloading a component? Should the entire installer quit, or should downloading the component be cancelled?
20:34:25Araqfowl: well they both start with the GenericSeq
20:35:07AraqVarriount: download be cancelled
20:35:19AraqVarriount: but I think it's a minor issue
20:37:54*prosper__ quit (Remote host closed the connection)
20:40:25fowlTrustable, i made you a collaborator on nimrod-sfml so you can commit
20:40:58TrustableI see, thx
20:52:02Trustablefowl: Merge https://github.com/fowlmouth/nimrod-sfml/pull/1 ?
20:54:28fowlah neat. i didnt expect the context settings to fix that
20:54:31fowlTrustable, sure
21:01:08VarriountAraq: https://drive.google.com/file/d/0B077nrrf63xtUk15MTIyNmQ1MkE/view?usp=sharing
21:02:35NimBotAraq/Nimrod devel b0d9dc4 Varriount [+0 ±1 -0]: Update nsis.tmpl... 2 more lines
21:03:37VarriountBe back later.
21:05:07*Jesin quit (Quit: Leaving)
21:07:08*Jesin joined #nimrod
21:07:44*Francisco quit (Ping timeout: 245 seconds)
21:09:49Araqwan: please test the installer again
21:11:49flaviuAraq: ok, done. https://github.com/flaviut/Nimrod/commit/a78efe48f2d9ba003b7cafe232f6588a5305ac90
21:12:02*Jesin quit (Quit: Leaving)
21:12:44flaviufwi, you can use rebase to make all github -> local merges fast-forward merges.
21:16:28*nande joined #nimrod
21:21:54fowlnice
21:22:06fowlflaviu, how did you convince araq that nil is better than ""
21:22:40flaviuI dunno. I just asked him one day if I should close it, but he said he'll eventually merge it.
21:22:45*Fr4n joined #nimrod
21:24:17*Jesin joined #nimrod
21:28:49*askatasuna quit (Ping timeout: 260 seconds)
21:32:40TrustableDoes anyone know how to install one of the following libraries under Linux Mint? I have tried the Software Manager already. Libraries: SDL_Mixer, Ogg, PortAudio, sndfile
21:40:54TrustableProblem solved by replacing libogg.so with libogg.so.0
21:46:31gokr1One thing I read that I wonder about - the fact that var parameters are not "distinguished" at the call site. I mean, the arguments look the same. Isn't that a bit of a trap?
21:49:26gokr1And... are people actively using var params in Nim? I always felt they .. are ok in C, but... well, Smalltalk don't even have them ;)
21:51:33flaviuYep, but keep in mind, what is a object anyway?
21:52:07gokr1Hum?
21:53:02flaviuObjects in java, c# are just pointers. Their value isn't sacred at all. They aren't C++ "const" (I think, not to familar with c++)
21:53:05*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:54:38gokr1I am not sure I ... follow. I wouldn't express myself using those words. Objects aren't pointers. They are *referred* to with pointers, yes. "Their value", which value do you mean? The pointer?
21:54:56flaviuNo, the thing being pointed to.
21:55:10flaviueg, where `a` is a param, I can do a.b = 123
21:55:15gokr1Sure.
21:55:44gokr1You are modifying the object, but not the pointer.
21:56:32flaviuOk, what if the object is just a wrapper around another object, such that a.b is another object? a.b = new Foo()
21:56:53gokr1I always felt that "var params" ... I mean, it gives you the ability to modify a variable in the calling scope. Its a tricky thing.
21:57:19flaviuI don't agree or disagree with you. I'm just saying that it is a false distinction. The only difference is your mental metaphor.
21:58:19gokr1Well, perhaps its the Smalltalker in me. All variables are refs in Smalltalk. Every value is an object.
21:58:37gokr1But those two things are quite distinct. Variables have scope. Objects live on the heap.
21:58:48NimBotAraq/Nimrod bigbreak 6043194 Simon Krauter [+0 ±1 -0]: Fixed missing color definion in docs CSS
21:58:48NimBotAraq/Nimrod bigbreak 849484f Simon Krauter [+0 ±1 -0]: Do not allow self import
21:58:48NimBotAraq/Nimrod bigbreak 27585ee Simon Krauter [+0 ±1 -0]: Compare fileIndexes instead of file names
21:58:48NimBotAraq/Nimrod bigbreak 8b70e2c Simon Krauter [+1 ±0 -0]: Added test case
21:58:48NimBot28 more commits.
21:59:03fowlgokr1, i miss var/out types in ruby
21:59:11gokr1Hehe
21:59:15fowlsometimes its useful to replace a value with a new object
21:59:41gokr1Personally I always feels it messes up the boundaries.
22:00:10gokr1And especially when its not apparent at the call site... which is why I am bringing it up.
22:00:22fowlyou usually find a use for it in imperative code
22:00:31Araqbut flaviu's point is valid
22:00:33gokr1I can imagine debugging sessions going... "Why the hell is X 10 now of a sudden?"
22:00:56gokr1And then ... oh, because that proc I called actually has a var param, not a normal param.
22:01:26Araqwhen you have f(a, b) in smalltalk (can't remember its syntax) everything reachable from a and b could be modified
22:01:35fowlgokr1, that probably comes up in c++ forums, there are newbs everywhere
22:01:42gokr1Sure, but not a or b.
22:02:07gokr1The problem here is that I need to look at the definition of a proc - to be aware that its a var param.
22:02:34fowlyou also get an error if you try to pass in a constant value
22:03:16flaviuyes, using let by default helps in that regard
22:03:22Araqso that's the reason? the advantage is that you can't have swap(a,b) in Smalltalk?
22:03:26gokr1Araq: As I said, sure, you can modify anything you can reach. But you can't modify the "a" variable in the calling scope.
22:03:48Araqand when I write that as 'a <-> b' it's fine?
22:03:50gokr1Araq: Come again?
22:03:53Araqmakes no sense
22:04:32gokr1I lost you somewhere.
22:04:57Araqwell your argument makes little sense
22:05:21gokr1We are talking about two different things now. First how it works in Smalltalk, which is actually of little interest.
22:05:45gokr1Secondly, the fact that it might be a problem that you can't see at the call site - that the called proc can modify the variable.
22:06:02gokr1In C you see it. Because you need to type &a or whatever.
22:06:16Araqno, that's wrong
22:06:25Araq#define swap(a,b) ....
22:06:30fowl"var" is not in c, its in c++ as ref(&)
22:07:12Araqthe point is: the argument is not valid for any widely used imperative language
22:07:15gokr1What I meant is that in C - the called function can modify the pointer itself iff I send in the address of it.
22:07:17fowlc++ lets you store a reference too.. its weird
22:08:09Araqthe argument totally arbitrary; foo(a, b) could also delete files on your harddisk
22:08:22Araq*is totally
22:08:54gokr1Well, I can understand the philosophical point of view, sure.
22:09:11gokr1I just read this critique of Nimrod and this was one thing brought up.
22:09:13Araqbut hey, let's see how you like 'add(var x, b)' everywhere
22:09:39Araqoh but that's special I guess... because everybody knows about 'add'
22:09:52gokr1Thing is, in Smalltalk we don't have this at all. So I am not quite sure how much this is used in Nim code?
22:10:10Araqso smalltalk has no 'add/append'?
22:10:21gokr1Of course we have, but we don't have "var params"
22:10:33gokr1A called method can not modify a variable in the calling scope.
22:10:43fowlgokr1, its used for things like SDL_PollEvent(event:var TEvent): bool
22:10:48gokr1A variable being "the pointer itself".
22:11:08gokr1Right, I can understand it pops up all over C wrappers.
22:11:14gokr1Since C uses this style a lot.
22:11:26Araqcome on now, in Nim terms everything in smalltalk is 'ref T'
22:11:44gokr1All variables, yes.
22:12:20gokr1Except for SmallInteger. They are encoded in the pointer itself.
22:12:55Araqso if you do: var x: Foo; x.add(b) that is no issue at all if 'x' is 'ref T' but if it's a problem if it's a T and 'add' takes a 'var' ?
22:12:55flaviuAre custom compiler passes possible?
22:12:58gokr1So a variable in Smalltalk (32 bit) is a 31 bit pointer. The last bit is a "tag" that shows if its a SmallInteger or if its a pointer to an Object.
22:13:53*gokr1 trying to parse what you said...
22:14:51Araqflaviu: not really.
22:15:00gokr1Right... so... yes, I understand... the thing is - since Nim has T and not just "ref T" - the var params suddenly become quote often occurring - right?
22:15:06gokr1quite.
22:15:20flaviugokr1: Yes
22:15:40gokr1Ok, that explains why they would be used much more often in Nim.
22:15:41*Matthias247 quit (Read error: Connection reset by peer)
22:17:12Araqfrankly, all these arguments are arguments against plain function calls. cause they can "hide" arbitrary things from you.
22:17:26gokr1Nono.
22:17:28flaviuYou don't often need to put stuff on heap, the stack works just as well in most cases
22:17:45gokr1Yes, I understand. Its just me not very used to it.
22:18:22gokr1Ok, so I do understand that they are much more used when you use objects on the stack. And yes, it would probably look messy. Fine.
22:18:42flaviuI wonder how much less GC pressure this causes, vs Java, where there is no stack allocation
22:18:51*dapz joined #nimrod
22:18:58gokr1Probably a big difference, and same goes for Smalltalk of course - even more so.
22:19:05gokr1Since everything is an object in Smalltalk.
22:19:55*dapz quit (Client Quit)
22:20:05gokr1Btw, Smalltalkers (very seldomly, but it happens) use "closures" when the need arises.
22:21:53gokr1Like say, making a call and getting 3 things back. Either return an object with those 3 things, or say an array or whatever. Just like in Nim. But when Nim would use var params - a Smalltalker would probably use a closure argument.
22:22:22gokr1So you "turn it around" - with a callback so to speak.
22:23:38Araqhow do you 'swap' with a callback?
22:23:59flaviuswap seems very nearly useless
22:24:14Araqswap is an essential builtin
22:24:22gokr1essential?
22:24:27Araqyes.
22:24:40flaviuno chance. It's barely used
22:25:00Araqthat doesn't mean it's not essential.
22:25:16Araqessential doesn't mean "frequently used"
22:25:16*BlaXpirit quit (Quit: Quit Konversation)
22:25:43gokr1Well, do you mean make sure a points to whatever b points to, and vice versa? You don't mean become?
22:26:11AraqI mean 'swap' as in 'sort' requires it
22:26:22flaviuAraq: Sort is implemented once.
22:26:37gokr1If you mean the former - which I very seldomly have done - I would just do assignments and use a temporary.
22:26:38flaviulet tmp = a; a = b; b=a
22:26:44gokr1Exactly.
22:26:55Araqthat's not the same at all.
22:27:04flaviuerr, let tmp = a; a = b; b=tmp
22:27:11Araqthat makes 3 copies you need to optimize away
22:27:19Araq'swap' doesn't copy
22:27:28flaviuAraq: Who cares? The optimizer will deal with it.
22:27:34Araqit's an essential builtin, much like assignment
22:28:27gokr1So no, this is not something Smalltalk has I think - for regular variables I mean.
22:28:32Araqflaviu: no, it often doesn't. hence C++ gained move semantics.
22:28:38gokr1But Smalltalk does have the become operation.
22:28:58gokr1http://gbracha.blogspot.se/2009/07/miracle-of-become.html
22:29:16gokr1The become: operation is essential in a live Smalltalk.
22:29:21gokr1But that's another thing.
22:31:12*dapz joined #nimrod
22:31:16gokr1Araq: But it has been discussed adding atomic swap: http://forum.world.st/How-about-atomic-value-swap-bytecode-td2991831.html
22:31:40gokr1So does Nim have become: then? ;)
22:32:20*Araq sighs
22:32:31gokr1( do note the smiley)
22:32:47Araqso lets assume Nim has no evil 'var'
22:32:58*dapz quit (Client Quit)
22:33:09flaviuAraq: See Java
22:33:12Araqthen we can still do the same evil things with macros:
22:33:31Araqtemplate swap(a, b)= let tmp = a; a = b; b = a
22:33:50gokr1For the casual reader: I did more or less say I understand the need for var in Nim, and that it will probably look messy at call sites - since its indeed used more in Nim.
22:34:04gokr1So I am not arguing anymore there.
22:34:16gokr1I am just arguing in my spare time ;)
22:34:20Araqswap(x, y) # argh 'x' changes its value
22:34:46Araqsee? nothing gained
22:35:03gokr1Hehe, macros are a bit like... Godwin's law.
22:35:05Araqbtw C has the same feature with #define
22:36:11gokr1(again, I am all with you Araq) What I mean is that discussing language mechanisms - and then saying "Yeah, but hey, with macros I can do it anyway...". Its kinda cheating :)
22:37:10gokr1I need to get to bed.
22:38:33Araqsorry, but it's really tiresome. The reality is that Nim now even prevents deadlocks at compile-time and you cannot reason about Python code at all. and yet people fear Nim and love Python for its "readability".
22:38:54gokr1What is tiresome?
22:39:43gokr1You mean that ... its tiresome that people don't appreciate/discover Nim more?
22:39:48*dapz joined #nimrod
22:40:02gokr1That I can sympathize with - Nim is a gem and ... very unknown.
22:40:12gokr1But... I think it will change.
22:40:25gokr1Also, you got 66 people in this channel.
22:40:38flaviuPerhaps all these irc arguments could be published
22:40:40gokr1Its not shabby.
22:41:48gokr1The above discussion on var arguments - was interesting to me at least. I learned that, yes, since Nim has stack objects the var params are very much used. And yes, having it visible on call sites would probably make it look silly. So I learned that.
22:42:08*dapz quit (Client Quit)
22:42:10Araqno, it's tiresome that I keep hearing the same totally wrong arguments
22:42:14Araq;-)
22:42:22gokr1Oh, sorry for that.
22:42:40gokr1But you know, I am from a different world. Smalltalk is very different.
22:42:50Araqdon't take it personal
22:42:59gokr1I mean, hell, we have 5 keywords in our grammer.
22:43:01gokr1grammar.
22:43:11gokr1And none of them is "if".
22:43:42gokr1But you need to understand that "wrong argument" - depends on context.
22:44:17Araqwell no, the context is most of the time "in C ..."
22:44:19gokr1I may be wrong in Nim, but I may be quite right in Smalltalk. I have programmed professionally in Smalltalk since 1994, so I do know it.
22:44:56gokr1Oh, well, I did that because the person I read this from did that connection.
22:45:15Araqok, let me give you another example
22:45:46Araq"Golang has no generics but C lacks them too so it's a non-issue for systems programming"
22:46:20gokr1Hehe, yeah...
22:46:37Araqthis argument completely ignores that fact that C has a preprocessor and so has a (very shitty) way to do generic programming
22:47:22flaviuSomeone asked that?
22:47:22*Jessin joined #nimrod
22:47:25*Jesin quit (Quit: Leaving)
22:47:25gokr1first of all - these arguments that go "lang X has Y but lang Z doesn't so..." - they don't work. Because mechanisms interfere with each other.
22:47:29gokr1Its the same thing with say multiple inheritance. C++ guys can't imagine a world without it. Smalltalkers go "huh?".
22:47:44Araqwhereas Go has none at all.
22:47:51*q66[lap]_ joined #nimrod
22:47:53gokr1And that's because the rest of the language is so different - so it makes a different context.
22:48:14*q66[lap]_ quit (Changing host)
22:48:14*q66[lap]_ joined #nimrod
22:48:39Araqflaviu: it's a common line of reasoning on reddit ...
22:48:40*enquora quit (Quit: enquora)
22:48:42gokr1Btw, let me find that... critique I read - because I would like you to perhaps respond to another thing in it...
22:48:42flaviugokr1: Sorry, I don't see how lack of generics in Go can be seen as anything but a problem
22:48:48superfunc_Almost all C++ shops I've seen basically forbid MI
22:48:59gokr1flaviu: What did I say?
22:49:34superfunc_flaviu: Go thinks they are novel by polishing all the great language ideas from the 70s
22:49:42flaviuSorry if I took the point of the context statement incorrectly
22:49:46superfunc_and ignoring all language design research after that
22:49:54gokr1In my humble opinion - statically typed languages do need some kind of generics.
22:50:39superfunc_I do too. I don't like the notion that they are just useful for making containers, so only the stdlib implementors need them
22:50:54superfunc_I've seen that argument from a friend who does Go before
22:51:02*q66[lap] quit (Ping timeout: 250 seconds)
22:51:04gokr1flaviu: Yes, I meant simply that its hard to compare languages "by piece" since the context makes one piece useless in one language, and essential in another.
22:51:51*q66[lap]_ is now known as q66[lap]
22:52:14gokr1Araq: https://www.daniweb.com/software-development/legacy-languages/threads/448047/has-anybody-used-nimrod
22:52:27gokr1Check what "bguild" writes there.
22:53:08gokr1Perhaps... we should make a page describing these criticisms and what the Nim response is?
22:53:45gokr1Araq: The thing I was mostly interested in is what he writes about lack of multiple inheritance.
22:53:54flaviugokr1: I was considering making a wiki page, but the hardest part is naming it.
22:53:57flaviuThanks!
22:53:59superfunc_typeclasses solve the need for MI
22:54:24gokr1superfunc_: Oh yes yes yes. :)
22:54:32flaviusuperfunc_: I would've liked mixins some times.
22:54:35gokr1Thanks for reminding me, shit, I had almost forgot about them.
22:55:04superfunc_Like, how about we do this ish without an extra layer of indirection to jump through haha
22:55:17*Trustable quit (Quit: Leaving)
22:55:35superfunc_that's one thing about the "OOP" approach that bothered me
22:55:51Araq"I don't see what all the dangerous trickery of when is trying to accomplish that couldn't be managed more safely with a simple if."
22:56:30Araqwell but the point of 'when' is obvious
22:58:01gokr1Hehe, well, several things he writes are a bit off, but I guess he is not alone. So in order to build a good coherent argument for the design decisions - I think a "criticisms" page would be nice,.
22:58:12Araqif programmers were mathematicians they would tell Euler to stop using power series because they "can be dangerous"
22:59:13Triplefox'Programming' Considered Harmful
23:00:45Hodappsuperfunc_: The sooner the world realizes that OOP just needs to be shuffled off into the land of paradigms that only really work in certain niches and are unnecessary and even harmful in others, the better.
23:01:07Araqand Uncle Bob would explain people how to guess the numerical answers and then test if the answer is close enough.
23:01:21*Hodapp . o O ( test-driven mathematics? )
23:01:36flaviuBashing other things isn't productive
23:02:20Triplefoxsounds like what i learned when elementary school gave me word problems that were best solved algebraically without giving me algebraic tools, and then acted surprised when my method to answer each one was "guess and check"
23:03:29*willwillson joined #nimrod
23:04:31gokr1Would Nim perhaps be able to adopt the embedding thing from Go?
23:05:06Araqgokr1: yeah, it's worth stealing
23:05:42Triplefoxi guess one starting point for a Nim criticism page is laying out in which ways it wants to be criticized; that's the part where the language is opinionated
23:06:50gokr1Araq: Great to hear! Because that part is actually nice - and it was the idea (of how parts of a cell can expose themselves on the outside of the cell) that erroneously led to the concept of Traits.
23:07:58gokr1I have for a long time longed for more exploration of composition. So that little part I would say Go got right ;)
23:10:14*dapz joined #nimrod
23:11:22*dapz quit (Client Quit)
23:11:23flaviugokr1: https://github.com/Araq/Nimrod/wiki/Common-Criticisms#callsite-annotations-on-var-parameters-would-decrease-mistakes
23:11:41gokr1Cool
23:11:59flaviumind reading over it and criticizing?
23:12:06Hodappinclude the standard "blah blah what is this language I've never heard of it I can't find anyone who knows how to code this"
23:12:27Araqflaviu: you need to elaborate
23:12:28gokr1Btw, back in 2009 I asked for more focus on composition on squeak-dev and Andreas Raab (RIP) responded and explained how Traits came to be: http://marc.info/?l=squeak-dev&m=126031733922434&w=2
23:13:05*dapz joined #nimrod
23:13:59gokr1flaviu: Fairly good, but a bit more words perhaps. I can ... see if I can add some.
23:14:05Araqgokr1: btw it's this very idea of modelling things after biological systems that I find totally unconvincing.
23:14:22flaviugokr1: Reload first, I made changes
23:14:24Araqbiological systems are incredibly hard to understand!
23:14:28gokr1Well, its an analogy.
23:14:52Araqyou *do not* want your programs to be like biological systems.
23:15:32Araqand how exactly are these "extensible" anyway?
23:15:36gokr1And oh, I made an mp3 interview over Skype with Dan Ingalls (the main Smalltalk man) a few years back an asked about if biological cells etc indeed *was* an inspiration back in 1970-80 when they created Smalltalk - and he said, that no, not for him at least.
23:16:09*Etheco quit (Quit: Leaving)
23:16:32gokr1I do know that some ideas were around objects with parts much more loosely connected.
23:17:06gokr1IIRC someone described the idea of parts communicating indirectly over a tuple space or similar - instead of via explicit calls.
23:18:10AraqIt's a very bad analogy.
23:18:20gokr1Alan Kay discovered Simula and wrote out the source code on paper and put it all over the floor. It was partly in Norwegian so they had some trouble understanding it. :)
23:19:13gokr1But basically Alan Kay was researching in UIs - and that is why he picked up the objects from Simula and "ran with it" in Smalltalk. Since UIs are event driven - not just a recipe from start to stop.
23:20:19gokr1I can recommend the Hopl paper on Smalltalk, even if you think OO sucks its a great piece of computing history.
23:20:28*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:21:05gokr1Since it interleaves with the whole Xerox PARC / UI / Apple /Jobs story.
23:23:29*quasinoxen quit (Remote host closed the connection)
23:25:54Hodappgokr1: OO as defined in Smalltalk and as taught today are very different notions though.
23:26:15gokr1flaviu: "a compile-time". Sorry, brain stopped. Its good, but it feels like it may need some more explanation to fit the title. Like, what mistake? The thing that people like me get icky about is not modifying the object itself - but modifying the reference to point at some other guy.
23:26:24gokr1Hodapp: true
23:26:42gokr1aaah, bed calling.
23:26:45gokr1gnite
23:26:50Araqgokr1: yes "people like you", but you're in the minority
23:27:03Araqmost simply complain that it can modified
23:27:07Araq*can be
23:27:11Araqgood night
23:27:12gokr1Mmmmm, am I? In this respect I am not so sure.
23:28:15gokr1Do you know why? Because Java doesn't support it either. And I don't consider the Java crowd a minority, unfortunately :)
23:29:21Araqthe Java crowd has no idea and doesn't count
23:29:27gokr1Ha!
23:29:35gokr1I gotcha and you know it ;)
23:30:16gokr1gnite
23:30:42Varriountgokr1: The longer a macro gets, the more likely it is that it will be compared to hitler?
23:31:37Araqthe normal Java developer does not even know other languages are "portable" too...
23:33:09gokr1Varriount: That one works too ;). I mainly meant that when all other arguments run out... you can always pull out a macro!
23:33:12*darkf joined #nimrod
23:40:20*fghj joined #nimrod
23:40:32fghjhello
23:40:43Araqhi fghj welcome
23:41:25fghjthanks, got a question for you. Is "import strutils as su" still valid in 0.9.6?
23:41:45Araqshould work, yes
23:42:06fghjIn 0.9.5 it works for me, but in 0.9.6 (compiled today) it gives me a "Error: A module cannot import itself"
23:42:41Araqis your module also named 'su'?
23:43:04fghjthe file is named test.nim
23:43:41Araqugh, that's a serious regression
23:43:47AraqI can reproduce
23:44:13fghjDo you want me to put in an issue in github about it?
23:45:01*dapz joined #nimrod
23:46:23Araqyeah
23:46:48fghjok, will do. Thanks!
23:46:48Araqdo you use 'devel' or the official release?
23:46:53*dapz quit (Client Quit)
23:47:24fghjoh, I pulled the 'devel' branch
23:48:51flaviuAraq: Now that it's been a while, is there any chance I can convince you to add `box()`?
23:49:02Araqwell let me push the fix, fghj
23:52:00Araqflaviu: what's the use case?
23:52:07flaviubox Foo(asf)
23:52:22flaviuYou said you didn't want to repurpose `new` for that purpose
23:53:07fowldoesnt new already work that way
23:53:20flaviuIt has the advantage of not having to use the IMO ugly syntax (ref T)(asf) that you mentioned
23:53:38flaviufowl: Not really. (let foo: ref T; new(foo))
23:54:26fowlah i was thinking of new(typedesc)
23:55:20NimBotAraq/Nimrod devel fa77547 Araq [+0 ±2 -0]: fixes 'import x as y' regression
23:55:20NimBotAraq/Nimrod devel 0f26040 Araq [+0 ±1 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
23:55:28*dapz joined #nimrod
23:55:59Araqfghj: that should fix it
23:57:21fghjI'll test it out, thanks for the quick fix! BTW, I had put in issue #1584
23:57:44*dapz quit (Client Quit)
23:58:29Araqflaviu: that's not a use case, but whatever. How would you implement it?