<< 10-11-2013 >>

00:02:15*alex_hoola joined #nimrod
00:05:48*Ricky_Ricardo joined #nimrod
00:07:57*zezba9000 joined #nimrod
00:14:59*DAddYE joined #nimrod
00:15:21*Ricky_Ricardo quit (Quit: laptop[lid].close)
00:19:26*DAddYE quit (Ping timeout: 264 seconds)
00:25:08*CarpNet quit (Quit: Leaving)
00:27:18*xenagi joined #nimrod
00:27:33*zezba9000 left #nimrod (#nimrod)
00:44:00VarriountYay! I got the nimrod compiler to partially accept lambdas with implicit types. Now just the body of the lambdas remain.
00:48:57filwitnice
01:46:48*Dirkson quit (Quit: Cheers!)
01:55:37*fowl quit (Quit: Leaving)
01:57:52*OrionPK quit (Read error: Connection reset by peer)
01:59:44*filwit quit (Quit: Leaving)
02:16:36BitPuffinprobably time to sleep now
02:16:39BitPuffingoodnight y'all!
02:21:03VarriountGoodnight BitPuffin
02:22:47*BitPuffin quit (Ping timeout: 272 seconds)
03:14:13VarriountI'm.. flummoxed. Up until now, I've been under the impression that, though implicit generic lambdas aren't working, *explicit* generic lambdas did work. Now, I find that those either don't work, or aren't implemented yet.
03:15:13VarriountSo, what's the deal - are generic lambdas of any kind implemented? Are they planned to be implemented?
04:27:12VarriountAnd now I know that I can't have parameters with procedure types lacking parameter *names*. Lovely.
04:51:53*LoneTech quit (Ping timeout: 272 seconds)
05:36:07*mflamer joined #nimrod
05:36:44*mflamer quit (Remote host closed the connection)
08:12:48*mflamer joined #nimrod
08:13:44*Jackneill joined #nimrod
08:21:18*Jackneill quit (Ping timeout: 244 seconds)
08:21:42*Jackneill joined #nimrod
08:27:16*xenagi quit (Quit: Leaving)
09:08:07*mflamer quit (Ping timeout: 272 seconds)
10:30:57*EXetoC quit (Quit: WeeChat 0.4.2)
12:22:14*mkb quit (Ping timeout: 240 seconds)
12:22:35*mkb joined #nimrod
13:05:21*EXetoC joined #nimrod
13:09:05*BitPuffin joined #nimrod
13:09:33BitPuffingooooood moooorning!
13:12:21*fredmorcos joined #nimrod
13:12:38*brson joined #nimrod
13:17:09*enurlyx joined #nimrod
13:26:45dom96hellooo
13:30:04*Endy joined #nimrod
13:31:19BitPuffinwassup dom diddely dom96!
13:31:22BitPuffin?
13:32:25dom96Life sucks. Done no programming over the weekend and still have homework to do :\
13:33:08dom96How's the compiler bug fixing going?
13:34:12BitPuffindom96: been working on my website instead
13:34:28dom96how's that going?
13:34:39BitPuffinI handed the bug code over to xenagi
13:34:49BitPuffindom96: it went well yesterday and the day before that
13:34:58BitPuffindom96: haven't started today yet :D
13:35:08dom96Also, what's happened. We were in the region of ~55 users, now we're below 50 :(
13:35:22BitPuffindom96: not enough new nimrod coverage?
13:35:31dom96perhaps.
13:35:44BitPuffinI'm gonna try and provide the weekly nimrod article this coming week
13:36:01BitPuffinif I manage to get the website done
13:36:09BitPuffinI'm a bit worried about the timescape of the design
13:36:14BitPuffinI have big impressive plans
13:36:29dom96hrm
13:36:40dom96perhaps we should make a pact to create an article every week.
13:36:48BitPuffindom96: we really should
13:36:49dom96To keep the public interested.
13:37:27BitPuffindom96: all we need to do is to make sure that enough people are working on interesting stuff so that they can write about a nimrod moment of the work once a week
13:37:33dom96logicchains is creating a new benchmark so I will create a Nimrod version hopefully soon: https://github.com/logicchains/ParticleBench
13:37:36BitPuffinI mean that someone has something interesting to talk about
13:37:39BitPuffinonce a week
13:37:42BitPuffinnot everyone
13:38:00BitPuffinLike I might be able to just talk about how nice it was to write the website in nimrod first
13:38:04dom96yeah.
13:38:10BitPuffinthen the next week I release a new version of linagl and write about that
13:38:27dom96Well I could write a blog post about the release of babel.
13:38:28BitPuffinand then maybe the week after that you finish optimizing the async webserver so you write about it
13:38:34dom96But that's not that interesting I guess.
13:38:58BitPuffinand then the next week maybe Araq writes about that thing someone mentioned the other day
13:39:02BitPuffindom96: it is!
13:39:21*brson quit (Ping timeout: 245 seconds)
13:39:23BitPuffinit's not gonna be interesting if all we write is nimrod has these awesome features bla bla bla
13:39:29BitPuffinI mean it is
13:39:33BitPuffinbut iot over and over agoin
13:39:37BitPuffinagoin lol
13:39:41BitPuffinnot*
13:40:04BitPuffinso it's more interesting if we write about stuff we made and how nimrod made it awesome and the awesome stuff you can do with it
13:40:33BitPuffinlike in the case of linagl I can just give an overview of how you can use it and how nice nimrod makes it
13:40:39dom96Yeah, I was thinking about creating a pattern matching macro and then talking about that.
13:40:46BitPuffindo it!
13:40:48dom96but then somebody else is doing that I guess?
13:40:53BitPuffinalthough I've planned to do that
13:40:55BitPuffin:P
13:41:02BitPuffinbut if I don't come around to it it's nice if you do it
13:41:12*brson joined #nimrod
13:41:34BitPuffinI wanna create an fp library which has pattern matching, partial function application etc
13:42:23dom96I tried creating that nice lambda syntax, but compiler bugs sadly stopped me.
13:42:32BitPuffin:/
13:42:40BitPuffinyeah we really need to fix bugs
13:42:41EXetoC\(...)?
13:42:56dom96EXetoC: kinda
13:43:07dom96EXetoC: I ended up with a different syntax
13:43:10BitPuffinBut what makes sense for me is to spend time on the projects I have during my spare time
13:43:24BitPuffinso like writing my website(s) and game
13:43:39BitPuffinplus that gives me more to write about than fixing bugs :)
13:45:31BitPuffinand takes me further in my carreer
13:45:36BitPuffinbut yeah
13:46:00BitPuffinwhen I've released the game I'm gonna work full time on fixing bugs for a week or two I think
13:46:13BitPuffinand possibly donate some of the income if any
13:48:02dom96cool
13:50:34BitPuffindom96: but you don't have anything to write about that we could put out like today no?
13:50:42BitPuffinjust to have something
13:51:13*CarpNet joined #nimrod
13:51:40dom96BitPuffin: nope :\
13:52:29BitPuffinI wonder if gradha maybe has something
13:52:35BitPuffinwe all need blogs xD
13:52:59BitPuffinEXetoC: git yourself a blog and write nao
13:53:16BitPuffinwrite a tutorial for your glfw3 wrapper or something
13:53:46EXetoCgood idea
13:53:56dom96I should write a quick template for ipsum genera so that people can write blogs quickly.
13:54:42BitPuffindom96: do it nao
13:54:48BitPuffinNAO GUIZE!!
13:55:14BitPuffinEXetoC: do it gradha style and do exetoc.github.io or something :P
13:55:40*brson quit (Quit: leaving)
13:56:57*Araq0 joined #nimrod
13:58:24Araq0Hi. I am only here to say i ve no internet for a couple of days
13:58:54Araq0So ... i am not dead
13:59:07dom96Araq0: :(
14:00:21Araq0The advantage is that i ve a bit more time this way :-p
14:00:43dom96Why not use your mobile internet? :P
14:00:49Araq0The net is distracting
14:01:10EXetoCno kidding
14:02:23EXetoChave fun
14:02:33Araq0Fyi with a bit of luck drdobbs will publish an article abut nim
14:03:25Araq0Wich is no secondary source either as its written by me
14:03:44Araq0Wiki surely is absurd
14:05:40dom96Araq0: Have you got a deadline for that yet?
14:05:57Araq0Dec the first
14:06:29dom96cool
14:06:36Araq0But i might finish it tonight :-p
14:07:05dom96great, will they publish it earlier if you send it to them earlier?
14:07:28Araq0Highly unlikely
14:08:08*Ricky_Ricardo joined #nimrod
14:09:14*gradha joined #nimrod
14:12:04gradhaAraq0: ask if drdobbs needs kpop articles, I have one about brutal violence against crippled men in the pipeline
14:12:19gradhas/crippled/disabled/
14:15:38Araq0Gradha: creepy. Are you tracking this channel?
14:16:01gradhaof course
14:16:10gradhadom96: I'm going to presume you format your source code to 80 column width
14:16:24dom96gradha: Yep
14:16:36dom96Otherwise Araq bullies me.
14:16:51Araq0Hey
14:16:56gradhagood, you made seven mistakes in babel.nim
14:17:34Araq0I never bully you. All i do is to give you hints
14:17:42dom96Araq0: I kid :P
14:17:50Araq0And suggestions
14:18:23dom96gradha: Sometimes I just don't care to format it properly.
14:18:48Araq0BYe
14:18:59gradhaBYe
14:19:04dom96ByE
14:20:32*[1]Endy joined #nimrod
14:22:28dom96Pyret looks interesting.
14:22:39gradhahah
14:23:12gradhaAFAICS it's dynamic types
14:23:20*Endy quit (Ping timeout: 245 seconds)
14:23:20*[1]Endy is now known as Endy
14:23:22BitPuffinAraq0: good thing git works offline then :D
14:24:04dom96gradha: it looks like there is optional static typing
14:24:09gradhaI've been eyeing offline issue trackers until you realize offline issue trackers are more pain than gain, plus it's precisely the kind of thing you need centralized
14:24:22gradhadom96: it looks like cython only prettier or better integrated
14:25:26gradhadom96: in a way this may be the future of programming for the masses: easy to write software, with optional boosts of performance where needed
14:26:00BitPuffingradha: you mean nimrod or cython?
14:26:24gradhaBitPuffin: cython, pyret, and derivatives where types are "optional hints", because otherwise they are all dynamic
14:26:26BitPuffinEXetoC: are you wriiiitiiiing?? D:< :D
14:27:18gradhacython is good, but a pain to set up, and is sort of "not officially supported", so pyret improves on that
14:28:28dom96it's odd that they decided to adopt 'end' from Ruby.
14:29:21gradhawhat's odd is that they don't seem to support any form of concurrency, which makes it a dead language from the beginning
14:29:28BitPuffinyap
14:29:33gradhano example in the web page, no mention in the documentation
14:30:18dom96All they really show is the syntax, nothing about the implementation or at least I can't see anything.
14:30:28*dom96 is just skimming the text though
14:32:15gradhait strikes me as a great omission they want this language for teaching, and there's no teaching of anything asynchronous
14:33:02dom96I like their map/filter/fold example
14:33:24dom96Now I know why Araq says they should be templates in Nimrod
14:40:10*Ricky_Ricardo quit (Quit: Ricky_Ricardo)
14:41:06*[1]Endy joined #nimrod
14:43:09BitPuffinEXetoC: I take the silence as a yes. Keep going! :D
14:44:52*Endy quit (Ping timeout: 264 seconds)
14:44:52*[1]Endy is now known as Endy
14:45:13*gradha reaches infinite, and beyond
14:46:51*dymk quit (Ping timeout: 245 seconds)
14:50:31*fredmorcos quit (Quit: Leaving)
14:52:12BitPuffingradha lightyear
14:53:00VarriountMeep.
14:54:19dom96To infinity and beyond!
14:55:22gradhaoh, nimrod doesn't support else: after a for
14:57:25*dymk joined #nimrod
15:00:06*[1]Endy joined #nimrod
15:03:33*Endy quit (Ping timeout: 252 seconds)
15:03:34*[1]Endy is now known as Endy
15:07:15gradhathere's fnmatch and glob in the posix module, there is an equivalent on windows?
15:08:15gradhaoh, os.walkFiles seems to do this
15:10:16VarriountWould anyone here be opposed to making 'auto' explicitly needed in implicit generics?
15:10:39*Varriount is getting annoyed with syntax errors being masked by implicit generic errors
15:11:25*gradha wonders what explicit implicit generics are
15:11:59VarriountBetter than entirely implicit generics
15:12:48gradhanow you have seq[type], a generic isn't seq[T]?
15:13:37dom96Varriount: You mean for proc params?
15:13:42BitPuffinVarriount: pretty sure auto is already needed
15:13:43Varriountdom96, yes
15:13:49VarriountBitPuffin, no it isn't.
15:13:53dom96BitPuffin: It's not for proc params.
15:13:56BitPuffinoh you mean inside the ()
15:14:04BitPuffinwell I don't think we should have auto
15:14:15Varriountdom96, look at the ticket I opened yesterday/last night
15:14:35dom96Having to write proc (x,y,z: auto) seems like unnecessary boilerplate.
15:14:40BitPuffinI don't see how proc(a: auto, b): auto =
15:14:56BitPuffinis any better than proc(a; b: foo): auto =
15:14:59dom96But I'm not sure what the problem is so perhaps it makes implementation considerably easier.
15:15:04BitPuffinimagine that I put foo on b on the first one
15:15:04VarriountIf nothing else, 'auto' should need to be in their somewhere
15:15:36BitPuffindom96: I don't see how auto makes the implementation significantly easier
15:16:35VarriountBitPuffin, look at this -> proc foo[iT, rT](filter: proc (rT):bool, iter:iT): rT
15:16:38BitPuffinauto makes sense in the return type because no return type means nothing is returned
15:16:49VarriountCan you spot the error?
15:17:31BitPuffinVarriount: maybe
15:17:50BitPuffinrT is in the parameters for the proc
15:17:53BitPuffinwhich is weird
15:18:02BitPuffinshould be proc(a: rT): bool
15:18:25VarriountBitPuffin, and what kind of error would you expect that to throw?
15:18:33dom96In that case you should look at the generic types of `foo`
15:18:53dom96it's ambiguous so ambiguous error
15:19:02Varriountdom96, Nope!
15:19:12BitPuffinVarriount: invalid parameter name etc. But you get a different error, but that's not just because of implicit generics
15:19:33BitPuffinI've done explicit generics and gotten weird errors because I accidentally named a parameter the same thing as the proc name for example
15:19:44VarriountBitPuffin, nimrod currently tries to process that as an implcit generic
15:20:02BitPuffinVarriount: which part?
15:20:06dom96Varriount: Why not?
15:20:16VarriountThe proc type
15:20:39dom96or do you just mean that it doesn't throw that error but that it should?
15:20:45Varriountfilter: proc(rT):bool crashes the compiler because its an implicit generics.
15:20:52BitPuffinokay, but it's not like it is valid code anyway :P
15:21:23BitPuffinthe compiler should just give a better error message
15:21:28*[1]Endy joined #nimrod
15:21:29BitPuffinit's not the syntax that is the problem
15:21:37BitPuffinit's the error message and code
15:22:08VarriountBitPuffin, I just dislike that allowing implicit generics *everywhere* causes, even in the best cases, wierd errors
15:22:24BitPuffinand having to put auto is a much greater loss I think than just avoiding that which is clearly the programmer's fault
15:22:42BitPuffinit isn't allowed everywhere
15:22:59VarriountWell, I want to make auto needed somewhere.
15:23:22gradhacan somebody on windows please run https://gist.github.com/gradha/7399445 and see if it works and does anything useful?
15:23:23BitPuffinit is allowed in variable declarations and parameters
15:23:31BitPuffinVarriount: it is needed somewhere already
15:23:37BitPuffinVarriount: and that is in procedure return type
15:23:47gradhaI need to know if walkFiles under windows works with a meta character replacing a directory component
15:24:57*Endy quit (Ping timeout: 272 seconds)
15:24:58*[1]Endy is now known as Endy
15:25:00BitPuffinVarriount: if we were gonna fix the compiler's ugly errors by making changes to the language the language would be horribly ugly
15:32:06BitPuffinI think the fact that we can write a proc that looks like proc foo(a, b): auto = and have it work for any type the body is valid for is very elegant
15:33:17BitPuffinand I guess that with some analysis of the body one could even remove the auto of the proc. But I kind of like having it there because you know just by looking at the signature that it returns something
15:35:53EXetoCyeah
15:38:29EXetoCdom96: so you think that map etc should remain as templates even when we do get user-defined type classes?
15:39:14BitPuffinI hope we get ADTs in nimrod
15:39:18BitPuffinthat would be sweet
15:41:59*[1]Endy joined #nimrod
15:41:59EXetoCturning them into generic functions seems like a natural thing to do at that point
15:44:37*Endy quit (Ping timeout: 248 seconds)
15:44:38*[1]Endy is now known as Endy
15:47:18*[1]Endy joined #nimrod
15:50:55*Endy quit (Ping timeout: 272 seconds)
15:50:56*[1]Endy is now known as Endy
16:06:27*mflamer joined #nimrod
16:06:41*xenagi joined #nimrod
16:13:57VarriountBitPuffin, in any case, I still believe that making 'auto' as the return type should be mandatory.
16:14:25VarriountCurrently it isn't.
16:15:26*[1]Endy joined #nimrod
16:18:43*Endy quit (Ping timeout: 252 seconds)
16:18:43*[1]Endy is now known as Endy
16:19:10dom96Varriount: it is
16:20:24*Varriount points to the above code snippet
16:21:02dom96hrm? which one?
16:21:27Varriountproc foo[iT, rT](filter: proc (rT):bool, iter:iT): rT
16:22:25VarriountIf you look at the traceback that code snippet throws when compiled with a body, you will find that it breaks on the implicit generic type generation
16:22:27dom96That has nothing to do with "'auto' as the return type"
16:23:09dom96Specifying 'auto' for the return type is mandatory, otherwise the type is 'void' i.e. no return type.
16:25:19Varriountdom96, as I said, it does. The filter parameter above is being treated as an implicit generic type.
16:26:14dom96yes, but that's because the *param* of the proc is implicitly generic.
16:26:42Varriountdom96, despite the fact that auto is not the return type, bool is.
16:27:22dom96Are you saying that the compiler incorrectly assumes that the return type of that proc is 'auto' not 'bool'?
16:27:51VarriountEither that, or it's not checking the return type at the right time, if at all.
16:31:13Varriountdom96, do you actually know where the compiler checks for auto?
16:31:43dom96nope sorry
16:34:25*[1]Endy joined #nimrod
16:37:09*mflamer quit (Ping timeout: 272 seconds)
16:43:21*Endy quit (Ping timeout: 264 seconds)
16:43:21*[1]Endy is now known as Endy
16:43:22*OrionPK joined #nimrod
16:53:04*[1]Endy joined #nimrod
16:55:12*fredmorcos joined #nimrod
16:56:26*Endy quit (Ping timeout: 244 seconds)
16:56:26*[1]Endy is now known as Endy
17:01:10*fredmorcos quit (Read error: Operation timed out)
17:02:35*Araq0 quit (Quit: Bye)
17:14:13*Endy quit (Ping timeout: 248 seconds)
17:23:54gradhaI've tried to implement comparison of generic sequences but was not able to name the proc cmp https://gist.github.com/gradha/7401114
17:24:19gradhaI had to rename it to cmpSeq to make it work, the compiler was saying my use of cmp was ambiguos
17:24:38VarriountYay!
17:24:44gradhamaybe this is a limitation of generic recursive types?
17:25:11VarriountNimrod's generics need.. some work.
17:28:10gradhathere's also the question where you would put it, people dislike system growing, but then, do you put it in sequtils? or algorithm?
17:28:59VarriountseqUtils
17:29:16gradhathe thing is, you need to import algorithm to use sort
17:29:49Varriountpersonally, I don't mind system growing, so much as it just needs to be split into other, implicitly imported, packages.
17:37:13VarriountOh my goodness... What have I created...
17:37:33gradhais it… alive?
17:37:42*Endy joined #nimrod
17:38:16Varriountgradha, I somehow made "proc foo(a, b): bool = a>b" work
17:38:36Varriountwhile fiddling with type generation stuff in the compiler code
17:38:48VarriountAnd it ran
17:39:00gradhathat's only good if it didn't first backstab you
17:39:11VarriountLike, a compiled executable using that procedure, ran and executed correctly
17:39:38*enurlyx quit (Ping timeout: 240 seconds)
17:39:43VarriountO_o
17:42:23Varriountgradha, I'm scared.
17:42:58VarriountMy change fixed some compiler errors... but I don't know if the change was right.
17:43:19gradhadoesn't nimrod have a test suite? like koch tests?
17:43:32VarriountYeah, I'm running it now.
17:46:25*Varriount misses Araq
17:52:21*gradha looks up some kpop lyrics and for once they are good
17:53:32*Varriount works on itertools while waiting for koch-test to finish
17:57:44OrionPKthere any sample code for the json module?
17:57:57gradhalike babel itself, man
17:58:11VarriountOrionPK, you can look at parts of nimbuild
17:58:17*[1]Endy joined #nimrod
17:59:25gradhain case you look up babel, see packageinfo.nim
18:01:01*Endy quit (Ping timeout: 245 seconds)
18:01:01*[1]Endy is now known as Endy
18:02:45OrionPKthanks
18:03:03*enurlyx joined #nimrod
18:15:33*Endy quit (Ping timeout: 248 seconds)
18:21:01Varriountgradha... the results
18:21:16gradhaoh… the results
18:21:20VarriountIt appears that my changes actually made *more* tests pass
18:21:33gradhaquick, ship it!
18:21:37*enurlyx quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0/20131025151332])
18:21:43dom96ship ship ship ship
18:21:51gradhado you have commit access?
18:21:57Varriountgradha, nope
18:22:05gradhathen you have to bribe dom96
18:22:19Varriountdom96, it appears that auto isn't needed for implicit generics
18:22:37gradhathat's a really poor way to start a bribing
18:22:52dom96hah
18:23:10Varriountdom96, I plan to rectify that.
18:25:33dom96Does it fix the bug I reported?
18:26:55Varriountdom96, the one about lambdas?
18:27:51dom96yeah i think so
18:27:56dom96#641
18:28:31VarriountIt doesn't crash the compiler anymore, though it does throw an error about an invalid type.
18:28:37Varriountinvalid type: 'proc (GenericParam, GenericParam): auto'
18:29:32VarriountWhich makes sense - explicit generic lambdas aren't implemented yet, much less implicit ones.
18:30:06dom96i see, i thought they were.
18:30:42*fowl joined #nimrod
18:31:15Varriountdom96, I can see, in theory, how generic lambdas might work. However, I don't believe nimrod has that kind of machinery yet
18:32:27VarriountThey would have to be restricted - the compiler has to evaluate all generics at compile time.
18:32:43VarriountI have to go, driving my siblings home.
18:33:54rndbithttp://nimrodsailing.blogspot.com/p/nimrod-specification.html
18:34:44gradhalet's reddit that
18:35:13dom96awww, I got all excited.
18:35:17dom96But it's just about some boat.
18:36:50rndbitbazinga
18:37:47*Endy joined #nimrod
18:48:23BitPuffinVarriount: well if you read what I said I said that auto is and should remain required for return type :P
18:51:07xenagiI agree
18:51:38BitPuffinbecause then we know it does in fact return something
18:52:04dom96Read our discussion later
18:52:09dom96I don't think he meant that.
18:53:32BitPuffinah
18:53:49BitPuffinwell he might be confusing parameter and return type in that case
18:55:37BitPuffinVarriount: it would be quite easy to find out where the compiler is checking the type probably with the backtrace
18:57:00*gradha adds a variable named tits to his tests
18:57:19BitPuffinthat's really mature of you gradha :)
18:57:33xenagilol gradha
18:57:38gradhait's also illegal, all of my tits object have an age of 3
18:57:51xenagi...and now it's gross
18:58:14gradhaok, ok, I'm making all of them 30 and 40
19:00:11*Endy quit (Ping timeout: 245 seconds)
19:00:16EXetoC:E
19:00:52gradhaI don't think I can cmp() anonymous tuples
19:03:42gradhaanybody know why the compiler rejects this sort? https://gist.github.com/gradha/7402320
19:03:53gradhathe previous line which calls cmp manually works
19:04:39*BitPuffin throws his pomelo at gradha
19:04:45BitPuffinEXetoC: how's the writing going? :D
19:04:48fowlgradha, try cmp[tuple]
19:05:16gradhaah, violence solves everything, I forgot
19:05:33EXetoCBitPuffin: I've almost started
19:06:19BitPuffinEXetoC: sweet
19:06:29BitPuffinEXetoC: I wanna upvote a nimrod article today on the reddits
19:06:59BitPuffinand so does dom96!
19:08:40EXetoCok the word almost is fairly misleading
19:08:45dom96hell yes
19:09:05gradhano, wait, that's really wrong, nimrod picks a different cmp rather than mine
19:10:20gradhais there any len(tuple)? can't seem to get the number of fields to iterate over them
19:10:32BitPuffinEXetoC: the word?
19:13:45gradhameh, now compiler errors, tuples seem rather picky
19:14:14EXetoC-word
19:16:27fowlgradha, i believe there is already a cmp[object|tuple]
19:16:31BitPuffinEXetoC: o.O
19:17:03gradhafowl: maybe, it just doesn't work lib/system.nim(743, 7) Error: ambiguous call; both system.==(x: TEnum, y: TEnum): bool and system.==(x: T, y: T): bool match for: (typeclass[tuple], typeclass[tuple])
19:17:23fowlshrug
19:18:57gradhafowl: oh, wait it actually works, but I have to specify the tuple type rather than put a generic tuple type
19:24:48*markhend joined #nimrod
19:27:55dom96hi markhend
19:30:09dom96EXetoC: What are you writing about?
19:35:28gradhaand after all the preliminaries I can finally tackle babel
19:36:10EXetoCdom96: nothing
19:36:23*dom96 should review gradha's PRs at some point
19:36:29EXetoCBitPuffin: Sorry for being vague yet again. I said it was a good idea, but I have no idea when I'll get around to it
19:37:31EXetoCI have some web scraping to do, and then I need to look through nim-glfw3 and maybe fix some things before starting on an article
19:44:03*gradha right now notices dom96 actually has a version.nim for babel
19:52:46xenagispeaking as a noob, do generics add significant overhead to the runtime?
19:53:22fowlxenagi, no
19:53:23EXetoCit's a compile-time construct
19:53:24gradhaxenagi: are you familiar with C++ templates?
19:54:12fowlxenagi, if you have foo(x) and you call it for an int, the compiler generates the function for ints, call it for a string and it generates (instantiates) the function for strings also
19:54:53*NullData joined #nimrod
19:55:01NullDataHello
19:55:08gradhaNullData: hi
19:55:10xenagiyes gradha
19:55:15xenagibut not specifics or details
19:55:40gradhaxenagi: fowl just explained how they work, all happens at compile time
19:55:51xenagithat makes sense
19:56:00gradhayou could argue performance suffers if you have cache misses due to multiple type generics not fitting in the cache
19:56:09xenagibut surely there can be runtime generics as well, say pulling some value from a db and determining at runtime its type?
19:56:50gradhawell, in the case of databases you mostly get strings out of them
19:57:25gradhabut then that's no generics
19:57:33xenagiyea
20:02:25*fowl quit (Quit: Leaving)
20:03:53gradhaxenagi: most likely you are thinking of nimrods object variants for stuff like the json module
20:04:25xenagii guess so
20:04:36gradhaxenagi: see http://nimrod-code.org/json.html, you get some json, then at runtime you decide the type
20:05:25gradhaor rather, the parsing sets the type for you, and you check the kind field
20:05:49xenagiright
20:06:06xenagiyeah that isnt generics, and i can see how _that_ would add overhead
20:07:01gradhaI think the db modules could be improved to return tuples of specific types rather than string sequences
20:09:50gradhadom96: any reason babel's TPackageInfo has a string version instead of a TVersion?
20:11:33NullDataAre the fields of objects referenced through a table considered inmutable?
20:12:24BitPuffinEXetoC: why are you doing web scraping?
20:12:27gradhaNullData: no, unless you implement some setter/getter policy
20:12:57gradhaNullData: but then, are you storing the actual objects or references to them?
20:13:18NullDataI'm storing actual objects
20:13:22NullDataIn this case.
20:13:48gradhain that case when you "extract" an object from the table, you are making a copy
20:14:07gradhayou would need to use the mget proc to modify the stored object
20:14:14NullDataAnd, in order to change that I have to reassign it right?
20:14:17NullDataThat makes sense.
20:14:50gradhathat's what the note at the top of the module means: "The data types declared here have value semantics"
20:14:50dom96gradha: Probably because TPackageInfo is meant to represent the .babel file, keeping it as a string keeps it simple.
20:15:36gradhadom96: TVersions are strings, how do they make stuff complex?
20:15:49NullDataThanks, I just had to make sure that was the reason.
20:16:01dom96gradha: I probably just didn't feel like changing it.
20:16:28gradhaNullData: if you want pointer-like behaviour use "ref type" for the values of the table
20:17:16NullDataI know. I just haven't had enough coffee lately to think straight
20:17:31EXetoCBitPuffin: because I might get paid for it in the near future
20:17:57NullDataI mean I should be able to figure this out after 4 yeah with C and it's pointers :P
20:18:22BitPuffinEXetoC: oooh :D
20:18:25BitPuffinMONAYZ
20:18:27EXetoCthat's really the only reason, since it's not very fun; most of the time anyway
20:18:46dom96gradha: What are you changing anyway?
20:18:57gradhadom96: I'm adding the path command
20:20:38dom96ok
20:20:49gradhayeah, it works
20:20:53dom96Change the type if you want then.
20:21:00gradhanah, why bother
20:21:25dom96yep, that was my thought process too probably :P
20:22:25*gradha notices "variable += 0", then facepalms
20:22:33EXetoCBitPuffin: YAY MONIES
20:23:01gradhadom96: on windows, can you change the current directory of the "shell"?
20:23:08dom96no idea
20:23:18gradhathere are no backticks though
20:23:40gradhaIIRC in MSDOS times there were like "super cd" commands, which would "jump" to somewhere deep in the hierarchy
20:25:13gradhaso how do you write "cd `command output`" in a bat file?
20:26:17EXetoCas opposed to having to traverse one level per invocation?
20:28:04*BitPuffin quit (Read error: Operation timed out)
20:31:41gradhadom96: there you go, nobody tested my earlier snippet on windows, so you are on your own to make it work there
20:32:11dom96thanks
20:36:10dom96bbl
20:42:12*BitPuffin joined #nimrod
20:44:46BitPuffinGAWT DISKÅNNÄKTÄD!!
20:45:25gradhayeah
20:53:06*vidot_j joined #nimrod
21:06:00*Jackneill quit (Remote host closed the connection)
21:14:32EXetoCBitPuffin: then fix ur tubes
21:15:39BitPuffinEXetoC: yep one of them were busted
21:15:55BitPuffinso I replaced it with the emergency tube
21:15:56EXetoCthem rj-45's can get clogged
21:16:22BitPuffinoh you use rj-45?
21:16:54BitPuffinI was still back on the fq-82-b's
21:17:02BitPuffinthey lasted for a long time
21:17:25BitPuffinthe new one I put in there was a pd-14-xt should definitely be an upgrade in terms of throughput
21:17:36EXetoCwot
21:26:32*markhend quit ()
21:29:59*NullData quit (Quit: Page closed)
21:30:02*fredmorcos joined #nimrod
21:55:27gradhagood night
21:55:34*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=mcyhZEXwfh0 again)
21:57:43*fredmorcos quit (Quit: Leaving)
22:27:22*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22:29:14mkb /w 3
22:31:23*ics joined #nimrod
22:40:11*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22:47:01*vidot_j quit (Ping timeout: 252 seconds)
22:59:32*vidot_j joined #nimrod
23:07:11*vidot_j quit (Ping timeout: 252 seconds)
23:19:12*vidot_j joined #nimrod
23:25:09*vidot_j quit (Ping timeout: 252 seconds)
23:26:27*CarpNet quit (Quit: Leaving)
23:29:48*profmakx quit (Ping timeout: 260 seconds)
23:37:12*vidot_j joined #nimrod