<< 18-02-2014 >>

00:00:11*Kooda quit (Ping timeout: 245 seconds)
00:00:18filwiti've been meaning to work on compiler stuff more, but i'm also pretty dedicated to my own nimrod project ATM
00:00:39NimBotAraq/Nimrod devel 9502f38 Micky Latowicki [+0 ±1 -0]: dynlib: optionally pass RTLD_GLOBAL to dlopen
00:00:39NimBotAraq/Nimrod devel 067927f Andreas Rumpf [+0 ±1 -0]: Merge pull request #897 from micklat/devel... 2 more lines
00:01:09filwiti read the last couple days of logs, and looks like skyfex jumped right into fixing issues. that's awesome. someone needs to buy him a beer ;-)
00:01:19Araqindeed
00:01:52Araqhe came here and praised our code base
00:02:08Araqthat was enough to know he's up for the task :P
00:02:16filwitlol
00:03:25vbtthaha
00:04:53filwitit seems that Dr Dobbs article has brought a few more folks to the forums as well
00:05:55vbtti hope so
00:06:31vbttyou could createa google form survey and ask newcomers to fill it out if they want.
00:07:11filwitanyways, I'm glad you didn't decide to throw away the new VM either. I want to get really familiar with it to the point I can eventually use it directly inside my editor.
00:07:38vbttfor what?
00:08:05filwitscripting without compiling
00:08:09filwitbasically
00:08:34filwitbut that's a bit down the road from where i'm at
00:11:17vbttok
00:11:50*Matthias247 quit (Quit: Matthias247)
00:15:22*FireFly joined #nimrod
00:15:32VarriountHi FireFly
00:15:38FireFlyHeya
00:16:20vbtthi FireFly welcome
00:16:29dom96hello FireFly :)
00:17:37NimBotAraq/Nimrod devel 5f839ef Dominik Picheta [+0 ±2 -0]: Modified website news titles and made ticker titles consistent.
00:17:37NimBotAraq/Nimrod devel 8fbc06d Dominik Picheta [+0 ±2 -0]: Improved community page and fixed ticker links.
00:17:37NimBotAraq/Nimrod devel 4e853c2 Dominik Picheta [+0 ±1 -0]: Fix line-height for h1 in website.
00:17:37NimBotAraq/Nimrod devel 0c0551d Dominik Picheta [+0 ±1 -0]: Added google analytics to website.
00:17:37NimBot1 more commits.
00:19:04filwithey, Google Analytics. Cool. :)
00:19:45AraqI can soon pay my bills by having some advertisement on the site
00:19:56filwitlol
00:20:13vbttdom96: I see you capitalized the ticker text but only the first word is capitalized on the site tickers.
00:20:54vbttalso, long news titles wrap and don't look great.
00:21:04vbttanyway, minor issues.
00:21:45dom96Well, actually you capitalized it in your commit :P
00:21:51dom96But yeah, i'll change it
00:22:02vbttyeah and then i fixed it.
00:22:32dom96not in news.txt
00:22:58vbttright, news.txt has capitalized titles.
00:23:16vbttoh hmm
00:23:20dom96It doesn't.
00:23:21vbttactually you're right.
00:23:27vbttnevermind.
00:24:15vbttnot sure why i didn't fix that.
00:24:22vbttanyway, g2g. thanks for fixing.
00:24:34*vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
00:26:02NimBotAraq/Nimrod devel 5c1ac1b Dominik Picheta [+0 ±1 -0]: Make ticker title consistent.
00:26:16filwitis there any way to do this: for var child in something.children: procWhichTakesAVar(child)
00:26:29filwitwith a custom iterator maybe?
00:26:32Araqmitems
00:26:40AraqI have a deaj-vu
00:26:42filwityeah that doesn't exist anymore i don't think
00:26:45Araq*deja-vu
00:26:48filwitno, i remember
00:26:49*oxful_ joined #nimrod
00:26:53Araqso add it
00:27:06Araqbut this bloat of system.nim has to stop
00:27:31filwitwell, let me change my question: how to return a var type from an iterator?
00:27:52filwiti mean.. i can just 'var c = child' inside the loop...
00:29:23filwiti don't know why i even ask these things. it works that way, i guess I'm just expecting it to one-day break due to stricter 'const ref' rules or something
00:29:43*oxful quit (Ping timeout: 260 seconds)
00:30:44dom96You're not changing the value inside the collection you are iterating over though if you do that.
00:30:52dom96You will just chance 'c'
00:30:55dom96*change
00:31:14filwitc is a copy of child?
00:31:31filwiti though c would just be a reference to child through an un-const reference
00:32:12EXetoCaka mutable, but it depends on whether or not it's a value type
00:32:28filwitit's a PNimrodNode
00:36:14*brson quit (Ping timeout: 264 seconds)
00:36:35EXetoCwell there you have it
00:36:39EXetoCreturn 'var' is possible
00:36:47Araqno
00:36:57Araqit doesn't work that way
00:37:24EXetoCwell, it's limited
00:37:31Araqfilwit: PNimrodNode is a 'ref' when you yield it, you can modify the node but not the pointer itself
00:37:52Araqbut usually that's what one wants
00:38:10Araqgood night
00:38:23filwitokay, bye
00:41:01filwitso: https://gist.github.com/PhilipWitte/9062277
00:41:27filwiti don't need 'var PNimrodNode' in hasPragma cause PNimrodNode is a ref?
00:42:35filwiti guess that makes sense since i'm not modifying the reference of 'this' itself, just adding to it's parts. I was just expecting all modifications to be errors and thought this only worked cause it was a compile-time proc or something.
00:42:37EXetoCright
00:42:48filwitokay
00:47:49NimBotAraq/Nimrod devel 8023128 Zahary Karadjov [+0 ±3 -0]: fix #204;
00:47:49NimBotAraq/Nimrod devel c4f0466 Zahary Karadjov [+0 ±2 -0]: fix tbindtypedesc and tactiontable2
00:47:49NimBotAraq/Nimrod devel 9dcbe49 Zahary Karadjov [+3 ±7 -3]: fix some trivial errors in the test suite and some more regressions caused by tyTypeDesc[tyNone]
00:47:49NimBotAraq/Nimrod devel 1a2c847 Zahary Karadjov [+1 ±10 -0]: Merge branch 'devel' of gh:/Araq/Nimrod into devel
00:54:53EXetoCim in ur devel, merging into ur devel
01:00:15*zahary1 quit (Quit: Leaving.)
01:00:30filwitany way to get the module name of a specific expr passed to a macro?
01:02:06*carum joined #nimrod
01:07:11filwitguess i can extract it from macros.lineinfo
01:16:36renesachttps://gist.github.com/ReneSac/d14e00e60dfe052ebd10 <-- why this error happens?
01:16:46renesacand what I can do to avoid it while using a template?
01:17:54filwitmaybe cause the template doesn't specify a return type?
01:18:22renesacit gives the same error if I specify ":expr"
01:18:37renesacoh, no it doesn't
01:18:42renesacstrange
01:19:37renesacvery strange
01:20:16renesacIf I use if instead of when in the example above, the compiler exits with a "SIGFPE: Arithmetic error."
01:20:21EXetoCit works pretty much like it does for procs
01:20:54renesacbut if I use when instead of if in my code, with the rest of the template exactly the same, the compiler exits with SIGSEGV: Illegal storage access. (Attempt to read from nil?)
01:21:22renesacand if I use 'if' in my code, I get that "discard" error
01:21:57renesacI can't produce a minimum example...
01:22:24EXetoClooks pretty minimal to me
01:22:34renesacbut it don't behave the same way as in my code
01:22:55renesacin my code, that causes a SIGSEGV
01:23:40renesacif I exchange "when" for "if", with ":expr" as return type, it gives that "discard" error anyway
01:23:40EXetoCdon't try too hard reducing it
01:25:13EXetoCI don't know why it needs to be a template, but try assigning to result or specify an actual type as the return type
01:25:32EXetoCx.type perhaps
01:26:31renesacnow my reduced example don't gives any error
01:26:49renesacwell, I want to use 'when' so I need a template
01:27:01renesacI also wanted to learn better how to use templates
01:28:37EXetoCperhaps you need to use a literal constraint then (x: TInteger{lit} for example)
01:31:26EXetoCotherwise it has to infer that property for every instantiation, which might not be a good idea
01:34:09renesacwell, that is constraining...
01:35:53EXetoCyes, but 'when' implies compile-time evaluation
01:36:00renesacI know
01:36:06renesacbut I wanted something like: https://gist.github.com/ReneSac/d14e00e60dfe052ebd10
01:36:25renesacnot sure if the {lit} will bite me there
01:38:11EXetoChttp://build.nimrod-lang.org/docs/manual.html#static-t
01:39:22EXetoCI don't know how well that works. it's pretty new
01:39:46renesachum, and only gives procs as examples
01:40:15renesacand says that it will be compiled separatedly for each unique supplied value, but I only need the difference between 0 and not 0
01:40:29renesacI will have to rethink that
01:40:37renesacmaybe a boolean
01:40:38VarriountCan xor help?
01:40:45renesacxor?
01:40:58EXetoCrenesac: oh and I forgot about the 'static' block
01:41:22VarriountNimrod has an xor logic operator. This OR That, but not this AND that
01:41:53renesacI know, but I don't see how that hellps
01:42:37EXetoChttp://build.nimrod-lang.org/docs/manual.html#static-statement-expression
01:43:10renesachumm
01:43:16renesacI will try those
01:43:20EXetoCif all this fails, then you might have to use a proc annotated with the compileTime pragma
01:43:45renesacnow I'm making a bug report because it seems I finally nailed the recipes to cause the compiler to crash
01:48:09*brson joined #nimrod
02:04:28VarriountIt just occurred to me that, when nimrod gets return type inferencing for procedure selection, we will be able to do things like (0 < x < 7)
02:04:50fowleh
02:05:04VarriountEh?
02:06:56EXetoCI can't see how that would allow for something like that
02:07:17VarriountHm, then what would?
02:08:31OrionPKint < bool?
02:08:32filwitnothing.. (0 < x < 7) is ((0 < x) < 7) is ((bool) < int)
02:08:39OrionPKor bool < int
02:09:32VarriountBut if it was inferred that `<`(0, x) needed to return an int
02:09:47OrionPKthen you'd have an int at the end
02:09:49fowlmaybe if < returned some crazy boxed value
02:10:02OrionPK0 < x < 7 == some int?
02:10:13filwitso (0 < x) == x ?
02:10:19VarriountOrionPK: No, the second function would return a bool
02:10:30fowlie 0 < x returned Trueish[int] with x as the val, then have < for (trueish[int], int)
02:13:32renesachttps://github.com/Araq/Nimrod/issues/939 <-- crazy issue reported, with lots of snippets to make your compiler cry :)
02:14:08*renesac proud of reducing those crashes
02:14:14renesacXD
02:14:29renesacprobably not very high priority though...
02:18:29EXetoCVarriount: so maybe, but then you could invoke that overload in other situations
02:18:52VarriountEXetoC: Yeah, your probably right.
02:19:16VarriountI started doing some sketches of the idea, and it got complicated pretty quickly
02:19:56EXetoCand somehow you'd need to optionally allow the return type to be omitted at the call site
02:20:08fowlVarriount, you know you can do `x in 0 .. 7` right
02:20:18EXetoCVarriount: how about some term-rewriting wizardry :>
02:22:29Varriountfowl: Yes, I was just thinking about another way.
02:22:50VarriountI know, it's a dangerous thing to do, thinking; I just can't help it.
02:23:17VarriountI wonder how python does it.
02:23:35EXetoCdoes what?
02:24:14*carum quit (Remote host closed the connection)
02:24:38fowlVarriount, probably expands it in a > b > c to a > b && b > c
02:25:04Varriountfowl: Probably.
02:25:13EXetoCyeah special-casing, just a tad more than in nimrod
02:25:44fowli can probably make this work with tmaybe
02:26:16VarriountA macro to do something like that would be helpful, even if it needed to be explici
02:28:20fowlhttps://gist.github.com/fowlmouth/c7af1fe926629fd932f6
02:29:01fowlhave you guys seen this http://www.twitch.tv/twitchplayspokemon
02:29:36EXetoC< 'a' == ','
02:30:01Varriountfowl: What's TMaybe?
02:30:13EXetoCthat's pretty subtle. I wanted to try my own `<` but there's already an unary `<` :>
02:30:32fowlVarriount, tmaybe[t] = tuple[has: bool; val: T]
02:30:50Varriount'has' being..?
02:31:16EXetoCwhether it has a value
02:31:23fowl^
02:31:35fowlin this case its used as the result of < though
02:31:58fowljust convenient since i have a converter so you can use it in an if stmt
02:33:04Varriountfowl: As always, you are full of surprises.
02:47:17fowllol
02:47:33*brson quit (Ping timeout: 248 seconds)
02:49:20*brson joined #nimrod
03:03:55reactormonkhttps://github.com/Araq/Nimrod/commit/2f24475d2854b2b5d0cf90cc8e6cdf767e7c06c6 <- debug code left over?
03:28:18*brson quit (Quit: leaving)
03:32:41*aftershave_ joined #nimrod
03:52:07*aftershave_ quit (Quit: Computer has gone to sleep.)
04:02:25*[Pete_27] quit (Remote host closed the connection)
04:07:33*ics joined #nimrod
04:15:02*carum joined #nimrod
04:26:28*[Pete_27] joined #nimrod
04:27:00*Amrykid quit (Ping timeout: 252 seconds)
04:27:33*dom96 quit (Ping timeout: 252 seconds)
04:28:48*Amrykid joined #nimrod
04:30:48*dom96 joined #nimrod
04:33:24*dmac joined #nimrod
05:40:54*gour joined #nimrod
05:59:40*carum quit (Remote host closed the connection)
06:03:27*filwit quit (Quit: Leaving)
06:03:40*carum joined #nimrod
06:14:59*xtagon quit (Ping timeout: 240 seconds)
06:19:07*zielmicha-cloud_ quit (Ping timeout: 272 seconds)
06:20:25*zielmicha-cloud_ joined #nimrod
06:30:34skrylarhrm. was looking around with tcl/tk for nimrod, and noticing something i didn't care for (though maybe slightly OT)
06:31:01skrylarLua has legitimate usertypes for exposing black boxes; Tcl makes you hashtable your own string identifiers
07:04:07*carum quit (Remote host closed the connection)
07:27:00skrylarhrm
07:28:04skrylarIt might be something to introduce an actual 'unsafe' tag, so you could use the tag/effect system to block pointer operations from modules that aren't extensively tested for them
07:39:14*Kooda joined #nimrod
07:44:02*BitPuffin quit (Ping timeout: 264 seconds)
08:25:16*dmac quit (Ping timeout: 245 seconds)
08:46:01*[Pete_27] quit (Remote host closed the connection)
08:47:49*[Pete_27] joined #nimrod
08:50:06*[Pete_27] quit (Client Quit)
08:50:25*[Pete_27] joined #nimrod
09:07:48*q66 quit (Quit: Leaving)
09:23:07skrylarAraq: i broke it. if you make a child object which has no parameters to itself, nimrod makes invalid C which tries to call 'Sup' (but doesn't generate the sup)
10:03:35skrylarnevermind, the issue oddly had to do with using a "var ref" type
10:04:40*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
11:01:28Araqskrylar: known bug, has already been reported
11:58:39*BitPuffin joined #nimrod
12:04:35BitPuffinhey dom96
12:04:45BitPuffinI tried doing it the way that the template does it
12:04:48BitPuffinbut the bind part fails
12:04:50dom96hi BitPuffin
12:05:14BitPuffinhttps://gist.github.com/BitPuffin/9069692
12:05:20BitPuffinmaybe it doesn't work to do it the exact same way
12:05:24dom96let's see here
12:05:29BitPuffindom96: do you want me to report the problem to the compiler or to jester?
12:05:36dom96compiler
12:05:57dom96ahh, yeah. You don't need to use the 'bind'
12:06:40dom96Do the other templates fail too?
12:06:45dom96Specifically resp?
12:07:02BitPuffindon't think so no
12:07:34*zielmicha-cloud_ quit (Ping timeout: 245 seconds)
12:07:42BitPuffindom96: can't use TCActionSend
12:08:17dom96gah, I guess Jester really does rely on templates too much heh
12:08:27dom96Just export TCActionSend as a workaround
12:08:43dom96or you could switch to master I think
12:08:46dom96I bet it works there
12:08:54*zielmicha-cloud_ joined #nimrod
12:11:02BitPuffindom96: master jester?
12:11:07dom96no
12:11:09dom96master compiler
12:12:08BitPuffindom96: so do you mean master or devel or newasync
12:12:20BitPuffinI should probably be using newasync when developing my game btw
12:12:36dom96Didn't I just say 'master'?
12:12:49BitPuffinyou did bitch
12:12:55BitPuffinbut you never know :P
12:13:06BitPuffinMaybe you could be used to the old system brah
12:13:41dom96I'm working in the devel branch on the newasync stuff now anyway
12:14:04BitPuffindom96: nope still the same internal error on the latest master
12:14:18BitPuffinguess I'll try it in sinatra or something
12:14:24BitPuffinbut I wanted to use nimrod at work :'(
12:14:44BitPuffinjust gonna report the issue first
12:14:59dom96Can't you wait? Maybe Araq will fix it for you.
12:15:23BitPuffinif he can fix it within 5-10 minutes maybe
12:15:39BitPuffinbut it was just to test if an objective-c library can understand redirects
12:16:08dom96He's likely at work now. So no.
12:16:31dom96I will try to come up with a workaround
12:18:02BitPuffinhttps://github.com/Araq/Nimrod/issues/941
12:18:05BitPuffinThere we go
12:18:15BitPuffinAlthough I will probably need it fixed regardless, since I am working on my website
12:18:24BitPuffinand since I have a server now I actually have some real incentive hehe
12:18:33dom96huh
12:18:40dom96tests/asynctest compiles
12:18:46BitPuffinyes?
12:18:47dom96Show me your full code.l
12:18:59dom96oh, it's in the issue.
12:19:30dom96Yeah, that compiles for me.
12:19:58dom96Although my compiler is pretty old
12:20:23dom96'2014-01-27'
12:20:34BitPuffindom96: try with latest
12:20:56dom96Are you sure master also fails?
12:21:56BitPuffindom96: what do you mean also, I am using master all the time :P
12:22:40dom96Still compiles for me...
12:23:05BitPuffinwtf
12:23:11BitPuffinOSX+
12:23:13BitPuffinOSX?
12:23:14dom96Yep
12:23:19dom96That's the problem.
12:23:31dom96We should get an OSX tag :P
12:23:37BitPuffinprobably
12:23:41BitPuffinmacs suck dick
12:23:43BitPuffindon't get one
12:23:50BitPuffinregardless of what zahary might tell you
12:24:21dom96I don't have enough money for that kind of purchase.
12:24:22BitPuffinalthough I guess in this case it's more a problem of nimrod's support for mac
12:28:03dom96BitPuffin: I will need your help later.
12:28:06dom96Since you have a mac.
12:28:18BitPuffindom96: sure thing my brother
12:28:25BitPuffindom96: what is it you need help wiz?
12:28:42dom96kqueue support for async
12:28:49BitPuffinin english
12:28:55BitPuffinno but what is kqueue
12:28:55dom96although I guess I could get a BSD vm
12:29:11dom96It's like epoll but for BSD/OSX
12:29:17BitPuffinwhat's epoll
12:29:25dom96lol
12:29:31BitPuffin:)
12:29:36dom96Look it up :P
12:31:46BitPuffinno u
12:37:04skrylarepoll and kqueue are high-performance file descriptor checkers
12:37:35skrylarbasically, "select" is the berkeley socket way of asking if one of a set of sockets has been updated and its portable; epoll is the linux version IIRC
12:37:51skrylarand kqueue is the FreeBSD version which is the fastest of all of them IIRC but the least portable
12:38:50dom96really? kqueue is fastest?
12:38:56dom96Never heard that before.
12:40:29BitPuffinFreeBSD is known for having pretty much the best network stac
12:40:31BitPuffink
12:49:46*aftershave_ joined #nimrod
12:55:18BitPuffindom96: doood
12:55:35*FireFly quit (Ping timeout: 272 seconds)
12:55:37BitPuffindom96: wouldn't it be kind of sweet to make a websocket backend to the asyncio/sockets modules?
12:55:52BitPuffindom96: so that it would work when compiling to js
12:55:56skrylarhttp://www.eecs.berkeley.edu/~sangjin/2012/12/21/epoll-vs-kqueue.html
12:56:24skrylartl;dr kqueue also acts as a transciever for *all* events at once, whereas epoll is only for sockets
12:56:37BitPuffinso we could basically make a website that let's you run jester in the browser to try it out
12:56:39BitPuffin:3
12:57:13BitPuffinBSD is the shit
12:57:18BitPuffinalthough my server runs arch
12:57:20BitPuffinlol
12:57:29skrylareh, FBSD is known for taking longer to turn the ship
12:57:41skrylarthe impression i remember is FBSD devs talking about multi-cpu support
12:57:48BitPuffinskrylar: have you seen FBSD 10?
12:57:56BitPuffinWhole new package management system and everything
12:58:18skrylaras the story goes Linux just janked SMP support in and called it done, freebsd took extra time to rearchitect things. So Linux "got it first", FBSD's experiences less inefficiency...
12:58:37skrylarBut there is no love for BSD, because they demand order while Linus and pals love chaos
12:58:50BitPuffinYeah but when it reaches BSD it is polished
12:59:06skrylarwell one key benefit is that a BSD is actually an OS
12:59:10BitPuffinIt's just two different ways to go about it
12:59:13BitPuffinyeah exactly
12:59:14skrylarthere is none of this "no no thats just the kernel" sidestep
12:59:45skrylarI tend to use linux if nothing else because FBSD's drivers tend to lag on the workstation
12:59:57skrylarAnd if you ask a hosting provider for BSD, they stare at you
13:00:08BitPuffinWell yeah Linux is a better desktop
13:00:15BitPuffinespecially with wayland on the way
13:00:16skrylarnot really.
13:00:31skrylarits "better" in that for some reason its the favorite
13:00:38BitPuffinWell I just mean in terms of hardware support and tech. FBSD is nicer since it is more cohesive
13:00:42skrylarFBSD's mutilated corpse is used to run mac desktops
13:00:42dom96is there anything like linode or digital ocean which offers BSD VPS'?
13:00:48BitPuffindom96: RootBSD
13:00:50skrylarI think Rackspace offers it
13:00:59BitPuffindom96: Amazon
13:01:06BitPuffindom96: there are a few
13:01:12BitPuffinand there is another one on the way
13:01:29skrylarBitPuffin: I'm not entirely sure what the deal is; you would think that FBSD appealed to people's expectations of stability et all, especially since the kernel tends to have more security
13:01:54BitPuffinskrylar: Yeah I'm not sure what the reason is
13:01:58BitPuffinskrylar: I guess it's luck
13:02:03BitPuffinone managed to get the hype up
13:02:09skrylarthe licenses are even more liberal for BSD o_O
13:02:15BitPuffinwaay more liberal
13:02:18BitPuffinthe GPL sucks dick
13:02:27skrylarits literally *better* in every imaginable way, and yet it has zero mainstream support
13:02:35BitPuffinWell
13:02:38BitPuffinI wouldn't say zero
13:02:45BitPuffinI mean the Playstation 4 runs it haha
13:02:49skrylarpfff lol
13:03:07skrylarI love the thunder stealing valve is doing lately
13:03:12BitPuffinAnd everyone who uses Netflix uses FreeBSD
13:03:18BitPuffinindirectly
13:03:29BitPuffinTheir CDN runs FreeBSD
13:03:42skrylarthey hijacked the 'early access' moniker from an indie model they had nothing to do with, now they are basically taking credit for games on linu
13:04:05BitPuffinHaha
13:04:06skrylarthough I loved when they ported Source to a derpy OpenGL wrapper, and it outperformed direct-x on windows >_<
13:04:07BitPuffinyeah
13:04:13BitPuffinI'd say it's more thanks to HIB
13:04:32BitPuffinHahaha yeah
13:04:35skrylarwell Sam tried to bring games to Linux with lokisoft
13:04:41skrylarthat's the legacy of SDL
13:04:52skrylarand then everyone took SDL to run games on the xbox o_O
13:05:03BitPuffinThe OpenGL on windows outperformed d3d, and OpenGL on linux outperformed OpenGL on windows lol
13:05:24skrylari rather like the newer GL pipes
13:05:35skrylarit seems like they're letting smart people design it again, instead of... autodesk.
13:06:23skrylarbut yeah HIB did a great job when they started forcing linux support as part of the deal, then people started really getting the hint that linux people pay more
13:06:34skrylarsadly wolfire decided to almost exclusively sell steamshit bundles now
13:06:47BitPuffinYeah
13:06:53BitPuffinAnd they have dropped the linux requirement
13:06:55BitPuffinwhich such
13:07:08skrylarI was peeved when they ran the THQ bundle twice
13:07:30skrylarthe original THQ bundle turned out to just be a golden parachute for the execs, I don't think anything from it made it to any devs
13:08:10skrylarI unsubbed finally; if i want steam games i'll buy them when steam harasses me about them, i don't use NOT STEAM to hear about steam
13:08:33skrylar'least we've still got GOG
13:08:50BitPuffinskrylar: I usually buy on HIB to get the steam games but also the DRM free version
13:08:56BitPuffinI think it's even worth paying extra for that
13:09:06BitPuffinand GOG doesn't even support Linux because they are Retards
13:09:11skrylarGOG can't
13:09:13BitPuffinThey have the most bullshit excuse ever
13:09:20BitPuffinThey can
13:09:42skrylarthey could let indies give binaries for it, but a chunk of their catalogue barely runs on Windows
13:10:18skrylari think its hilarious they sell King of Dragon Pass, which has a hit-and-miss compatability with XP/7
13:10:27BitPuffinWell the reason they gave was basically that the versions of the libraries are different on different distros, and grow out of date quickly
13:10:30BitPuffinbut so fucking what
13:10:32BitPuffinthe solution is simple
13:10:39BitPuffinship the game with the stupid libraries then
13:10:44BitPuffinthen they won't change
13:10:47BitPuffinidiots
13:10:57skrylarthe real sad bag is that the people who made King of Dragon Pass remade it as a native iOS game
13:11:13skrylarapparently the fact people still buy the game isn't a hint to make an HD version for the PC...
13:11:40skrylarBitPuffin: thats a small hell still, though :/
13:11:54skrylarcompatability on linux is a massive vortex of masochism
13:12:27*aftershave_ quit (Quit: Computer has gone to sleep.)
13:12:40skrylarsometimes you get a game that wants a *just* slightly older glibc, and then you have to go through tiny hells to find one
13:13:02skrylarso just pack half a distro with the game? now you have to triple check you didn't just step on some GPL clause
13:13:28skrylarso to be safe you now have to act as an FSF mirror for their source code for the next two years, just to be safe that someone won't claim you modified glibc
13:14:03skrylar*or* you go and extricate yourself from GNU libs, which is really effing hard to do but you can. there are things like uLibC which are basically a C runtime you can fully embed
13:14:16skrylarOf course if you use C++ (you probably did), you still got saddled with the g++personality crap
13:14:43skrylarStatic link? Okay, you can use -fstatic or similar to make a fully self-sufficient binary. Except the G++ lib is GPL-y, so you're technically violating the license again.
13:16:11skrylarBitPuffin: see the problems yet? :)
13:18:43BitPuffinskrylar: not really
13:19:02BitPuffinthere aren't that many libraries that the games use
13:19:21BitPuffinso shipping them with the libs is not even close to shipping half a distro
13:19:28BitPuffinin fact that's how I will distribute my games for linux
13:19:34BitPuffinit's easy and painless
13:19:42BitPuffinand I won't violate any GPL
13:19:47BitPuffinbut yeah I agree GPL is shit
13:20:03skrylaryou can kind of get around it if you link loosely, but then you're at risk for weird bugs
13:20:20skrylare.g. TCL does this cool thing where they have a 'stubs' library, so you can write your extensions completely decoupled from version
13:20:34BitPuffinwhat do you mean?
13:20:38BitPuffinand nobody uses TCL haha
13:20:48skrylaryeah tcl is... really wonky
13:21:12skrylarBitPuffin: well if you link to glibc-2.6 instead of glibc-2.6.0.4.1.donkey19
13:24:15BitPuffinI'm not sure I follow
13:24:35skrylarif you link to a less specific library
13:24:45skrylarusually in /usr/lib you have a lot of symlinks
13:27:38skrylarhrm
13:27:46skrylarBitPuffin: i think i accidentally infinite looped myself
13:28:10skrylari thought calling HigherType(X) and then calling a method would let me go one level up, but the crash appears as though its just dispatching to itself
13:28:43AraqBitPuffin: if you're around tonight we can try and fix this macosx specific bug for good
13:29:02Araqas a workaround bootstrap with --gc:markAndSweep and then the compiler works afaik
13:38:32skrylarAraq: is there a way to force a parent's multimethod to be called? I poked the manual, doesn't seem to be one
13:38:51skrylarI tried to be clever and do TheMethod(BaseClass(ref)) and it outsmarted me with an infinite loop
13:39:05Araqthere is the plan to support just that, yes
13:39:22skrylaralright, i'll just split the methods apart for now then
13:39:32Araqbut I fear it's very bad for metaprogramming
13:39:57Araqso type conversions prevent dynamic binding, that might bite us
13:40:02skrylarI already do that for the constructor, there's an "InitThisMorph(PMorph)" which does the actual init, and a separate method which does new() and init()
13:40:49Araqwell I want to get rid of methods in the long run
13:41:03Araqand replace them with dispatch table generating macro
13:41:31skrylari haven't done much to see if i could use macros to disect info from types
13:52:52krusipo4~
14:04:07*aftershave_ joined #nimrod
14:05:52BitPuffinAraq: Yeah I think I will be around
14:07:01BitPuffinskrylar: I think hat you meant is that you link to .donkey instead of the regular one
14:07:16BitPuffinor oh you mean like that
14:07:29BitPuffinyeah but then you can just link ship it with the one you linked with
14:08:42*io2 joined #nimrod
14:17:21skrylarhrmm. my ncurses has decided that the vertical bar character is actually a P
14:18:04*darkf quit (Quit: Leaving)
14:30:40*aftershave_ quit (Quit: Computer has gone to sleep.)
15:04:42*t4nk161 joined #nimrod
15:05:22*t4nk161 quit (Client Quit)
15:05:52*eggy_ joined #nimrod
15:06:16*eggy_ is now known as Guest47425
15:06:16Guest47425Hello, anybody on?
15:06:27*Guest47425 quit (Client Quit)
15:31:20*aftershave_ joined #nimrod
15:32:13EXetoCcmon, he gave you one minute to respond. slowpokes!
15:32:46skrylari am soup
15:34:32EXetoCyou're roleplaying as soup?
15:34:51skrylarnah, thats just a strange thing i sometimes say
15:35:03EXetoC:>
15:52:22*[1]Endy joined #nimrod
15:55:16*ics joined #nimrod
16:07:57*eridu joined #nimrod
16:08:22dom96hello eridu
16:08:29eriduhello dom96
16:10:53eriduI'm not sure if you're a bot that does that to everyone in this channel, but this channel got plugged in multiple comments in a hacker news thread about good irc channels; I'm going to idle here for a while and see if there's anything interesting
16:11:08eriduthis is the first time I've heard of nimrod; it seems interesting
16:11:20dom96hah. I'm not.
16:11:43eridubut isn't that what a bot would say...
16:11:47*dom96 just likes to say hi to everyone that is new
16:12:01eriduthanks! I can see why this channel is popular, then.
16:12:31dom96No problem. You are of course welcome to idle here :)
16:12:39*skrylar is now known as HAL-9000
16:12:43HAL-9000hello eridu
16:12:47HAL-9000i am the greeterbot
16:12:52dom96hah
16:12:58*HAL-9000 is now known as Skrylar
16:13:27*gour quit (Quit: WeeChat 0.4.2)
16:16:58EXetoCgood to hear. I still think it'd be a good idea to talk about games and such elsewhere
16:17:22EXetoCon steam for example, but can we create an offtopic channel?
16:20:31Discoloda#nimrod-offtopic ?
16:20:56EXetoCsure
16:21:19dom96Yeah, good idea.
16:21:56dom96But sometimes there is too little discussion here as it is IMO.
16:22:06dom96Perhaps people fear going off topic?
16:34:43*aftershave_ quit (Quit: Computer has gone to sleep.)
16:52:30SkrylarDo we already have a module to make sets out of enums?
16:53:06Discolodathats built in
16:53:14Skrylarwasn't sure
16:53:18Discolodaset[TYourEnumName]
16:53:25Skrylari was thinking about a set enum module, or possibly one to pack multiple enums in to a single int
16:54:47Skrylari'm starting to accrue a lot of tiny enums in my gui code, might be worth it to do some templates for dealing with packed bits
16:59:05EXetoCI wanted to implement that a couple of days ago
17:01:06EXetoCit's definitely useful
17:02:00EXetoCI don't think there's a generic way to get the value represented by an enumerator, but working around it shouldn't be too hard
17:02:07Skrylarord()
17:02:15EXetoCoh
17:02:22EXetoCwell, there you go :>
17:03:00Skrylarnow i'd be curious to know if high() worked on enums
17:03:32Skrylarbecause if it did, there you go; easy enough it would seem to have a macro accept N enums and throw a fit if it can't fit them all
17:03:58Skrylarall though i was probably going to do something trivial like a fixed 'byte per enum' type or something like that
17:06:50EXetoC"bla {.size: sizeof(int8).} = enum\n x = 5000" uh oh
17:07:13Skrylarnimrod allows that to compile but borks the value?
17:07:24EXetoCwhat's the reason for not actually being able to specify the type?
17:07:33Skrylarbecause you can't do it in C, probably
17:08:00SkrylarI don't think specifying the type is ANSI C
17:08:24EXetoCoh right. good old C
17:08:25Skrylarthough if you care *really* hard you can work around that
17:08:42Skrylare.g. distinct uint8, conversion templates to/from the enum
17:08:44EXetoCbut it doesn't have to map to C's enum construct
17:08:47EXetoCbut whatever
17:09:13Skrylari like that unlike Rust you can work around the derp in nimrod, and the derp is usually small and out of the way
17:09:20Skrylarspecifying the type of an enum is already an edge case
17:09:53EXetoCthe size anyway
17:16:09EXetoCwell, both :>
17:18:47bstrieSkrylar: I think you chose a bad example, rust trivially allows you to specify the size of an enum, and also yells at you with good error messages if you give it a value larger than the specified type :P
17:19:01bstrieSkrylar: https://gist.github.com/bstrie/9075358
17:19:19Skrylarbstrie: who said I was using enum size as an example?
17:19:48Skrylari was talking about how you can drop a template or a distinct type around most of the problems [that i've run in to so far] instead of waiting on a corefix
17:20:19bstrieSkrylar: fair enough :)
17:20:51Skrylarthe last bug i had was when they removed managed pointers, put in ref count boxes and weak refs, and then there was a critical segfault in actually using those ._.
17:21:43Skrylari don't know why but that combined with the amount of times i heard their IRC talk about not fixing something because "oh well the AST would need touching" or "well LLVM ought to fix that at some point" kinda gave me the impression Rust isn't really ready for use at all
17:22:06bstrieSkrylar: we keep telling people *not* to use rust, because it's true, we're not ready
17:22:20bstrieunstable is unstable. will eat your laundry. stay away!
17:22:39Skrylari haven't had any showstopping bugs in nimrod yet
17:23:15Skrylari'd prefer tabs over spaces but otherwise i'm happy, plus my pinky isn't dying from pressing shift 20 times per line anymore :)
17:23:36bstriealso, we muck with the ast all the time. I find it hard to believe anyone of any authority would be averse to touching it
17:23:53Skrylari saw it mentioned a lot
17:24:07Skrylarespecially with regards to "oh well this runs in a separate pass so we're not going to fix that ever"
17:24:18Skrylarmacros felt incredibly crippled
17:25:17bstrieif you're talking about conflating typechecking and parsing, yes, we refuse to do that
17:25:25bstriewe also tell people to use D and nimrod if they crave metaprogramming :)
17:25:32Skrylari like that in nimrod a macro/template feels like it actually belongs there, and they seem to be generally useful; I kept running in to derp where macros couldn't do things like insert methods inside a method block :/
17:25:48Skrylarer, methods inside an impl
17:26:50EXetoCSkrylar: you have an average nest level of ~15? :p
17:27:26SkrylarEXetoC: not usually
17:27:49SkrylarEXetoC: i just tend to like tabs, and they were sort of put in ASCII to be used as delimiters
17:28:56Skrylarall though i also sometimes do silliness like using 3-cell indents, because i saw emacs do that once and thought it looked neat
17:33:06EXetoCright. well I think having a fixed max width is important </subjective>
17:40:58EXetoCthough I would like to be able to have four spaces per indent instead of two, but I read in the wiki not long ago that four-space indents are also acceptable, so I think I'll go with that in my own projects
17:43:20EXetoCSkrylar: ord gives you the specified value as an int even with sizeof(int8), but when converting the enumerator to a string you get something like (136 (invalid data!)).
17:43:42EXetoCthere, right window. I'll report it and see what the BDFL has to say
17:49:24Skrylari'm not actually sure if nimrod is a hardass about how many spaces
17:49:27Skrylari've never tested it
17:50:20SkrylarEXetoC: the best bet right now is probably an implicit conversion with a distinct type, probably
17:50:33Skrylarthat sounds the least likely to break completely
17:51:00Skrylarthough yeah, it shouldn't bork when stringifying an 8-bit enum
17:52:40*shodan45 joined #nimrod
17:56:07VarriountSkrylar: Did you just say that macros are crippled?
17:57:03VarriountBecause I would have to disagree.
17:58:03EXetoChe wasn't referring to Rust's macros?
17:58:19*BitPuffin quit (Ping timeout: 260 seconds)
17:59:11VarriountMaybe he was, I might have misread.
17:59:14EXetoCSkrylar: the enumerator is already "invalid" at that point (x = 5000, with size: sizeof(int8))
18:00:04*aftershave_ joined #nimrod
18:02:12SkrylarVarriount: i was referring to Rust macros, which are boxed in to one specific pass of the compiler and stick out obviously at their call sites
18:02:22*brson joined #nimrod
18:02:24*Matthias247 joined #nimrod
18:02:36Skrylarthere are also a lot of strange syntax restrictions that seem almost arbitrary in their current state
18:02:56SkrylarEXetoC: seems like it should throw an error that you've made an invalid type though
18:04:36*aftershave_ quit (Client Quit)
18:07:09NimBotAraq/Nimrod devel 69e2dfb Zahary Karadjov [+1 ±3 -0]: fix #931 and few more tests
18:11:49*DAddYE joined #nimrod
18:13:27OrionPKimport dom; Error: This module only works on the JavaScript platform
18:13:35OrionPKthis kinda hurts unit testing..
18:15:11EXetoCimport conditionally
18:16:28EXetoCOrionPK: how about "when defined(JS)"?
18:17:33OrionPKyeah, but then you dont have mocks for all the dom functions
18:23:00Skrylardo we have a good mocks unit?
18:27:53VarriountNot at the moment.
18:30:01Skrylarhm. the CMock framework is probably simple enough to use as a base
18:30:24Skrylarat least for design sporking
18:30:34Varriount"Design Sporking"?
18:30:43Skrylarcopying
18:33:58OrionPKi feel like mocks would be easier to implement in nimrod than in C
18:34:04OrionPKusing some C library
18:38:55Skrylaryou could look at the C library's design and implement it in nimrod ._.
18:39:06Skrylarwhich is what i was trying to say
18:40:39Skrylarall though it was a pretty simple design; mostly shim structs and functions that you could operate a queue behind to make sure the call orders were correct
18:54:23OrionPKah
18:56:17*carum joined #nimrod
19:03:49*carum quit (Ping timeout: 260 seconds)
19:04:49reactormonkEXetoC, not too far :-(
19:05:16reactormonklooks like math.h wasn't imported well enough
19:05:26Varriountdom96: the github hooks for the nimrod-sublime repo need to be changed - the repo's name has changed.
19:05:39dom96ok, what's the new repo name?
19:06:21VarriountNimLime
19:07:16dom96!addrepo Varriount NimLime
19:07:16NimBotDone.
19:07:22Matthias247Varriount: and I have an update soon. That enables activating and disabling auto-complete through a settings file
19:07:47EXetoCreactormonk: Araq doesn't want to add additional includes. I asked why but he didn't respond. I suppose he's busy with more important stuff
19:07:52EXetoCwhat else? native implementations perhaps
19:07:56VarriountMatthias247: Good, Because currently it's quite unusable. (speed)
19:11:06Skrylari hate auto-complete plugins :(
19:11:12SkrylarI remember using the haxe module and it was so dog slow
19:11:32Skrylarthough i would love to have the fuzzy matching mechanic in vim/emacs, but i couldn't find a way to get it in either
19:11:54VarriountMatthias247: I have a question: When you use the 'check' command, does sublime text freeze up for you?
19:12:02*q66 joined #nimrod
19:12:02*q66 quit (Changing host)
19:12:02*q66 joined #nimrod
19:12:21Matthias247Varriount: it doesn't
19:12:33VarriountI mean, does it freeze temporarily?
19:13:09Matthias247tested it only on small modules. There I don't notice a freeze
19:14:37*q66 quit (Remote host closed the connection)
19:27:18*q66 joined #nimrod
19:27:18*q66 quit (Changing host)
19:27:18*q66 joined #nimrod
19:31:09*micklat joined #nimrod
19:35:13*fowl quit (Ping timeout: 272 seconds)
19:36:57*carum joined #nimrod
19:37:26*carum quit (Read error: Connection reset by peer)
19:37:47*carum joined #nimrod
19:48:32*fowl joined #nimrod
19:49:10Araqhi eridu welcome
19:49:22eriduthanks Araq
19:51:33*micklat quit (Remote host closed the connection)
19:56:13*BitPuffin joined #nimrod
20:01:40*BitPuffin quit (Quit: WeeChat 0.4.3)
20:05:41*shodan45 quit (Quit: Konversation terminated!)
20:14:42*gour joined #nimrod
20:15:10*carum quit (Remote host closed the connection)
20:19:03*Demos joined #nimrod
20:22:43reactormonkSkrylar, well, for starters, we need idetools to work ;-)
20:24:58reactormonkSkrylar, wanna give it a try? https://github.com/Araq/Nimrod/issues/804
20:28:57nequitansA potentially noob-like question: has anyone implemented/thought about how a list comprehension library could be made using macros in nimrod?
20:29:16DemosI have been planning to spend a weekend just reading the idetools (and other compiler) code. I don't think the person who wrote idetools is around any more
20:29:20*carum joined #nimrod
20:29:49nequitansi imagine that the syntax would generate an iterator somehow
20:30:41AraqDemos: iirc me and zahary wrote idetools
20:31:24fowlnequitans, i dont think its possible to generate anonymous iterators yet
20:31:36Araqfowl: you're not up to date :P
20:31:41Araqit is possible
20:31:48fowli dont use devel because my code doesnt work on it
20:31:56Demosoh, well then the people who wrote it have better things to do :D.
20:32:32Araqfowl: bug report please, keine_schweine compiles
20:32:36*gour quit (Quit: WeeChat 0.4.2)
20:39:05reactormonknequitans, [ ] is array, I'm not sure how far down it's reserved
20:39:23reactormonkiirc `[]` is for foo[1]
20:40:18*gour joined #nimrod
20:41:11nequitansreactormonk, i see. perhaps assuming some other character like `{}`? not sure if that's reserved tho
20:41:53Araqnequitans: just use map and fold etc. python's "list comprehensions" are weird
20:43:35reactormonkAraq, doesn't matter if they're `weird`. Is it possible to create them?
20:43:46nequitansAraq: agreed. I like to use the functional methods and chain them. was more of a 'metaprogramming chops' kind of question
20:44:27Araqreactormonk: sure with slightly different syntax
20:44:39reactormonkAraq, then enlighten us with the syntax
20:45:44reactormonkAraq, and would it be possible to mess with the compiler to get the syntax?
20:45:53reactormonknequitans, you can certainly get p[ ], but not [ ]
20:46:07fowli dunno how to get past this CONFLICT (content): Merge conflict in compiler/ropes.nim
20:46:10*fowl sucks at git
20:46:17reactormonkfowl, ask #git
20:46:27reactormonkfowl, or run `git mergetool` and see what happens
20:46:31Araq![(a,b) in foo()]
20:47:29fowlreactormonk, whats a good tool?
20:47:41fowlreactormonk, or at least a gtk one
20:47:56fowlnvm, meld sounds familiar, ill jus use that
20:49:13*carum quit (Remote host closed the connection)
20:51:41*carum joined #nimrod
20:54:27reactormonkfowl, that's what I use
20:54:34reactormonkI'd prefer opendiff, but that's mac only :-/
20:55:44*psquid joined #nimrod
20:57:49Demosthere exist windows merge tools that are really good, I use notepad++ myself for the more nightmarish merges, vim for the easy ones
20:57:59*[1]Endy quit (Ping timeout: 260 seconds)
20:58:45OrionPKwinmerge on windows
20:59:31Demosyeah I hear that is a good one
21:04:55*vbtt joined #nimrod
21:07:12*zahary1 joined #nimrod
21:09:01*Demos quit (Ping timeout: 245 seconds)
21:11:22vbttwhat's the plan to improve the nimrod doc generator?
21:12:33OrionPKwoot
21:12:38OrionPKgot my cubox-i finally :D
21:13:30reactormonkvbtt, there's none
21:13:36reactormonk.... iirc
21:13:46Araqreactormonk: what? o.O
21:13:59Araqwe have a PR to be merged and lots of features planned
21:14:01reactormonkAraq, I've heard some, but are there any _concrete_ plans?
21:14:23Araqwhat's more concrete than a PR?
21:14:35reactormonkAraq, https://github.com/Araq/Nimrod/pull/850 <- this one?
21:14:52Araqyes
21:15:02reactormonkwhy isn't it accepted yet?
21:15:30Araqnobody pushed me enough and whenever I start to review it, something happens
21:16:04EXetoCstill have other stuff to focus on eh :>
21:17:01vbttright, i'm not trying to raise the priority, just curious about the plans for doc improvement.
21:17:09vbtte.g. is there any desire for something like pydoc -p
21:17:15vbttor searchability
21:17:50Araqgoogle search? the allmighty index?
21:18:40Araqtbh I don't get the complaints about our docs being bad. they are better than anything else out there
21:19:12Araqsurely I'm highly biased
21:19:39Araqbut python's is verbose and spends lots of ink to describe the (nonexisting) *types*
21:19:51EXetoCI think he was referring to doc *generation* this time as well
21:20:03vbttright - generated docs for libraries (including stdlib)
21:20:12AraqC# lacks examples, Java is dull
21:20:27Araqruby's uses annoying frames which I can't stand
21:20:48VarriountJava also uses frames
21:20:55Araqtrue
21:21:11*Varriount likes documentation he can view on his phone
21:22:27vbttI would like e.g. 'find all functions accepting TType in stdlib and other modules'
21:22:51VarriountSo, a cross reference, essentially
21:22:56vbttgoogle search is good for many things but it requires that the library docs be published.
21:23:14vbttalso - you search all versions, rather than the one you have installed.
21:23:57vbttI would also like a nice index, something I can just Ctrl-F.
21:24:16*wan joined #nimrod
21:25:35Araqvbtt: what's from with: http://nimrod-lang.org/theindex.html ?
21:25:42Araq*what's wrong
21:25:55Araqand yes, grouping by type is a planned feature
21:27:20wanThat page should be linked from the website, I've never seen it before (and it seems useful, especially for those ctrl-f cases)
21:27:29Varriountwan: It is linked.
21:27:43wanoh, I guess I missed it
21:27:58Varriounthttp://nimrod-lang.org/documentation.html
21:28:03VarriountAt the very bottow
21:28:06Varriount*bottom
21:28:13Araqbut in bold :P
21:28:54vbttheh I missed the index too (expected it in the lib docs)
21:29:05Araq-.-
21:29:10EXetoCit's easy to miss if it isn't blinking
21:29:29VarriountAraq: How efficient would marshal.nim's procedures be compared to a similar procedure implemented statically (eg, no run-time type interpretation)
21:29:55AraqI think tut1 should mention the index
21:30:02Araqand the manual
21:30:13VarriountOr to rephrase, how costly is the run-time type evaluation?
21:30:18Araqand everything else should link to it
21:30:34AraqVarriount: my educated guess: factor of 2 or 3
21:30:34wanThe docs page could also show some more visual organisation (more h1 and sub-lists) and avoid pages like tools.html that add another click to finally get to the right place.
21:31:21Araqwan: then the list in documentation.html would be even longer and more people miss the index :P
21:31:25Varriountwan: Just an FYI - Improving the documentation is a possible GSoC project.
21:31:28vbttyeah the docs seem disconnected (different styles, not cross links) would be nice to have overall structure.
21:31:57gourjulia does eveyr
21:32:06gour*everything with sphinx
21:32:08vbtttypically you have 'index' and 'contents' at the top/bottom of every page of a library reference.
21:32:18vbttyeah i'd suggest sphinx but it's written in Python
21:32:21vbtti.e. NIH
21:32:23vbtt;D
21:32:44vbttif you write them for sphinx you can just host them on readthedocs
21:33:16AraqI used python's docutils before I wrote my own, you know
21:33:39*carum quit (Remote host closed the connection)
21:35:19vbttactually i'm happy there is a pure nimrod implementation of rst.
21:35:32vbttbut not sure how it's superior to python's.
21:35:40wanMy reference 'good docs' page is the django one https://docs.djangoproject.com/en/1.6/ , I always used it as a kind of starting page for my learning and problem-solving
21:36:45wanRight now, I see nimrod's library page as a kind of equivalent: ctrl-f the page to find the thing you want to do, then go to the designated page
21:37:05reactormonkAraq, http://rubydoc.info/stdlib/core/frames or also without frames, but I gotta say the frames somewhat of work here
21:37:06wanbut a searchable interface a la devdocs.io could be great also
21:37:35VarriountToo bad we don't have any web design specialists :(
21:37:43VarriountWell, except for filwit
21:37:56reactormonkVarriount, I have some experience with web backend... :-/
21:37:58vbtti can do some web design.
21:38:23vbtti.e i can fix the css to make it look better to me.
21:38:47Araqvbtt: it is not superior to python's but it is an order of magnitude faster
21:38:48reactormonkvbtt, but I'd actually settle for some already existing tools and modify them a bit
21:39:09reactormonkat least the frontend part, the backend which generates the doc is nimrod
21:39:16reactormonkhttp://www.scala-lang.org/api/current/#package e.g.
21:39:20Araqvbtt: without even trying, I never optimized anything about it
21:40:12vbttAraq: not surprising.
21:43:04vbttreactormonk:sphinx is decent and very widely used.
21:45:57dom96Julia's docs are nice and they even have translations.
21:47:06vbttjulia uses sphinx
21:47:48dom96IMO tut1/tut2 should be split up so that we have a separate document talking about each Nimrod feature.
21:48:17Araqtut1 and tut2 were good documents before so many cruft was added :P
21:48:26Araq*so much
21:48:44Araqwell actually gradha is doing a great job
21:48:46dom96Araq: Why are so many PRs left unmerged btw?
21:49:15dom96Not enough time to review them?
21:49:30gourdom96: how do you like julia language-wise?
21:49:31Araqdom96: I told you I won't merge until the 'diff' feature for nimbuild exists
21:49:53Araqgour: Julia is a fine language, just use it and please stop bothering us
21:49:56dom96Araq: It exists doesn't it?
21:50:25Araqdom96: it exists but is unreliable
21:50:39dom96How so?
21:50:55Araqthe number of reported tests differ between platforms
21:51:26dom96gour: Dunno. Never tried Julia.
21:53:01dom96Araq: Any ideas why that may be?
21:56:09*nande joined #nimrod
21:57:09Araqdom96: I suspect git didn't download some test files
21:57:35Araqbut I have no idea, the tester simply iterates over the various directories
21:58:54dom96What does it look for? Just file with a .nim extension?
21:59:55Araqfiles matching the pattern t*.nim
22:00:04Araqthough there are lots of additions
22:02:05*gour left #nimrod ("WeeChat 0.4.2")
22:04:22dom96Count of .nim files in tests/ for both matches.
22:04:32dom96(ppc64 and x86_64)
22:04:38Araqexamples too?
22:04:44Araqstdlib modules?
22:05:37dom96yes
22:05:40dom96everything
22:06:25dom96Lets diff the testresults.
22:07:08dom96What are those errors at the top of the page? http://build.nimrod-lang.org/commits/linux-x86_64/69e2dfbc6690/testresults.html
22:11:12Araqold git version
22:11:33Araqthis means it couldn't get the hash
22:12:13dom96x86_64 tests highlite, ppc64 doesn't.
22:13:39dom96It exists in both
22:15:20OrionPKwho wrote the dom module?
22:15:21OrionPKdom96?
22:15:32Araqme
22:15:44OrionPKhow do I get a TElement from a TNode
22:15:58dom96Araq: Well, i'll let you figure out the rest.
22:17:24NimBotVarriount/NimLime master 8af6c5a Matthias Einwag [+1 ±2 -0]: Added a settings menu and an option to disable the suggestions
22:17:24NimBotVarriount/NimLime master 4f9177a Matthias Einwag [+0 ±6 -0]: Refined the auto completion functionality... 2 more lines
22:18:06Araq testStdlib(r, "lib/packages/docutils/highlite", options, cat)
22:18:14Araqunconditional
22:18:35dom96what file is that in?
22:19:15Araqtests/testament/categories.nim
22:19:24fowloh yea this was my prob on devel: csfml.nim(306, 50) Error: expression '"sfRenderWindow_$1"' has no type (or is ambiguous)
22:20:26Matthias247OrionPK, Varriount: You can retest the autocomplete now. I changed the default now that you need a second ctrl+space to request completions. But it can be changed in the settings
22:21:23dom96Araq: Well I don't know what is going on.
22:22:58renesacis there equivalent to python generators in nimrod? I want to call a 'proc foo(openarray[float])' but only have an integer seq, how do I apply the conversion to call the function w/o creating a new seq?
22:24:37EXetoCI don't anything is being converted. have you read about openarray?
22:25:38EXetoC*I don't think
22:27:14vbttrenesac:look for 'closure iterators'
22:29:44EXetoCI misread slightly, but I don't think it's possible, because you don't know what's being passed in
22:31:12vbtthmm openarray may not work with iterators..not sure.
22:34:59EXetoCor maybe I didn't misread :p I think it's being passed by reference, but I'm not sure
22:36:56EXetoCeither way, both arrays and sequences can be passed to it
22:38:25VarriountMatthias247: You might want to start drafting up some code that makes use of nimrod's CAAS mode (even though CAAS mode doesn't entirely work yet)
22:38:57Matthias247Varriount: jup, that's on the todo list :)
22:39:54VarriountMatthias247: Also, a heads up, if serve mode doesn't respond to anything after the first request it gives, try sending a 'reset' command
22:41:18vbttwhat's CAAS
22:42:48*carum joined #nimrod
22:42:57Matthias247vbtt: compiler as a service
22:44:09vbttoh, why is it a CAAS mode and not just 'the compiler module'
22:44:15reactormonkvbtt, I'm very well aware of sphinx. But it's non-static, which makes it harder to use
22:45:11vbttreactormonk:good point. which is why i suggested readthedocs. I think they stay updated by automatically pulling from your git repo if desired.
22:45:31vbttbut I understand the need to generate static docs locally.
22:45:36Varriountvbtt: The compiler module is not the same as CAAS
22:45:54VarriountCAAS is when you run nimrod with the 'serve' command
22:45:59EXetoCvbtt: see nimrod --advanced
22:46:10vbttok
22:46:54EXetoClook for serve
22:46:58reactormonkvbtt, yup. I'd prefer a JS search.
22:47:13vbtta js search would be sweet.
22:47:23VarriountHm. What is a sensible tool for web page mockup?
22:59:39*filwit joined #nimrod
22:59:56Skrylarisn't there that nvu tool thats open source?
23:00:25Skrylarunless you just mean a diagram markup, in which case you could see if Pencil or Inkscape does what you want Varriount
23:01:40reactormonkVarriount, just hack something with bootstrap
23:03:25reactormonkhttp://lunrjs.com/
23:03:27reactormonkfound it
23:03:30NimBotVarriount/NimLime master 7d15c3d Matthias Einwag [+0 ±2 -0]: Added definitions for procs and methods to enable goto symbol
23:04:48reactormonkVarriount, any way to drop all the information from nimrod doc into a JSON so I can load it into lunr? I know my way around lucene, and lunr seems to be similar.
23:08:14Araqargh, not again
23:09:46Araqhi filwit
23:10:13Araqin an attempt to fix the last bugs with the vm, I'm changing the representation of values ...
23:11:10Araqso ... all the crazy invariants are then gone and instead the type system ensure we don't screw up
23:11:23Araqif it works out, that is
23:12:06*BitPuffin joined #nimrod
23:12:15Araqping BitPuffin
23:13:07filwithi Araq
23:13:16filwitone sec
23:16:46*vbtt quit (*.net *.split)
23:16:47*fowl quit (*.net *.split)
23:16:47*io2 quit (*.net *.split)
23:16:48*zahary quit (*.net *.split)
23:16:48*vendethiel quit (*.net *.split)
23:17:16*vendethiel joined #nimrod
23:18:36*vbtt joined #nimrod
23:18:36*fowl joined #nimrod
23:18:36*io2 joined #nimrod
23:18:36*zahary joined #nimrod
23:21:26*noam_ joined #nimrod
23:24:46filwitAraq: okay, so what's the replacement for the invariants in the VM? I find it hard to believe you would replace them with object inheritance :P
23:25:01*noam quit (Ping timeout: 272 seconds)
23:25:21NimBotVarriount/NimLime master 6b86c3c Matthias Einwag [+0 ±1 -0]: Pretty printing for methods
23:25:23filwitzahary: concerning my bug report (940), I wouldn't mind trying to take a stab at fixing it if you're busy with other things. But I would love any pointers you can give me about what you think is causing it if you have any. I haven't taken a look yet (reported right before bed last night), but I'm not sure exactly where to start without a stacktrace.
23:27:02filwitzahary: it seems to be an overloading issue, but so far I've only really worked on the VM inside the compiler, and don't know even know where overloading resolution occurs in the compiler (and it's hard to find out without a proper debugger).
23:28:03filwitping zahary, zahary1, zahary_
23:28:04Araqfilwit: sigmatch.nim
23:28:17filwitAraq: ah, right. I knew that...
23:28:20filwitthanks
23:31:51filwitAraq: i see what you where saying about invariants in the VM. You're only replacing value invariants, not all node invariants, correct?
23:32:36Araqwell the seq[PNode] that is used for the registers, will become seq[TRegister]
23:32:52Araqwhere TRegister is a simple union type
23:33:09filwitah, okay i see
23:33:37Araqalso the way addressing works is changing quite a bit
23:33:55Araqbut you'll see soon
23:34:31filwitokay, i'll check with you later about it
23:35:55filwiti'm wondering how changing from a seq[PNode] to seq[TRegister] is going to help solve anything though really, considering PNode's invariant is basically the same thing
23:36:16filwityou just want a clear distinction between a register and a NimrodNode?
23:36:36Araqthat distinction already exist, albeit implictly
23:37:02Araqyou must not use regs[ra] = foo as this aliases foo
23:37:11Araqand regs[ra] might get *reused* for different things
23:37:58Araqyou have to load 'foo' into regs[ra] with asgnComplex or asgnRef
23:38:23filwityeah i like the sound of that already
23:39:59filwitthat will probably make things easier to follow in the code too, since it matches what a real stack is doing (i assume).
23:40:09filwitthe* real stack..
23:41:36filwitone more question though, what does asngComplex do that asngRef does not?
23:41:49filwitput a deep copy on the stack?
23:41:52Araqperforms a deep copy
23:41:56filwitokay
23:43:24filwitwhat are the performance implications of this? It looks like potentially more memory copies, but also less memory per register (i assume TRegister wont have everything TNode does)
23:44:02Araqshould end up being slightly faster
23:45:19filwitah, right, i'm thinking wrong
23:45:44filwitthat all makes sense to me. I like it.
23:46:17BitPuffinpong Araq
23:47:02AraqBitPuffin: the bug disappears with --gc:markAndSweep?
23:47:21BitPuffinAraq: I'll have a look
23:49:25*EXetoC quit (Read error: Connection reset by peer)
23:52:28BitPuffinAraq: nope
23:52:57Araqbootstrapped with --gc:markAndSweep?
23:53:46BitPuffinoh
23:53:50BitPuffinthought you meant when compiling
23:54:38*Araq is good at guessing other people's mistakes
23:57:47*carum quit (Remote host closed the connection)
23:59:27Araqgood night